实现路径最大传输单元探测的方法及路由器的制作方法

文档序号:7768532阅读:253来源:国知局
专利名称:实现路径最大传输单元探测的方法及路由器的制作方法
技术领域
本发明涉及计算机技术,尤其涉及一种实现路径最大传输单元探测的方法及路由O背景技术
当前因特网协议族存在一个缺点,就是对一台主机来说缺乏发现任意一条路径的路径最大传输单元(Path MTU,PMTU)的标准机制。在当前网络中并非所有的路由器设备都支持PMTU探测(Path MTU Discovery, PMTUD)功能,要替换这些设备将是一个成本很大的工程,所以PMTU探测算法越来越引起人们的注意和研究。
在请求评议(RFC) 1191中详细分析了该问题的技术背景及解决方法,提到的探测算法包括递减法、递增法、经验参考表法。Nick Christenson提出了分层探测算法,该分层探测算法进一步提高了探测精度;之后,也有利用经验参考表改进的分层探测算法,但对于如何提高对经验参考值的精确定位没有深入的考虑。发明内容
为了解决该技术问题,本发明提供了一种实现路径最大传输单元探测的方法及路由器,以提高对经验参考值的精确定位。
本发明提供了一种实现路径最大传输单元探测的方法,该方法包括
根据经验参考表中经验参考值的引用次数确定探测空间;以及
根据上述探测空间确定PMTU值。
优选地,上述实现路径最大传输单元探测的方法可具有如下特点
上述根据经验参考表中经验参考值的引用次数确定探测空间包括
在经验参考表中选择引用计数最大的经验参考值作为PMTU初始值,并以上述 PMTU初始值作为报文长度发送报文;以及
若报文发送成功,则递增选择引用计数最大的经验参考值发送报文,直至报文发送失败;若报文发送失败,则递减选择引用计数最大的经验参考值发送报文,直至报文发送成功;
上述根据上述探测空间确定PMTU值包括
选择上述探测空间中引用计数最大的经验参考值为上述PMTU值。
优选地,上述实现路径最大传输单元探测的方法可具有如下特点
上述在经验参考表中选择引用计数最大的经验参考值作为PMTU初始值,并以上述PMTU初始值作为报文长度发送报文包括
从经验参考表中选择经验参考值M0,Ml,. . .,Mn构成经验参考值数组,对上述经验参考值进行排序,且初始化临界值Min = MO,Max = Mn ;从上述经验参考值数组中选择引用计数最大的经验参考值Mi作为PMTU初始值,以上述初始PMTU值作为报文长度上限封装报文,并发送封装后的报文;
上述若报文发送成功,则递增选择引用计数最大的经验参考值发送报文,直至报文发送失败;若报文发送失败,则递减选择引用计数最大的经验参考值发送报文,直至报文发送成功包括
若报文发送失败,且收到的来自网关的因特网控制消息协议(ICMP)报文中携带的上述网关的下一跳的最大传输单元(MTU)值为Mu,则寻找比Mu大的经验参考值中的最小经验参考值Mj作为新的Max,并在[M0,Mj]之间选择一个引用计数最大的经验参考值Mi 作为新的PMTU值;
若报文发送失败,且收到的来自网关的ICMP报文中未携带上述网关的下一跳的 MTU值,则直接赋值Max = Mi,并在[M0,Mi]之间选择一个引用计数最大的经验参考值Mi 作为新的PMTU值;
若报文发送成功,则在[Mi,Mn]之间选择一个引用计数最大的经验参考值作为 PMTU值,且赋值Min = Mi ;以及
选择新的PMTU值后,再次发送报文,再次更改Min和MAX的值,直至两者在经验参考值数组中是相邻的两个值为止。
优选地,上述实现路径最大传输单元探测的方法可具有如下特点
在上述根据上述探测空间确定PMTU值之后,上述方法还包括
如果上述PMTU值是经验参考表中的经验参考值,则上述经验参考值的引用计数累加一,否则,将该PMTU值加入到上述经验参考表中。
优选地,上述实现路径最大传输单元探测的方法可具有如下特点
上述方法还包括
在选择一个引用计数最大的经验参考值时,如果所选择的区间的经验参考值的引用计数都相同,则选择最大的经验参考值作为PMTU值。
本发明提供了一种路由器,上述路由器包括
空间确定模块,用于根据经验参考表中经验参考值的引用次数确定探测空间;以及
路径最大传输单元(PMTU)确定模块,用于根据上述探测空间确定PMTU值。
优选地,上述路由器可具有如下特点
上述空间确定模块包括
初始确定单元,用于在经验参考表中选择引用计数最大的经验参考值作为PMTU 初始值,并以上述PMTU初始值作为报文长度发送报文;以及
迭代确定单元,用于若报文发送成功,则递增选择引用计数最大的经验参考值发送报文,直至报文发送失败;若报文发送失败,则递减选择引用计数最大的经验参考值发送报文,直至报文发送成功;
上述路径最大传输单元(PMTU)确定模块,进一步用于选择上述探测空间中引用计数最大的经验参考值为上述PMTU值。
优选地,上述路由器还可具有如下特点
上述初始确定单元,进一步用于从经验参考表中选择经验参考值M0,Ml, ... , Mn 构成经验参考值数组,对上述经验参考值进行排序,且初始化临界值Min = MO, Max = Mn ; 从上述经验参考值数组中选择引用计数最大的经验参考值Mi作为PMTU初始值,以上述PMTU初始值作为报文长度上限封装报文,并发送封装后的报文;
上述迭代确定单元,进一步用于若报文发送失败,且收到的来自网关的因特网控制消息协议(ICMP)报文中携带的上述网关的下一跳的最大传输单元(MTU)值为Mu,则寻找比Mu大的经验参考值中的最小经验参考值Mj作为新的Max,并在[M0,Mj]之间选择一个引用计数最大的经验参考值Mi作为新的PMTU值;若报文发送失败,且收到的来自网关的ICMP报文中未携带上述网关的下一跳的MTU值,则直接赋值Max = Mi,并在[M0,Mi]之间选择一个引用计数最大的经验参考值Mi作为新的PMTU值;若报文发送成功,则在[Mi, Mn]之间选择一个引用计数最大的经验参考值作为PMTU值,且赋值Min = Mi ;以及选择新的PMTU值后,再次发送报文,再次更改Min和MAX的值,直至两者在经验参考值数组中是相邻的两个值为止。
优选地,上述路由器还可具有如下特点
上述路由器还包括
更新模块,用于在上述根据上述探测空间确定PMTU值之后,如果上述PMTU值是经验参考表中的经验参考值,则上述经验参考值的引用计数累加一,否则,将该PMTU值加入到上述经验参考表中。
优选地,上述路由器还可具有如下特点
上述迭代确定单元,还用于在选择一个引用计数最大的经验参考值时,如果所选择的区间的经验参考值的引用计数都相同,则选择最大的经验参考值作为PMTU值。
本发明的技术方案,提高了对经验参考值定位的精度,节省了逼近最佳PMTU的迭代步骤,达到了快速收敛的效果。


