买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:中兴通讯股份有限公司
摘要:本发明公开了一种获取设备接口最大接收单元MRU值的方法,包括:虚链源端设备向虚拟链路上自身的下一跳设备发送生存时间TTL为1的用户数据报协议UDP报文;其中,UDP报文的目的互联网协议IP地址为虚链邻居的IP地址;当发送端接收到因特网控制报文协议ICMP超时差错报文时,保存ICMP超时差错报文中的未使用字段MRU值,并继续向虚拟链路上自身的下一跳设备发送TTL比上一次发送的UDP报文的TTL大1的UDP报文。通过本发明的方案,虚链源端设备采用UDP报文获取到虚拟链路上其他设备接收接口的MRU值,实现了MTU值和MRU值之间的协商。
主权项:一种获取设备接口最大接收单元MRU值的方法,其特征在于,包括:虚链源端设备向虚拟链路上自身的下一跳设备发送生存时间TTL为1的用户数据报协议UDP报文;其中,UDP报文的目的互联网协议IP地址为虚链邻居的IP地址;当虚链源端设备接收到因特网控制报文协议ICMP超时差错报文时,保存ICMP超时差错报文中的未使用字段MRU值,并继续向虚拟链路上自身的下一跳设备发送TTL比上一次发送的UDP报文的TTL大1的UDP报文。
全文数据:_种获取设备接口MRU值的方法和装置技术领域[0001]本发明涉及动态路由技术,尤指一种获取设备接口最大接收单元(MRU,MaximumReceiveUnit值的方法和装置。背景技术[0002]动态路由协议主要分为两种,一种是距离矢量路由算法,一种是链路状态路由算法。距离矢量路由算法包括路由信息协议(RIP,RoutingInformationProtocol、边界网关协议(BGP,BorderGatewayProtocol;链路状态路由算法包括开放式最短路径优先(0SPF,OpenShortestPathFirst、中间系统一中间系统(ISIS,IntermediateSystem-to-IntermediateSystem。在距离矢量路由算法中,每一台路由器维护一张表,表中列举了当前已知的自身到每个目的地的最佳路径,这些表通过邻居之间的相互交换信息而不断被更新,最终每台路由器都有到达每个目的地的最佳路径。[0003]由于距离矢量路由算法存在一定的缺点,比如当网络拓扑结构发生变化后距离矢量路由算法需要太长时间才能收敛到状态,由此逐渐出现了链路状态路由算法。在链路状态路由算法中,通过发送和接收HELLO报文来发现邻居,邻居之间进行链路状态数据库LSDB,LinkStateDatabase的同步,LSDB同步完成后本地路由器利用LSDB来构建最短路径优先(SPF,ShortestPathFirst树,最终计算出自身到达每一个目的地址的最佳路径。[0004]其中,OSPF协议既可以在直连设备之间建立邻居关系,也可以跨越多台设备在非直连设备之间建立邻居关系,即虚链邻居。图1为虚链邻居的示意图。如图1所示,路由器1和路由器3之间为虚链邻居。[0005]在邻居之间进行LSDB的同步之前,发送端和接收端之间会通过数据库摘要(DD,DatabaseDescription报文来进行最大传输单元(MTU,MaximumTransmissionUnit值和最大接收单元(MRU,MaximumReceiveUnit值的协商。具体地,发送端将DD报文发送给接收端;接收端接收到DD报文,如果判断出DD报文中的接口MTU字段的值大于自身接收接口的MRU值,则结束本流程,不进行LSDB的同步;如果判断出DD报文中的接口MTU字段的值小于或等于自身接收接口的MRU值,则向发送端返回DD报文,发送端接收到DD报文后,进彳丁LSDB的同步。[0006]上述过程中,对于直连设备,发送端向接收端(即发送端的邻居)发送的DD报文中的接口MTU字段为发送端的MTU值,这样,发送端和接收端之间实现了MTU值和MRU值的协商。对于虚链邻居,发送端向接收端发送的DD报文中的接口MTU字段为0,这样,发送端和接收端之间无法实现MTU值和MRU值之间的协商,从而有可能导致发送端和接收端在进行LSDB的同步过程中,接收端无法接收发送端的报文。例如,图1中,如果路由器1的接口1的MTU值大于路由器2的接口2的MRU值或路由器3的接口3的MRU值,则在进行LSDB的同步过程中,路由器3可能无法接收路由器1发送的报文。发明内容[0007]为了解决上述问题,本发明提出了一种获取设备接口MRU值的方法和装置,能够实现MTU值和MRU值之间的协商。[0008]为了达到上述目的,本发明提出了一种获取设备接口最大接收单元MRU值的方法,包括:[0009]虚链源端设备向虚拟链路上自身的下一跳设备发送生存时间TTL为1的用户数据报协议UDP报文;其中,UDP报文的目的互联网协议IP地址为虚链邻居的IP地址;[0010]当虚链源端设备接收到因特网控制报文协议ICMP超时差错报文时,保存ICMP超时差错报文中的未使用字段MRU值,并继续向虚拟链路上自身的下一跳设备发送TTL比上一次发送的UDP报文的TTL大1的UDP报文。[0011]优选地,当所述虚链源端设备接收到ICMP目的不可达报文时,该方法还包括:[0012]保存所述ICMP目的不可达报文中的未使用字段MRU值;[0013]获取保存的所有未使用字段MRU值的最小值,判断出获得的MRU值的最小值小于自身虚链出接口的最大传输单元MTU值,重新配置自身虚链出接口的MTU值。[0014]优选地,所述重新配置自身虚链出接口的MTU值包括:[0015]将所述自身虚链出接口的MTU值配置为小于或等于所述获得的MRU值的最小值。[0016]本发明还提出了一种获取设备接口的最大接收单元MRU值的方法,包括:[0017]虚拟链路上的设备接收到用户数据报协议UDP报文,计算UDP报文中的生存时间TTL和1之间的差值;[0018]当虚拟链路上的设备判断出计算得到的差值为0,且UDP报文中的目的互联网协议IP地址不是自身的IP地址时,向虚链源端设备发送因特网控制报文协议ICMP超时差错报文,其中,ICMP超时差错报文中的未使用字段为自身接收接口的最大接收单元MRU值。[0019]优选地,当所述虚拟链路上的设备判断出所述计算得到的差值为0,且所述UDP报文中的目的IP地址为自身的IP地址时,该方法还包括:[0020]所述虚拟链路上的设备判断出所述UDP报文中的目的端口号不存在,向所述虚链源端设备发送ICMP目的不可达报文,其中,ICMP目的不可达报文中的未使用字段为自身接收接口的MRU值。[0021]优选地,当所述虚拟链路上的设备判断出计算得到的差值不为0时,该方法还包括:[0022]所述虚拟链路上的设备向所述虚拟链路上自身的下一跳设备转发所述UDP报文;其中,转发的UDP报文的TTL为计算得到的差值。[0023]本发明还提出了一种虚链源端设备,至少包括:[0024]第一发送模块,用于向虚拟链路上自身的下一跳设备发送生存时间TTL为1的用户数据报协议UDP报文;其中,UDP报文的目的互联网协议IP地址为虚链邻居的IP地址;接收到存储模块的通知消息,继续向虚拟链路上自身的下一跳设备发送TTL比上一次发送的UDP报文的TTL大1的UDP报文;[0025]第一接收模块,用于接收因特网控制报文协议ICMP超时差错报文;[0026]存储模块,用于保存ICMP超时差错报文中的未使用字段MRU值,向第一发送模块发送通知消息。[0027]优选地,所述第一接收模块还用于:[0028]接收ICMP目的不可达报文;[0029]所述存储模块还用于:[0030]保存所述ICMP目的不可达报文中的未使用字段MRU值;[0031]所述虚链源端设备还包括:[0032]配置模块,用于获取保存的所有未使用字段的MRU值的最小值,判断出获得的最小值小于自身虚链出接口的最大传输单元MTU值,重新配置自身虚链出接口的MTU值。[0033]优选地,所述配置模块具体用于:[0034]获取保存的所有未使用字段的MRU值的最小值,判断出获得的MRU值的最小值小于自身虚链出接口的最大传输单元MTU值,将所述自身虚链出接口的MTU值配置为小于或等于所述获得的MRU值的最小值。[0035]本发明还提出了一种虚拟链路上的设备,至少包括:[0036]第二接收模块,用于接收到用户数据报协议UDP报文;[0037]第二发送模块,用于计算UDP报文中的生存时间TTL和1之间的差值;判断出计算得到的差值为〇,且UDP报文中的目的互联网协议IP地址不是自身的IP地址,向虚链源端设备发送因特网控制报文协议ICMP超时差错报文,其中,ICMP超时差错报文中的未使用字段为自身接收接口的最大接收单元MRU值。[0038]优选地,所述第二发送模块还用于:[0039]判断出所述计算得到的差值为0,且所述UDP报文中的目的IP地址为自身的IP地址,判断出所述UDP报文中的目的端口号不存在,向所述虚链源端设备发送ICMP目的不可达报文,其中,ICMP目的不可达报文中的未使用字段为自身接收接口的MRU值。[0040]优选地,所述第二发送模块还用于:[0041]判断出计算得到的差值不为0,向所述虚拟链路上自身的下一跳设备转发所述UDP报文;其中,转发的UDP报文的TTL为计算得到的差值。[0042]与现有技术相比,本发明包括:虚链源端设备向虚拟链路上自身的下一跳设备发送TTL为1的UDP报文;其中,UDP报文的目的IP地址为虚链邻居的IP地址;当发送端接收到ICMP超时差错报文时,保存ICMP超时差错报文中的未使用字段MRU值,并继续向虚拟链路上自身的下一跳设备发送TTL比上一次发送的UDP报文的TTL大1的UDP报文。通过本发明的方案,虚链源端设备采用UDP报文获取到虚拟链路上其他设备的接收接口的MRU值,实现了MTU值和MRU值之间的协商。附图说明[0043]下面对本发明实施例中的附图进行说明,实施例中的附图是用于对本发明的进一步理解,与说明书一起用于解释本发明,并不构成对本发明保护范围的限制。[0044]图1为现有的虚链邻居的示意图;[0045]图2为本发明获取设备接口MRU值的方法的流程图;[0046]图3为本发明虚链源端设备的结构组成示意图;[0047]图4为本发明虚拟链路上的设备的结构组成示意图。具体实施方式[0048]为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述,并不能用来限制本发明的保护范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的各种方式可以相互组合。[0049]参见图2,本发明提出了一种获取设备接口MRU值的方法,包括:[0050]步骤200、虚链源端设备向虚拟链路上自身的下一跳设备发送生存时间(TTL,TimeToLive为1的用户数据报协议(UDP,UserDatagramProtocol报文。[0051]本步骤中,UDP报文的目的互联网协议(IP,InternetProtocol地址为虚链邻居的IP地址。[0052]本步骤中,UDP报文的目的端口号为一般应用程序都不会用的数值,如30000以上。[0053]本步骤中,虚链源端设备可以通过调用路由跟踪(TraceRoute应用的方式来向虚拟链路上自身的下一跳设备发送UDP报文,具体实现属于本领域技术人员的公知技术,并不用于限定本发明的保护范围,这里不再赘述。[0054]其中,在调用TraceRoute应用时,将虚链邻居的IP地址传入TraceRoute应用中。[0055]步骤201、虚拟链路上的设备接收到UDP报文,计算UDP报文中的TTL和1之间的差值。[0056]步骤202、当虚拟链路上的设备判断出计算得到的差值为0,且UDP报文中IP地址不是自身的IP地址时,向虚链源端设备发送因特网控制报文协议(ICMP,InternetControlMessageProtocol超时差错报文。[0057]本步骤中,ICMP超时差错报文中的未使用字段为自身接收接口的MRU值。[0058]表1为ICMP超时差错报文或ICMP目的不可达报文的结构。如表1所示,ICMP超时差错报文或ICMP目的不可达报文中有4个字节长度的未使用字段。[0059][0060][0061]表1[0062]步骤203、当虚链源端设备接收到ICMP超时差错报文时,保存ICMP超时差错报文中的未使用字段MRU值,并继续向虚拟链路上自身的下一跳设备发送TTL比上一次发送的UDP报文的TTL大1的UDP报文。[0063]当虚拟链路上的设备判断出计算得到的差值为0,且UDP报文中的目的IP地址为自身的IP地址时,该方法还包括:[0064]虚拟链路上的设备判断出UDP报文中的目的端口号不存在,向虚链源端设备发送ICMP目的不可达报文,其中,ICMP目的不可达报文中的未使用字段为自身接收接口的MRU值;[0065]当虚链源端设备接收到ICMP目的不可达报文时,保存ICMP目的不可达报文中的未使用字段MRU值;获取保存的所有未使用字段MRU值的最小值,判断出获得的MRU值的最小值小于自身虚链出接口的MTU值,重新配置自身虚链出接口的MTU值。[0066]其中,判断UDP报文中的目的端口号是否存在属于本领域技术人员的公知技术,并不用于限定本发明的保护范围,这里不再赘述。[0067]其中,重新配置自身虚链出接口的MTU值包括:将自身虚链出接口的MTU值配置为小于或等于获得的MRU值的最小值。[0068]当虚拟链路上的设备判断出计算得到的差值不为0时,该方法还包括:[0069]虚拟链路上的设备向虚拟链路上自身的下一跳设备转发UDP报文;其中,转发的UDP报文的TTL为计算得到的差值。[0070]通过本发明的方案,虚链源端设备采用UDP报文获取到虚拟链路上其他设备的接收接口MRU值,实现了MTU值和MRU值之间的协商。[0071]参见图3,本发明还提出了一种虚链源端设备,至少包括:[0072]第一发送模块,用于向虚拟链路上自身的下一跳设备发送TTL为1的UDP报文;其中,UDP报文的目的互联网协议IP地址为虚链邻居的IP地址;接收到存储模块的通知消息,继续向虚拟链路上自身的下一跳设备发送TTL比上一次发送的UDP报文的TTL大1的UDP报文;[0073]第一接收模块,用于接收到ICMP超时差错报文;[0074]存储模块,用于保存ICMP超时差错报文中的未使用字段MRU值,向第一发送模块发送通知消息。[0075]本发明的虚链源端设备中,第一接收模块还用于:[0076]接收到ICMP目的不可达报文;[0077]存储模块还用于:[0078]保存ICMP目的不可达报文中的未使用字段MRU值;[0079]虚链源端设备还包括:[0080]配置模块,用于获取保存的所有未使用字段MRU值的最小值,判断出获得的最小值小于自身虚链出接口的MTU值,重新配置自身虚链出接口的MTU值。[0081]本发明的虚链源端设备中,配置模块具体用于:[0082]获取保存的所有未使用字段MRU值的最小值,判断出获得的MRU值的最小值小于自身虚链出接口的最大传输单元MTU值,将自身虚链出接口的MTU值配置为小于或等于获得的MRU值的最小值。[0083]参见图4,本发明还提出了一种虚拟链路上的设备,至少包括:[0084]第二接收模块,用于接收到用户数据报协议UDP报文;[0085]第二发送模块,用于计算UDP报文中的TTL和1之间的差值;判断出计算得到的差值为0,且UDP报文中的目的IP地址不是自身的IP地址,向虚链源端设备发送ICMP超时差错报文,其中,ICMP超时差错报文中的未使用字段为自身接收接口的最大接收单元MRU值。[0086]本发明的虚拟链路上的设备中,第二发送模块还用于:[0087]判断出计算得到的差值为0,且UDP报文中的目的IP地址为自身的IP地址,判断出UDP报文中的目的端口号不存在,向虚链源端设备发送ICMP目的不可达报文,其中,ICMP目的不可达报文中的未使用字段为自身接收接口的MRU值。[0088]本发明的虚拟链路上的设备中,第二发送模块还用于:[0089]判断出计算得到的差值不为0,向虚拟链路上自身的下一跳设备转发UDP报文;其中,转发的UDP报文的TTL为计算得到的差值。[0090]需要说明的是,以上所述的实施例仅是为了便于本领域的技术人员理解而已,并不用于限制本发明的保护范围,在不脱离本发明的发明构思的前提下,本领域技术人员对本发明所做出的任何显而易见的替换和改进等均在本发明的保护范围之内。
权利要求:1.一种获取设备接口最大接收单元MRU值的方法,其特征在于,包括:虚链源端设备向虚拟链路上自身的下一跳设备发送生存时间TTL为1的用户数据报协议UDP报文;其中,UDP报文的目的互联网协议IP地址为虚链邻居的IP地址;当虚链源端设备接收到因特网控制报文协议ICMP超时差错报文时,保存ICMP超时差错报文中的未使用字段MRU值,并继续向虚拟链路上自身的下一跳设备发送TTL比上一次发送的UDP报文的TTL大1的UDP报文。2.根据权利要求1所述的方法,其特征在于,当所述虚链源端设备接收到ICMP目的不可达报文时,该方法还包括:保存所述ICMP目的不可达报文中的未使用字段MRU值;获取保存的所有未使用字段MRU值的最小值,判断出获得的MRU值的最小值小于自身虚链出接口的最大传输单元MTU值,重新配置自身虚链出接口的MTU值。3.根据权利要求2所述的方法,其特征在于,所述重新配置自身虚链出接口的MTU值包括:将所述自身虚链出接口的MTU值配置为小于或等于所述获得的MRU值的最小值。4.一种获取设备接口的最大接收单元MRU值的方法,其特征在于,包括:虚拟链路上的设备接收到用户数据报协议UDP报文,计算UDP报文中的生存时间TTL和1之间的差值;当虚拟链路上的设备判断出计算得到的差值为0,且UDP报文中的目的互联网协议IP地址不是自身的IP地址时,向虚链源端设备发送因特网控制报文协议ICMP超时差错报文,其中,ICMP超时差错报文中的未使用字段为自身接收接口的最大接收单元MRU值。5.根据权利要求4所述的方法,其特征在于,当所述虚拟链路上的设备判断出所述计算得到的差值为〇,且所述UDP报文中的目的IP地址为自身的IP地址时,该方法还包括:所述虚拟链路上的设备判断出所述UDP报文中的目的端口号不存在,向所述虚链源端设备发送ICMP目的不可达报文,其中,ICMP目的不可达报文中的未使用字段为自身接收接口的MRU值。6.根据权利要求4或5所述的方法,其特征在于,当所述虚拟链路上的设备判断出计算得到的差值不为〇时,该方法还包括:所述虚拟链路上的设备向所述虚拟链路上自身的下一跳设备转发所述UDP报文;其中,转发的UDP报文的TTL为计算得到的差值。7.-种虚链源端设备,其特征在于,至少包括:第一发送模块,用于向虚拟链路上自身的下一跳设备发送生存时间TTL为1的用户数据报协议UDP报文;其中,UDP报文的目的互联网协议IP地址为虚链邻居的IP地址;接收到存储模块的通知消息,继续向虚拟链路上自身的下一跳设备发送TTL比上一次发送的UDP报文的TTL大1的UDP报文;第一接收模块,用于接收因特网控制报文协议ICMP超时差错报文;存储模块,用于保存ICMP超时差错报文中的未使用字段MRU值,向第一发送模块发送通知消息。8.根据权利要求7所述的虚链源端设备,其特征在于,所述第一接收模块还用于:接收ICMP目的不可达报文;所述存储模块还用于:保存所述ICMP目的不可达报文中的未使用字段MRU值;所述虚链源端设备还包括:配置模块,用于获取保存的所有未使用字段的MRU值的最小值,判断出获得的最小值小于自身虚链出接口的最大传输单元MTU值,重新配置自身虚链出接口的MTU值。9.根据权利要求8所述的虚链源端设备,其特征在于,所述配置模块具体用于:获取保存的所有未使用字段的MRU值的最小值,判断出获得的MRU值的最小值小于自身虚链出接口的最大传输单元MTU值,将所述自身虚链出接口的MTU值配置为小于或等于所述获得的MRU值的最小值。10.-种虚拟链路上的设备,其特征在于,至少包括:第二接收模块,用于接收到用户数据报协议UDP报文;第二发送模块,用于计算UDP报文中的生存时间TTL和1之间的差值;判断出计算得到的差值为〇,且UDP报文中的目的互联网协议IP地址不是自身的IP地址,向虚链源端设备发送因特网控制报文协议ICMP超时差错报文,其中,ICMP超时差错报文中的未使用字段为自身接收接口的最大接收单元MRU值。11.根据权利要求10所述的虚拟链路上的设备,其特征在于,所述第二发送模块还用于:判断出所述计算得到的差值为〇,且所述UDP报文中的目的IP地址为自身的IP地址,判断出所述UDP报文中的目的端口号不存在,向所述虚链源端设备发送ICMP目的不可达报文,其中,ICMP目的不可达报文中的未使用字段为自身接收接口的MRU值。12.根据权利要求10或11所述的虚拟链路上的设备,其特征在于,所述第二发送模块还用于:判断出计算得到的差值不为〇,向所述虚拟链路上自身的下一跳设备转发所述UDP报文;其中,转发的UDP报文的TTL为计算得到的差值。
百度查询: 中兴通讯股份有限公司 一种获取设备接口MRU值的方法和装置
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。