Gre报文的封装方法、解封装方法及对应的装置制造方法

文档序号:8002731阅读:509来源:国知局
Gre报文的封装方法、解封装方法及对应的装置制造方法
【专利摘要】本发明涉及一种GRE报文的封装方法、解封装方法及对应的装置,本发明通过预设的封装规则对遵守不同协议的GRE报文头进行属性设置并进行封装,并通过预设的对应解封装规则对接收的GRE报文的报文头进行解封装解析以解封出接收的GRE报文中的原始报文,保证了遵守不同协议的网络设备之间的互联互通。
【专利说明】GRE报文的封装方法、解封装方法及对应的装置

【技术领域】
[0001]本发明涉及网络【技术领域】,尤其涉及一种GRE报文的封装方法、解封装方法及对应的装置。

【背景技术】
[0002]GRECGeneric Routing Encapsulat1n,通用路由封装协议)是一种封装协议,它提供了将一种协议的报文封装在另一种协议报文中的机制,使报文能够在异种网络中传输。GRE 由 Cisco 和 Net Smiths 公司于 1994 年提交给 IETF,标号为 RFC 170URFC 1702。2000年,Cisco等公司又对GRE协议进行了修订,称为GRE V2,标号为RFC 2784。目前RFC1701虽然不作为遵循的主要标准,但现网中仍然存在使用RFC1701的设备。
[0003]在报文发送方,GRE隧道将原始报文和GRE报文头进行封装成GRE报文后通过协议报文进行“包装”,放在IP报文的“数据区”中进行传输。接收方在接收到GRE报文后,根据GRE报文头的格式进行GRE报文的解封装,对原始报文进行复原。在解析GRE报文头部时,由于在GRE报文头中没有一个显式的字段来标识整个GRE报文头的长度。如果报文发送方采用RFC2784的路由设备时,其GRE报文头部长度可能是32至64个比特位,如果报文接收方采用RFC1701的路由设备,GRE报文头部长度可能是32至160个比特位。由于GRE报文头中的格式及比特位的长度不统一无法正确识别相应的字段以解析完整的报文头,从而导致路由器无法互联互通。因此如何解决以上问题已成为业界亟待的技术问题。


【发明内容】

