CN102195977B - 一种网络协议识别方法及装置 - Google Patents

一种网络协议识别方法及装置 Download PDF

Info

Publication number
CN102195977B
CN102195977B CN201110092274.4A CN201110092274A CN102195977B CN 102195977 B CN102195977 B CN 102195977B CN 201110092274 A CN201110092274 A CN 201110092274A CN 102195977 B CN102195977 B CN 102195977B
Authority
CN
China
Prior art keywords
characteristic character
tcam
packet
identified
procotol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110092274.4A
Other languages
English (en)
Other versions
CN102195977A (zh
Inventor
汪锐
周志雄
梁丽华
王增丽
赵彦博
叶军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING EVERBRIGHT INNOVATION TECHNOLOGY Co.,Ltd.
BEIJING HENGGUANG INFORMATION TECHNOLOGY CO LTD
BEIJING HENGGUANG TECHNOLOGY DEVELOPMENT CO LTD
Original Assignee
BEIJING EVER BRIGHT TECHNOLOGY DEVELOPMENT Co Ltd
BEIJING HENGGUANG TECHNOLOGY DEVELOPMENT Co Ltd
BEIJING EVERBRIGHT INNOVATION TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING EVER BRIGHT TECHNOLOGY DEVELOPMENT Co Ltd, BEIJING HENGGUANG TECHNOLOGY DEVELOPMENT Co Ltd, BEIJING EVERBRIGHT INNOVATION TECHNOLOGY Co Ltd filed Critical BEIJING EVER BRIGHT TECHNOLOGY DEVELOPMENT Co Ltd
Priority to CN201110092274.4A priority Critical patent/CN102195977B/zh
Publication of CN102195977A publication Critical patent/CN102195977A/zh
Application granted granted Critical
Publication of CN102195977B publication Critical patent/CN102195977B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Communication Control (AREA)

Abstract

本发明公开了一种网络协议识别方法,该方法包括:预存储步骤和匹配步骤,其中,预存储步骤包括:将网络协议的特征字符信息存储到TCAM中;将与TCAM中的特征字符信息相对应的返回值存储至RAM中;匹配步骤包括:从互联网中获取待识别数据包;从待识别数据包的中提取一次数据匹配所需的包头数据;将包头数据与TCAM中的特征字符信息进行匹配;确定与待识别数据包相匹配的特征字符信息后,从RAM中获取相对应的返回值;根据所确定的特征字符信息和相对应的返回值生成网络协议识别结果。通过本发明可适应不同层次和大量类型的协议识别。

Description

一种网络协议识别方法及装置
技术领域
本发明关于网络技术领域,特别是关于网络协议识别技术,具体的讲是一种网络协议识别方法及装置。
背景技术
网络设备在收到网络数据后,需解析出数据包的内容以完成正常的处理功能。根据网络协议的层次规范,网络设备中应具有多个网络层次的实现实体,每个层次的实现实体完成类似的功能:对数据包进行该层次的解析,以完成本层次规定的处理功能,并确定上层协议的类型,将剥离本层次包头后的负载送入到对应的上层实现实体中。数据包首先被送入最低层次的实现实体中,解析数据、确定上层协议、提取负载、送入上层,持续这个过程直到最上一层的实现实体完成解析功能。例如处理以太网数据包的计算机系统,数据包首先被网卡所接收,完成物理层和MAC层解析后,需解析数据包以确定是ARP数据包还是IP数据包,为ARP包则送入上层的ARP处理模块,为IP包则送入上层的IP层处理模块;IP层处理模块收到数据包后进行解析,为UDP包则送入UDP层处理模块,为TCP包则送入上层的TCP层处理模块;UDP或TCP层进一步解析,送至相应的应用层处理模块。
现有技术中,当需处理的网络协议类型较少时,如仅处理某种固定协议的设备,可以进行简单的网络协议的识别,但对大量不同网络类型的数据包进行分析和处理时,现有技术并不能实现对多种不同的网络协议进行识别。在网络流量分析等应用场合中,需要对大量不同网络类型数据包进行分析和处理,同时需要对不同层次的协议的进行识别,并且随着网络技术的不断发展,新的网络协议不断涌现,需要对新的网络协议进行识别。
发明内容
本发明公开了一种网络协议识别方法,该方法包括:包括预存储步骤和匹配步骤,其中,预存储步骤包括:将网络协议的特征字符信息存储到TCAM中;将与TCAM中的特征字符信息相对应的返回值存储至RAM中;匹配步骤包括:从互联网中获取待识别数据包;从待识别数据包的中提取一次数据匹配所需的包头数据;将包头数据与TCAM中的特征字符信息进行匹配;确定与待识别数据包相匹配的特征字符信息后,从RAM中获取相对应的返回值;根据所确定的特征字符信息和相对应的返回值生成网络协议识别结果。
同时,本发明还公开一种网络协议识别装置,该装置包括:包括特征字符信息存储装置和特征字符信息匹配装置,其中,特征字符信息存储装置包括:TCAM,用于存储包括网络协议的特征字符信息;RAM,用于存储与TCAM中的特征字符信息相对应的返回值;特征字符信息匹配装置包括:数据包获取单元,用于从互联网中获取待识别数据包;匹配数据提取单元,用于从待识别数据包的中提取一次数据匹配所需的包头数据;匹配单元,用于将包头数据与TCAM中的特征字符信息进行匹配,确定与待识别数据包相匹配的特征字符信息;返回值获取单元,用于在确定与待识别数据包相匹配的特征字符信息后,从RAM中获取相对应的返回值;识别结果生成单元,用于根据所确定的特征字符信息和相对应的返回值生成网络协议识别结果。
通过本发明提供的网络协议识别方法及装置,根据数据包中特殊位置的特殊字符对网络协议进行识别,可适应不同层次的协议,并且现有的主流的TCAM芯片和RAM芯片的容量为兆字节量级,而网络协议的种类不超过几百种,采用本发明提供的网络协议识别方法可同时支持大量网络协议的识别,并且将可识别的协议类型的协议模式存储在TCAM和RAM中,而TCAM和RAM中的内容是可以随时改变的,因此对于可识别的协议类型的功能不是固化在设备中,而是可配置的。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的网络协议识别方法的预存储步骤流程图;
图2为本发明公开的网络协议识别方法的匹配流程图;
图3为本发明公开的网络协议识别装置的结构框图;
图4为本发明实施例中的匹配过程的流程图;
图5为本发明网络协议识别装置实施例1的结构框图;
图6为本发明实施例1中的协议模式存储表格;
图7为本发明实施例1中待识别的数据包数据;
图8为本发明网络协议识别装置实施例2的结构框图;
图9为本发明实施例2中的协议模式存储表格。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明公开了一种网络协议识别方法,该方法包括预存储步骤和匹配步骤。如图1所示,预存储步骤包括:步骤S101将网络协议的特征字符信息存储到TCAM中;步骤S102,将与TCAM中的特征字符信息相对应的返回值存储至RAM中;如图2所示,上述匹配步骤包括:步骤S201,从互联网中获取待识别数据包;步骤S202,从待识别数据包的中提取一次数据匹配所需的包头数据;步骤S203,将包头数据与TCAM中的特征字符信息进行匹配;步骤S204,确定与待识别数据包相匹配的特征字符信息后,从RAM中获取相对应的返回值;步骤S205,根据所确定的特征字符信息和相对应的返回值生成网络协议识别结果。
如图3所示,本发明还公开了一种网络协议识别装置,该装置包括:包括特征字符信息存储装置20和特征字符信息匹配装置10,其中,特征字符信息存储装置包括:TCAM201,用于存储包括网络协议的特征字符信息;RAM202,用于存储与TCAM中的特征字符信息相对应的返回值;同时,特征字符信息存储装置10还包括:表项数目确定单元203,根据网络协议的特征字符偏移量确定TCAM201的表项数目;配置单元204,用于根据确定的表项数目将网络协议的特征字符值及特征字符偏移量配置到TCAM的表项中。特征字符信息匹配装置包括:数据包获取单元101,用于从互联网中获取待识别数据包;匹配数据提取单元102,用于从待识别数据包的中提取一次数据匹配所需的包头数据;匹配单元103,用于将包头数据与TCAM中的特征字符信息进行匹配,确定与待识别数据包相匹配的特征字符信息;返回值获取单元104,用于在确定与待识别数据包相匹配的特征字符信息后,从RAM中获取相对应的返回值;识别结果生成单元105,用于根据所确定的特征字符信息和相对应的返回值生成网络协议识别结果。本发明中,网络协议的特征字符信息包括:网络协议的特征字符在数据包中的偏移位置和所述特征字符在偏移位置的值。
本发明公开的网络协议的识别方法及装置,通过将网络协议的特征字符及特殊位置信息转换为类似状态机的形式进行存储,然后将待识别的网络数据包与预存储的特征字符及特殊位置信息进行匹配,确定待识别的数据包的网络协议类型,数据负载的起始位置等信息。将网络协议的特征字符信息配置到TCAM表项中,将与特征字符信息相对应的返回信息等存储到RAM中,本发明中,TCAM的表项中包括:特征字符值表征、特征字符偏移量表征及TCAM的状态跳转表征;RAM的表项包括:识别成功标识表征、返回值表征及RAM的状态跳转表征本发明公开的网络协议识别方法及装置中,其中的网络协议的特征字符信息包括:网络协议的特征字符在数据包中的偏移位置和特征字符在所述偏移位置的值;网络协议的特征位置信息包括:数据包中的负载的起始位置信息。
CAM的英文全称为Content Addressable Memory,即内容寻址内存。与普通的SRAM、DDR内存等不同:普通内存通过输入地址得到数据;而CAM则是通过输入数据得到数据所在的地址。TCAM(Ternary CAM)为三态CAM,不仅可以匹配二进制数“0”和“1”,还可以通过掩码匹配任意值,也称为可匹配“X”。CAM的数据宽度通常可配置,如9字节、18字节、36字节或72字节等。
每一种网络协议都具有其固有的特征,采用一定的方式将这种特征表示出来,称之为协议模式。即每种网络协议,具有其特定的协议模式。在本发明实施例提出的网络协议识别方法,将多种不同网络协议的协议模式,以表格的形式存储在TCAM和RAM中。将输入的数据包与TCAM中存储的协议模式相匹配,以确定数据包的协议类型。
大部分包交换的网络协议具有这样的特征:在数据包的某些特殊位置,会出现某些特殊字符。例如Ethernet II协议中封装IP协议数据包时,数据包的第12和13个字节(从零开始计数)为0x0800。这样的特征是网络协议定义的一部分,属于网络协议的固有特征,可以用来确定协议的类型。本发明实施例中,将网络协议的这种固有特征归纳为协议模式,并采用下式表示:
M(P)={(offset,value)}
协议P的模式为多个(offset,value)二元组的集合,其中offset表示从数据包起始位置的偏移,value表示该偏移处的字节的值。如Ethernet II协议中封装IP协议的模式可写为:
M(Ethernet II+IP)={(12,0x08),(13,0x00)}
下面结合具体的实施例对本发明做详细说明。
实施例1
在本发明实施例中,协议模式分为两部分,分别存储在TCAM和RAM中,其中,TCAM中主要存储网络协议的特征字符信息,本实施例中称为待匹配内容,RAM中主要存储网络协议的特征位置信息,本实施例中称为匹配相关信息。
本实施例中TCAM中存储的待匹配内容包括:当前状态域(Current State,CS)、位置域(Pattern Location,PL)、部分模式域(Part Pattern,PP)三个部分,各个域的含义和说明如表1所示:
表1
设TCAM的宽度为W,这三个域一起组构成TCAM的数据部分,有:
W=SW+LW+PW              (1)
部分模式域为进行匹配的主要部分,即网络协议的特征字符信息,部分模式域包括模式数据(Pattern Data,PD)和模式掩码(Pattern Mask,PM),在模式数据中被模式掩码所掩的部分,在TCAM匹配时不参与匹配,仅未被掩的部分参与匹配。部分模式域是TCAM匹配带宽的有效利用部分,因此,SW和LW的值越小,TCAM的匹配带宽利用越充分。
RAM中存储匹配相关信息,包括识别标志、下一态、返回值三部分,各个域的含义和说明如表2所示:
表2
  域名   缩写   宽度(比特)   含义
  识别标志   F   1   表示协议识别过程是否完成
  下一态   NS   SW   下一状态,用于表示连续多次匹配的关系
  返回值   R   RW   协议识别成功时的返回值
其中识别标志的宽度为1比特,用于表示协议识别过程是否完成;下一态与TCAM中的当前状态宽度相同,下一态在下一次匹配时就会变为当前状态;返回值指协议识别成功时,整个匹配模块需返回的数值。返回值与具体应用相关,返回值内容包括:载荷数据的起始位置、上层协议的类型等。
其中,NS值和R值不会同时使用时,当F为1时仅使用R值,F为0时仅使用NS值。因此,若为了节省RAM的存储空间,可合并NS和R域,取SW和RW之大者为合并域的宽度。
为使本发明实施例更加清楚,下面具体描述将协议模式转化为TCAM和RAM中存储的各个域的方法。
设需要存储N种协议模式,M(Pi)(0≤i<N)。每种协议在TCAM表中对应多个表项,每个表项中存储的部分模式,对应协议模式的一部分。每种协议需表项的数目NW(Pi)与协议模式中最大的offset有关,表项的数目NW(Pi)与协议模式中最大的offset的关系如下式:
NW(Pi)=max(offset)/PW/8+1
依次对每种协议生成这NW(Pi)个表项。对任何一个j(0≤j<NW(Pi)),生成协议模式M(Pi)中的第j个表项,先确定表项中的待匹配内容及匹配相关信息的值,确定方法如下:
其中,CS、PL、PD及PM的取值:
PL的取值:直接取j。
PD和PM的取值:对任一个k(0≤k<PW/8),若在M(Pi)中存在(offset,value),使j*PW/8+k=offset,则PD[k]=value,PM[k]=0xFF;否则PD[k]=0,PM[k]=0。当同时存在多个相同的offset值时,为每一个offset值分别生成一个表项,但在逻辑上可看为同属于编号为j的表项。
CS的取值:若j=0,CS=0;否则CS[j]=NS[j-1]。
F、NS和R的取值:
若j=NW(Pi)-1,有F=1,NS=0,R为返回值;否则F=0,NS取未被使用过的最小正数值,R为0。
最后合并每种协议生成的各个表项即得到所有协议模式的对应表。合并时,若两个表项TCAM中的各个域完全相同,可压缩为一个表项。
PL值小于每种协议对应的表项的数目,因此有:
PL<max(NW(Pi))
从而PL域所占TCAM的位宽LW:
LW≤log2(max(NW(Pi))
CS值不超过每种协议对应的表项数目之和,从而CS域所占TCAM的位宽SW为:
SW≤log2(∑(NW(Pi))
其中,NW(Pi)又与PW值有关,因此,在固定的宽度为W的TCAM中,需设定一个合理的PW值,以提高TCAM匹配带宽的利用率。
当多种协议模式上述方式存储入TCAM和RAM后,采用合适的匹配方法,将数据包的包头送入进行匹配,即可得到该数据包属于哪一种协议。
进行协议识别需要多次匹配才能完成。每次送入TCAM中进行匹配的数据与其中存储的值一致,由当前状态、当前比较次数和数据组成。其中,当前比较次数指数据包目前是第几次送入TCAM进行比较,记为i(i≥0);当前状态为比较时输入的当前状态,为与TCAM中存储的当前状态区分,此处记为state;数据即每次送入的包头数据,记为D[i],如表3所示:
表3
  域名   标记   宽度(比特)   含义
  当前状态   state   SW   匹配得到的当前状态。
  当前比较次数 i LW   表示当前是进行第几次匹配
  数据   D[i]   PW   第i次输入进行匹配的包头数据
进行匹配的过程如图4所示,具体包括:
步骤S401:令state=0;i=0。
步骤S402:进行第i次匹配;
将CS[i],i和D[i]送入TCAM中进行匹配;
步骤S403,判断匹配是否成功:
若在TCAM表格中能找到一个表项j,使CS[j]=state且PL[j]=i且D[i]&PM[j]=PD[j]&PM[j],则该次匹配成功;
匹配成功,执行步骤S404,读取RAM中的值F[j]、NS[j]和R[j];
匹配失败执行步骤S409,令state=0,然后执行步骤S407;
步骤S405,对F[j]进行判断:
a)若F[j]=1,则结束匹配过程,匹配成功,并输出返回值R[j];
b)若F[j]=0,执行步骤S406,令state=NS[j];
步骤S409:若匹配不成功,令state=0,执行步骤S407;
步骤S407,判断包头数据是否已经全部输入,判断已经完全输入,则匹配结束且失败;否则令i=i+1,跳到步骤S402,继续进行匹配。
如图5所示为本实施例的一种实施方式的结构框图,包括模式配置模块301,TCAM存储器309和RAM存储器302,协议识别模块303,数据包输入模块304及输出模块308,其中,模式配置模块用于根据网络协议类型,将包括特征字符信息的待匹配内容配置到TCAM存储器309中,将包括特征位置信息的匹配相关内容配置到RAM存储器302中,通过数据包输入模块304接收待识别的数据包中的包头数据,协议识别模块303根据接收到的包头数据和TCAM存储器309和RAM存储器302存储的信息进行协议类型的识别,由输出模块308输出识别结果,输入模块304负责接入各种不同类型的网络数据包,并将这些数据包输入至模式识别模块。输出模块308处理模式匹配模式的结果,如匹配失败的处理,或匹配成功之后对返回值的处理等。
本实施例中采用FPGA实现模式配置模块301,协议识别模块303及输出模块308的功能,同时采用FPGA中的,TCAM存储器和RAM存储器做为本实施例的TCAM存储器309和RAM存储器302。
在图5所示的本实施例的结构框图中,还包括:模式选择模块305,协议模式库306及模式库维护模块307,协议模式库306,为表征各种协议特征的模式以一种库的形式存储起来,以备查看、修改和使用等要求。模式库维护模块307,负责对协议模式库进行维护,可查看、增加、修改或删除各种协议的模式。模式选择模块305,根据用户的要求,从协议模式库中,将各种协议模式传递到模式配置模块中。模式配置模块与用户接口,通常以软件方式实现。
本发明实施例1给出一种具体应用方式,通过对二层协议进行识别以查找三层的IP包头。若需对Ethernet II、IEEE802.3SNAP、VLAN几种协议中的IP包进行识别,先对这几种协议的特点进行分析,确定其协议模式。
Ethernet II协议的IP包特征是:二层数据包的第12和13个字节为0x0800,IP头部起始位置为第14个字节。
IEEE802.3SNAP协议的IP包特征是:二层数据包的第14、15和16个字节为0xaaaa03,且第20和第21个字节内容为0x0800,IP头部起始位置为第22个字节。
VLAN协议是介于二至三层之间的协议。
Ethernet II+VLAN协议的IP包特征是:二层数据包的第12和13个字节为0x8100,第16和第17个字节为0x0800,IP头部起始位置为第18个字节。
IEEE802.3SNAP+VLAN协议的IP包特征是:二层数据包的第12和13个字节为0x8100,第18,19,20字节为0xaaaa03,第24,25字节为0x0800。IP头部起始位置为第26个字节。
设定部分模式的宽度PW为64比特。最大需要匹配到的字节为第25个字节,因此最小可取位置域PL的宽度LW为2个比特。三种协议占用的TCAM表项数为7项,因此当前状态CS的宽度SW为3个比特。为保证可扩展性,LW和SW的值应适当增大,故进行如下取值:
PW=64;LW=8;SW=8
由式(1)可知,TCAM所需的总宽度为:
W=SW+LW+PW=80
根据这三种协议的模式,可确定TCAM和RAM存储的协议模式表如图6所示。图6所示的表中,第0行对应Ethernet II协议,第1,2行对应IEEE802.3SNAP协议,第3,4行对应Ethernet II+VLAN协议;第3,5,6行对应VLAN包被封装在IEEE802.3SNAP协议中。其中RAM所存储的返回值R,表示IP包头在二层数据包中的起始位置。如图7所示,为Ethernet II类型数据包(其中左侧第1列为该行数据在整个数据包中的偏移)的内容,其匹配过程如下:
初始阶段:state=0;
第0次匹配:D[0]=X”0019_5bea_52fb_001a”,在表中查找失败,令state=0。
第1次匹配:D[1]=X”4d82_2622_0800_4500”,与第0项相匹配,且F标志为1,则直接返回,得到IP头部的位置为14。
具体应用中,有些协议的数据包头中会存在一些选项,如IP协议的IP包头选项、TCP协议的TCP包头选项等。选项的存在使上一层内容的位置不固定,其位置与选项的长度有关。
若需同时进行多个层次网络协议的识别,且被识别的协议中包括选项,有一下两种方法可以对此进行处理:
一种方法是进行分段处理,即使用多个识别模块,每个识别模块负责某一个或多个网络层次协议的识别。当低层模块完成协议识别后,根据识别结果和包头中的选项长度一起,确定上一层内容的起始位置,然后将上层内容送至上层识别模块。上层识别模式继续根据输入的内容进行识别。
另一种方法是进行穷举,当TCAM和RAM容量足够大时可采用该方法。协议选项的长度总是数值较小的有限个(如IP包头的长度值可从5变化到15),列举出每一种可能,并确定上层协议针对每种情况的偏移位置,从而达到精确识别的目的。
实施例2
如图8所示,为本发明的另一种实施方式,通过FPGA与外部的TCAM存储器311和RAM存储器310相连接,实现网络协议的识别。
实施例1中仅对Ethernet II、IEEE802.3SNAP、VLAN几种协议中的IP包进行识别,现需要增加一种新协议QinQ的识别。
QinQ是在VLAN协议上的一种发展,包含两层VLAN包头。
Ethernet II+QinQ协议的IP包特征是:二层数据包的第12和13个字节为外层VLAN标签协议字,通常为0x8100,但也有的使用0x9100和0x9200;第16和17个字节为内层VLAN标签协议字,为0x8100;第20和21个字节为0x0800,表示IP包类型。IP包的起始位置为第22个字节。
IEEE802.3SNAP+QinQ协议的IP包特征是:二层数据包的第12和13个字节为外层VLAN标签协议字,通常为0x8100,但也有的使用0x9100和0x9200;第16和17个字节为内层VLAN标签协议字,为0x8100;22,23,24字节为0xaaaa03,28,29字节为0x0800,表示IP包类型。IP包起始位置为第30字节。
关于CS和PL的宽度设定,由于在实例一中已经考虑到了可扩展性的问题,并进行了富余设置,因此在本实例中无需改变。
根据新增的QinQ协议模式,可确定TCAM和RAM存储的协议模式表如图9所示:
第0行对应Ethernet II协议,第1,2行对应IEEE802.3SNAP协议,第3,4,6,7行对应VLAN协议和QinQ协议;第3,4,7,8,9,10行对应VLAN和QinQ包被封装在IEEE802.3SNAP协议中。
另外,注意到第3行的PM值中,第4和第5个字节的值为0xEFFF,并不是0xFFFF;同时,0x9100的VLAN标签协议字也未在表中出现。这是利用了TCAM掩码的特性减少了表项的数目。由于0x8100和0x9100的差别仅在于其中的一个比特为0或1,因此,可以利用TCAM的掩码将该位掩掉之后,则可同时匹配这两个标签协议字。
通过本发明提出的网络协议识别的方法有如下优点:
1)可适应不同层次的协议。任何一种以数据包中特殊位置的特殊字符为标识的包交换网络协议都可以使用该方法。在实际应用的各个层次的不同网络协议中,大部分协议都具有这样的特点。
2)可同时支持大量网络协议的识别。所支持的协议数目仅与TCAM和RAM的容量有关。主流的TCAM芯片和RAM芯片的容量为兆字节量级,而网络协议的种类不超过几百种,使用主流的TCAM和RAM芯片足够支持所有可识别网络协议。有些处理芯片内部存在小模块的CAM和RAM,也可以用来支持所需的多种网络协议。
3)可识别的协议类型能够灵活配置。协议模式存储在TCAM和RAM中,而TCAM和RAM中的内容是可以随时改变的。也就是说,对识别哪些协议类型的功能不是固化在设备中,而是可配置的。在某些应用场合,可能需要识别这几类协议;在另外的应用场合,可能需要识别另外几类协议。这种变化不需要对设备进行改变,只需重新配置TCAM和RAM即可。
4)可适应新出现的协议。由于协议的模式是可配置的,当出现新的协议时,只需分析这种协议的特征,确定其协议模式,然后写入到TCAM和RAM存储空间中,数据包发生匹配时就可以匹配到新的协议类型。
5)识别速度快。这种方法的识别速度主要取决于TCAM和RAM的访问速度,主流的TCAM和RAM访问速度都很快,能达到对进入的网络数据包线速识别的要求。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种网络协议识别方法,其特征在于,所述的方法包括预存储步骤和匹配步骤,其中,
所述的预存储步骤包括:
将网络协议的特征字符信息存储到TCAM,所述网络协议的特征字符信息包括:所述网络协议的特征字符偏移量和所述网络协议的特征字符值;
将与TCAM中的特征字符信息相对应的返回值存储至RAM;
所述的匹配步骤包括:
从互联网中获取待识别数据包;
从所述的待识别数据包中提取一次数据匹配所需的包头数据,包括:根据TCAM的宽度将所述待识别数据包的包头数据分为多个数据段;按序从所述的多个数据段中提取一个数据段做为一次数据匹配所需的包头数据;
将所述包头数据与所述TCAM中存储的网络协议的特征字符信息进行匹配,包括:将按序提取的数据段对应的顺序值与TCAM中的特征字符偏移量进行匹配,确定待识别数据包的特征字符偏移量;将按序提取的数据段与TCAM中的特征字符值进行匹配,确定待识别数据包的特征字符值;根据所述的待识别数据包的特征字符偏移量和特征字符值,确定与所述待识别数据包相匹配的特征字符信息;
确定与所述待识别数据包相匹配的特征字符信息后,从RAM中获取相对应的返回值;
根据所确定的特征字符信息和相对应的返回值生成网络协议识别结果。
2.如权利要求1所述的网络协议识别方法,其特征在于,所述的存储步骤还包括:
根据所述网络协议的特征字符偏移量确定表项数目;
根据确定的表项数目将网络协议的特征字符值及特征字符偏移量配置到TCAM的表项中。
3.如权利要求2所述的网络协议识别方法,其特征在于,所述的TCAM的表项中包括:特征字符值表征和特征字符偏移量表征。
4.如权利要求1所述的网络协议识别方法,其特征在于,RAM的表项包括:识别成功标识表征和返回值表征。
5.如权利要求1所述的网络协议识别方法,其特征在于,所述的方法还包括:
未找到与所述待识别数据包匹配的特征字符偏移量和/或特征字符值,返回识别失败结果。
6.一种网络协议识别装置,其特征在于,所述的装置包括特征字符信息存储装置和特征字符信息匹配装置,其中,
所述的特征字符信息存储装置包括:
TCAM,用于存储包括网络协议的特征字符信息,所述网络协议的特征字符信息包括:所述网络协议的特征字符偏移量和所述网络协议的特征字符值;
RAM,用于存储与所述TCAM中的特征字符信息相对应的返回值;
所述的特征字符信息匹配装置包括:
数据包获取单元,用于从互联网中获取待识别数据包;
匹配数据提取单元,用于从所述的待识别数据包的中提取一次数据匹配所需的包头数据,其中,所述匹配数据提取单元包括;划分模块,用于根据TCAM的宽度将所述待识别数据包的包头数据分为多个数据段;提取模块,用于按序从所述的多个数据段中提取一个数据段做为一次数据匹配所需的包头数据;
匹配单元,用于将所述包头数据与所述TCAM中存储的网络协议的特征字符信息进行匹配,确定与所述的待识别数据包相匹配的特征字符信息,其中,所述的匹配单元包括:偏移量匹配模块,用于将按序提取的数据段对应的顺序值与TCAM中的特征字符偏移量进行匹配,确定待识别数据包的特征字符偏移量;字符值匹配模块,用于将按序提取的数据段与TCAM中的特征字符值进行匹配,确定待识别数据包的特征字符值;字符信息生成模块,根据所述的待识别数据包的特征字符偏移量和特征字符值,确定与所述待识别数据包相匹配的特征字符信息;
返回值获取单元,用于在确定与所述待识别数据包相匹配的特征字符信息后,从RAM中获取相对应的返回值;
识别结果生成单元,用于根据所确定的特征字符信息和相对应的返回值生成网络协议识别结果。
7.如权利要求6所述的网络协议识别装置,其特征在于,所述的特征字符信息存储装置还包括:
表项数目确定单元,用于根据所述网络协议的特征字符偏移量确定TCAM的表项数目;
配置单元,用于根据确定的表项数目将网络协议的特征字符值及特征字符偏移量配置到TCAM的表项中。
8.如权利要求6所述的网络协议识别装置,其特征在于,所述的TCAM的表项中包括:特征字符值表征和特征字符偏移量表征。
9.如权利要求6所述的网络协议识别装置,其特征在于,RAM的表项包括:识别成功标识表征和返回值表征。
10.如权利要求6所述的网络协议识别装置,其特征在于,所述的装置还包括:
失败结果返回单元,用于在未找到与所述待识别数据包匹配的特征字符偏移量和/或特征字符值时,返回识别失败结果。
CN201110092274.4A 2011-04-13 2011-04-13 一种网络协议识别方法及装置 Active CN102195977B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110092274.4A CN102195977B (zh) 2011-04-13 2011-04-13 一种网络协议识别方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110092274.4A CN102195977B (zh) 2011-04-13 2011-04-13 一种网络协议识别方法及装置

Publications (2)

Publication Number Publication Date
CN102195977A CN102195977A (zh) 2011-09-21
CN102195977B true CN102195977B (zh) 2014-07-23

Family

ID=44603364

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110092274.4A Active CN102195977B (zh) 2011-04-13 2011-04-13 一种网络协议识别方法及装置

Country Status (1)

Country Link
CN (1) CN102195977B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102427414B (zh) * 2011-11-25 2013-12-04 盛科网络(苏州)有限公司 表项容量自动化测试的方法及装置
CN102739553B (zh) * 2012-07-20 2015-04-29 烽火通信科技股份有限公司 一种以太网数据包的识别和处理装置
CN102780619B (zh) * 2012-07-23 2015-03-11 北京星网锐捷网络技术有限公司 一种处理报文的方法及装置
CN103200084B (zh) * 2013-03-18 2016-08-03 中兴通讯股份有限公司 基于网络处理器的报文预处理方法、装置及网络处理器
CN103716329A (zh) * 2014-01-06 2014-04-09 深圳市兴源智能仪表科技有限公司 一种主从多通讯协议实现方法
WO2015180132A1 (zh) * 2014-05-30 2015-12-03 华为技术有限公司 一种网络协议配置方法、装置
CN104079450B (zh) * 2014-06-23 2017-10-17 北京邮电大学 特征模式集生成方法及装置
CN104158627B (zh) * 2014-08-25 2017-08-15 北京邮电大学 一种异构链路多协议的自动识别系统和方法
CN104184744A (zh) * 2014-09-11 2014-12-03 东南大学 基于IPv6的IPSec安全联盟硬件查找装置及方法
CN105991581B (zh) * 2015-02-12 2019-01-22 杭州迪普科技股份有限公司 协议识别方法及装置
CN106549817A (zh) * 2015-09-21 2017-03-29 深圳市中兴微电子技术有限公司 报文识别方法及装置
CN106878098A (zh) * 2015-12-10 2017-06-20 深圳市中兴微电子技术有限公司 数据报文的识别处理方法及装置
CN106789440B (zh) * 2017-01-03 2020-11-03 北京泛讯信息技术有限公司 一种ip包包头检测方法及装置
CN106941416A (zh) * 2017-02-15 2017-07-11 北京浩瀚深度信息技术股份有限公司 Cam空间处理方法及系统
CN108804046B (zh) * 2017-04-27 2023-12-19 广州众诺微电子有限公司 数据处理方法及数据处理装置
CN111222018A (zh) * 2018-11-23 2020-06-02 恒为科技(上海)股份有限公司 一种基于tcam实现浮动字符串高速匹配方法
CN109672687B (zh) * 2018-12-31 2021-04-13 南京理工大学 基于可疑度评估的http混淆流量检测方法
CN111917738B (zh) * 2020-07-14 2022-03-18 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 可支持网络高层协议的处理方法及系统
CN116760919A (zh) * 2023-08-16 2023-09-15 安徽悠扬互联科技有限公司 一种基于企业的智能制造数字化集成分析方法及系统
CN117579525B (zh) * 2023-11-20 2024-06-11 北京思存通信技术有限公司 一种网络协议特征识别系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035131A (zh) * 2007-02-16 2007-09-12 杭州华为三康技术有限公司 协议识别方法及装置
CN101478447A (zh) * 2009-01-08 2009-07-08 中国人民解放军信息工程大学 一种深度报文检测方法和装置
CN101505283A (zh) * 2009-03-27 2009-08-12 中国人民解放军信息工程大学 一种报文处理方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035131A (zh) * 2007-02-16 2007-09-12 杭州华为三康技术有限公司 协议识别方法及装置
CN101478447A (zh) * 2009-01-08 2009-07-08 中国人民解放军信息工程大学 一种深度报文检测方法和装置
CN101505283A (zh) * 2009-03-27 2009-08-12 中国人民解放军信息工程大学 一种报文处理方法及装置

Also Published As

Publication number Publication date
CN102195977A (zh) 2011-09-21

Similar Documents

Publication Publication Date Title
CN102195977B (zh) 一种网络协议识别方法及装置
US7299282B2 (en) State processor for pattern matching in a network monitor device
CN102647414B (zh) 协议解析方法、设备及系统
US7599364B2 (en) Configurable network connection address forming hardware
CN105337991A (zh) 一种一体化的报文流查找与更新方法
CN106341338B (zh) 一种报文的转发方法及装置
CN112136108A (zh) 一种报头解析装置及方法
CN102427428A (zh) 基于多域最长匹配的流识别方法及设备
US7373412B2 (en) Apparatus for selecting and sorting packets from a packet data transmission network
CN104333483A (zh) 互联网应用流量识别方法、系统及识别装置
CN101304342B (zh) 一种增强型以太网接口装置
CN115883681A (zh) 报文解析方法、装置、电子设备及存储介质
CN101610266A (zh) 一种检测地址解析协议arp报文合法性的方法及装置
CN111046938B (zh) 基于字符串多模式匹配的网络流量分类识别方法和设备
CN104333461A (zh) 互联网应用流量识别方法、系统及识别装置
CN112437064A (zh) 数据传输方法、数据读取方法、装置、设备及存储介质
CN106021517A (zh) 网络数据导入方法、装置
CN102143151B (zh) 一种基于深度包检测的协议跨包检测方法和装置
CN110581792B (zh) 一种报文传输方法及装置
CN116016345B (zh) 一种基于自定义协议描述语言的网络流量还原方法
US7277438B2 (en) Fast flexible range checking
CN106610899B (zh) 一种测试用例生成方法及装置
CN108712394B (zh) 一种射频识别方法及标签
CN114697160A (zh) 一种隧道报文的处理方法和装置
CN105791124A (zh) 报文检测方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100097 Beijing city Haidian District landianchang Road No. 2 Jin Yuan Times Business Center Building 2, block A, 3C

