一种IPv6隧道报文封装方法及系统与流程

文档序号:16818678发布日期:2019-02-10 22:34阅读:268来源:国知局
一种IPv6隧道报文封装方法及系统与流程

本发明涉及通信领域,尤其涉及一种IPv6隧道报文封装方法及系统。



背景技术:

IPv6隧道技术是IPv6过渡技术中一种重要的技术种类。

IPv6隧道虽然解决了IPv6过渡时期IPv4用户接入和报文穿越IPv6网络的问题,但是由于IPv4报文被封装到IPv6报文中,导致报文转发路径中的网络设备只能识别IPv6报文头,无法读取IPv4报文头中的内容,从而使IPv4报文的一些策略控制机制失效,例如根据IPv4报文目的地址调整带宽、根据服务质量(QoS)标记调整转发优先级等。



技术实现要素:

本发明要解决的技术问题是在IPv6隧道中,由于IPv4报文被封装到IPv6报文内,网络设备无法定位IPv4的报文头,从而无法读取IPv4报文头中的内容。

根据本发明一方面,提出一种IPv6隧道报文封装方法,包括:

接收IPv4报文并取出IPv4报文头;

设置IPv6报文头,在所述IPv6报文头中设置IPv6扩展头标识,指示IPv4扩展头的位置,并将取出的IPv4报文头封装到IPv4扩展头中;

连接所述IPv4报文内容,封装为IPv6报文。

进一步,接收IPv4报文并取出IPv4报文头;

判断IPv4报文长度是否大于IPv6的PMTU值,如果不大于,不进行报文分片,将取出的IPv4报文头封装到IPv4扩展头中,并连接所述IPv4报文内容,封装为IPv6报文;

如果大于,则根据报文长度与IPv6的PMTU值将IPv4报文分为n片,设置IPv4报文的分片标志位,标识出各个分片报文之间的关系,分别将生成的n个IPv4报文头封装到n个IPv6报文的IPv4扩展头中,并连接每个IPv6报文中分片的IPv4报文内容,封装为n个分片的IPv6报文。

进一步,将IPv4报文的长度划分为与IPv6的PMTU值相等的各个分片报文,直到IPv4报文的长度小于等于IPv6的PMTU值。

进一步,接收至少一个IPv6报文,从IPv6报文头获取IPv6扩展头标识;

根据IPv6扩展头标识获知IPv4扩展头的位置,并读取IPv4扩展头;

从IPv4扩展头读取IPv4报文头;

将IPv4报文头中的字段内容取出,与策略表中的策略进行匹配,如果匹配,则按照所述策略进行转发,否则,正常转发。

进一步,当接收多个IPv6报文时,根据IPv4报文的分片标志位判断是否丢失分片,如果是,则触发IPv4报文进行重传。

根据本发明的另一方面,还提出一种IPv6隧道报文封装系统,包括:

报文头提取模块,用于接收IPv4报文并取出IPv4报文头;

封装模块,用于设置IPv6报文头,在所述IPv6报文头中设置IPv6扩展头标识,指示IPv4扩展头的位置,并将取出的IPv4报文头封装到IPv4扩展头中;连接所述IPv4报文内容,封装为IPv6报文。

进一步,分片模块,用于判断IPv4报文长度是否大于IPv6的PMTU值,如果不大于,不进行报文分片;如果大于,则根据报文长度与IPv6的PMTU值将IPv4报文分为n片,设置IPv4报文的分片标志位,标识出各个分片报文之间的关系;

其中,所述封装模块分别将生成的n个IPv4报文头封装到n个IPv6报文的IPv4扩展头中,并连接每个IPv6报文中分片的IPv4报文内容,封装为n个分片的IPv6报文。

进一步,所述分片模块用于将IPv4报文的长度划分为与IPv6的PMTU值相等的各个分片报文,直到IPv4报文的长度小于等于IPv6的PMTU值。

进一步,策略控制模块,用于接收至少一个IPv6报文,从IPv6报文头获取IPv6扩展头标识;根据IPv6扩展头标识获知IPv4扩展头的位置,并读取IPv4扩展头;从IPv4扩展头读取IPv4报文头;将IPv4报文头中的字段内容取出,与策略表中的策略进行匹配,如果匹配,则按照所述策略进行转发,否则,正常转发。

进一步,所述策略控制模块用于当接收多个IPv6报文时,根据IPv4报文的分片标志位判断是否丢失分片,如果是,则触发IPv4报文进行重传。

与现有技术相比,本发明通过接收IPv4报文并取出IPv4报文头;设置IPv6报文头,在所述IPv6报文头中设置IPv6扩展头标识,指示IPv4扩展头的位置,并将取出的IPv4报文头封装到IPv4扩展头中;连接所述IPv4报文内容,封装为IPv6报文。因此,能够定位IPv4报文头,读取IPv4报文头中的内容。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解释本发明的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:

