一种面向IPv6的路径MTU发现方法及系统的制作方法

文档序号:7700327阅读:358来源:国知局
专利名称:一种面向IPv6的路径MTU发现方法及系统的制作方法
技术领域
本发明涉及互联网ip路由器结构设计领域,特别是涉及一种面向
rPv6的路径MTU发现方法及系统。
背景技术
Internet网络中,不同的链路会有 一个对应的最大传输单元 (Maximum Transmission Unit , MTU),该链路上承载的报文长度不 能大于对应的MTU。国际网络通信协议第四版(Internet Protocal version 4, IPv4)的MTU机制规定,IP报文可以在传输路径上的中 间节点上进行分片,最后所有的分片在到达目的地后进行重组。国际 网络通信协议第六版(Internet Protocal version 6, IPv6)的MTU机 制在IPv4的基础上有了较大的改进,IPv6分片只能在发送端产生, 不允许转发路径上的任何路由器对报文进行分片。网络控制报文协议 (Internet Control Messages Protocol version 6, ICMPv6 )增力口 了类型 为2的"报文太大"差错消息协助MTU机制的实施。当中间转发节点 发现下一跳链路的MTU小于待转发报文长度时,会向源节点发送"报 文太大"差错消息通告该链路的MTU值,源节点将减小报文长度继续 发出。此过程可能多次进行,源节点最终学习到整个转发路径上最小 的链路MTU,这就是IPv6的路径MTU发现过程。
IPv6路径MTU发现机制使得源节点有可能需要较长时间才能学 习到整个路径的最小链路MTU。也就是说,源节点发出的某一个流 的第一个报文有可能需要较长时间才能顺利到达目的节点。另一方 面,IPv6的路径MTU发现过程中,也有较多的ICMPv6差错报文在 互联网上传播,增加了网络带宽。然而,随着互联网的发展,已有大 量时间敏感的应用出现,如VoIP、流媒体等。而且,带宽负载过重
5也是互联网面临的一个严峻考验。
所以,在对现有网络设备较少改造的前提下,面对IPv6网络设 计一种快速、轻负载的新型路径MTU发现机制,将对改善互联网状
况具有非常重要的意义。