[0004]本发明的主要目的是提供一种GRE报文的封装方法、解封装方法及对应的装置,旨在解决因GRE报文头格式的不一致而导致路由器无法互联互通。
[0005]一种GRE报文的封装方法,该方法包括:在对原始报文进行GRE报文封装时,按照预设的封装规则对GRE报文头的预先确定的比特位进行属性设置;将属性设置后的所述GRE报文头与所述原始报文进行GRE报文封装。
[0006]优选地,所述预先确定的比特位包括GRE报文头的第一位至第十六位比特位,所述预设的封装规则包括:将GRE报文头的第一比特位填零或一;将GRE报文头的第二比特位填零JfGRE报文头的第三比特位填零或一 JfGRE报文头的第四比特位填零或一;将GRE报文头的第五至第十三比特位填零;将GRE报文头的第十四至第十六比特位填零。
[0007]一种GRE报文的解封装方法,该方法包括:在接收到GRE报文时,按照预设的解封装规则对接收的GRE报文的报文头的预先确定的比特位进行解封装解析;根据解析结果将接收的GRE报文进行解封装,以解封出接收的GRE报文中的原始报文。
[0008]优选地,所述预先确定的比特位包括GRE报文头的第一位至第十六位比特位,所述预设的解封装规则包括:在GRE报文头的第一比特位为零时,直接进行解封装;在GRE报文头的第一比特位为一时,进行校验和的检查,在通过校验和检查时直接进行解封装,在未通过校验和检查时丢弃该GRE报文;在GRE报文头的第二比特位为零时,直接解封装;在GRE报文头的第三比特位为零时,直接解封装;在GRE报文头的第三比特位为一时,进行关键字校验并根据校验的结果判断是否直接进行解封装;在GRE报文头的第四比特位为零时,直接解封装;在GRE报文头的第四比特位为一时,进行序列号的检查根据检查的结果判断是否直接进行解封装JiGRE报文头的第五至第十三比特位进行忽略,直接解封装;在GRE报文头的第十四至第十六比特位为零时,直接进行解封装;在GRE报文头的第十四至第十六比特位任一位不为零时,丢弃该GRE报文。
[0009]优选地,所述根据解析结果将接收的GRE报文进行解封装,以解封出接收的GRE报文中的原始报文的步骤之前还包括:在对接收的GRE报文的报文头的预先确定的比特位进行解封装解析时,获取预先确定的比特位对应的偏移量;根据所述偏移量计算所述GRE报文头的长度。
[0010]一种GRE报文的封装装置,包括:设置模块,用于在对原始报文进行GRE报文封装时,按照预设的封装规则对GRE报文头的预先确定的比特位进行属性设置;封装模块,用于将属性设置后的所述GRE报文头与所述原始报文进行GRE报文封装。
[0011]优选地,所述预先确定的比特位包括GRE报文头的第一位至第十六位比特位,所述预设的封装规则包括:将GRE报文头的第一比特位填零或一;将GRE报文头的第二比特位填零JfGRE报文头的第三比特位填零或一 JfGRE报文头的第四比特位填零或一;将GRE报文头的第五至第十三比特位填零;将GRE报文头的第十四至第十六比特位填零。
[0012]一种GRE报文的解封装装置,包括:解析模块,用于在接收到GRE报文时,按照预设的解封装规则对接收的GRE报文的报文头的预先确定的比特位进行解封装解析;解封装模块,用于根据解析结果将接收的GRE报文进行解封装,以解封出接收的GRE报文中的原始报文。
[0013]优选地,所述预先确定的比特位包括GRE报文头的第一位至第十六位比特位,所述预设的解封装规则包括:在GRE报文头的第一比特位为零时,直接进行解封装;在GRE报文头的第一比特位为一时,进行校验和的检查,在通过校验和检查时直接进行解封装,在未通过校验和检查时丢弃该GRE报文;在GRE报文头的第二比特位为零时,直接解封装;在GRE报文头的第三比特位为零时,直接解封装;在GRE报文头的第三比特位为一时,进行关键字校验并根据校验的结果判断是否直接进行解封装;在GRE报文头的第四比特位为零时,直接解封装;在GRE报文头的第四比特位为一时,进行序列号的检查根据检查的结果判断是否直接进行解封装JiGRE报文头的第五至第十三比特位进行忽略,直接解封装;在GRE报文头的第十四至第十六比特位为零时,直接进行解封装;在GRE报文头的第十四至第十六比特位任一位不为零时,丢弃该GRE报文。
[0014]优选地,所述解析模块还包括:获取单元,用于在对接收的GRE报文的报文头的预先确定的比特位进行解封装解析时,获取预先确定的比特位对应的偏移量;计算单元,用于根据所述偏移量计算所述GRE报文头的长度。
[0015]本发明通过预设的封装规则对遵守不同协议的GRE报文头进行属性设置并进行封装,并通过预设的对应解封装规则对接收的GRE报文的报文头进行解封装解析以解封出接收的GRE报文中的原始报文,保证了遵守不同协议的网络设备之间的互联互通。

【专利附图】

【附图说明】
[0016]图1为本发明GRE报文的封装方法实施例流程示意图;
[0017]图2为本发明GRE报文的解封装方法第一实施例流程示意图;
[0018]图3为本发明GRE报文的解封装方法第二实施例流程示意图;
[0019]图4为本发明GRE报文的封装装置实施例结构示意图;
[0020]图5为本发明GRE报文的解封装装置第一实施例结构示意图;
[0021]图6为本发明GRE报文的解封装装置中解析模块实施例结构示意图。
[0022]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

