CN102325076A - 一种路径最大传输单元发现方法和节点 - Google Patents
一种路径最大传输单元发现方法和节点 Download PDFInfo
- Publication number
- CN102325076A CN102325076A CN201110136938A CN201110136938A CN102325076A CN 102325076 A CN102325076 A CN 102325076A CN 201110136938 A CN201110136938 A CN 201110136938A CN 201110136938 A CN201110136938 A CN 201110136938A CN 102325076 A CN102325076 A CN 102325076A
- Authority
- CN
- China
- Prior art keywords
- pmtu
- message
- route
- mtu
- mtu value
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种PMTU发现方法,源节点为待发送报文查找是否存在对应的PMTU路由,如果不存在或者查找到的PMTU路由的MTU值无效,则建立或更新PMTU路由的MTU值为指定值,该指定值不大于系统最小的MTU,以该指定值对所述待发送报文进行分片处理,发送携带PMTU探测指示的报文;各中间节点接收到携带PMTU探测指示的报文时,转发报文,发送包过大报文至源节点,携带出接口的MTU;源节点接收各中间节点返回的包过大报文,根据其中携带的MTU值确定对应的PMTU路由的MTU值。本发明还提供一种节点。本发明解决了PMTU学习过程中数据报文丢包问题,减少了PMTU学习过程中的报文交互数量。
Description
技术领域
本发明涉及数据通信领域,特别涉及IPV6协议中路径最大传输单元(Path Maximum Transmission Unit,PMTU)发现方法和节点。
背景技术
随着IPv4地址的日益枯竭,IPv6网络的大量部署逐渐被提上日程,和IPv4协议栈相比,IPv6协议栈一个重要的进步就是支持路径最大传输单元(Path Maximum Transmission Unit,PMTU),也就是IPV6数据包从源端发出时,数据包的长度必须小于整个路径的最大传输单元(MaximumTransmission Unit,MTU),这样报文经过中间节点的时就不用分片,提高了网络设备的报文转发效率。PMTU的实现原理如图1所示,报文从源节点发出时,按照路由的MTU分片(路由默认MTU值就是出接口的MTU),在中间节点转发时,如果发现出接口MTU比报文长度小,则丢弃报文,并向源节点发送一个包过大的互联网控制报文协议第6版(Internet Control MessageProtocol Version 6,ICMPv6)差错报文,携带出接口的MTU值。源节点收到包过大报文后,如果不存在一条目的地址的主机路由,用发包的目的地址创建一条主机路由,路由的MTU值就是报文中携带的MTU值;如果存在这样一条目的地址的主机路由,比较一下MTU值,若MTU值变小,就直接修改路由的MTU值。经过几轮交互,就可以学习到整个路径的最小MTU,即PMTU,下一次再发报文时,就会根据PMTU进行分片,保证中间节点不分片。
目前IPv6协议栈PMTU功能的实现,一次发现可能需要经过多次报文交互才能完成,在有n个节点时,极限情况从第一个节点发一个报文到第n个节点,需要交互2*(n-2)个报文才能完成一次PMTU学习,其实就是中间节点都需要收到一个转发报文,回一个包过大的ICMPv6报文。这样当中间节点比较多时,一次学习时间就比较长,并且请求注解(Request ForComments,RFC)规定一次学习到的PMTU信息,有效时间只有10分钟,10分钟以后就会删除,以后再发包,又需要重新学习,又会出现一段时间内报文因为MTU问题转发丢包。所以目前的PMTU学习机制,在网络MTU逐跳递减的情况下,PMTU的学习收敛慢,并且在分布式设备上,整机PMTU收敛更慢(因为此时板间通信也多),这些问题给系统带来了额外的开销,浪费了系统的带宽。
同时网络中还有一种针对PMTU学习的攻击,通过伪造包过大报文,导致学习的PMTU错误,引起网络性能下降或者拒绝服务攻击。
发明内容
本发明提供一种路径最大传输单元发现方法和节点,改进目前IPV6协议中PMTU发现效率低下、带宽浪费以及容易被攻击的问题。
为了解决上述问题,本发明提供了一种路径最大传输单元发现方法,包括:
源节点为待发送报文查找是否存在对应的路径最大传输单元(PMTU)路由,如果不存在或者查找到的PMTU路由的最大传输单元(MTU)值无效,则建立或更新PMTU路由的MTU值为指定值,该指定值不大于系统最小的最大传输单元,以该指定值对所述待发送报文进行分片处理,发送携带PMTU探测指示的报文;
各中间节点接收到携带所述PMTU探测指示的报文时,转发所述报文,发送包过大报文至所述源节点,所述包过大报文中携带所述中间节点上查到的出接口的MTU;
源节点接收各中间节点返回的包过大报文,根据所述包过大报文中携带的MTU值确定对应的PMTU路由的MTU值。
进一步的,所述方法还包括,
判断所述待发送报文的长度是否小于该指定值,如果是,直接发送所述待发送报文;以及,所述源节点为所述待发送报文查找到对应的PMTU路由且该PMTU路由的MTU值有效,且所述待发送报文的长度小于所述PMTU路由的MTU值时,直接发送所述待发送报文。
进一步的,所述报文中通过如下方式携带PMTU探测指示:
在所述报文中携带逐跳选项头,该逐跳选项头中携带一选项,该选项携带PMTU探测指示,所述选项为路由告警(route alert)选项或新增选项。
进一步的,上述方法还可具有以下特点,
所述源节点未查找到对应的PMTU路由或者查找到的PMTU路由的MTU值无效时,还建立或更新与所述PMTU路由对应的PMTU缓存条目,设置该PMTU缓存条目的MTU值为所述源节点查到的出节点的MTU;
所述源节点根据所述包过大报文中携带的MTU值确定对应的PMTU路由的MTU值包括:
所述源节点接收到所述中间节点返回的包过大报文后,取出该包过大报文中的MTU值并查找对应的PMTU缓存条目,如果所述取出的MTU值小于所述PMTU缓存条目中的MTU值,则用所述取出的MTU值替换所述PMTU缓存条目中的MTU值,否则不处理;
所述源节点在处理完所有中间节点返回的包过大报文后,使用该PMTU缓存条目的MTU值更新对应的PMTU路由的MTU值,完成该PMTU路由的MTU值发现。
进一步的,上述方法还可具有以下特点,
所述源节点接收所述包过大报文后,如果未查找到对应的PMTU缓存条目,则丢弃该包过大报文。
进一步的,上述方法还可具有以下特点,
设定学习时间、有效时间和老化时间;
所述源节点发送携带PMTU探测指示的报文后,将对应的PMTU缓存条目设置为学习状态;
如果从学习状态开始的所述学习时间内,所述源节点完成该PMTU路由的MTU值发现,则将所述PMTU缓存条目的状态设置为有效状态,否则,将所述PMTU缓存条目的状态设置为老化状态;
从所述有效状态开始超过所述有效时间时,将所述PMTU缓存条目设置为老化状态;
从所述老化状态开始超过所述老化时间时,删除所述PMTU缓存条目和PMTU路由。
进一步的,上述方法还可具有以下特点,
所述源节点为待发送报文查找到对应的PMTU路由且该PMTU路由的MTU值有效,且所述待发送报文的长度大于等于所述PMTU路由的MTU值:
当所述PMTU路由对应的PMTU缓存条目为老化状态时,以所述PMTU路由的MTU值对报文进行分片处理,发送携带PMTU探测指示的报文,将对应的PMTU缓存条目设置为学习状态;
当所述PMTU路由对应的PMTU缓存条目为学习状态或有效状态时,以所述PMTU路由的MTU值对报文进行分片处理,发送报文。
本发明还提供一种节点,包括报文发送单元和报文接收单元,其中:
所述报文发送单元用于:在所述节点作为源节点时,为待发送报文查找是否存在对应的PMTU路由,如果不存在或者查找到的PMTU路由的MTU值无效,则建立或更新PMTU路由的MTU值为指定值,所述指定值不大于系统最小的最大传输单元,以所述指定值对报文进行分片处理,发送携带PMTU探测指示的报文;
所述报文接收单元用于:接收到各中间节点返回的包过大报文时,根据所述包过大报文中携带的MTU值确定对应的PMTU路由的MTU值。
进一步的,上述节点还可具有以下特点,
所述报文发送单元还用于:判断所述待发送报文的长度是否小于所述指定值,如果是,直接发送所述待发送报文;以及,在所述节点作为源节点时,当为待发送报文查找到对应的PMTU路由且该PMTU路由的MTU值有效,且所述待发送报文的长度小于所述PMTU路由的MTU值时,直接发送所述待发送报文。
进一步的,上述节点还可具有以下特点,
所述报文发送单元是用于通过如下方式携带所述PMTU探测指示:在所述报文中携带逐跳选项头,该逐跳选项头中携带一选项,该选项携带PMTU探测指示,所述选项为路由告警(route alert)选项或新增选项。
进一步的,上述节点还可具有以下特点,
所述报文发送单元还用于:未查找到对应的PMTU路由或者查找到的PMTU路由的MTU值无效时,建立或更新与所述PMTU路由对应的PMTU缓存条目,设置该PMTU缓存条目的MTU值为所述源节点查到的出节点的MTU;
所述报文接收单元是用于根据如下方式确定对应的PMTU路由的MTU值:
接收到所述中间节点返回的包过大报文后,取出该包过大报文中的MTU值并查找对应的PMTU缓存条目,如果所述取出的MTU值小于所述PMTU缓存条目中的MTU值,则用所述取出的MTU值替换所述PMTU缓存条目中的MTU值,否则不处理;
在处理完所有中间节点返回的包过大报文后,使用该PMTU缓存条目的MTU值更新对应的PMTU路由的MTU值,完成该PMTU路由的MTU值发现。
进一步的,上述节点还可具有以下特点,
所述报文接收单元接收所述包过大报文后,如果未查找到对应的PMTU缓存条目,则丢弃该包过大报文。
进一步的,上述节点还可具有以下特点,
所述报文发送单元还用于:设定学习时间、有效时间和老化时间;
发送携带PMTU探测指示的报文后,将对应的PMTU缓存条目设置为学习状态;
如果从学习状态开始的所述学习时间内,完成该PMTU路由的MTU值发现,则将所述PMTU缓存条目的状态设置为有效状态,否则,将所述PMTU缓存条目的状态设置为老化状态;
从所述有效状态开始超出所述有效时间时,将所述PMTU缓存条目设置为老化状态;
从所述老化状态开始超出所述老化时间时,删除所述PMTU缓存条目和PMTU路由;
当所述节点为源节点,为待发送报文查找到对应的PMTU路由且该PMTU路由的MTU值有效,且所述待发送报文的长度大于等于所述PMTU路由的MTU值:
当所述PMTU路由对应的PMTU缓存条目为老化状态时,以所述PMTU路由的MTU值对报文进行分片处理,发送携带PMTU探测指示的报文,将对应的PMTU缓存条目设置为学习状态;
当所述PMTU路由对应的PMTU缓存条目为学习状态或有效状态时,以所述PMTU路由的MTU值对报文进行分片处理,发送报文。
进一步的,上述节点还可具有以下特点,
所述节点还包括转发处理单元,所述转发处理单元用于:接收到携带PMTU探测指示的报文时,当该节点不是该报文的目的节点时,转发所述报文,发送包过大报文至该报文的源节点,所述包过大报文中携带该节点上查到的出接口的MTU。
本发明进行PMTU发现,解决了PMTU学习过程中数据报文丢包问题,减少了PMTU学习过程中的报文交互数量以及PMTU老化后再学习丢包问题,同时还解决了PMTU学习过程中的安全问题,提高了PMTU学习的效率和可靠性。
附图说明
图1是现有IPv6路径MTU发现原理图;
图2是逐跳头选项格式示意图;
图3是route alert选项格式示意图;
图4是本发明定义的一种选项格式示意图;
图5是PMTU缓存条目状态切换图;
图6是本发明PMTU发现示意图;
图7是源节点发包处理流程图;
图8是源节点收包处理流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明的核心思想是:源节点以不大于系统最小的最大传输单元的指定值发送报文,且报文中携带PMTU探测指示,中间节点收到携带PMTU探测指示的报文时,转发报文,并且反馈包过大报文至源节点,包过大报文中携带中间节点出接口的MTU,源节点根据包过大报文中的MTU确定PMTU路由的MTU值。
本发明提供一种路径最大传输单元发现方法,包括:
源节点为待发送报文查找是否存在对应的PMTU路由,如果不存在或者查找到的PMTU路由的MTU值无效,则建立或更新PMTU路由的MTU值为指定值,该指定值不大于系统最小的最大传输单元,以指定值对报文进行分片处理,发送携带PMTU探测指示的报文;
各中间节点接收到携带所述PMTU探测指示的报文时,转发所述报文,发送包过大报文至所述源节点,所述包过大报文中携带所述中间节点上查到的出接口的MTU;
源节点接收各中间节点返回的包过大报文,根据所述包过大报文中携带的MTU值确定对应的PMTU路由的MTU值。
其中,所述源节点为待发送报文查找到对应的PMTU路由且该PMTU路由的MTU值有效,且所述待发送报文的长度小于所述PMTU路由的MTU值时,直接发送所述待发送报文;另外,如果查找不到对应的PMTU路由或者查找到的PMTU路由的MTU值无效,且待发送报文的长度小于该指定值时,直接发送所述待发送报文。这样可以避免小报文时触发PMTU学习,减少浪费系统的路由和PMTU存储空间。
其中,通过如下方式携带PMTU探测指示:在所述报文中携带逐跳选项头,该逐跳选项头中携带一选项,该选项携带PMTU探测指示,所述选项为路由告警(route alert)选项或新增选项。发送的报文包括如下信息:基本报文头、包含PMTU探测指示的逐跳选项头,以及要发送的分片报文。
在IPv6基础协议栈中,定义了一种逐跳选项报文头,这种选项格式如附图2所示,其主要功能就是要求要求报文传输过程中的每一个节点都要进行检查。逐跳选项报文又可以携带一个或者多个TLV(Type-Length-Value,类型-长度-数据)编码的选项,其中很重要的一种选项是route alert选项,这个routealert选项就是要求对经过路由器,但是目的地址不是该路由器的报文进行检查处理,其格式如附图3所示,2个字节的数据(网络序),目前定义如下:
0表示报文是一个MLD(多播侦听者发现协议)报文
1表示报文是一个RSVP(资源预定协议)报文
2表示报文是一个活动网络协议报文
3-65535保留待分配
本发明中新定义一个route alert数据,使用3-65535中任一个,比如8,作为PMTU探测指示,指示报文为PMTU探测报文。
还可以使用新增的选项来携带PMTU探测指示,比如可以定义一个和route alert并列的选项,该选项也属于逐跳选项报文的选项,选项格式也是TLV方式,如图4所示,类型可以从目前保留的里面选一个,比如8等。
其中,所述源节点未查找到对应的PMTU路由或者查找到的PMTU路由的MTU值无效时,还建立或更新与所述PMTU路由对应的PMTU缓存条目,设置该PMTU缓存条目的MTU值为所述源节点查到的出节点的MTU;
所述源节点根据所述包过大报文中携带的MTU值确定对应的PMTU路由的MTU值包括:
所述源节点接收到所述中间节点返回的包过大报文后,取出该包过大报文中的MTU值并查找对应的PMTU缓存条目,如果所述取出的MTU值小于所述PMTU缓存条目中的MTU值,则用所述取出的MTU值替换所述PMTU缓存条目中的MTU值,否则不处理;
所述源节点在处理完所有中间节点的后,使用该PMTU缓存条目的MTU值更新对应的PMTU路由的MTU值,完成该PMTU路由的MTU值发现。
其中,源节点在接收到目的节点的反馈报文时,判断已对所有中间节点返回的包过大报文进行处理。其中,目的节点的反馈报文可以是包过大报文,也可以是其他指示报文,指示探测到达终端。其中,如果是包过大报文,可以在该报文中携带指示消息,通知源节点PMTU探测到达终点;也可以携带一指定的MTU值,比如0,表明该包过大报文是目的节点返回的,当然,MTU值也可以是任意值,源节点通过目的节点返回的报文中的源地址和该源节点探测的目的地址相同判断PMTU探测到达终点。
其中,所述源节点接收所述包过大报文后,如果未查找到对应的PMTU缓存条目,则丢弃该包过大报文。该方法可以防范非法报文攻击。因为本发明的PMTU缓存条目先于PMTU探测报文产生,如果是合法报文,根据返回的包过大报文一定可以找到PMTU缓存条目。找不到则可以认为是非法报文。
其中,还为PMTU缓存条目设定学习时间、有效时间和老化时间;
所述源节点发送携带PMTU探测指示的报文后,将对应的PMTU缓存条目设置为学习状态;
如果从学习状态开始的所述学习时间内,所述源节点完成该PMTU路由的MTU值发现,则将所述PMTU缓存条目的状态设置为有效状态,否则,将所述PMTU缓存条目的状态设置为老化状态;
从所述有效状态开始超过所述有效时间时,将所述PMTU缓存条目设置为老化状态;
从所述老化状态开始超过所述老化时间时,删除所述PMTU缓存条目和PMTU路由。各状态之间的转化如图5所示。
其中,所述源节点为待发送报文查找到对应的PMTU路由且该PMTU路由的MTU值有效,且所述待发送报文的长度大于等于所述PMTU路由的MTU值:
当所述PMTU路由对应的PMTU缓存条目为老化状态时,以所述PMTU路由的MTU值对报文进行分片处理,发送携带PMTU探测指示的报文,将对应的PMTU缓存条目设置为学习状态;
当所述PMTU路由对应的PMTU缓存条目为学习状态或有效状态时,以所述PMTU路由的MTU值对报文进行分片处理,发送报文。
如图6所示,为本发明PMTU发现的一示意图。
以三个中间节点为例,包括:
源节点在不存在或者查找到的PMTU路由的MTU值无效时,以指定值对报文进行分片处理,发送报文,报文中携带PMTU探测指示,本实施例中,指定值为系统最小的最大传输单元1280;
中间节点R1接收到该携带PMTU探测指示的报文时,转发报文,返回包过大报文给源节点,包过大报文中携带出接口MTU值1450;
中间节点R2接收到R1转发的携带PMTU探测指示的报文时,转发报文,返回包过大报文给源节点,包过大报文中携带出接口MTU值1400;
中间节点R3接收到R2转发的携带PMTU探测指示的报文时,转发报文,返回包过大报文给源节点,包过大报文中携带出接口MTU值1300;
目的节点接收到R3转发的携带PMTU探测指示的报文时,处理报文,返回包过大报文给源节点,携带MTU值=0;
源节点对各包过大报文进行处理,获得PMTU路由的MTU值为1300。
本发明提供一种PMTU发现方法,包括:
步骤一:源节点进行报文发送;
如图7所示,包括:
源节点向外发IPv6报文时,先查路由,查到PMTU路由且该PMTU路由的MTU值有效,即系统最小的MTU<=路由MTU<=源节点出接口MTU,取该PMTU路由的MTU值为分片最大传输单元(简称FMTU);判断待发送报文长度是否小于FMTU,如果是,直接发送报文,否则,根据FMTU进行分片发送;
如果未查找到对应的PMTU路由,则以指定值为FMTU,本实施例中以系统最小的MTU值1280为指定值;判断待发送报文长度是否小于FMTU,如果是,直接发送报文,否则,产生PMTU路由及PMTU缓存条目,将PMTU路由的MTU值设置为所述指定值,将PMTU缓存条目的MTU值设置为源节点出接口的MTU值,构造PMTU探测报文,按照FMTU进行分片发送,并设置PMTU缓存条目的状态为学习状态;
如果查找到对应的PMTU路由但该PMTU路由的MTU值无效,则以指定值为FMTU,本实施例中以系统最小的MTU值1280为指定值;判断待发送报文长度是否小于FMTU,如果是,直接发送报文,否则,更新PMTU路由及PMTU缓存条目,将PMTU路由的MTU值设置为所述指定值,将PMTU缓存条目的MTU值设置为源节点出接口的MTU值,构造PMTU探测报文,按照FMTU进行分片发送;将PMTU缓存条目状态设置为学习状态。
步骤二:中间节点收到报文,判断报文是否携带PMTU探测指示,如果是,则转发报文,再给源节点回一个ICMPv6的包过大报文,包过大报文里面返回的MTU为该中间节点上查到的出接口MTU,即报文转发出接口的MTU值;否则,按照正常的流程处理,转发或者本地处理。
其中,根据如下方式判断是否携带PMTU探测指示:
在报文转发的过程中,中间节点发现IPv6报文携带逐跳选项头,则把报文送给IPv6协议栈处理。IPv6协议栈解析逐跳选项头,进一步判断是否带route alert选项,带了再判断其route alert选项是不是定义的PMTU学习的类型,如果是,则报文携带了PMTU探测指示。当然,如果使用新增选项携带PMTU指示,则判断报文中是否携带该新增选项。
步骤三:目的节点收到携带PMTU探测指示的报文后,处理和中间节点类似,不同的是,此时不再转发报文,且返回给源节点的ICMPv6的包过大报文中携带的MTU值为0。
步骤四:源节点接收包过大报文,根据包过大报文中的MTU值确定PMTU路由。
如图8所示,包括:
源节点收到包过大报文,取出包过大报文中的MTU值,根据产生该包过大报文的原始报文的目的地址查找PMTU缓存条目,如果找不到则认为是攻击报文,丢弃该报文。
如果找到对应的PMTU缓存条目,且包过大报文中取出的MTU不为0(表明是中间节点返回的包过大报文),并且PMTU缓存条目学习状态没有超时,则判断取出的MTU和PMTU缓存条目中的MTU大小,如果取出的MTU小于PMTU缓存条目中的MTU,则用取出的MTU替换PMTU缓存条目中的MTU,否则不处理;如果该包过大报文中取出的MTU为0(表明是目的节点返回的包过大报文,探测已到终点),用该PMTU缓存条目的MTU更新对应的PMTU路由的MTU,并把PMTU缓存条目状态设置为有效状态,完成PMTU发现。
步骤五:源节点学习到PMTU后,再发送报文时就根据学习到的PMTU发包。
PMTU有效时间到,PMTU缓存条目进入老化状态;以及,如果PMTU缓存条目学习状态超时,还没有收到目的节点返回的反馈报文(比如,没有收到MTU为0的包过大报文),则还没有学习到PMTU,PMTU缓存条目进入老化状态;
进入老化状态后,如果继续有流发送,根据FMTU发一次携带PMTU探测指示的报文,PMTU缓存条目进入学习状态,重复上面的PMTU学习过程;
老化状态超时,说明老化这段时间没有报文发送,则删除PMTU缓存条目和对应的PMTU路由。可使用老化定时器进行定时。
本发明进行PMTU发现,解决了PMTU学习过程中数据报文丢包问题,减少了PMTU学习过程中的报文交互数量以及PMTU老化后再学习丢包问题,同时还解决了PMTU学习过程中的安全问题,提高了PMTU学习的效率和可靠性。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
Claims (14)
1.一种路径最大传输单元发现方法,其特征在于,包括:
源节点为待发送报文查找是否存在对应的路径最大传输单元(PMTU)路由,如果不存在或者查找到的PMTU路由的最大传输单元(MTU)值无效,则建立或更新PMTU路由的MTU值为指定值,该指定值不大于系统最小的最大传输单元,以该指定值对所述待发送报文进行分片处理,发送携带PMTU探测指示的报文;
各中间节点接收到携带所述PMTU探测指示的报文时,转发所述报文,发送包过大报文至所述源节点,所述包过大报文中携带所述中间节点上查到的出接口的MTU;
源节点接收各中间节点返回的包过大报文,根据所述包过大报文中携带的MTU值确定对应的PMTU路由的MTU值。
2.如权利要求1所述的方法,其特征在于,所述方法还包括,
判断所述待发送报文的长度是否小于该指定值,如果是,直接发送所述待发送报文;以及,所述源节点为所述待发送报文查找到对应的PMTU路由且该PMTU路由的MTU值有效,且所述待发送报文的长度小于所述PMTU路由的MTU值时,直接发送所述待发送报文。
3.如权利要求1所述的方法,其特征在于,所述报文中通过如下方式携带PMTU探测指示:
在所述报文中携带逐跳选项头,该逐跳选项头中携带一选项,该选项携带PMTU探测指示,所述选项为路由告警(route alert)选项或新增选项。
4.如权利要求1所述的方法,其特征在于,
所述源节点未查找到对应的PMTU路由或者查找到的PMTU路由的MTU值无效时,还建立或更新与所述PMTU路由对应的PMTU缓存条目,设置该PMTU缓存条目的MTU值为所述源节点查到的出节点的MTU;
所述源节点根据所述包过大报文中携带的MTU值确定对应的PMTU路由的MTU值包括:
所述源节点接收到所述中间节点返回的包过大报文后,取出该包过大报文中的MTU值并查找对应的PMTU缓存条目,如果所述取出的MTU值小于所述PMTU缓存条目中的MTU值,则用所述取出的MTU值替换所述PMTU缓存条目中的MTU值,否则不处理;
所述源节点在处理完所有中间节点返回的包过大报文后,使用该PMTU缓存条目的MTU值更新对应的PMTU路由的MTU值,完成该PMTU路由的MTU值发现。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
所述源节点接收所述包过大报文后,如果未查找到对应的PMTU缓存条目,则丢弃该包过大报文。
6.如权利要求4所述的方法,其特征在于,所述方法还包括:
设定学习时间、有效时间和老化时间;
所述源节点发送携带PMTU探测指示的报文后,将对应的PMTU缓存条目设置为学习状态;
如果从学习状态开始的所述学习时间内,所述源节点完成该PMTU路由的MTU值发现,则将所述PMTU缓存条目的状态设置为有效状态,否则,将所述PMTU缓存条目的状态设置为老化状态;
从所述有效状态开始超过所述有效时间时,将所述PMTU缓存条目设置为老化状态;
从所述老化状态开始超过所述老化时间时,删除所述PMTU缓存条目和PMTU路由。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
所述源节点为待发送报文查找到对应的PMTU路由且该PMTU路由的MTU值有效,且所述待发送报文的长度大于等于所述PMTU路由的MTU值:
当所述PMTU路由对应的PMTU缓存条目为老化状态时,以所述PMTU路由的MTU值对报文进行分片处理,发送携带PMTU探测指示的报文,将对应的PMTU缓存条目设置为学习状态;
当所述PMTU路由对应的PMTU缓存条目为学习状态或有效状态时,以所述PMTU路由的MTU值对报文进行分片处理,发送报文。
8.一种节点,其特征在于,包括报文发送单元和报文接收单元,其中:
所述报文发送单元用于:在所述节点作为源节点时,为待发送报文查找是否存在对应的PMTU路由,如果不存在或者查找到的PMTU路由的MTU值无效,则建立或更新PMTU路由的MTU值为指定值,所述指定值不大于系统最小的最大传输单元,以所述指定值对报文进行分片处理,发送携带PMTU探测指示的报文;
所述报文接收单元用于:接收到各中间节点返回的包过大报文时,根据所述包过大报文中携带的MTU值确定对应的PMTU路由的MTU值。
9.如权利要求8所述的节点,其特征在于,
所述报文发送单元还用于:判断所述待发送报文的长度是否小于所述指定值,如果是,直接发送所述待发送报文;以及,在所述节点作为源节点时,当为待发送报文查找到对应的PMTU路由且该PMTU路由的MTU值有效,且所述待发送报文的长度小于所述PMTU路由的MTU值时,直接发送所述待发送报文。
10.如权利要求8所述的节点,其特征在于,
所述报文发送单元是用于通过如下方式携带所述PMTU探测指示:在所述报文中携带逐跳选项头,该逐跳选项头中携带一选项,该选项携带PMTU探测指示,所述选项为路由告警(route alert)选项或新增选项。
11.如权利要求8所述的节点,其特征在于,
所述报文发送单元还用于:未查找到对应的PMTU路由或者查找到的PMTU路由的MTU值无效时,建立或更新与所述PMTU路由对应的PMTU缓存条目,设置该PMTU缓存条目的MTU值为所述源节点查到的出节点的MTU;
所述报文接收单元是用于根据如下方式确定对应的PMTU路由的MTU值:
接收到所述中间节点返回的包过大报文后,取出该包过大报文中的MTU值并查找对应的PMTU缓存条目,如果所述取出的MTU值小于所述PMTU缓存条目中的MTU值,则用所述取出的MTU值替换所述PMTU缓存条目中的MTU值,否则不处理;
在处理完所有中间节点返回的包过大报文后,使用该PMTU缓存条目的MTU值更新对应的PMTU路由的MTU值,完成该PMTU路由的MTU值发现。
12.如权利要求11所述的节点,其特征在于,
所述报文接收单元接收所述包过大报文后,如果未查找到对应的PMTU缓存条目,则丢弃该包过大报文。
13.如权利要求11所述的节点,其特征在于,
所述报文发送单元还用于:设定学习时间、有效时间和老化时间;
发送携带PMTU探测指示的报文后,将对应的PMTU缓存条目设置为学习状态;
如果从学习状态开始的所述学习时间内,完成该PMTU路由的MTU值发现,则将所述PMTU缓存条目的状态设置为有效状态,否则,将所述PMTU缓存条目的状态设置为老化状态;
从所述有效状态开始超出所述有效时间时,将所述PMTU缓存条目设置为老化状态;
从所述老化状态开始超出所述老化时间时,删除所述PMTU缓存条目和PMTU路由;
当所述节点为源节点,为待发送报文查找到对应的PMTU路由且该PMTU路由的MTU值有效,且所述待发送报文的长度大于等于所述PMTU路由的MTU值:
当所述PMTU路由对应的PMTU缓存条目为老化状态时,以所述PMTU路由的MTU值对报文进行分片处理,发送携带PMTU探测指示的报文,将对应的PMTU缓存条目设置为学习状态;
当所述PMTU路由对应的PMTU缓存条目为学习状态或有效状态时,以所述PMTU路由的MTU值对报文进行分片处理,发送报文。
14.如权利要求8所述的节点,其特征在于,所述节点还包括转发处理单元,所述转发处理单元用于:接收到携带PMTU探测指示的报文时,当该节点不是该报文的目的节点时,转发所述报文,发送包过大报文至该报文的源节点,所述包过大报文中携带该节点上查到的出接口的MTU。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110136938.2A CN102325076B (zh) | 2011-05-24 | 2011-05-24 | 一种路径最大传输单元发现方法和节点 |
PCT/CN2012/072519 WO2012159481A1 (zh) | 2011-05-24 | 2012-03-19 | 一种路径最大传输单元发现方法和节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110136938.2A CN102325076B (zh) | 2011-05-24 | 2011-05-24 | 一种路径最大传输单元发现方法和节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102325076A true CN102325076A (zh) | 2012-01-18 |
CN102325076B CN102325076B (zh) | 2017-04-12 |
Family
ID=45452749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110136938.2A Active CN102325076B (zh) | 2011-05-24 | 2011-05-24 | 一种路径最大传输单元发现方法和节点 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102325076B (zh) |
WO (1) | WO2012159481A1 (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594810A (zh) * | 2012-02-08 | 2012-07-18 | 神州数码网络(北京)有限公司 | 一种IPv6网络防止PMTU攻击的方法和装置 |
WO2012159481A1 (zh) * | 2011-05-24 | 2012-11-29 | 中兴通讯股份有限公司 | 一种路径最大传输单元发现方法和节点 |
CN103475596A (zh) * | 2013-08-30 | 2013-12-25 | 广州市动景计算机科技有限公司 | 基于mtu值的中间件与移动终端的数据传输方法及系统 |
CN103688508A (zh) * | 2013-06-26 | 2014-03-26 | 华为技术有限公司 | 报文识别方法和防护设备 |
CN104348785A (zh) * | 2013-07-29 | 2015-02-11 | 中国电信股份有限公司 | IPv6网中防止主机PMTU攻击的方法、装置与系统 |
CN102821051B (zh) * | 2012-08-21 | 2015-11-18 | 神州数码网络(北京)有限公司 | 通用路由封装隧道中路径最大传输单元更改方法 |
WO2017035763A1 (zh) * | 2015-08-31 | 2017-03-09 | 华为技术有限公司 | 一种IPv6网络中数据报文的发送方法及装置 |
CN106533969A (zh) * | 2016-11-17 | 2017-03-22 | 东软集团股份有限公司 | 一种最大传输单元值设置方法及装置 |
CN108965122A (zh) * | 2017-05-19 | 2018-12-07 | 中兴通讯股份有限公司 | 路由选路方法、设备及计算机可读存储介质 |
CN109873763A (zh) * | 2017-12-05 | 2019-06-11 | 北京华为数字技术有限公司 | 一种通信方法及设备 |
CN112333094A (zh) * | 2020-11-27 | 2021-02-05 | 迈普通信技术股份有限公司 | 数据传输处理方法、装置、网络设备及可读存储介质 |
CN113890858A (zh) * | 2021-09-29 | 2022-01-04 | 杭州迪普科技股份有限公司 | Pmtu的探测方法及装置 |
EP4040744A4 (en) * | 2019-11-30 | 2022-11-16 | Huawei Technologies Co., Ltd. | METHOD OF CREATING A DATA TRANSFER TABLE ENTRY AND RELATED DEVICE |
CN116192768A (zh) * | 2023-03-06 | 2023-05-30 | 安超云软件有限公司 | 一种最大传输单元的确定方法、装置、设备以及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244782A (zh) * | 2021-08-27 | 2022-03-25 | 新华三信息安全技术有限公司 | 路径最大传输单元Path MTU值调整方法及装置 |
CN115842732B (zh) * | 2023-02-13 | 2023-05-23 | 北京天维信通科技有限公司 | 分布式全路径探测mtu的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100459576C (zh) * | 2005-08-05 | 2009-02-04 | 华为技术有限公司 | 一种探测路径最大传输单元的方法 |
US20090201828A1 (en) * | 2002-10-30 | 2009-08-13 | Allen Samuels | Method of determining path maximum transmission unit |
US20100322249A1 (en) * | 2009-06-23 | 2010-12-23 | Juniper Networks, Inc. | Discovering path maximum transmission unit size |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7995478B2 (en) * | 2007-05-30 | 2011-08-09 | Sony Computer Entertainment Inc. | Network communication with path MTU size discovery |
CN101616078B (zh) * | 2009-07-16 | 2011-09-28 | 杭州华三通信技术有限公司 | 一种路径最大传输单元的发现方法、路由器及节点设备 |
CN102325076B (zh) * | 2011-05-24 | 2017-04-12 | 中兴通讯股份有限公司 | 一种路径最大传输单元发现方法和节点 |
-
2011
- 2011-05-24 CN CN201110136938.2A patent/CN102325076B/zh active Active
-
2012
- 2012-03-19 WO PCT/CN2012/072519 patent/WO2012159481A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090201828A1 (en) * | 2002-10-30 | 2009-08-13 | Allen Samuels | Method of determining path maximum transmission unit |
CN100459576C (zh) * | 2005-08-05 | 2009-02-04 | 华为技术有限公司 | 一种探测路径最大传输单元的方法 |
US20100322249A1 (en) * | 2009-06-23 | 2010-12-23 | Juniper Networks, Inc. | Discovering path maximum transmission unit size |
CN101931588A (zh) * | 2009-06-23 | 2010-12-29 | 丛林网络公司 | 发现路径最大传输单元尺寸 |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012159481A1 (zh) * | 2011-05-24 | 2012-11-29 | 中兴通讯股份有限公司 | 一种路径最大传输单元发现方法和节点 |
CN102594810A (zh) * | 2012-02-08 | 2012-07-18 | 神州数码网络(北京)有限公司 | 一种IPv6网络防止PMTU攻击的方法和装置 |
CN102594810B (zh) * | 2012-02-08 | 2016-03-30 | 神州数码网络(北京)有限公司 | 一种IPv6网络防止PMTU攻击的方法和装置 |
CN102821051B (zh) * | 2012-08-21 | 2015-11-18 | 神州数码网络(北京)有限公司 | 通用路由封装隧道中路径最大传输单元更改方法 |
US9912643B2 (en) | 2013-06-26 | 2018-03-06 | Huawei Technologies Co., Ltd. | Attack defense processing method and protection device |
CN103688508A (zh) * | 2013-06-26 | 2014-03-26 | 华为技术有限公司 | 报文识别方法和防护设备 |
CN103688508B (zh) * | 2013-06-26 | 2016-07-06 | 华为技术有限公司 | 报文识别方法和防护设备 |
CN104348785A (zh) * | 2013-07-29 | 2015-02-11 | 中国电信股份有限公司 | IPv6网中防止主机PMTU攻击的方法、装置与系统 |
CN104348785B (zh) * | 2013-07-29 | 2018-06-05 | 中国电信股份有限公司 | IPv6网中防止主机PMTU攻击的方法、装置与系统 |
CN103475596B (zh) * | 2013-08-30 | 2016-08-17 | 广州市动景计算机科技有限公司 | 基于mtu值的中间件与移动终端的数据传输方法及系统 |
CN103475596A (zh) * | 2013-08-30 | 2013-12-25 | 广州市动景计算机科技有限公司 | 基于mtu值的中间件与移动终端的数据传输方法及系统 |
WO2017035763A1 (zh) * | 2015-08-31 | 2017-03-09 | 华为技术有限公司 | 一种IPv6网络中数据报文的发送方法及装置 |
CN107925629A (zh) * | 2015-08-31 | 2018-04-17 | 华为技术有限公司 | 一种IPv6网络中数据报文的发送方法及装置 |
CN113411260A (zh) * | 2015-08-31 | 2021-09-17 | 华为技术有限公司 | 一种IPv6网络中数据报文的发送方法及装置 |
US11477106B2 (en) | 2015-08-31 | 2022-10-18 | Huawei Technologies Co., Ltd. | Data packet sending method and apparatus in IPV6 network |
US10541899B2 (en) | 2015-08-31 | 2020-01-21 | Huawei Technologies Co., Ltd. | Data packet sending method and apparatus in IPv6 network |
CN106533969A (zh) * | 2016-11-17 | 2017-03-22 | 东软集团股份有限公司 | 一种最大传输单元值设置方法及装置 |
CN106533969B (zh) * | 2016-11-17 | 2020-05-08 | 东软集团股份有限公司 | 一种最大传输单元值设置方法及装置 |
CN108965122A (zh) * | 2017-05-19 | 2018-12-07 | 中兴通讯股份有限公司 | 路由选路方法、设备及计算机可读存储介质 |
CN108965122B (zh) * | 2017-05-19 | 2022-03-11 | 中兴通讯股份有限公司 | 路由选路方法、设备及计算机可读存储介质 |
CN109873763B (zh) * | 2017-12-05 | 2021-12-03 | 北京华为数字技术有限公司 | 一种通信方法及设备 |
CN109873763A (zh) * | 2017-12-05 | 2019-06-11 | 北京华为数字技术有限公司 | 一种通信方法及设备 |
EP4040744A4 (en) * | 2019-11-30 | 2022-11-16 | Huawei Technologies Co., Ltd. | METHOD OF CREATING A DATA TRANSFER TABLE ENTRY AND RELATED DEVICE |
US11929913B2 (en) | 2019-11-30 | 2024-03-12 | Huawei Technologies Co., Ltd. | Method for creating data transmission entry and related device |
CN112333094A (zh) * | 2020-11-27 | 2021-02-05 | 迈普通信技术股份有限公司 | 数据传输处理方法、装置、网络设备及可读存储介质 |
CN112333094B (zh) * | 2020-11-27 | 2022-10-18 | 迈普通信技术股份有限公司 | 数据传输处理方法、装置、网络设备及可读存储介质 |
CN113890858A (zh) * | 2021-09-29 | 2022-01-04 | 杭州迪普科技股份有限公司 | Pmtu的探测方法及装置 |
CN113890858B (zh) * | 2021-09-29 | 2023-10-20 | 杭州迪普科技股份有限公司 | Pmtu的探测方法及装置 |
CN116192768A (zh) * | 2023-03-06 | 2023-05-30 | 安超云软件有限公司 | 一种最大传输单元的确定方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102325076B (zh) | 2017-04-12 |
WO2012159481A1 (zh) | 2012-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102325076A (zh) | 一种路径最大传输单元发现方法和节点 | |
US8751669B2 (en) | Method and arrangement to maintain a TCP connection | |
KR100453056B1 (ko) | 동적 ip 네트워크 상에서의 pmtu 변경 방법 및 그장치 | |
EP0836780B1 (en) | Network addressing arrangement for backward compatible routing of an expanded address space | |
CN113242177B (zh) | 多路径并发传输数据的方法、装置、存储介质及电子设备 | |
KR101961049B1 (ko) | 타임 슬롯화 채널 홉핑 네트워크에서의 효율적인 중앙 집중식 자원 및 스케줄 관리 | |
US9414297B2 (en) | Method and network node for routing data packets in communication networks | |
JP2009507422A (ja) | 媒体アクセス制御アーキテクチャ | |
US11245612B2 (en) | Node and a method performed by the node operable in a mesh communication network for routing a received packet towards a destination | |
KR20030078590A (ko) | Ip 네트워크 상에서의 경로 mtu 탐색 방법 및 그 장치 | |
TWI499327B (zh) | 於包含無電池群蜂裝置之網路中通信的方法及其網路與裝置 | |
RU2617717C2 (ru) | Устройство и способ для планирования услуги адаптивного предоставления и опроса в системе широкополосного беспроводного доступа | |
JP4385834B2 (ja) | ルーティング制御方法およびルータ装置 | |
US10389619B2 (en) | Wireless bypass of next-hop device in source route path | |
JP2004328749A (ja) | モバイルアドホックネットワーク環境でのデータパケットの再転送のための装置及び方法 | |
Sun et al. | The Internet underwater: An IP-compatible protocol stack for commercial undersea modems | |
WO2012159461A1 (zh) | 一种二层路径最大传输单元发现方法和节点 | |
US20050259671A1 (en) | Information processing apparatus and method for wireless network | |
CN110881006B (zh) | 发送报文的方法、网络设备及计算机存储介质 | |
CN111740905B (zh) | 一种无线自组网环境下实现可靠通信链路的路由方法 | |
Papadopoulos et al. | RFC 4944: per-hop fragmentation and reassembly issues | |
JP7447263B2 (ja) | ネットワーク内のネットワーク要素間でパケットを送信/受信するためのネットワーク構造及び方法 | |
Papadopoulos et al. | Updates on RFC 4944: Fragment forwarding and recovery | |
WO2013114465A1 (ja) | 無線マルチホップ通信装置及び通信制御方法 | |
Adhikari | Performance Analysis of protocols RIP & EIGRP |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |