一种以太网数据包的识别和处理装置的制作方法

文档序号:7856337阅读:189来源:国知局
专利名称:一种以太网数据包的识别和处理装置的制作方法
技术领域
本发明涉及数据通信技术中的以太网包识别解析技术,具体说是一种以太网数据包的识别和处理装置。尤指以太网包(数据包)的二层封装识别和处理装置。所述以太网数据包是指各种以太网封装的数据包,例如=QINQ (也称Stacked VLAN或Double VLAN)封装、多VLAN (虚拟局域网)标识封装的以太网包等。
背景技术
各种PDU (上层协议数据单元)承载于以太网时有下面的典型封装形式
(I) Ethernet II (或 DIX2.0)Ethernet II包格式是由Xerox与DEC、Intel在1982年制定的以太网标准包格式,如图3所示。其中前12个字节分别为标识发送数据包的“源节点MAC地址”字段和接收数据包的“目的节点MAC地址”字段。接下来的2个字节是“以太网类型域”字段,标识数据包所携带的上层数据类型,例如,0x0800表示IPv4协议数据,0x8dDD表示IPv6协议数据等。在不定长的“数据”字段后是4个字节的“包效验序列”字段(Frame Check Sequence,FCS),采用32位CRC循环冗余效验对从“目的节点MAC地址”字段到“数据”字段的数据进行效验。Ethernet II类型的以太网包最小长度是64字节(6+6+2+46+4),最大长度是1518字节(6+6+2+1500+4)。(2) Ethernet 802.3 rawEthernet 802. 3 raw包格式是Novell在1983年公布的专用以太网标准包格式,如图4所示。Ethernet 802.3 raw类型包格式将Ethernet II类型包格式中的“以太网类型域”字段替换为“长度”字段,表示其后到“包效验序列”字段之前的所有字段长度,取值范围是46 1500。“长度”字段之后,“数据”字段之前的2个字节固定为OxFFFF,用于标识该包是Novell以太网类型数据包。(3) Ethernet 802.3 SAPEthernet 802. 3 SAP 包格式是 ffiEE 在 1985 年公布的 Ethernet802. 3 的 SAP 版本以太网包格式,如图5所示。Ethernet 802. 3 SAP包格式将Ethernet 802. 3 raw包格式中的OxFFFF替换为I个字节的“源服务访问点”字段(DSAP)和I个字节的“目标服务访问点”字段(SSAP),同时增加了 I个字节的“控制”字段,这3个字节构成了 802. 2逻辑链路控制(LLC)首部。DSAP和SSAP用于标识以太网包所携带的上层数据类型。“控制”字段一般设定为0x03。(4) Ethernet 802.3 SNAPEthernet 802. 3 SNAP 包格式,S卩Ethernet 802. 3 SNAP PDU 封装于以太网包格式,如图6所示。Ethernet 802. 3 SNAP包格式将Ethernet 802. 3 SAP包格式中的DSAP和SSAP固定为OxAA,Control固定为0x03,并且增加了 5个字节的PID字段,在RFC_1042协议中,PID [39:16]定义为0X000000,PID [15:0]定义为2个字节的“以太网类型”字段(同Ethernet II 中的 EtherType 域)。以太网数据包的识别方法可以根据上述规范进行二层特征字段、三层IP以及四层TCP/UDP特征字段的识别,并能够提取出典型特征字段提供给后续ACL (访问控制列表)使用或者二层,三层交换功能使用。但是随着以太网技术的发展,目前基于以太网二层封装的新的数据包格式不断出现,以下介绍几种主要的VLAN标识的封装技术(I) IEEE802. IQ 和 QINQ 封装IEEE802. IQ (Virtual Bridged Local Area Networks)协议,将局域网从逻辑上划分成多个VLAN (虚拟局域网),每个VLAN采用一个VLAN_ID号来唯一标识,并将VLAN信息作为Tag (标签)插入到基本的以太网包结构中,其封装格式如图7所示(以Ethernet II类型以太网包格式为例)。VLAN-Tag包含有4个字节,前2个字节TPID固定为0x8100,是专门为802. IQ定义的一种以太网类型;后2个字节中,Priority (3bit)表示数据包的转发优先级(在IEEE802. Ip中定义);VID (12bit)表示数据包所属的VLAN。
IEEE802. Iad协议在IEEE802. IQ的基础上实现了 VLAN嵌套,即QinQ技术,数据包的封装格式(带S-Tag、C-Tag的数据包格式)如图7所示。根据IEEE802. Iad协议的定义,定义了服务提供商VLAN(S-VLAN)和客户VLAN(C-VLAN)的双层VLAN的结构,S-VLAN对应于服务提供商VLAN标签(S-TAG),C-VLAN对应于客户VLAN标签(C-TAG),服务提供商使用S-VLAN,客户使用C-VLAN。定义了服务提供商网桥(Provider Bridge)和客户网桥(Customer Bridge)的架构,客户网桥只对C-VLAN敏感,服务提供商网桥只对S-VLAN敏感。(2)多层VLAN处理技术虽然在IEEE802. Iad协议的定义中,定义了服务提供商VLAN(S-VLAN)和客户VLAN(C-VLAN)的双层VLAN的结构,但在一些具体的业务承载和实现中,还需要在数据包中添加额外的标识来对网络中承载业务的逻辑链路等信息进行标注。增加网络的可管理性和QOS (Quality of Service)。例如在目前的GPON(Gigabit-Capable P0N)网络和 XGP0N(10-Gigabit_capablepassive optical networks)网络中。上下行方向,以太网包直接封装在GEM包净荷中进行承载。在进行GEM封装前,前导码和SFD字节被丢弃。每个以太网包应被映射到一个单独的GEM包或多个GEM包中,在进行GEM映射时,利用P0RT_ID来进行业务标识。以太网业务到GEM包的映射如图8所示。在OLT (optical line terminal)上为了解决将以太网包标识为特定的业务并映射到对应的GEM端口(P0RT_ID)的问题。往往会在原有的以太网数据包上再额外的添加逻辑链路标识(L-tag )。逻辑链路标识(L-tag) —般我们采取VLAN字段的数据结构,定义图参见图9。为了系统功能的扩充和支持更多的逻辑链路标识,一般可以在数据包插入两fL_TAG,可以命名为 L0_TAG,L1_TAG。在以太网业务端口,需要接收和发送带L0_TAG,L1_TAG, S-TAG, C_TAG三层VLAN标识的包并根据不同的VLAN特征进行处理。所以在进行以太网包识别时必须具备丰富的包识别能力。从上述的不同技术的以太网封装结构可以看出,随着以太网端口使用的场景不同,输入数据包的二层封装格式存在差异,VLAN标识的个数差异,都使数据包解析的难度和复杂度加大,三层IP帧在输入数据包偏移量也有很多种变化。因此,为了满足各种应用场景的需求,有必要设计一种通用的以太网帧的识别装置,通过该装置规范并统一识别方法。

