CN101552728B - 一种面向IPv6的路径MTU发现方法及系统 - Google Patents

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

Info

Publication number
CN101552728B
CN101552728B CN2009100840268A CN200910084026A CN101552728B CN 101552728 B CN101552728 B CN 101552728B CN 2009100840268 A CN2009100840268 A CN 2009100840268A CN 200910084026 A CN200910084026 A CN 200910084026A CN 101552728 B CN101552728 B CN 101552728B
Authority
CN
China
Prior art keywords
head
message
path mtu
node
length
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.)
Expired - Fee Related
Application number
CN2009100840268A
Other languages
English (en)
Other versions
CN101552728A (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 Normal University
Original Assignee
Beijing Normal University
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 Normal University filed Critical Beijing Normal University
Priority to CN2009100840268A priority Critical patent/CN101552728B/zh
Publication of CN101552728A publication Critical patent/CN101552728A/zh
Application granted granted Critical
Publication of CN101552728B publication Critical patent/CN101552728B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种面向IPv6的路径MTU发现方法及系统,所述方法由源节点通过若干中间转发节点向目的节点发送报文,所述目的节点接收到所述报文后确定路径MTU并通告源节点,所述中间转发节点根据所接收到的报文获取出接口链路,并对待转发报文的长度进行判断,当待转发报文的长度大于出接口链路MTU值时,修改报文内容后再转发。本发明所提供的面向IPv6的路径MTU发现方法,在不丢包情况下,源节点一次探测就可得到路径MTU,提高了探测速度,并减少了用于探测的报文,减轻了网络负载。

Description

一种面向IPv6的路径MTU发现方法及系统
技术领域
本发明涉及互联网IP路由器结构设计领域,特别是涉及一种面向IPv6的路径MTU发现方法及系统。 
背景技术
Internet网络中,不同的链路会有一个对应的最大传输单元(Maximum Transmission Unit,MTU),该链路上承载的报文长度不能大于对应的MTU。国际网络通信协议第四版(Internet Protocal version 4,IPv4)的MTU机制规定,IP报文可以在传输路径上的中间节点上进行分片,最后所有的分片在到达目的地后进行重组。国际网络通信协议第六版(Internet Protocol 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、流媒体等。而且,带宽负载过重也是互联网面临的一个严峻考验。 
所以,在对现有网络设备较少改造的前提下,面对IPv6网络设计一种快速、轻负载的新型路径MTU发现机制,将对改善互联网状况具有非常重要的意义。 
发明内容
本发明的目的是提供一种面向IPv6的路径MTU发现方法,为达到上述目的,本发明的技术方案提供一种面向IPv6的路径MTU发现方法,所述方法由源节点通过若干中间转发节点向目的节点发送报文,所述目的节点接受到所述报文后确定路径MTU并通告源节点,所述中间转发节点根据所接收到的报文获取出接口链路,并对待转发报文的长度进行判断,当待转发报文的长度大于出接口链路MTU值时,修改报文内容及长度后再转发。 
其中,当待转发报文的长度大于出接口链路MTU值时,按照下述步骤修改报文内容: 
S1,判断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,提高了探测速度,并减少了用于探测的报文,减轻了网络负载。 
附图说明
图1是本发明的面向IPv6的路径MTU发现方法的流程示意图; 
图2是本发明实施例的面向IPv6的路径MTU发现方法的示意图; 
图3是本发明的面向IPv6的路径MTU发现方法的源节点处理流程示意图; 
图4是本发明的面向IPv6的路径MTU发现系统的结构示意图。 
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。 
如图1所示,本发明提供了一种面向IPv6的路径MTU发现方法,源节点通过若干中间转发节点向目的节点发送报文,所述目的节点接 收到所述报文后确定路径MTU并通告源节点,所述中间转发节点根据所接收到的报文获取出接口链路,并对待转发报文的长度进行判断,当待转发报文的长度大于出接口链路MTU值时,修改报文内容后再转发。 
源节点准备向某一目的节点发送IPv6报文时,先查找路由获得出接口,去往目的节点的路径MTU初始值则为此出接口的链路MTU,源节点按照该初始路径MTU发送报文;中间节点根据报文目的地址查找路由,获取出接口,其链路MTU值为M。 
当待转发报文的长度大于链路MTU值时,按照下述步骤修改报文内容:S1,判断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。 
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。 

Claims (8)

1.一种面向IPv6的路径MTU发现方法,所述方法由源节点通过若干中间转发节点向目的节点发送报文,所述目的节点接收到所述报文后确定路径MTU并通告源节点,其特征在于,所述中间转发节点根据所接收到的报文获取出接口链路,并对待转发报文的长度进行判断,当待转发报文的长度大于出接口链路MTU值时,修改报文内容后再转发,所述修改报文按照下述步骤:
S1,判断IP头中上层协议号是否为未知协议号255,如果否,则修改上层协议号为255,如果是,则转步骤S2;
S2,修改IP头中净荷长度为M-40,其中M为出接口链路MTU值;
S3,删去从IP头开始M字节之后的报文内容,使得IP包长度等于M。
2.如权利要求1所述的面向IPv6的路径MTU发现方法,其特征在于,当待转发报文的长度不大于出接口链路MTU值时,正常转发。
3.如权利要求1或2所述面向IPv6的路径MTU发现方法,其特征在于,源节点发送报文的路径MTU初始值为出接口的链路MTU值。
4.如权利要求3所述的面向IPv6的路径MTU发现方法,其特征在于,所述目的节点接收到报文,通过对上层协议号分析对报文进行处理:
如果IP头中上层协议号不是未知协议号255,则交给上层协议模块进行处理;
如果IP头中上层协议号是未知协议号255,则向源节点发送“参数错误”的ICMPv6报文,ICMPv6报文携带原始IP报文的IP头部发送。
5.如权利要求4所述的面向IPv6的路径MTU发现方法,其特征在于,源节点收到目的节点发来的ICMPv6报文后,分析内嵌原始IP报头,若内嵌IP报头的上层协议号为255,则修改本地到该内嵌IP头部中目的地址的路径MTU为内嵌IP头中的净荷长度加上40,获得该目的地址的路径MTU。
6.一种面向IPv6的路径MTU发现系统,所述系统包括:
源节点,通过若干中间转发节点向目的节点发送报文,
目的节点,接收到所述报文后确定路径MTU并通告源节点,
其特征在于,所述系统的中间转发节点包括:
判断子单元,所述中间转发节点根据所接收到的报文获取出接口链路后,判断子单元对待转发报文的长度进行判断;
修改子单元,当待转发报文的长度大于出接口链路MTU值时,修改报文内容后再转发;其中修改报文内容包括:
中间转发节点的判断子单元判断IP头中上层协议号是否为未知协议号255,如果否,则修改上层协议号为255;修改子单元修改IP头中净荷长度为M-40,其中M为出接口链路MTU值;删去从IP头开始M字节之后的报文内容,使得IP包长度等于M;如果是,则修改子单元修改IP头中净荷长度为M-40,其中M为出接口链路MTU值;删去从IP头开始M字节之后的报文内容,使得IP包长度等于M。
7.如权利要求6所述的面向IPv6的路径MTU发现系统,其特征在于,所述目的节点包括分析处理子单元,用于分析上层协议号并处理所接收到的报文:
如果IP头中上层协议号不是未知协议号255,则交给上层协议模块进行处理;
如果IP头中上层协议号是未知协议号255,则向源节点发送“参数错误”的ICMPv6报文,ICMPv6报文携带原始IP报文的IP头部发送。
8.如权利要求7所述的面向IPv6的路径MTU发现系统,其特征在于,源节点包括分析子单元和处理子单元,收到目的节点发来的ICMPv6报文后,由分析子单元分析内嵌原始IP报头,若内嵌IP报头的上层协议号为255,则由处理子单元修改本地到该内嵌IP头部中目的地址的路径MTU为内嵌IP头中的净荷长度加上40,获得该目的地址的路径MTU。
CN2009100840268A 2009-05-12 2009-05-12 一种面向IPv6的路径MTU发现方法及系统 Expired - Fee Related CN101552728B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100840268A CN101552728B (zh) 2009-05-12 2009-05-12 一种面向IPv6的路径MTU发现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100840268A CN101552728B (zh) 2009-05-12 2009-05-12 一种面向IPv6的路径MTU发现方法及系统

Publications (2)

Publication Number Publication Date
CN101552728A CN101552728A (zh) 2009-10-07
CN101552728B true CN101552728B (zh) 2012-05-23

Family

ID=41156730

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100840268A Expired - Fee Related CN101552728B (zh) 2009-05-12 2009-05-12 一种面向IPv6的路径MTU发现方法及系统

Country Status (1)

Country Link
CN (1) CN101552728B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103262606B (zh) * 2010-12-21 2018-10-12 瑞典爱立信有限公司 对gtp隧道中的ip分片的改进
US10638363B2 (en) 2018-04-04 2020-04-28 At&T Intellectual Property I, L.P. Legacy network maximum transmission unit isolation capability through deployment of a flexible maximum transmission unit packet core design
US10841834B2 (en) 2018-04-04 2020-11-17 At&T Intellectual Property I, L.P. Legacy network maximum transmission unit isolation capability through deployment of a flexible maximum transmission unit packet core design
CN109587087B (zh) * 2018-12-10 2020-12-29 杭州迪普科技股份有限公司 一种报文处理方法及系统
US11070483B2 (en) 2019-02-11 2021-07-20 Cisco Technology, Inc. Discovering and mitigating MTU/fragmentation issues in a computer network
CN111654354B (zh) * 2020-05-28 2023-08-08 北京小米移动软件有限公司 最大传输单元mtu的探测方法、装置及存储介质
CN117376272A (zh) * 2023-12-08 2024-01-09 广州通则康威科技股份有限公司 一种报文长度调整方法、装置、系统和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004075487A1 (en) * 2003-02-18 2004-09-02 Motorola Inc Communication or computing node and method of routing data
CN1536832A (zh) * 2003-04-04 2004-10-13 华为技术有限公司 在二层虚拟专用网络中处理超长报文的方法
CN1543104A (zh) * 2003-04-28 2004-11-03 华为技术有限公司 一种移动分组网络的数据传输方法
CN1647453A (zh) * 2002-03-29 2005-07-27 三星电子株式会社 用于在互联网协议网络上的路径最大传输单位发现的方法及其设备
CN1710880A (zh) * 2004-06-17 2005-12-21 国际商业机器公司 探索路径最大传输单元的方法和设备
CN1852221A (zh) * 2006-05-30 2006-10-25 杭州华为三康技术有限公司 表项快速收敛方法及依该表项实现报文快速转发方法
CN101132412A (zh) * 2007-09-26 2008-02-27 杭州华三通信技术有限公司 iSCSI系统中的报文长度协商方法、装置和系统
CN101217540A (zh) * 2008-01-04 2008-07-09 杭州华三通信技术有限公司 报文隧道分片的自适应调整方法、装置和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1647453A (zh) * 2002-03-29 2005-07-27 三星电子株式会社 用于在互联网协议网络上的路径最大传输单位发现的方法及其设备
WO2004075487A1 (en) * 2003-02-18 2004-09-02 Motorola Inc Communication or computing node and method of routing data
CN1536832A (zh) * 2003-04-04 2004-10-13 华为技术有限公司 在二层虚拟专用网络中处理超长报文的方法
CN1543104A (zh) * 2003-04-28 2004-11-03 华为技术有限公司 一种移动分组网络的数据传输方法
CN1710880A (zh) * 2004-06-17 2005-12-21 国际商业机器公司 探索路径最大传输单元的方法和设备
CN1852221A (zh) * 2006-05-30 2006-10-25 杭州华为三康技术有限公司 表项快速收敛方法及依该表项实现报文快速转发方法
CN101132412A (zh) * 2007-09-26 2008-02-27 杭州华三通信技术有限公司 iSCSI系统中的报文长度协商方法、装置和系统
CN101217540A (zh) * 2008-01-04 2008-07-09 杭州华三通信技术有限公司 报文隧道分片的自适应调整方法、装置和系统

Also Published As

Publication number Publication date
CN101552728A (zh) 2009-10-07

Similar Documents

Publication Publication Date Title
CN101552728B (zh) 一种面向IPv6的路径MTU发现方法及系统
CN102377640B (zh) 一种报文处理装置和报文处理方法、及预处理器
WO2015074324A1 (zh) 一种数据包快速转发方法及装置
CN102325076B (zh) 一种路径最大传输单元发现方法和节点
CN107925629B (zh) 一种IPv6网络中数据报文的发送方法及装置
CN101573927A (zh) 网络系统中的路径最大传输单元发现
CN102577238A (zh) 用于追踪多播流的方法和装置
CN102340451B (zh) 一种跟踪路由测试方法、系统、装置及设备
CN101640645B (zh) 报文传输方法和系统
CN101106518B (zh) 为中央处理器提供负载保护的拒绝服务方法
CN103873356B (zh) 基于家庭网关的应用识别方法、系统和家庭网关
US9515926B2 (en) Communication system, upper layer switch, control apparatus, switch control method, and program
CN101573913A (zh) 用于多播路由选择的方法和设备
WO2007079280A3 (en) Selective multicasting of sensor data for reliable delivery
CN101616078B (zh) 一种路径最大传输单元的发现方法、路由器及节点设备
CN104852855B (zh) 拥塞控制方法、装置及设备
CN108270602A (zh) 一种数据链路的检测方法、装置及系统
CN106550241A (zh) 视频业务识别系统及虚拟化部署方法
CN101640635A (zh) 一种6over4隧道中避免报文重组的方法及系统
CN101599948A (zh) 回声探测的方法、装置和系统
CN101331717B (zh) 分组网络中传送数据的方法和系统
CN101635676A (zh) 一种报文处理方法和一种网络设备
CN102769567A (zh) 一种多链接透明互联网络数据帧的转发方法和装置
US7796601B1 (en) Internet protocol data transfer over diverse paths
EP1835666B1 (en) Communication device, routing method, and program

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120523

Termination date: 20180512

CF01 Termination of patent right due to non-payment of annual fee