发明内容
本发明的目的是提供 一种面向IPv6的路径MTU发现方法,为达 到上述目的,本发明的技术方案提供一种面向IPv6的路径MTU发现 方法,所述方法由源节点通过若干中间转发节点向目的节点发送报 文,所述目的节点接受到所述报文后确定路径MTU并通告源节点, 所述中间转发节点根据所接收到的报文获取出接口链路,并对待转发 报文的长度进行判断,当待转发报文的长度大于出接口链路MTU值 时,修改报文内容及长度后再转发。
其中,当待转发报文的长度大于出接口链路MTU值时,按照下
述步骤修改报文内容
Sl,判断IP头中上层协议号是否为未知协议号255,如果否, 则修改上层协议号为255,如果是,则转步骤S2;
S2,修改IP头中净荷长度为M-40,其中M为出接口链路MTU
值;
S3,删去从IP头开始M字节之后的报文内容,使得IP包长度 等于M。
其中,当待转发报文的长度不大于出接口链路MTU值时,正常 转发。
其中,源节点发送报文的路径MTU初始值为出接口的链路MTU值。
其中,所述目的节点接收到报文,通过对上层协议号分析对报文 进行如下处理
如果IP头中上层协议号不是未知协议号255,则交给上层协议模块进行处理;
如果IP头中上层协议号是未知协议号255,则向源节点发送"参
数错误"的ICMPv6报文,ICMPv6报文携带原始IP报文的IP头部发送。
其中,源节点收到目的节点发来的ICMPv6报文后,分析内嵌原 始IP报头,若内嵌IP报头的上层协议号为255,则修改本地到该内 嵌IP头部中目的地址的路径MTU为内嵌IP头中的净荷长度加上40, 即源节点获得到该目的地址的路径MTU。
本发明的另一目的是提供一种面向IPv6的路径MTU发现系统, 为达到上述目的,本发明的技术方案提供一种面向IPv6的路径MTU 发现系统,所述系统包括
源节点,通过若干中间转发节点向目的节点发送报文,
目的节点,接收到所述报文后确定路径MTU并通告源节点,
所述系统的中间转发节点包括
判断子单元,所述中间转发节点根据所接收到的报文获取链路 后,判断子单元对待转发报文的长度进行判断;
修改子单元,当待转发报文的长度大于链路MTU值时,修改报 文内容后再转发。
其中,当待转发报文的长度大于出接口链路MTU值时,中间转 发节点的判断子单元判断IP头中上层协议号是否为未知协议号255, 如果否,则修改上层协议号为255;修改子单元修改IP头中净荷长度 为M-40,其中M为链路MTU值;删去从IP头开始M字节之后的 报文内容,使得IP包长度等于M;如果是,则修改子单元修改IP头 中净荷长度为M-40,其中M为出接口链路MTU值;删去从IP头开 始M字节之后的报文内容,使得IP包长度等于M。
其中,所述目的节点包括分析处理子单元,用于分析上层协议号 并处理所接收到的报文,如果IP头中上层协议号不是未知协议号255,则交给上层协议模
块进行处理;
如果IP头中上层协议号是未知协议号255,则向源节点发送"参 数错误"的ICMPv6报文,ICMPv6报文携带原始IP报文的IP头部发送。
其中,源节点包括分析子单元和处理子单元,收到目的节点发来 的ICMPv6报文后,由分析子单元分析内嵌原始IP报头,若内嵌IP 报头的上层协议号为255,则由处理子单元修改本地到该内嵌IP头部 中目的地址的路径MTU为内嵌IP头中的净荷长度加上40,获得该 目的地址的路径MTU。
本发明提出了 一种面向IPv6的路径MTU发现方法和系统,该方 法要求路由器在转发过程中,中间节点发现待转发报文大于下一跳链 路MTU值时,修改报文内容并缩短报文长度继续转发。最终由目的 节点向源节点确定路径MTU,并通告源节点。不丢包情况下,源节 点一次探测就可得到路径MTU,提高了探测速度,并减少了用于探 测的报文,减轻了网络负载。