发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种以太网数据包的识别和处理装置,不仅能够识别传统的以太网封装的数据包,并且可以灵活扩展,用于识别各种目前新定义的基于以太网二层封装结构的数据包,并能够灵活地提出所需要的特征字段进行后续的处理,是一种通用的以太网数据包的识别方法。为达到以上目的,本发明采取的技术方案是一种以太网数据包的识别和处理装置,其特征在于,包括数据包标识解析引擎、以太网二层包封装解析引擎和以太网二层包类型字段解析引擎,这三个引擎以流水处理的 方式存在并对以太网包的二层封装进行识别和处理,前级引擎输出全部变量到后级引擎,后级引擎对和本级处理相关的输入变量进行响应并输出对应的结果。在上述技术方案的基础上,所述数据包标识解析引擎包括以太网数据包输入端口,以太网数据包从该输入端口输入,并进行数据帧标识的解析处理,输出以下变量到以太网二层包封装解析引擎L0_Tag[31:0] :L0_Tag的四字节数据,第一个逻辑链路标识变量,Ll_Tag[31:0] :Ll_Tag的四字节数据,第二个逻辑链路标识变量,S_Tag[31:0] S_Tag的四字节数据,服务提供商VLAN标签变量,C_Tag[31:0] :C_Tag的四字节数据,客户VLAN标签变量,Tag_Code[3:0]:此变量用来指示输入数据包的标识状态。在上述技术方案的基础上,以太网二层包封装解析引擎根据接收到的变量Tag_Code[3:0],能同步推导出数据帧的标识以外的净荷字段的偏移量,并完成对以太网数据包的识别,将其分为四种类型Ethernet II封装的数据包,Ethernet 802. 3 raw 封装的数据包,Ethernet 802. 3 SAP 封装的数据包,Ethernet 802. 3 SNAP 封装的数据包,然后,以太网二层包封装解析引擎输出以下变量到以太网二层包类型字段解析引擎L2_package_data[39:0]:指示数据巾贞中和封装信息相关的数据,Package_type[l:0]:指示输入包是上述四种包类型的哪一种,L2_0FFSET_DATA[4:0]:指示数据帧中除了 MAC_DA,MAC_SA以外的第一个数据字段在整个数据帧中的偏移量,此偏移量根据VLAN个数的差异而有所不同。在上述技术方案的基础上,以太网二层包类型字段解析引擎接收以太网二层包封装解析引擎输出的变量以及数据包标识解析引擎输出的变量,合计接收八个变量,然后根据接收到的变量,提取出相关的三层信息和端口对后续引擎是否使能的控制信息后,将数据包发送到对应的处理引擎中进行处理,后续对应的处理引擎包括
IPV4处理引擎,IPV6处理引擎,以 太网二层帧处理引擎。在上述技术方案的基础上,以太网二层包类型字段解析引擎会根据解析结果,在对应的数据包为IPV4或者IPV6数据包时,输出L3_0FFSET_DATA[4:0]:指示三层字段相对于二层字段的偏移量,后续的IPV4处理引擎、IPV6处理引擎能方便的利用L2_0FFSET_DATA[4:0]变量和L3_0FFSET_DATA[4:0]变量确定IP包在数据包中的准确偏移量,进行IP字段的解析和处理。本发明所述的以太网数据包的识别和处理装置,用于解决各种以太网包封装格式的识别和处理问题,是一种新型的以太网包的二层封装识别和处理装置,其使得位于骨干网络的中间设备、位于网络边缘的接口设备,以及一些业务适配接口都能够正确地识别不同的以太网二层的封装格式,提取出所需要的数据包中的二层特征字段,并且能够正确给出数据包在二层以上的净荷形态,从而使中间设备、接口设备或业务适配接口能顺利地承载不同的业务,极大的提升设备和接口的通用性和兼容性,有效满足运营商运营网络的需求。