图1为本发明IPv6隧道报文封装方法的一个实施例的流程示意图。

图2为本发明在IPv6扩展头中携带IPv4报文头的结构示意图。

图3为本发明IPv6隧道报文封装方法的另一个实施例的流程示意图。

图4为本发明基于IPv6报文封装进行策略控制的方法实施例的流程示意图。

图5为本发明进行IPv6报文封装并进行策略控制的方法实施例的流程示意图。

图6为本发明IPv6隧道报文封装系统的一个实施例的结构图示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

图1为本发明IPv6隧道报文封装方法的一个实施例的流程示意图。包括以下步骤:

在步骤110,接收IPv4报文并取出IPv4报文头。

在步骤120,设置IPv6报文头,在所述IPv6报文头中设置IPv6扩展头标识,指示IPv4扩展头的位置,并将取出的IPv4报文头封装到IPv4扩展头中。

图2所示为本发明在IPv6扩展头中携带IPv4报文头的结构示意图。

如图所示,在所述IPv6报文头中指示下一个头标签为IPv4,即,指示IPv4扩展头的位置,在IPv4扩展头中携带IPv4报文头、IPv4报文头长度、以及下一个头标签为TCP/UDP,其中,下一个头标签为TCP/UDP指所要传输的为TCP/UDP报文。本领域的技术人员应当理解,此处下一个头标签为TCP/UDP只是用于举例,不应理解为对本发明的限制。例如,下一个头标签为ICMP或者其他报文头,只是这个字段的值不同,不影响处理过程。

在步骤130,连接所述IPv4报文内容,封装为IPv6报文。

在本发明的实施例中,通过接收IPv4报文并取出IPv4报文头;设置IPv6报文头,在所述IPv6报文头中设置IPv6扩展头标识,指示IPv4扩展头的位置,并将取出的IPv4报文头封装到IPv4扩展头中;连接所述IPv4报文内容,封装为IPv6报文。因此,能够定位IPv4报文头,读取IPv4报文头中的内容。

图3为本发明IPv6隧道报文封装方法的另一个实施例的流程示意图。包括以下步骤:

在步骤310,接收IPv4报文并取出IPv4报文头。

在步骤320,判断IPv4报文长度是否大于IPv6的PMTU值,如果不大于,则执行步骤330,如果大于,则执行步骤340。

在步骤330,不进行报文分片,继续执行步骤350。

在步骤340,根据报文长度与IPv6的PMTU值将IPv4报文分为n片,设置IPv4报文的分片标志位,标识出各个分片报文之间的关系,继续执行步骤350。

其中,根据报文长度与IPv6的PMTU值将IPv4报文分为n片的操作为,将IPv4报文的长度划分为与IPv6的PMTU值相等的各个分片报文,直到IPv4报文的长度小于等于IPv6的PMTU值。

在步骤350,将IPv4报文头封装到IPv6报文的IPv4扩展头中,并连接每个IPv6报文中的IPv4报文内容,封装为IPv6报文。

在步骤360,隧道报文输出。

在该实施例中,根据报文长度与IPv6的PMTU值确定IPv4报文分片个数n,所述分片后的报文长度小于IPv6的PMTU值,并将IPv4报文头生成n份,所有分片IPv4报文都具有与原有IPv4报文相同的源、目的IP地址和QoS标记。

由于IPv6隧道需要在IPv4报文外侧添加IPv6报文头,导致隧道报文大小增加,有可能超出传输路径的MTU值导致报文分片。目前隧道报文的分片采用IPv6分片机制,即网络设备将IPv4报文整体看作净荷,利用IPv6报文分片机制对其进行分割,这样会导致分片完成之后,只有第一个报文封装了IPv4报文头,其它隧道报文中没有IPv4报文头,设备采用简单的偏移指针方式无法定位到所有报文中的IPv4报文头。

在本发明的实施例中,IPv4报文在进入网络设备之后,其报文长度将与设备转发端口探测的IPv6的PMTU值进行比较,如果报文长度大于IPv6的PMTU值,需要对报文进行分片。其分片长度应该小于IPv6的PMTU值,而不是转发端口的链路MTU值。现有IPv6分片机制将IPv4报文作为一个净荷,并不考虑IPv4报文头的格式,所以分完片之后只有第一个报文携带有IPv4报文头。而本发明的该实施例解决了采用IPv6分片机制导致的第二个及后续分片报文没有IPv4报文头信息的问题。

图4为基于IPv6报文封装进行策略控制的方法实施例的流程示意图。包括以下步骤:

在步骤410,接收至少一个IPv6报文,从IPv6报文头获取IPv6扩展头标识。