图l是本发明的面向IPv6的路径MTU发现方法的流程示意图; 图2是本发明实施例的面向IPv6的路径MTU发现方法的示意图; 图3是本发明的面向IPv6的路径MTU发现方法的源节点处理流程 示意图4是本发明的面向IPv6的路径MTU发现系统的结构示意图。
具体实施例方式
下面结合附图和实施例,对本发明的具体实施方式
作进一步详细 描述。以下实施例用于说明本发明,但不用来限制本发明的范围。 如图1所示,本发明提供了 一种面向IPv6的路径MTU发现方法,
源节点通过若干中间转发节点向目的节点发送报文,所述目的节点接收到所述报文后确定路径MTU并通告源节点,所述中间转发节点根 据所接收到的报文获取出接口链路,并对待转发报文的长度进行判
断,当待转发报文的长度大于出接口链路MTU值时,修改报文内容 后再转发。
源节点准备向某一目的节点发送IPv6报文时,先查找路由获得 出接口 ,去往目的节点的路径MTU初始值则为此出接口的链路 MTU,源节点按照该初始路径MTU发送报文;中间节点根据报文目 的地址查找路由,获取出接口,其链路MTU值为M。
当待转发报文的长度大于链路MTU值时,按照下述步骤修改报 文内容Sl,判断IP头中上层协议号是否为未知协议号255,如果 否,则修改上层协议号为255,如果是,则转步骤S2; S2,修改IP 头中净荷长度为M-40,其中M为出接口链路MTU值;S3,删去从 IP头开始M字节之后的报文内容,使得IP包长度等于M。当待转发 报文的长度不大于出接口链路MTU值时,正常转发。
所述目的节点接收到报文,通过对上层协议号分析对报文进行处 理如果IP头中上层协议号不是未知协议号255,则交给上层协议模 块进行处理;如果IP头中上层协议号是未知协议号255,则向源节点 发送"参数错误"的ICMPv6报文,ICMPv6报文携带原始IP报文的 IP头部发送。
如图2所示为本发明的实施例中路径MTU发现方法的示意图。源 节点S需要向目的节点D发送IPv6报文,途径A、 B、 C、 E几个转发节 点,图中每个节点上方标明了该处去往D的下一跳链路MTU大小。当 下一跳链路MTU大于报文大小时,正常转发。否则,将根据下一跳 链路MTU缩短报文长度、修改内容,非正常转发。图中节点B会修改 IP头中上层协议号并缩短报文长度,继续转发;节点E只是缩短报文 长度,继续转发;其它节点A、 C则是正常转发。目的节点D会收到总 长度为1300字节的报文,其IP头上层协议号为255、 IP头净荷长度为1260,它将向源节点回送一个"参数错误"的ICMPv6报文,其中内 嵌原始报文的IP头部。源节点S收到该ICMPv6报文后,分析内嵌IP头, 能够知道去往D的路径MTU为(1260+40),即1300。
图3是本发明的面向IPv6的路径MTU发现方法的源节点处理流程 示意图。源节点收到目的节点发来的ICMPv6报文后,分析内嵌原始 IP报头,若内嵌IP报头的上层协议号为255,则修改本地到该内嵌IP 头部中目的地址的路径MTU为内嵌IP头中的净荷长度加上40,即源节 点获得到该目的地址的路径MTU。
图4是本发明的面向IPv6的路径MTU发现系统的结构示意图。 由图中可见,所述系统包括源节点,通过若干中间转发节点向目的 节点发送报文;目的节点,接收到所述报文后确定路径MTU并通告 源节点;所述系统的中间转发节点包括判断子单元,所述中间转发 节点根据所接收到的报文获取链路后,判断子单元对待转发报文的长 度进行判断;修改子单元,当待转发报文的长度大于出接口链路MTU 值时,修改报文内容后再转发。
其中,当待转发报文的长度大于出接口链路MTU值时,中间转 发节点的判断子单元判断IP头中上层协议号是否为未知协议号255, 如果否,则修改上层协议号为255;修改子单元修改IP头中净荷长度 为M-40,其中M为出接口链路MTU值;删去从IP头开始M字节 之后的报文内容,使得IP包长度等于M;如果是,则修改子单元修 改IP头中净荷长度为M-40,其中M为出接口链路MTU值;删去从 IP头开始M字节之后的报文内容,使得IP包长度等于M。
其中,所述目的节点包括分析处理子单元,用于分析上层协议号 并处理所接收到的报文,如果IP头中上层协议号不是未知协议号 255,则交给上层协议模块进行处理;如果IP头中上层协议号是未知 协议号255,则向源节点发送"参数错误"的ICMPv6报文,ICMPv6 报文携带原始IP报文的IP头部发送。其中,源节点包括分析子单元和处理子单元,收到目的节点发来 的ICMPv6报文后,由分析子单元分析内嵌原始IP报头,若内嵌IP 报头的上层协议号为255,则由处理子单元修改本地到该内嵌IP头部 中目的地址的路径MTU为内嵌IP头中的净荷长度加上40,获得该 目的地址的路径MTU。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领 域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以 做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1、一种面向IPv6的路径MTU发现方法,所述方法由源节点通过若干中间转发节点向目的节点发送报文,所述目的节点接收到所述报文后确定路径MTU并通告源节点,其特征在于,所述中间转发节点根据所接收到的报文获取出接口链路,并对待转发报文的长度进行判断,当待转发报文的长度大于出接口链路MTU值时,修改报文内容后再转发。
2、 如权利要求1所述的面向IPv6的路径MTU发现方法,其特 征在于,当待转发报文的长度大于出接口链路MTU值时,按照下述 步骤修改报文内容Sl,判断IP头中上层协议号是否为未知协议号255,如果否, 则修改上层协议号为255,如果是,则转步骤S2;S2,修改IP头中净荷长度为M-40,其中M为出接口链路MTU值;S3,删去从IP头开始M字节之后的报文内容,使得IP包长度 等于M。
3、 如权利要求l所述的面向IPv6的路径MTU发现方法,其特 征在于,当待转发报文的长度不大于出接口链路MTU值时,正常转发。
4、 如权利要求1-3任一项所述面向IPv6的路径MTU发现方法, 其特征在于,源节点发送报文的路径MTU初始值为出接口的链路 MTU值。
5、 如权利要求4所述的面向IPv6的路径MTU发现方法,其特 征在于,所述目的节点接收到报文,通过对上层协议号分析对报文进 行处理如果IP头中上层协议号不是未知协议号255,则交给上层协议模 块进行处理;如果IP头中上层协议号是未知协议号255,则向源节点发送"参数错误"的ICMPv6报文,ICMPv6报文携带原始IP报文的IP头部 发送。
6、 如权利要求5所述的面向IPv6的路径MTU发现方法,其特 征在于,源节点收到目的节点发来的ICMPv6报文后,分析内嵌原始 IP报头,若内嵌IP报头的上层协议号为255,则修改本地到该内嵌 IP头部中目的地址的路径MTU为内嵌IP头中的净荷长度加上40, 获得该目的地址的路径MTU。
7、 一种面向IPv6的路径MTU发现系统,所述系统包括 源节点,通过若干中间转发节点向目的节点发送报文,目的节点,接收到所述报文后确定路径MTU并通告源节点, 其特征在于,所述系统的中间转发节点包括 判断子单元,所述中间转发节点根据所接收到的报文获取出接口 链路后,判断子单元对待转发报文的长度进行判断;修改子单元,当待转发报文的长度大于出接口链路MTU值时,修改报文内容后再转发。
8、 如权利要求7所述的面向IPv6的路径MTU发现系统,其特 征在于,当待转发报文的长度大于出接口链路MTU值时,中间转发 节点的判断子单元判断IP头中上层协议号是否为未知协议号255,如 果否,则修改上层协议号为255;修改子单元修改IP头中净荷长度为 M-40,其中M为出接口链路MTU值;删去从IP头开始M字节之后 的报文内容,使得IP包长度等于M;如果是,则修改子单元修改IP 头中净荷长度为M-40,其中M为出接口链路MTU值;删去从IP头 开始M字节之后的报文内容,使得IP包长度等于M。
9、 如权利要求8所述的面向IPv6的路径MTU发现系统,其特 征在于,所述目的节点包括分析处理子单元,用于分析上层协议号并 处理所接收到的报文如果IP头中上层协议号不是未知协议号255,则交给上层协议模 块进行处理;如果IP头中上层协议号是未知协议号255,则向源节点发送"参 数错误"的ICMPv6报文,ICMPv6报文携带原始IP报文的IP头部发送。
10、如权利要求9所述的面向IPv6的路径MTU发现系统,其特 征在于,源节点包括分析子单元和处理子单元,收到目的节点发来的 ICMPv6报文后,由分析子单元分析内嵌原始IP报头,若内嵌IP报 头的上层协议号为255,则由处理子单元修改本地到该内嵌IP头部中 目的地址的路径MTU为内嵌IP头中的净荷长度加上40,获得该目 的地址的路径MTU。
全文摘要
本发明公开了一种面向IPv6的路径MTU发现方法及系统,所述方法由源节点通过若干中间转发节点向目的节点发送报文,所述目的节点接收到所述报文后确定路径MTU并通告源节点,所述中间转发节点根据所接收到的报文获取出接口链路,并对待转发报文的长度进行判断,当待转发报文的长度大于出接口链路MTU值时,修改报文内容后再转发。本发明所提供的面向IPv6的路径MTU发现方法,在不丢包情况下,源节点一次探测就可得到路径MTU,提高了探测速度,并减少了用于探测的报文,减轻了网络负载。
文档编号H04L12/56GK101552728SQ20091008402
公开日2009年10月7日 申请日期2009年5月12日 优先权日2009年5月12日
发明者珺 何, 波 孙, 融 肖, 肖永康, 胡晓雁 申请人:北京师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1