图1为本发明实现路径最大传输单元探测方法的流程图2为本发明确定探测空间的第一过程的示意图3为本发明确定探测空间的第二过程的示意图4为本发明确定探测空间的第三过程的示意图5为本发明确定探测空间的第四过程的示意图6为本发明路由器的结构示意图。
具体实施方式
下面结合附图对技术方案的实施作进一步地详细描述。
针对提高对经验参考值的精确定位问题,本发明提出了一种实现路径最大传输单元探测的方法,并将该方法应用到探测算法中去。该方法提出了经验参考值引用计数的概念,该方法不仅可以在分层探测算法中使用,也可以在递减法、递增法或是在基于经验参考值的其他算法中使用。
在基于经验参考值的各类算法中,必将面临选择一个经验参考值的问题,选择哪一个经验参考值,目前没有标准规定。引入经验参考值引用计数以后,选择经验参考值便有了依据。
如图1所示,为本发明实现路径最大传输单元探测方法的流程图,该方法包括
步骤101、根据经验参考表中经验参考值的引用次数确定探测空间;
目前经验参考表中只有各个RFC中所建议的一些经验参考值,并没有引用计数的概念;而本发明为每个经验参考值设定一个引用计数,用于统计每个经验参考值的使用次数;且可以利用该引用计数动态更新经验参考表中的经验参考值;其中,经验参考表可参见表1
表1经验参考表
权利要求
1.一种实现路径最大传输单元(PMTU)探测的方法,其特征在于,所述方法包括根据经验参考表中经验参考值的引用次数确定探测空间;以及根据所述探测空间确定PMTU值。
2.根据权利要求1所述的实现路径最大传输单元探测的方法,其特征在于所述根据经验参考表中经验参考值的引用次数确定探测空间包括在经验参考表中选择引用计数最大的经验参考值作为PMTU初始值,并以所述PMTU初始值作为报文长度发送报文;以及若报文发送成功,则递增选择引用计数最大的经验参考值发送报文,直至报文发送失败;若报文发送失败,则递减选择引用计数最大的经验参考值发送报文,直至报文发送成功;所述根据所述探测空间确定PMTU值包括选择所述探测空间中引用计数最大的经验参考值为所述PMTU值。
3.根据权利要求2所述的实现路径最大传输单元探测的方法,其特征在于,所述在经验参考表中选择引用计数最大的经验参考值作为PMTU初始值,并以所述PMTU初始值作为报文长度发送报文包括从经验参考表中选择经验参考值M0,Ml, ... , Mn构成经验参考值数组,对所述经验参考值进行排序,且初始化临界值Min = MO,Max = Mn ;从所述经验参考值数组中选择引用计数最大的经验参考值Mi作为PMTU初始值,以所述初始PMTU值作为报文长度上限封装报文,并发送封装后的报文;所述若报文发送成功,则递增选择引用计数最大的经验参考值发送报文,直至报文发送失败;若报文发送失败,则递减选择引用计数最大的经验参考值发送报文,直至报文发送成功包括若报文发送失败,且收到的来自网关的因特网控制消息协议(ICMP)报文中携带的所述网关的下一跳的最大传输单元(MTU)值为Mu,则寻找比Mu大的经验参考值中的最小经验参考值Mj作为新的Max,并在[M0,Mj]之间选择一个引用计数最大的经验参考值Mi作为新的PMTU值;若报文发送失败,且收到的来自网关的ICMP报文中未携带所述网关的下一跳的MTU 值,则直接赋值Max = Mi,并在[M0,Mi]之间选择一个引用计数最大的经验参考值Mi作为新的PMTU值;若报文发送成功,则在[Mi,Mn]之间选择一个引用计数最大的经验参考值作为PMTU 值,且赋值Min = Mi ;以及选择新的PMTU值后,再次发送报文,再次更改Min和MAX的值,直至两者在经验参考值数组中是相邻的两个值为止。
4.根据权利要求3所述的实现路径最大传输单元探测的方法,其特征在于,在所述根据所述探测空间确定PMTU值之后,所述方法还包括如果所述PMTU值是经验参考表中的经验参考值,则所述经验参考值的引用计数累加一,否则,将该PMTU值加入到所述经验参考表中。
5.根据权利要求3所述的实现路径最大传输单元探测的方法,其特征在于,所述方法还包括在选择一个引用计数最大的经验参考值时,如果所选择的区间的经验参考值的引用计数都相同,则选择最大的经验参考值作为PMTU值。
6.一种路由器,其特征在于,所述路由器包括空间确定模块,用于根据经验参考表中经验参考值的引用次数确定探测空间;以及路径最大传输单元(PMTU)确定模块,用于根据所述探测空间确定PMTU值。
7.根据权利要求6所述的路由器,其特征在于所述空间确定模块包括初始确定单元,用于在经验参考表中选择引用计数最大的经验参考值作为PMTU初始值,并以所述PMTU初始值作为报文长度发送报文;以及迭代确定单元,用于若报文发送成功,则递增选择引用计数最大的经验参考值发送报文,直至报文发送失败;若报文发送失败,则递减选择引用计数最大的经验参考值发送报文,直至报文发送成功;所述路径最大传输单元(PMTU)确定模块,进一步用于选择所述探测空间中引用计数最大的经验参考值为所述PMTU值。
8.根据权利要求6所述的路由器,其特征在于所述初始确定单元,进一步用于从经验参考表中选择经验参考值M0,Ml, ...,Mn构成经验参考值数组,对所述经验参考值进行排序,且初始化临界值Min = MO, Max = Mn ;从所述经验参考值数组中选择引用计数最大的经验参考值Mi作为PMTU初始值,以所述PMTU初始值作为报文长度上限封装报文,并发送封装后的报文;所述迭代确定单元,进一步用于若报文发送失败,且收到的来自网关的因特网控制消息协议(ICMP)报文中携带的所述网关的下一跳的最大传输单元(MTU)值为Mu,则寻找比 Mu大的经验参考值中的最小经验参考值Mj作为新的Max,并在[M0,Mj]之间选择一个引用计数最大的经验参考值Mi作为新的PMTU值;若报文发送失败,且收到的来自网关的ICMP 报文中未携带所述网关的下一跳的MTU值,则直接赋值Max = Mi,并在[M0,Mi]之间选择一个引用计数最大的经验参考值Mi作为新的PMTU值;若报文发送成功,则在[Mi,Mn]之间选择一个引用计数最大的经验参考值作为PMTU值,且赋值Min = Mi ;以及选择新的PMTU 值后,再次发送报文,再次更改Min和MAX的值,直至两者在经验参考值数组中是相邻的两个值为止。
9.根据权利要求8所述的路由器,其特征在于,所述路由器还包括更新模块,用于在所述根据所述探测空间确定PMTU值之后,如果所述PMTU值是经验参考表中的经验参考值,则所述经验参考值的引用计数累加一,否则,将该PMTU值加入到所述经验参考表中。
10.根据权利要求8所述的路由器,其特征在于所述迭代确定单元,还用于在选择一个引用计数最大的经验参考值时,如果所选择的区间的经验参考值的引用计数都相同,则选择最大的经验参考值作为PMTU值。
全文摘要
本发明提供了一种实现路径最大传输单元探测的方法及路由器,该方法包括根据经验参考表中经验参考值的引用次数确定探测空间;以及根据所述探测空间确定PMTU值。所述路由器包括空间确定模块,用于根据经验参考表中经验参考值的引用次数确定探测空间;以及路径最大传输单元(PMTU)确定模块,用于根据所述探测空间确定PMTU值。本发明的技术方案,提高了对经验参考值定位的精度,节省了逼近最佳PMTU的迭代步骤,达到了快速收敛的效果。
文档编号H04L12/26GK102546359SQ201010585548
公开日2012年7月4日 申请日期2010年12月10日 优先权日2010年12月10日
发明者邵长春 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1