在步骤420,判断是否有IPv4扩展头,如果有,则执行步骤430,如果没有,则执行步骤440。

在步骤430,根据IPv6扩展头标识获知IPv4扩展头的位置,并读取IPv4扩展头。

在步骤440,按IPv6报文转发规则进行转发。

在步骤450,从IPv4扩展头读取IPv4报文头。

在步骤460,将IPv4报文头中的字段内容取出,与策略表中的策略进行匹配。如果匹配,则执行步骤470,如果不匹配,则执行步骤440。

在步骤470,按照所述策略进行转发。

在该实施例中,进行策略控制的设备(如BRAS)需要支持IPv6协议,在IPv6协议解析时要支持IPv4扩展头属性。此时,进行策略控制的设备会提取扩展头中的IPv4报文内容,根据其中的相关字段,如QoS、IPv4目的地址等,控制报文的转发行为(如缓冲、丢弃等)。其中,QoS标记携带在IPv4的差分服务代码点(DSCP)字段,其内容可以根据应用定义。例如,根据DSCP字段进行限速、丢包等。或者,根据目的IPv4地址进行限速、升速、提供带宽保障等。本领域的技术人员应当理解,此处只用于举例,不应理解为对本发明的限制。

进行策略控制的设备是按照每个分片的信息进行控制的,当接收多个IPv6报文时,根据IPv4报文的分片标志位判断是否丢失分片,如果是,则触发IPv4报文进行重传。

在本发明的实施例中,首先按照正常的IPv6报文流程进行处理,当发现IPv6报文携带IPv4扩展头时,将解析扩展头中的IPv4报文头信息,并根据其信息设置这个IPv6隧道报文的转发策略,实现了对所有报文的策略控制。

图5为本发明进行IPv6报文封装并进行策略控制的方法实施例的流程示意图。包括以下步骤:

在步骤501,接收IPv4报文并取出IPv4报文头。

在步骤502,缓存IPv4报文头,并判断报文长度与IPv6的PMTU值的关系,确定分片个数n。

在步骤503,按分片个数n生成n份IPv4报文头,并设置IPv4报文中的分片标志位。

在步骤504,将生成的IPv4报文头封装到隧道报文中,并设置IPv6扩展头。

在步骤505,设置IPv6扩展头标识,指示IPv4扩展头的位置。

在步骤506,将取出的IPv4报文头封装到IPv4扩展头中。

在步骤507,连接IPv4报文内容,封装为IPv6报文。

在步骤608,重新计算相关校验值。

在步骤509,转发分片报文。

其中,在隧道中间的网络设备上,需要执行相关的IPv4报文转发策略。

在步骤510,获取IPv6隧道报文,处理IPv6报文头。

在步骤511,从IPv6报文头获取IPv6扩展头标识。

在步骤512,读取IPv4扩展头。

在步骤513,读取策略表。

在步骤514,将IPv4扩展头中的相关字段取出,判断是否与策略表中的策略条件相匹配。若匹配,则执行步骤516,若不匹配,则执行步骤515。

在步骤515,正常转发。

在步骤516,按照策略转发。

这里所说的按照策略转发是指根据IPv4报文的相关字段,如QoS、IPv4目的地址等,控制报文的转发行为(如缓冲、丢弃等)。其中,QoS标记携带在IPv4的差分服务代码点(DSCP)字段,其内容可以根据应用定义。例如,根据DSCP字段进行限速、丢包等。或者,根据目的IPv4地址进行限速、升速、提供带宽保障等。本领域的技术人员应当理解,此处只用于举例,不应理解为对本发明的限制。

在本发明的实施例中,在IPv4报文分片封装基础上进行策略控制,结合IPv6隧道头中的IPv4扩展头,读取IPv4报文头中的字段内容,并根据字段含义执行相应的调度策略,实现了对所有报文的策略控制。

图6为本发明IPv6隧道报文封装系统的一个实施例的结构图示意图。包括报文头提取模块610和封装模块620,其中:

报文头提取模块610,用于接收IPv4报文并取出IPv4报文头。

封装模块620,用于设置IPv6报文头,在所述IPv6报文头中设置IPv6扩展头标识,指示IPv4扩展头的位置,并将取出的IPv4报文头封装到IPv4扩展头中;连接所述IPv4报文内容,封装为IPv6报文。

图2所示为本发明在IPv6扩展头中携带IPv4报文头的结构示意图。

如图所示,在所述IPv6报文头中指示下一个头标签为IPv4,即,指示IPv4扩展头的位置,在IPv4扩展头中携带IPv4报文头、IPv4报文头长度、以及下一个头标签为TCP/UDP,其中,下一个头标签为TCP/UDP指所要传输的为TCP/UDP报文。本领域的技术人员应当理解,此处下一个头标签为TCP/UDP只是用于举例,不应理解为对本发明的限制,例如,下一个头标签为ICMP或者其他报文头,只是这个字段的值不同,不影响处理过程。