本发明有如下附图图I以太网包的二层封装识别装置示意图,图2数据包标识解析流程图,图3Ethernet II 包格式,图4Ethernet 802. 3 raw 包格式,图5Ethernet 802. 3 SAP 包格式,图6Ethernet 802. 3 SNAP 包格式,图7IEEE 802. IQ 和 QINQ 封装,图8以太网业务到GEM包的映射,图9L_VLAN标识L_TAG的字段定义。
具体实施例方式以下结合附图对本发明作进一步详细说明。如图I所示,本发明所述的以太网数据包的识别和处理装置,包括数据包标识解析引擎、以太网二层包封装解析引擎和以太网二层包类型字段解析引擎,这三个引擎以流水处理的方式存在并对以太网包的二层封装进行识别和处理,前级引擎输出全部变量到后级引擎,后级引擎对和本级处理相关的输入变量进行响应并输出对应的结果。在上述技术方案的基础上,所述数据包标识解析引擎包括以太网数据包输入端口,以太网数据包从该输入端口输入,并进行数据帧标识的解析处理,输出以下变量到以太网二层包封装解析引擎L0_Tag[31:0] :L0_Tag的四字节数据,第一个逻辑链路标识变量,
Ll_Tag[31:0] :Ll_Tag的四字节数据,第二个逻辑链路标识变量,S_Tag[31:0] S_Tag的四字节数据,服务提供商VLAN标签变量,C_Tag[31:0] :C_Tag的四字节数据,客户VLAN标签变量,Tag_Code[3:0]:此变量用来指示输入数据包的标识状态。在上述技术方案的基础上,所述Tag_Code[3:0]信息编码定义如下表3. I 表3. lTag_Code[3:0]信息编码定义
权利要求
1.一种以太网数据包的识别和处理装置,其特征在于,包括数据包标识解析引擎、以太网ニ层包封装解析引擎和以太网ニ层包类型字段解析引擎,这三个引擎以流水处理的方式存在并对以太网包的ニ层封装进行识别和处理,前级引擎输出全部变量到后级引擎,后级引擎对和本级处理相关的输入变量进行响应并输出对应的結果。
2.如权利要求I所述的以太网数据包的识别和处理装置,其特征在于,所述数据包标识解析引擎包括以太网数据包输入端ロ,以太网数据包从该输入端ロ输入,并进行数据帧标识的解析处理,输出以下变量到以太网ニ层包封装解析引擎 L0_Tag[31:0] LO_Tag的四字节数据,第一个逻辑链路标识变量, Ll_Tag[31:0] Ll_Tag的四字节数据,第二个逻辑链路标识变量, S_Tag[31:0] S_Tag的四字节数据,服务提供商VLAN标签变量, C_Tag[31:0] C_Tag的四字节数据,客户VLAN标签变量, Tag_Code[3:0]:此变量用来指示输入数据包的标识状态。
3.如权利要求2所述的以太网数据包的识别和处理装置,其特征在于以太网ニ层包封装解析引擎根据接收到的变量Tag_Code[3:0],能同步推导出数据帧的标识以外的净荷字段的偏移量,并完成对以太网数据包的识别,将其分为四种类型 Ethernet II封装的数据包, Ethernet 802. 3 raw封装的数据包, Ethernet 802. 3 SAP封装的数据包, Ethernet 802. 3 SNAP封装的数据包, 然后,以太网ニ层包封装解析引擎输出以下变量到以太网ニ层包类型字段解析引擎 L2_package_data[39:0]指示数据巾贞中和封装信息相关的数据, Package_type[l:0]:指示输入包是上述四种包类型的哪ー种, L2_0FFSET_DATA[4:0]:指示数据帧中除了 MAC_DA,MAC_SA以外的第一个数据字段在整个数据帧中的偏移量,此偏移量根据VLAN个数的差异而有所不同。
4.如权利要求3所述的以太网数据包的识别和处理装置,其特征在于以太网ニ层包类型字段解析引擎接收以太网ニ层包封装解析引擎输出的变量以及数据包标识解析引擎输出的变量,合计接收八个变量,然后根据接收到的变量,提取出相关的三层信息和端ロ对后续引擎是否使能的控制信息后,将数据包发送到对应的处理引擎中进行处理,后续对应的处理引擎包括 IPV4处理引擎, IPV6处理引擎, 以太网ニ层帧处理引擎。
5.如权利要求4所述的以太网数据包的识别和处理装置,其特征在于以太网ニ层包类型字段解析引擎会根据解析结果,在对应的数据包为IPV4或者IPV6数据包时,输出L3_0FFSET_DATA[4:0]:指示三层字段相对于ニ层字段的偏移量, 后续的IPV4处理引擎、IPV6处理引擎能方便的利用L2_0FFSET_DATA[4:0]变量和L3_0FFSET_DATA[4:0]变量确定IP包在数据包中的准确偏移量,进行IP字段的解析和处理。
全文摘要
本发明涉及一种以太网数据包的识别和处理装置,包括数据包标识解析引擎、以太网二层包封装解析引擎和以太网二层包类型字段解析引擎,这三个引擎以流水处理的方式存在并对以太网包的二层封装进行识别和处理,前级引擎输出全部变量到后级引擎,后级引擎对和本级处理相关的输入变量进行响应并输出对应的结果。本发明所述的以太网数据包的识别和处理装置,不仅能够识别传统的以太网封装的数据包,并且可以灵活扩展,用于识别各种目前新定义的基于以太网二层封装结构的数据包,并能够灵活地提出所需要的特征字段进行后续的处理。
文档编号H04L12/56GK102739553SQ20121025226
公开日2012年10月17日 申请日期2012年7月20日 优先权日2012年7月20日
发明者左越, 杨彦波, 邹蕾, 钟山, 黄元波 申请人:烽火通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1