【具体实施方式】
[0023]下面结合附图及具体实施例就本发明的技术方案做进一步的说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0024]参照图1所示,为本发明GRE报文的封装方法实施例流程示意图。
[0025]需要强调的是:图1所示流程图仅为一个较佳实施例,本领域的技术人员当知,任何围绕本发明思想构建的实施例都不应脱离于如下技术方案涵盖的范围:
[0026]在对原始报文进行GRE报文封装时,按照预设的封装规则对GRE报文头的预先确定的比特位进行属性设置;将属性设置后的所述GRE报文头与所述原始报文进行GRE报文封装。
[0027]以下是结合本实施例逐步实现对遵守不同协议的GRE报文头进行属性设置并进行封装的过程(本实施例中以RFC2784协议及RFC2890协议中对报文头的封装规则来实现对GRE报文的封装为例)。
[0028]步骤S10,在对原始报文进行GRE报文封装时,按照预设的封装规则对GRE报文头的第一至第十六比特位进行属性设置;
[0029]所述原始报文是指需要封装和路由的数据报文。本实施例中在对所述原始报文进行GRE报文头封装时,对所述GRE报文头的比特位按照预设的封装规则对GRE报文头的第一至第十六比特位进行属性设置。GRE隧道在封装GRE报文时都遵守着相应的封装协议以此作为封装的标准。比如常见的协议如,RFC2784协议、RFC2890协议及RFC1701协议等等。
[0030]具体地,根据RFC2784协议将GRE报文头的第一比特位设置为(Checksum校验和)属性,该属性的属性值用户可根据自己的需求选择填零或一,在选择填零时所述校验和无效即在解封装时无需进行校验和的检查;在选择填一时所述校验和有效即在解封装时需进行校验和的检查。在将GRE报文头的第二比特位设置为(ReservedO预留)属性时,将该属性值设置为零。
[0031]进一步地,根据RFC2890协议将GRE报文头的第三比特位设置为(Key Present密钥)属性,该属性的属性值用户可以选择性设置。在该属性的属性值选择填零时所述密钥无效即在解封装时无需进行关键字认证;在属性值选择填一时所述密钥有效即在解封装时需进行关键字认证,只有通过关键字认证之后才能对GRE报文进行解封装。在将GRE报文头的第四比特位设置为(Sequence Number Present序列号)属性时,该属性的属性值用户也可以选择性的设置为零或一。在第四比特位属性的属性值为一时,在解封装时需进行GRE报文序列号的检查,只有通过序列号的检查之后才能对GRE报文进行解封装;在第四比特位属性的属性值为零时,在解封装时无需进行GRE报文序列号的检查。
[0032]进一步地,根据RFC2784协议将GRE报文头的第五至第十三比特位设置为(ReservedO预留)属性,并设置该属性值为零。在将GRE报文头的第十四至第十六比特位设置为(Vers1n版本号)属性时设置该属性值为零。
[0033]步骤S20,将属性设置后的所述GRE报文头与所述原始报文进行GRE报文封装。
[0034]本实例中按照预设的封装规则对GRE报文头的第一位至第十六位比特位进行属性设置,将属性设置后的所述GRE报文头作为所述GRE报文的封装格式并与所述原始报文进行GRE报文封装。
[0035]本发明通过预设的封装规则对遵守不同协议的GRE报文头进行属性设置并进行封装,保证了遵守不同协议的网络设备之间的互联互通。
[0036]参照图2所示,为本发明GRE报文的解封装方法第一实施例流程示意图。
[0037]需要强调的是:图2所示流程图仅为一个较佳实施例,本领域的技术人员当知,任何围绕本发明思想构建的实施例都不应脱离于如下技术方案涵盖的范围:
[0038]在接收到GRE报文时,按照预设的解封装规则对接收的GRE报文的报文头的预先确定的比特位进行解封装解析;根据解析结果将接收的GRE报文进行解封装,以解封出接收的GRE报文中的原始报文。
[0039]以下是结合本实施例逐步通过预设的对应解封装规则对接收的GRE报文的报文头进行解封装解析以解封出接收的GRE报文中的原始报文的过程。
[0040]步骤SI 10,在接收到GRE报文时,按照预设的解封装规则对接收的GRE报文的报文头的预先确定的比特位进行解封装解析;
[0041]所述GRE报文包括:原始数据报文及GRE报文头。在解析时按照预设的解封装规则对接收的GRE报文的报文头的第一至第十六比特位进行解封装解析。
[0042]具体地,在解析第一比特位时,将GRE报文头的第一比特位作为(Checksum校验和)属性,在该属性的属性值为零时,直接解封装;在该属性的属性值为一时,对接收到的GRE报文计算校验和,并将计算得出的校验和与所述GRE报文中的原始校验和进行校验和的检查,如果计算得出的校验和与所述GRE报文中的原始校验和完全一致时,则表明通过校验和的检查对所述GRE报文进行解封装;如果计算得出的校验和与所述GRE报文中的原始校验和不一致时,则表明没有通过校验和的检查需丢弃所述GRE报文。在解析第二比特位时,将GRE报文头的第二比特位作为(ReservedO预留)属性,该属性的属性值是零时直接解封装。其中,如果是RFC2784协议的路由器兼容RFC1701协议的路由器并由RFC1701协议的路由器对所述第二比特位进行解析,在所述比特位的属性值为零时,直接进行解封装;在所述比特位的属性值为I时,直接进行解封装同时在计算GRE报文头的长度时需加上所述比特位产生的偏移量。
[0043]进一步地,在解析第三比特位时,将GRE报文头的第三比特位作为(Key Present密钥)属性,在该属性的属性值是零时直接进行GRE报文解封装;在该属性的属性值是一时,进行关键字校验只有在路由器的接受方和路由器的发送方两端识别的关键字完全一致时才能通过验证并对所述GRE报文进行解封装,否则将所述GRE报文丢弃。在对GRE报文头的第四比特位作为(Sequence Number Present序列号)属性进行解析时,在该属性的属性值是零时直接解封装;在该属性的属性值是一时需进行序列号的检查,只有在路由器的接受方和路由器的发送方两端在所述序列号完全一致时才进行GRE报文解封装,路由器的接受方和路由器的发送方两端在所述序列号不一致时将所述GRE报文丢弃。对GRE报文头的第五至第十三比特位作(ReservedO预留)属性时,该属性的属性值为零或者非零时进行忽略直接解封装;对GRE报文头的第十四至第十六比特位作为(Vers1n版本号)属性时,在该属性的属性值为零时直接解封装;在GRE报文头的第十四至第十六比特位任一位的属性值不为零时,丢弃该GRE报文。
[0044]步骤S120,根据解析结果将接收的GRE报文进行解封装,以解封出接收的GRE报文中的原始报文。
[0045]在对接收到的GRE报文头进行解析后,根据解析结果将接收的GRE报文进行解封装,以解封出接收的GRE报文中的原始报文。本实施例中根据所述GRE报文头的长度对接收的GRE报文进行解封装。
[0046]本发明通过预设的对应解封装规则对接收的GRE报文的报文头进行解封装解析以解封出接收的GRE报文中的原始报文,保证了遵守不同协议的网络设备之间的互联互通。
[0047]参照图3所示,为本发明GRE报文的解封装方法第二实施例流程示意图。
[0048]基于上述实施例提出本发明GRE报文的解封装方法第二实施例,在上述实施例中步骤S120之前包括:
[0049]步骤S140,在对接收的GRE报文的报文头的预先确定的比特位进行解封装解析时,获取预先确定的比特位对应的偏移量;
[0050]步骤S150,根据所述偏移量计算所述GRE报文头的长度。
[0051]其中,所述偏移量是指所述比特位属性的属性值为一时,所述比特位在所述GRE报文头中所占的比特位位数。本实施中以解析第一比特位为例来说明所述偏移量。例如,在第一比特位的属性值为一时,需进行校验和的验证即校验和(可选)部分以及偏离(可选)部分共32个比特位出现在GRE报文头中同时在进行GRE报文头长度计算时,需加上所述32个比特位。
[0052]通过对整个GRE报文头的比特位进行解析之后,获取各个比特位属性值为一时产生的各个偏移量,根据所述各个偏移量计算出整个GER报文头的长度,根据GER报文头的长度能更准确的解封出接收的GRE报文中的原始报文。
[0053]参照图4所示,为本发明GRE报文的封装装置实施例结构示意图。
[0054]本实例所提供的GRE报文的封装装置I,包括:
[0055]设置模块10,用于在对原始报文进行GRE报文封装时,按照预设的封装规则对GRE报文头的第一至第十六比特位进行属性设置;
[0056]所述原始报文是指需要封装和路由的数据报文。本实施例中在对所述原始报文进行GRE报文头封装时,设置模块10对所述GRE报文头的比特位按照预设的封装规则对GRE报文头的第一至第十六比特位进行属性设置。GRE隧道在封装GRE报文时都遵守着相应的封装协议以此作为封装的标准。比如常见的协议如,RFC2784协议、RFC2890协议及RFC1701
协议等等。
[0057]具体地,设置模块10根据RFC2784协议将GRE报文头的第一比特位设置为(Checksum校验和)属性,该属性的属性值用户可根据自己的需求选择填零或一,在选择填零时所述校验和无效即在解封装时无需进行校验和的检查;在选择填一时所述校验和有效即在解封装时需进行校验和的检查。设置模块10在将GRE报文头的第二比特位设置为(ReservedO预留)属性时,将该属性值设置为零。
[0058]进一步地,设置模块10根据RFC2890协议将GRE报文头的第三比特位设置为(KeyPresent密钥)属性,该属性的属性值用户可以选择性设置。在该属性的属性值选择填零时所述密钥无效即在解封装时无需进行关键字认证;在属性值选择填一时所述密钥有效即在解封装时需进行关键字认证,只有通过关键字认证之后才能对GRE报文进行解封装。设置模块10在将GRE报文头的第四比特位设置为(Sequence Number Present序列号)属性时,该属性的属性值用户也可以选择性的设置为零或一。在第四比特位属性的属性值为一时,在解封装时需进行GRE报文序列号的检查,只有通过序列号的检查之后才能对GRE报文进行解封装;在第四比特位属性的属性值为零时,在解封装时无需进行GRE报文序列号的检查。
[0059]进一步地,设置模块10根据RFC2784协议将GRE报文头的第五至第十三比特位设置为(ReservedO预留)属性,并设置该属性值为零。设置模块10在将GRE报文头的第十四至第十六比特位设置为(Vers1n版本号)属性时设置该属性值为零。
[0060]封装模块20,用于将属性设置后的所述GRE报文头与所述原始报文进行GRE报文封装。
[0061]本实例中设置模块10按照预设的封装规则对GRE报文头的第一位至第十六位比特位进行属性设置,封装模块20将属性设置后的所述GRE报文头作为所述GRE报文的封装格式并与所述原始报文进行GRE报文封装。
[0062]本发明通过预设的封装规则对遵守不同协议的GRE报文头进行属性设置并进行封装,保证了遵守不同协议的网络设备之间的互联互通。
[0063]参照图5所示,为本发明GRE报文的解封装装置第一实施例结构示意图。
[0064]本实例所提供的GRE报文的解封装装置2,包括:
[0065]解析模块30,用于在接收到GRE报文时,按照预设的解封装规则对接收的GRE报文的报文头的预先确定的比特位进行解封装解析;
[0066]所述GRE报文包括:原始数据报文及GRE报文头。解析模块30在解析时按照预设的解封装规则对接收的GRE报文的报文头的第一至第十六比特位进行解封装解析。
[0067]具体地,解析模块30在解析第一比特位时,将GRE报文头的第一比特位作为(Checksum校验和)属性,在该属性的属性值为零时,直接解封装;在该属性的属性值为一时,对接收到的GRE报文计算校验和,并将计算得出的校验和与所述GRE报文中的原始校验和进行校验和的检查,如果计算得出的校验和与所述GRE报文中的原始校验和完全一致时,则表明通过校验和的检查对所述GRE报文进行解封装;如果计算得出的校验和与所述GRE报文中的原始校验和不一致时,则表明没有通过校验和的检查需丢弃所述GRE报文。在解析第二比特位时,解析模块30将GRE报文头的第二比特位作为(ReservedO预留)属性,该属性的属性值是零时直接解封装。其中,如果是RFC2784协议的路由器兼容RFC1701协议的路由器并由RFC1701协议的路由器对所述第二比特位进行解析,解析模块30在所述比特位的属性值为零时,直接进行解封装;在所述比特位的属性值为I时,直接进行解封装同时计算单元32在计算GRE报文头的长度时需加上所述比特位产生的偏移量。
[0068]进一步地,解析模块30在解析第三比特位时,将GRE报文头的第三比特位作为(Key Present密钥)属性,在该属性的属性值是零时直接进行GRE报文解封装;在该属性的属性值是一时,进行关键字校验只有在路由器的接受方和路由器的发送方两端识别的关键字完全一致时才能通过验证并对所述GRE报文进行解封装,否则将所述GRE报文丢弃。解析模块30在对GRE报文头的第四比特位作为(Sequence Number Present序列号)属性进行解析时,在该属性的属性值是零时直接解封装;在该属性的属性值是一时需进行序列号的检查,只有在路由器的接受方和路由器的发送方两端在所述序列号完全一致时才进行GRE报文解封装,路由器的接受方和路由器的发送方两端在所述序列号不一致时将所述GRE报文丢弃。解析模块30对GRE报文头的第五至第十三比特位作(ReservedO预留)属性时,该属性的属性值为零或者非零时进行忽略直接解封装;解析模块30对GRE报文头的第十四至第十六比特位作为(Vers1n版本号)属性时,在该属性的属性值为零时直接解封装;在GRE报文头的第十四至第十六比特位任一位的属性值不为零时,丢弃该GRE报文。
[0069]解封装模块40,用于根据解析结果将接收的GRE报文进行解封装,以解封出接收的GRE报文中的原始报文。
[0070]在对接收到的GRE报文头进行解析后,解封装模块40根据解析结果将接收的GRE报文进行解封装,以解封出接收的GRE报文中的原始报文。本实施例中根据所述GRE报文头的长度对接收的GRE报文进行解封装。
[0071]本发明通过预设的对应解封装规则对接收的GRE报文的报文头进行解封装解析以解封出接收的G RE报文中的原始报文,保证了遵守不同协议的网络设备之间的互联互通。
[0072]参照图6所示,为本发明GRE报文的解封装装置中解析模块实施例结构示意图。
[0073]基于上述实施例提出本发明GRE报文的解封装装置中解析模块实施例,所述解析模块30包括:
[0074]获取单元31,用于在对接收的GRE报文的报文头的预先确定的比特位进行解封装解析时,获取预先确定的比特位对应的偏移量;
[0075]计算单元32,用于根据所述偏移量计算所述GRE报文头的长度。
[0076]其中,所述偏移量是指所述比特位属性的属性值为一时,所述比特位在所述GRE报文头中所占的比特位位数。本实施中以解析第一比特位为例来说明所述偏移量。例如,在第一比特位的属性值为一时,需进行校验和的验证即校验和(可选)部分以及偏离(可选)部分共32个比特位出现在GRE报文头中同时在进行GRE报文头长度计算时,需加上所述32个比特位。
[0077]通过对整个GRE报文头的比特位进行解析之后,获取单元31获取各个比特位属性值为一时产生的各个偏移量,计算单元32根据所述各个偏移量计算出整个GER报文头的长度,根据GER报文头的长度能更准确的解封出接收的GRE报文中的原始报文。
[0078]以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的【技术领域】,均同理包括在本发明的专利保护范围内。
【权利要求】
1.一种GRE报文的封装方法,其特征在于,该方法包括: 在对原始报文进行GRE报文封装时,按照预设的封装规则对GRE报文头的预先确定的比特位进行属性设置; 将属性设置后的所述GRE报文头与所述原始报文进行GRE报文封装。
2.根据权利要求1所述的方法,其特征在于,所述预先确定的比特位包括GRE报文头的第一位至第十六位比特位,所述预设的封装规则包括: 将GRE报文头的第一比特位填零或一; 将GRE报文头的第二比特位填零; 将GRE报文头的第三比特位填零或一; 将GRE报文头的第四比特位填零或一; 将GRE报文头的第五至第十三比特位填零; 将GRE报文头的第十四至第十六比特位填零。
3.—种GRE报文的解封装方法,其特征在于,该方法包括: 在接收到GRE报文时,按照预设的解封装规则对接收的GRE报文的报文头的预先确定的比特位进行解封装解析; 根据解析结果将接收的GRE报文进行解封装,以解封出接收的GRE报文中的原始报文。
4.根据权利要求3所述的方法,其特征在于,所述预先确定的比特位包括GRE报文头的第一位至第十六位比特位,所述预设的解封装规则包括: 在GRE报文头的第一比特位为零时,直接进行解封装; 在GRE报文头的第一比特位为一时,进行校验和的检查,在通过校验和检查时直接进行解封装,在未通过校验和检查时丢弃该GRE报文; 在GRE报文头的第二比特位为零时,直接解封装; 在GRE报文头的第三比特位为零时,直接解封装; 在GRE报文头的第三比特位为一时,进行关键字校验并根据校验的结果判断是否直接进行解封装; 在GRE报文头的第四比特位为零时,直接解封装; 在GRE报文头的第四比特位为一时,进行序列号的检查根据检查的结果判断是否直接进行解封装; 对GRE报文头的第五至第十三比特位进行忽略,直接解封装; 在GRE报文头的第十四至第十六比特位为零时,直接进行解封装; 在GRE报文头的第十四至第十六比特位任一位不为零时,丢弃该GRE报文。
5.根据权利要求3所述的方法,其特征在于,所述根据解析结果将接收的GRE报文进行解封装,以解封出接收的GRE报文中的原始报文的步骤之前还包括: 在对接收的GRE报文的报文头的预先确定的比特位进行解封装解析时,获取预先确定的比特位对应的偏移量; 根据所述偏移量计算所述GRE报文头的长度。
6.一种GRE报文的封装装置,其特征在于,包括: 设置模块,用于在对原始报文进行GRE报文封装时,按照预设的封装规则对GRE报文头的预先确定的比特位进行属性设置; 封装模块,用于将属性设置后的所述GRE报文头与所述原始报文进行GRE报文封装。
7.根据权利要求6所述的装置,其特征在于,所述预先确定的比特位包括GRE报文头的第一位至第十六位比特位,所述预设的封装规则包括: 将GRE报文头的第一比特位填零或一; 将GRE报文头的第二比特位填零; 将GRE报文头的第三比特位填零或一; 将GRE报文头的第四比特位填零或一; 将GRE报文头的第五至第十三比特位填零; 将GRE报文头的第十四至第十六比特位填零。
8.—种GRE报文的解封装装置,其特征在于,包括: 解析模块,用于在接收到GRE报文时,按照预设的解封装规则对接收的GRE报文的报文头的预先确定的比特位进行解封装解析; 解封装模块,用于根据解析结果将接收的GRE报文进行解封装,以解封出接收的GRE报文中的原始报文。
9.根据权利要求8所述的装置,其特征在于,所述预先确定的比特位包括GRE报文头的第一位至第十六位比特位,所述预设的解封装规则包括: 在GRE报文头的第一比特位为零时,直接进行解封装; 在GRE报文头的第一比特位为一时,进行校验和的检查,在通过校验和检查时直接进行解封装,在未通过校验和检查时丢弃该GRE报文; 在GRE报文头的第二比特位为零时,直接解封装; 在GRE报文头的第三比特位为零时,直接解封装; 在GRE报文头的第三比特位为一时,进行关键字校验并根据校验的结果判断是否直接进行解封装; 在GRE报文头的第四比特位为零时,直接解封装; 在GRE报文头的第四比特位为一时,进行序列号的检查根据检查的结果判断是否直接进行解封装; 对GRE报文头的第五至第十三比特位进行忽略,直接解封装; 在GRE报文头的第十四至第十六比特位为零时,直接进行解封装; 在GRE报文头的第十四至第十六比特位任一位不为零时,丢弃该GRE报文。
10.根据权利要求8所述的装置,其特征在于,所述解析模块还包括: 获取单元,用于在对接收的GRE报文的报文头的预先确定的比特位进行解封装解析时,获取预先确定的比特位对应的偏移量; 计算单元,用于根据所述偏移量计算所述GRE报文头的长度。
【文档编号】H04L12/951GK104348759SQ201310312219
【公开日】2015年2月11日 申请日期:2013年7月23日 优先权日:2013年7月23日
【发明者】黎英 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1