Co-patentee after: BEIJING HENGGUANG INFORMATION TECHNOLOGY Co.,Ltd.

Patentee after: BEIJING EVERBRIGHT INNOVATION TECHNOLOGY Co.,Ltd.

Co-patentee after: BEIJING HENGGUANG TECHNOLOGY DEVELOPMENT Co.,Ltd.

Address before: 100097 Beijing city Haidian District landianchang Road No. 2 Jin Yuan Times Business Center Building 2, block A, 3C

Co-patentee before: Beijing Hengguang Information Technology Co.,Ltd.

Patentee before: BEIJING EVERBRIGHT INNOVATION TECHNOLOGY Co.,Ltd.

Co-patentee before: BEIJING HENGGUANG TECHNOLOGY DEVELOPMENT Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170621

Address after: 100097 Beijing city Haidian District landianchang Road No. 2 Jin Yuan Times Business Center Building 2, block A, 3B

Patentee after: BEIJING HENGGUANG INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 100097 Beijing city Haidian District landianchang Road No. 2 Jin Yuan Times Business Center Building 2, block A, 3C

Co-patentee before: BEIJING HENGGUANG INFORMATION TECHNOLOGY Co.,Ltd.

Patentee before: BEIJING EVERBRIGHT INNOVATION TECHNOLOGY Co.,Ltd.

Co-patentee before: BEIJING HENGGUANG TECHNOLOGY DEVELOPMENT Co.,Ltd.