其中,封装模块620是IPv6隧道网关,具体物理设备可以是家庭网关、宽带远程接入服务器(BRAS)、运营商级网络地址转换(CGN)、地址旋转换路由器(AFTR)等,具体看隧道入口和出口的部署位置。

在本发明的实施例中,通过报文头提取模块610接收IPv4报文并取出IPv4报文头;封装模块620设置IPv6报文头,在所述IPv6报文头中设置IPv6扩展头标识,指示IPv4扩展头的位置,并将取出的IPv4报文头封装到IPv4扩展头中;连接所述IPv4报文内容,封装为IPv6报文。因此,能够定位IPv4报文头,读取IPv4报文头中的内容。

本发明的另一个实施例,当接收到IPv4报文并取出IPv4报文头后,该系统还包括分片模块630,用于判断IPv4报文长度是否大于IPv6的PMTU值,如果不大于,不进行报文分片;如果大于,则根据报文长度与IPv6的PMTU值将IPv4报文分为n片,设置IPv4报文的分片标志位,标识出各个分片报文之间的关系;

例如,所述分片模块用于将IPv4报文的长度划分为与IPv6的PMTU值相等的各个分片报文,直到IPv4报文的长度小于等于IPv6的PMTU值。

其中,所述封装模块620分别将生成的n个IPv4报文头封装到n个IPv6报文的IPv4扩展头中,并连接每个IPv6报文中分片的IPv4报文内容,封装为n个分片的IPv6报文。

在该实施例中,根据报文长度与IPv6的PMTU值确定IPv4报文分片个数n,所述分片后的报文长度小于IPv6的PMTU值,并将IPv4报文头生成n份,所有分片IPv4报文都具有与原有IPv4报文相同的源、目的IP地址和QoS标记。

由于IPv6隧道需要在IPv4报文外侧添加IPv6报文头,导致隧道报文大小增加,有可能超出传输路径的MTU值导致报文分片。目前隧道报文的分片采用IPv6分片机制,即网络设备将IPv4报文整体看作净荷,利用IPv6报文分片机制对其进行分割,这样会导致分片完成之后,只有第一个报文封装了IPv4报文头,其它隧道报文中没有IPv4报文头,设备采用简单的偏移指针方式无法定位到所有报文中的IPv4报文头。

在本发明的实施例中,IPv4报文在进入网络设备之后,其报文长度将与设备转发端口探测的IPv6的PMTU值进行比较,如果报文长度大于IPv6的PMTU值,需要对报文进行分片。其分片长度应该小于IPv6的PMTU值,而不是转发端口的链路MTU值。现有IPv6分片机制将IPv4报文作为一个净荷,并不考虑IPv4报文头的格式,所以分完片之后只有第一个报文携带有IPv4报文头。而本发明解决了采用IPv6分片机制导致的第二个及后续分片报文没有IPv4报文头信息的问题。

本发明的另一个实施例,该系统还包括策略控制模块640,用于接收至少一个IPv6报文,从IPv6报文头获取IPv6扩展头标识;根据IPv6扩展头标识获知IPv4扩展头的位置,并读取IPv4扩展头;从IPv4扩展头读取IPv4报文头;将IPv4报文头中的字段内容取出,与策略表中的策略进行匹配,如果匹配,则按照所述策略进行转发,否则,正常转发。

在该实施例中,策略控制模块640需要支持IPv6协议,在IPv6协议解析时要支持IPv4扩展头属性。此时,进行策略控制的设备会提取扩展头中的IPv4报文内容,根据其中的相关字段,如QoS、IPv4目的地址等,控制报文的转发行为(如缓冲、丢弃等)。其中,QoS标记携带在IPv4的差分服务代码点(DSCP)字段,其内容可以根据应用定义。例如,根据DSCP字段进行限速、丢包等。或者,根据目的IPv4地址进行限速、升速、提供带宽保障等。本领域的技术人员应当理解,此处只用于举例,不应理解为对本发明的限制。

策略控制模块640是按照每个分片的信息进行控制的,当接收多个IPv6报文时,根据IPv4报文的分片标志位判断是否丢失分片,如果是,则触发IPv4报文进行重传。

其中,策略控制模块640可以是路由器、带宽远程接入服务器(BRAS)等。

在本发明的实施例中,通过结合IPv6隧道头中的IPv4扩展头,读取IPv4报文头中的字段内容,并根据字段含义执行相应的调度策略,实现了对所有报文的策略控制。

至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

可能以许多方式来实现本发明的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1