在动态互联网协议网络上改变路径最大传输单位的方法及使用该方法的设备的制作方法

文档序号:7892021阅读:203来源:国知局
专利名称:在动态互联网协议网络上改变路径最大传输单位的方法及使用该方法的设备的制作方法
技术领域
本发明涉及一种更为有效地操作网络的方法及设备,更具体地讲,涉及一种更适于在动态网络环境的路径上执行最大传输单位(MTU)发现并且根据所发现的MTU更有效地改变路径MTU(PMTU)的方法及设备。
背景技术
由于近期互联网用户的数目迅速增加,基于传统的互联网协议版本4(IPv4)的网络的32位地址系统已显示出互联网协议(IP)地址的限度和功能的限制。为了解决这些问题,提出了以128位地址系统通过不同的扩展功能提供各种服务的互联网协议版本6(IPv6)。
在IPv4中,当分组(packet)大小大于链路MTU时,位于路由选择路径上的路由器执行分组分割(fragmentation)。然而,不同于IPv4,在IPv6中,如果分组一旦被源节点发送,则在路径中间的节点不执行分组分割。而是,源节点搜索路径上的最小MTU,根据所发现的MTU将分组分割,并发送分割的分组。
相应地,当IPv6节点,即源节点,想要将数据发送给远程地点的目的节点时,首先发现通过其发送分组的路径的链路MTU。也就是说,应确定作为在源节点和目的节点之间的路由选择路径上的最小链路MTU的路径MTU(以下称为“PMTU”)。
根据现有技术PMTU发现方法,当源节点首次发送分组时,源节点将分组分割为每个都具有下一跳链路MTU大小的单元,并发送分割的分组。
当从源节点发送的分组的大小大于路由选择路径中跳之间的链路MTU时,该分组被丢弃,包含下一跳链路MTU信息的互联网控制消息协议(ICMP)-分组过大(Packet Too Big)的消息产生并且被发送给源节点。使用ICMP-分组过大消息的MTU信息,源节点重新将分组分割并重新发送。此程序重复直至分组由源节点发送后到达目的节点而没有被丢弃。
图1是表示在动态网络环境中,当源节点110和目的节点170之间的路由选择路径从连接第一节点120、第二节点130、第三节点140和目的节点170的路径变为连接第一节点120、第四节点150、第五节点160和目的节点170的路径时,通过应用现有技术PMTU发现方法来改变PMTU的过程的示图。
在现有技术方法中,当分组被发送时,如果根据动态网络环境路由选择路径改变,则PMTU可能改变。因此,当PMTU维持了预定的时间时,使用上述的现有技术PMTU发现方法来发现当前路由选择路径的PMTU,并且根据发现的结果,PMTU增加。可是,在这种情况下,不必要地产生IPv6的ICMP错误消息,即诸如ICMP-分组过大消息的错误消息,以致浪费网络资源。
参照图1,现在将解释为改变PMTU根据现有技术PMTU发现方法来发现及改变当前路由选择路径的PMTU的方法及其设备。
首先,在动态IP网络环境中,当源节点110和目的节点170之间的路由选择路径从连接第一节点120、第二节点130、第三节点140和目的节点170的路径变为连接第一节点120、第四节点150、第五节点160和目的节点170的路径时,PMTU值从MTU=2增加到MTU=3,但是当前源节点110根据MTU=2连续地将分组分割并发送分组。
使用定时器(未显示),如果超过预定的时间,则源节点100根据MTU值6产生分组①(MTU=6)并将分组发送给下一节点,第一节点120。
由于接收到的分组①(MTU=6)的大小大于下一跳链路MTU值5,所以第一节点120丢弃接收到的分组①(MTU=6),并且产生包含下一跳链路MTU信息即MTU=5的ICMP错误消息。也就是说,第一节点120产生ICMP分组过大消息②(MTU=5),并将该消息发送给源节点110。
源节点110根据包含在接收到的由第一节点120发送ICMP错误消息②(MTU=5)中的第一节点120的下一跳链路MTU值即MTU=5,再次将分组分割并将再次分割的分组③(MTU=5)发送给目的节点170。
由于接收到的分组③(MTU=5)的大小大于下一跳链路MTU值即MTU=4,所以第四节点150丢弃接收到的分组③(MTU=5),产生包含下一跳链路MTU信息的ICMP错误消息④(MTU=4),并将该消息发送给源节点110。与先前的步骤相同,源节点110将分组分割以满足新链路MTU=4,并将分割的分组⑤(MTU=4)发送给目的节点170。
如在节点1和4,由于接收到的分组⑤(MTU=4)的大小大于下一跳链路MTU值即MTU=3,所以第五节点160丢弃接收到的分组⑤(MTU=4),产生包含下一跳链路MTU信息的ICMP错误消息⑥(MTU=3),并将该消息发送给源节点110。与先前的步骤相同,源节点110将分组分割以满足新链路MTU,并将分割的分组⑦(MTU=3)发送给目的节点170。
这样,在现有技术用于增加PMTU的方法中,为了发现当前路由选择路径的PMTU并改变PMTU,花费了很多时间并且不必要地浪费了网络资源。

发明内容
为了解决上述问题,本发明提供一种更为有效地在动态网络环境中发现当前路由选择路径的PMTU并根据发现的PMTU改变PMTU的方法及设备。
根据本发明的一个方面,提供了一种在动态互联网协议(IP)网络上改变源节点和目的节点之间的路径(PMTU)的方法,该方法包括(a)产生具有在其中存储源节点和目的节点之间的路由选择路径上的MTU值的最大传输单位(MTU)信息存储空间的PMTU发现分组;(b)将该产生的PMTU发现分组发送给目的节点;和(c)如果接收到来自目的节点的PMTU发现分组的回应分组(response packet),则根据包含在回应分组中的MTU信息改变PMTU,其中将存储于MTU信息存储空间中的MTU值与PMTU发现分组经过的路径上的链路MTU值比较,并将存储的MTU值与分组经过的路径上的链路MTU值中较小的值存储于MTU信息存储空间中。
最好是,如果当前PMTU值维持了预定的时间,则产生在步骤(a)中产生的PMTU发现分组。
最好是,在步骤(a)中源节点的下一跳链路MTU值存储于MTU信息存储空间。
最好是,步骤(c)包括步骤(c1),其中如果PMTU发现分组到达目的节点,则产生包含在PMTU发现分组的MTU信息存储空间存储的MTU值的分组,并且将该分组发送给源节点。
根据本发明的另一方面,提供了一种在动态IP网络上改变源节点和目的节点之间的路径最大传输单位(PMTU)的设备,该设备包括PMTU发现分组产生单元,产生具有在其中存储在源节点和目的节点之间的路由选择路径上的最大传输单位(MTU)值的MTU信息存储空间;发送单元,将产生的PMTU发现分组发送给目的节点;和PMTU改变单元,如果接收到来自目的节点的PMTU发现分组的回应分组,则根据包含在回应分组中的MTU信息改变PMTU,其中将存储于MTU信息存储空间中的MTU值与PMTU发现分组经过的路径上的链路MTU比较,并将存储的MTU值与经过路径上的链路MTU值中较小的值存储于MTU信息存储空间中。
最好是,如果当前PMTU值维持了预定的时间则产生PMTU发现分组。
最好是,PMTU发现分组的大小等于或小于当前PMTU的大小。
最好是,源节点的下一跳链路MTU值存储于MTU信息存储空间。
最好是,PMTU发现分组是符合互联网协议版本6并且具有是扩展首标的逐跳可选首标(hop-by-hop option header)的分组。
最好是,PMTU发现分组的逐跳可选首标的选择类型字段存储指示如果路由选择路径中间的节点未识别出PMTU发现分组的选择类型字段,则该PMTU发现分组应被丢弃的信息。
最好是,指示该PMTU发现分组应被丢弃的信息位于存储在选择类型字段中的最高2位。
最好是,选择类型字段存储指示能否改变存储于MTU信息存储空间的MTU信息的信息。
最好是,指示能否改变MTU信息的信息位于存储在选择类型字段中的最高第三位。
最好是,在其中存储MTU信息的字段是IPv6逐跳首标的选择字段中的选择数据字段。


通过结合附图对优选实施例进行详细的描述,本发明的上述目的和优点将会变得更加清楚,其中图1是表示改变路径最大传输单位(PMTU)的现有技术方法的示图;图2是用于本发明的互联网协议版本6(IPv6)的基本首标的示图;图3是用于本发明的互联网控制消息协议版本6(ICMPv6)的扩展首标的基本结构的示图;图4A是表示用于本发明的逐跳可选首标的基本结构的示图;图4B是图4A所示的逐跳可选首标中“选择”字段的结构的示图;图5A是根据本发明优选实施例构建的逐跳可选首标中“选择”字段的结构的示图;图5B是根据本发明另一优选实施例构成的逐跳可选首标中“选择”字段的结构的示图;图6是根据本发明包含OIP选择的分组的结构的示图;图7A是表示根据本发明优选实施例的PMTU改变方法的示图;图7B是表示根据本发明另一优选实施例的PMTU改变方法的示图;图8是表示根据本发明的节点的存储空间形状的示图;图9A是表示用于本发明的ICMPv6消息的基本结构的示图;图9B是表示用于本发明的ICMP-分组过大消息的基本结构的示图;图10A是表示根据本发明用于PMTU发现方法的修正的ICMP-分组过大消息的示图;和图10B是表示根据本发明用于PMTU发现方法的新定义的ICMP-PMTUD极小化分组消息的示图;具体实施方式
首先,用于本说明书的术语定义如下节点(node)实现IPv6的装置。
路由器(router)转发未明确寻址到其本身的IPv6分组的节点。
主机(host)任何不是路由器的节点。
高层(Upper Layer)紧挨在IPv6上的协议层。例如,传输协议诸如TCP和UDP,控制协议诸如ICMP。
发现路径最大传输单位(PMTU)最小化分组(PMTU discovery MinimizingPacket)新定义的ICMP信息消息。
链路(link)在其上节点可在链路层通信的通信设施或介质。
分组(packet)IPv6首标加净荷。
链路MTU(link MTU)最大传输单位。
路径(path)分组经过的源节点和目的节点之间的一组链路。
路径MTU(PMTU)在源节点和目的节点之间的路径中的所有链路中最小的链路MTU。
参照附图,现在来解释本发明的优选实施例。
图2是用于本发明的IPv6的基本首标(basic header)的示图。所有IPv6分组以用40字节形成的基本首标开始。图2的“版本(Version)”指示IP版本,“净荷长度(Payload Length)”指示以字节为单位的IP分组的长度。“下一级首标(Next Header)”指示哪个可选首标跟随IPv6基本首标,“跳数限制(Hop Limit)”用来以跳为单位限制发送IP分组的距离。“源地址(Source Address)”和“目的地址(Destination Address)”分别指示发送分组的主机的地址和分组应发送给的目的地的地址。每个地址长度为128位。
图3是用于本发明的IPv6的扩展首标(extension header)的示图。
IPv6的扩展首标是以首先检索基本首标的“下一级首标”然后检索由“下一级首标”字段指示的值的下一扩展首标的顺序检索的。在扩展首标的结构中,第一字节指示下一扩展首标的值而下一字节指示现在的扩展首标的长度。表1列出下一级首标的不同值和相应的扩展首标。
表1

表1显示的可选首标的顺序是考虑到当位于分组发送的路由选择路径中间的节点的设备检索发送的分组中的首标部分时,该设备从分组开始部分仅检索到所需的部分。支持IPv6的路由器参照逐跳可选首标和路由选择信息。
图4A是表示逐跳可选首标的基本结构的示图。“下一级首标”字段用于分辨紧跟逐跳可选首标的首标的类型。“首标扩展长度(Hdr Ext Len)”字段指示逐跳可选首标的长度。“选择(option)”字段是可变长度字段,存储与逐跳可选首标有关的选择信息。
图4B是图4A所示的逐跳可选首标中“选择”字段的结构的示图。“选择类型(option type)”字段存储选择类型信息,“选择数据长度(Opt Data Len)”字段存储该选择的选择数据字段的长度,而“选择数据(option data)”字段是可变长度字段并存储选择类型特定的数据。
“选择类型”字段的最高2位指示当在路由选择路径中间的节点不能识别存储于“选择类型”字段的选择类型时,该节点对现在的分组采取的措施的类型。例如,如果“选择类型”字段的最高2位为01并且在路由选择路径中间的节点不能识别存储于“选择类型”字段的选择类型时,则该节点丢弃现在的分组。
“选择类型”字段的最高第三位指示在路由选择路径中间存储于逐跳首标“选择数据”字段的信息是否改变。例如,如果“选择类型”字段的最高第三位为0,则指示“选择数据”字段的选择数据信息不能改变,如果该位为1,则指示“选择数据”字段的选择数据信息可改变。
图5A是当分组从源节点发送给目的节点时根据本发明优选实施例构成的逐跳可选首标中“选择”字段的结构的示图。
图5A的“选择类型”字段存储信息“01100111”。最高2位“01”指示当在路由选择路径中间的节点不能识别存储于“选择类型”字段的选择类型,例如指示增加PMTU优化的选择(以下称为“OIP选择”)的选择“103”时,则在其中插入OIP选择的该分组应被丢弃。这是为了当根据本发明在路由选择路径中间的节点的设备不支持OIP选择方法时防止网络资源的不必要的浪费,同时用现有技术PMTU发现方法能够增加PMTU。
此外,“选择类型”字段的最高第三位“1”指示“选择数据”字段的选择数据信息可变。此外,存储于“选择类型”字段的值“01100111”即103指示路由选择路径为从源节点到目的节点的情况的OIP选择被插入到现在的分组中。
图5B是根据本发明另一优选实施例当分组从目的节点发送给源节点时,构成的逐跳可选首标中“选择”字段的结构的示图。
图5B的“选择”字段存储信息“01000111”。最高2位“01”指示当路由选择路径中间的节点不能识别存储于“选择类型”字段的选择类型时,例如指示OIP选择的选择“71”,则在其中插入OIP选择的分组应被丢弃。这是为了,当根据本发明在路由选择路径中间的节点不支持OIP选择方法时防止网络怎样的不必要的浪费,同时用现有技术PMTU发现方法能够增加PMTU。
此外,“选择类型”字段的最高第三位“0”指示“选择数据”字段的选择数据信息不能改变。此外,存储于“选择类型”字段的值“01000111”即71指示路由选择路径为从目的节点到源节点的情况的OIP选择被插入到现在的分组。
此外,存储于“选择数据长度”字段的值“00000100”指示该选择的选择数据字段的长度总共为4个八位字节。路由选择路径的最小链路MTU存储于该4个八位字节长的选择数据字段。
图6是根据本发明包含OIP选择的分组的结构的示图;因此,根据本发明的优化的PMTU增加方法,当根据定时器的设置时间结束并且源节点想要增加PMTU时,源节点产生在其中插入现有PMTU大小的上述OIP选择的分组(以下称为“OIP分组”)并将分组发送给目的节点。
这里,在OIP选择的“选择数据长度”字段(以下称为“MTU字段”)中存储源节点的下一跳链路MTU值。
当该OIP分组经过在源节点和目的节点之间的路由选择路径上的每个节点时,每个节点的设备,例如路由器,执行下述操作。
1、当节点不能识别存储于OIP分组“选择类型”字段中的选择类型时,路由器丢弃OIP分组。
2、当节点识别存储于OIP分组“选择类型”字段中的选择类型时,路由器将存储于OIP分组“MTU”字段中的MTU值与下一链路MTU比较。
3、路由器将比较的值中较小的值存储于OIP分组的MTU字段。
在每个节点直至目的节点执行此操作之后,源节点和目的节点之间的最小链路MTU值即PMTU值被存储于OIP分组的MTU字段。
如果目的节点接收到存储PMTU值的OIP分组,则目的节点立即将该值发送给源节点。源节点根据接收到的PMTU值将分组分割并发送分组。
相应地,可以防止在PMTU随时间无条件增加的现有技术PMTU增加方法中发生的不必要的错误消息的产生和网络资源的浪费。
此外,当即使在OIP分组发送后超过预定的时间后源节点仍没有接收到来自目的节点的OIP分组的回应分组时,源节点根据基于现有技术PMTU增加方法增加的PMTU值将分组分割并发送分组。
相应地,即使当在源节点和目的节点之间的路由选择路径中的节点不能识别OIP分组并丢弃OIP分组时,可以根据现有技术PMTU增加方法来增加PMTU以维持与现有技术PMTU增加方法的兼容性。
图7A是表示根据本发明PMTU改变方法的优选实施例的示图;
首先,现在解释根据本发明应用于下述情况的PMTU改变方法及设备在动态IP网络环境中在源节点710和目的节点770之间的路由选择路径由连接第一节点720、第二节点730、第三节点740和目的节点770的路径变为连接第一节点720、第四节点750、第五节点760和目的节点770的路径,也就是说,PMTU值从MTU=2增加到MTU=3。
当现在的PMTU值维持了预定的时间时,使用定时器(未显示),根据本发明源节点710产生OIP分组780并将该OIP分组发送给目的节点770。
在根据本发明的实施例中,如果在预定的时间内没有接收到ICMP-分组过大消息,则源节点产生大小为现有的PMTU即MTU=2的OIP分组780,并发送该分组。然而,也可以选择性地产生其大小小于现在的PMTU的OIP分组,或者如果满足其他预定的条件则产生OIP分组并发送该分组。
用另一定时器(未显示),源节点710发送OIP分组并同时测量时间,从而,如果由于在路由选择路径中丢失OIP分组而在预定的时间内没有接收到发送的分组的回应分组,则可根据现有技术PMTU改变方法改变PMTU。
选择类型数“103”存储于OIP分组的选择类型字段中,源节点710的下一跳链路MTU值即MTU=6存储于MTU字段。在此,OIP分组的大小为现有的PMTU值,即MTU=2。这是为了防止由于分组的大小使OIP分组在路由选择路径中被丢弃。
第一节点720接收到由源节点710发送的OIP分组780而且识别选择类型。由于选择类型的最高第三位值是1,所以第一节点720将存储于OIP分组780的MTU字段的MTU值与下一跳链路MTU=5比较,将两值中的较小者即MTU=5存储于MTU字段,并将OIP分组780发送给目的节点770。
第四节点750接收到由第一节点720发送的OIP分组而且识别选择类型。由于选择类型的最高第三位值是1,所以第四节点750将存储于OIP分组780的MTU字段的MTU值与下一跳链路MTU=4比较,将两值中的较小者即MTU=4存储于MTU字段,并将OIP分组780发送给目的节点770。
第五节点760接收到由第四节点750发送的OIP分组而且识别选择类型。由于选择类型的最高第三位值是1,所以第五节点760将存储于OIP分组780的MTU字段的MTU值与下一跳链路MTU=3比较,将两值中的较小者即MTU=3存储于MTU字段,并将OIP分组780发送给目的节点770。
目的节点770基于存储于接收到的OIP分组780的信息产生OIP分组790,并将OIP分组790发送给源节点710。
选择类型数“71”,即“01000111”被存储于OIP分组790的选择类型字段,并且存储于由目的节点770接收到的OIP分组780的MTU字段中的信息即MTU=3被存储于MTU字段。
第五节点760接收到由目的节点770发送的OIP分组790而且识别选择类型。由于选择类型的最高第三位值是0,所以第五节点760将OIP分组790发送给源节点710而不改变存储于MTU字段中的MTU信息。
第四节点750接收到由第五节点760发送的OIP分组790而且识别选择类型。由于选择类型的最高第三位值是0,所以第四节点750将OIP分组790发送给源节点710而不改变存储于MTU字段中的MTU信息。
第一节点720接收到第四节点750发送的OIP分组790而且识别选择类型。由于选择类型的最高第三位值是0,所以第一节点720将OIP分组790发送给源节点710而不改变存储于MTU字段中的MTU信息。
当源节点710接收到存储PMTU值的OIP分组790时,源节点710根据存储于OIP分组790的MTU字段中的PMTU值将分组分割并发送分组。
在本发明该实施例中,虽然在目的节点770产生的OIP分组790的选择类型的最高第三位值被设置为0,但此位值可如在OIP分组780中被设置为1。
根据本发明的PMTU增加方法,可防止在PMTU随时间无条件增加的现有技术的PMTU增加方法中出现的不必要的错误消息的产生和网络资源的浪费。
此外,当在图7A的实施例中在路由选择路径中第四节点750不能识别OIP分组780的选择类型因而丢弃OIP分组780时,如果在发送OIP分组780后超过预定时间,源节点710仍没有接收到来自目的节点770的OIP分组780的回应OIP分组790,则源节点710根据基于现有技术PMTU增加方法增加的PMTU值将分组分割并发送分组。
相应地,即使当在源节点710和目的节点770之间的路由选择路径中的节点不能识别OIP分组780并且丢弃OIP分组780时,仍可以根据现有技术PMTU增加方法来增加PMTU以维持与现有技术PMTU增加方法的兼容性。
图7B是表示应用于当在源节点710和目的节点770之间的路由选择路径中间的节点不能识别OIP分组780并且丢弃OIP分组780时的情况的改进的PMTU改变方法的示图。
在图7A和7B的实施例中,当在源节点710和目的节点770之间的路由选择路径中的节点不能识别OIP分组780并且丢弃OIP分组780时,可以通过使用图1所示的现有技术PMTU发现方法来增加PMTU.然而,如果使用现有技术PMTU发现方法,则现在的路由选择路径的PMTU发现相对需要更多的时间而且不必要地浪费网络资源。
相应地,在根据本发明的实施例中,图9A和9B所示的ICMPv6消息被修正或被新定义,并且图10A的修正的ICMP-分组过大消息和作为新定义的ICMP信息消息的图10B所示的ICMP-PMTUD最小化分组被使用。
现在首先解释图9A和图9B所示的ICMPv6消息,图10A的修正的ICMP-分组过大消息和作为新定义的ICMP信息消息的图10B所示的ICMP-PMTUD最小化分组,然后参照图7B来解释根据本发明的优选实施例的PMTU发现方法。
图9A是表示用于本发明的ICMPv6消息的基本结构的示图。
在ICMPv6消息的“类型”字段中,数0到127用于发送错误消息,数128到255是用来发送信息消息。在用于发现PMTU的ICMP-分组过大消息中,“类型”字段的值为2。
图9B是表示当ICMPv6消息的“类型”字段的值为2时ICMP-分组过大消息的基本结构的示图。
该ICMPv6消息的“类型”字段的值被设置为2,并且“代码”字段的值通常被发送机设置为0并被接收机忽略。“MTU”字段指示下一跳链路MTU值。
ICMP-分组过大消息的目的地址从接收到的原始分组的IP首标的源地址复制。
图10A是表示用于根据本发明的PMTU发现方法的修正的ICMP-分组过大消息的基本结构的示图。除了“代码”字段的值为0或1的事实,图10A所示的修正的ICMP-分组过大消息具有与图9B的ICMP-分组过大消息的结构相同的结构。
当为了源节点发送的数据分组产生ICMP-分组过大消息时,“代码”字段的值被设置为0。当为了将在后面解释的“类型”字段数143的ICMP-PMTUD最小化分组而产生ICMP-分组过大消息时,“代码”字段的值被设置为1。
在解释根据本发明PMTU发现方法的实施例中,“代码”字段的值是0或1。然而,即使当选择性地使用其中“代码”字段的值被设置为0的图9B的ICMP-分组过大消息时,根据本发明的PMTU发现方法仍可实现。
图10B是表示用于根据本发明的PMTU发现方法的新定义的ICMP信息消息即ICMP-PMTUD最小化分组的示图。目前,数128至255可用于ICMP信息消息,而且已定义至数142。
在解释根据本发明的协议的实施例中,产生并使用“类型”字段数为143的新ICMP信息消息。然而,也可以通过使用不是143的而且目前没有定义的另一“类型”字段数来使用根据本发明的PMTU发现方法。
指示根据本发明新定义的PMTUD最小化分组的数143被存储于图10B所示的ICMP信息消息的“类型”字段中,并且存储于“代码”字段的值被设置为0。
下一跳链路MTU值存储于“MTU”字段中。被丢弃的先前分组的源地址被存储为源地址值,被丢弃的先前分组的目的地址被存储为目的地址值。
不同于ICMP-分组过大消息,新定义的ICMP信息消息,即PMTUD最小化分组,被发送给目的节点。为使消息的大小满足下一跳链路MTU,该消息用哑数据填充。
当根据本发明的OIP分组在路由选择路径中丢失并且源节点710在OIP分组780发送后的预定的时间内没能接收到回应OIP分组时,执行使用图10A的修正的ICMP-分组过大消息和作为新定义的ICMP信息消息的图10B所示的ICMP-PMTUD最小化分组的PMTU发现方法。现在参照图7B来解释该PMTU发现方法。该预定的时间可考虑系统和网络环境适当地调节。
图7B所示的作为主机操作的源节点710包括功能单元,该功能单元可分辨修正的ICMP-分组过大消息的“代码”字段的0和1,在接收到该消息后立即新定义PMTU,并再次发送满足该新PMTU大小的分组。
第一节点720、第四节点750、和第五节点760的每一个包括功能单元,该功能单元如在源节点一样可分辨修正的ICMP-分组过大消息的“代码”字段的0和1,并产生图10A的修正的ICMP-分组过大消息和图10B的作为新定义的ICMP信息消息的ICMP-PMTUD最小化分组。此外,如图6所示这些节点的每个包含存储空间,例如,高速缓存(未显示)用来当ICMP-PMTUD最小化分组被丢弃时在预定的时间内存储存储于被丢弃的ICMP-PMTUD最小化分组中的源地址、目的地址和先前的PMTU信息。
源节点710将根据下一跳链路MTU值即MTU=6分割的分组①发送给目的节点770。
由于接收到的分组①的大小大于下一跳链路MTU值5,所以第一节点720产生包含下一跳链路MTU信息即MTU=5的ICMP-分组过大消息,并将该消息发送给源节点710。在此,由于该消息是用于由源节点710原来想要发送的数据分组的ICMP错误消息,所以“代码”字段的值是0。第一节点720也产生产生其以满足下一跳链路MTU=5而且显示在图10B中的ICMP-PMTUD最小化分组③,并将该分组发送给目的节点770。
由于由第一节点720发送的ICMP-PMTUD最小化分组③的大小大于下一跳链路MTU值4,所以第四节点750产生包含下一跳链路MTU信息即MTU=4的ICMP-分组过大消息④,并将该消息发送给源节点710。在此,由于该消息是关于ICMP-PMTUD最小化分组,所以“代码”字段的值是1。此外,第四节点750将存储在先前的ICMP-PMTUD最小化分组即第一节点720发送的ICMP-PMTUD最小化分组③的“MTU”、“源地址”、和“目的地址”字段中的信息存储于存储空间,例如,具有图8所示结构的高速缓存。另外,第四节点750产生为满足下一跳链路MTU=4而产生的ICMP-PMTUD最小化分组⑤,并将该分组发送给目的节点770。
由于由第四节点750发送的ICMP-PMTUD最小化分组⑤的大小大于下一跳链路MTU值3,所以第五节点760产生包含下一跳链路MTU信息即MTU=3的ICMP-分组过大消息⑥,并将该消息发送给源节点710。在此,由于该消息是关于ICMP-PMTUD最小化分组⑤,所以“代码”字段的值是1。此外,第五节点760将存储于先前的ICMP-PMTUD最小化分组即由第四节点750发送的ICMP-PMTUD最小化分组⑤的“MTU”、“源地址”、和“目的地址”字段的信息存储于高速缓存,并且产生为满足下一跳链路MTU=3而产生的ICMP-PMTUD最小化分组⑦,并将该分组发送给目的节点770。
同时,在接收到“代码”字段值为0而且由第一节点720发送的ICMP-分组过大消息②以后,源节点710根据包含在该消息中的链路MTU值即MTU=5将分组分割,并发送该分割的分组。
如果源节点710在源节点710发送根据包含在“代码”字段值为0而且由第一节点720发送的ICMP-分组过大消息②中的链路MTU值即MTU=5分割的分组之前接收到其“代码”字段值为1而且由第四节点750发送的ICMP-分组过大消息④,则源节点710丢弃根据ICMP-分组过大消息②分割的分组,根据包含在“代码”字段值为1的ICMP-分组过大消息④中的MTU值即大小为MTU=4再次分割分组,并发送分割的分组。
如果在源节点710接收到“代码”字段值为1的ICMP-分组过大消息之前源节点710发送根据包含在“代码”字段值为0的ICMP-分组过大消息中的MTU信息即MTU=5分割的分组,则该根据MTU=5分割的分组可到达第四节点750。但是,由于下一跳链路MTU是4,第四节点750丢弃该分组。
第四节点750已在高速缓存中存储在由第一节点720发送的ICMP-PMTUD最小化分组③的“MTU”、“源地址”、和“目的地址”字段中存储的信息。由于这些存储于高速缓存的值与分组中的信息相同,所以第四节点750不产生单独的ICMP错误消息。这样做,可防止不必要的网络资源的使用。
产业上的可利用性在根据本发明的实施例中,假设在源节点和目的节点之间的路由选择路径上的所有节点支持根据本发明的图10A的修正的ICMP-分组过大消息和作为新定义的ICMP信息消息的图10B的ICMP PMTUD最小化分组。然而,即使这些节点中的一些节点不支持根据本发明的消息,使用现有技术PMTU发现方法的在源节点和目的节点之间的PMTU发现也是可能的。
最佳的实施例在上面已解释并显示了。但是,本发明不限于上述的优选实施例,并且很清楚地,在不脱离由所附权利要求限定的本发明的精神和范围的情况下,本领域的技术人员可做变化和修改.
本发明可以在计算机可读记录介质上的计算机可读的代码的形式来实施。计算机可读记录介质包括在其上存储计算机可读数据的各种记录设备。
计算机可读记录介质包括诸如磁存储介质(如ROM、软盘、硬盘等)、光可读介质(如CD-ROM、DVD等)和载波(如通过互联网发送)的存储介质。此外,计算机可读记录介质可分散于通过网络连接的计算机系统并且可以分布模式存储及执行计算机可读代码。
如上所述,当使用根据本发明的PMTU增加方法时,与现有技术PMTU方法相比,可在更短的时间内确定PMTU,也可以最小化网络资源的使用。此外,即使在路由选择路径中的一些节点不支持根据本发明的分组类型,在源节点和目的节点之间的PMTU发现仍可通过使用现有技术PMTU发现方法来执行。
尽管本发明是参照优选实施例具体地显示和描述的,但本领域的技术人员可以理解,在不脱离由所附权利要求限定的本发明的精神和范围的情况下,可以对其进行形式和细节的各种修改。
权利要求
1.一种在动态互联网协议(IP)网络上改变在源节点和目的节点之间路径最大传输单位(PMTU)的方法,包括(a)产生具有在其中存储在源节点和目的节点之间的路由选择路径上的MTU值的最大传输单位(MTU)信息存储空间的PMTU发现分组;(b)将该产生的PMTU发现分组发送给目的节点;和(c)如果接收到来自目的节点的PMTU发现分组的回应分组,则根据包含在该回应分组中的MTU信息改变PMTU,其中,将存储于MTU信息存储空间的MTU值与PMTU发现分组经过的路径上的链路MTU值比较,并且存储的MTU值和PMTU发现分组经过的路径上的链路MTU值中的较小者被存储于MTU信息存储空间。
2.如权利要求1所述的方法,其中,如果当前PMTU值维持了预定的时间,则产生在步骤(a)中产生的PMTU发现分组。
3.如权利要求1所述的方法,其中PMTU发现分组的大小等于或小于当前PMTU的大小。
4.如权利要求1所述的方法,其中在步骤(a)中源节点的下一跳链路MTU值存储于MTU信息存储空间。
5.如权利要求1所述的方法,其中步骤(c)包括步骤(c1),其中,如果PMTU发现分组到达目的节点,则产生包含在PMTU发现分组的MTU信息存储空间中存储的MTU值的分组,并且将该分组发送给源节点。
6.如权利要求1所述的方法,其中PMTU发现分组是符合互联网协议版本6并且具有是扩展首标的逐跳可选首标的分组。
7.如权利要求6所述的方法,其中PMTU发现分组的逐跳可选首标的选择类型字段存储指示如果路由选择路径中间的节点不识别PMTU发现分组的选择类型则该PMTU发现分组应被丢弃的信息。
8.如权利要求7所述的方法,其中指示该PMTU发现分组应被丢弃的信息是存储于选择类型字段中的最高2位。
9.如权利要求6所述的方法,其中选择类型字段存储指示能否改变存储于MTU信息存储空间的MTU信息的信息。
10.如权利要求9所述的方法,其中指示能否改变MTU信息的信息是存储于选择类型字段的最高第三位。
11.如权利要求1所述的方法,其中在其中存储MTU信息的字段是IPv6的逐跳可选首标的选择字段中的选择数据字段。
12.如权利要求1所述的方法,还包括(d)如果在发送PMTU发现分组至目的节点后在预定的时间内没有接收到回应分组,则将根据预定的PMTU值分割的分组发送给目的节点。
13.如权利要求12所述的方法,其中预定的大小是源节点的下一跳链路MTU。
14.如权利要求12所述的方法,还包括(e)如果在发送根据预定的PMTU值分割的分组后接收到错误消息,则根据包含在接收到的错误消息中的链路MTU信息再次将分组分割,并发送分组。
15.如权利要求14所述的方法,其中错误消息是在互联网协议版本6(IPv6)的ICMP消息的“类型”字段中使用数0至127之一的互联网控制消息协议(ICMP)错误消息。
16.如权利要求14所述的方法,其中所述错误消息是IPv6的ICMP-分组过大消息。
17.如权利要求12所述的方法,还包括(f)如果在步骤(d)中发送的分组的大小大于路由选择路径中间的节点的下一跳链路MTU,则该节点产生错误消息,将产生的错误消息发送给源节点,产生该节点的下一跳链路MTU大小的测试消息,并将产生的测试分组发送给目的节点。
18.如权利要求17所述的方法,其中测试消息是在IPv6的ICMP消息的“类型”字段中使用数128至255之一的ICMP信息消息。
19.如权利要求17所述的方法,其中在步骤(f)中产生的测试消息包含由该节点接收到的分组的源地址及目的地址和该节点的下一跳链路MTU信息。
20.如权利要求17所述的方法,还包括(g)如果所述节点接收到的分组是由在路由选择路径中的先前的节点产生的测试消息,则存储包含在接收到的分组中的MTU信息、源地址信息和目的地址信息。
21.如权利要求20所述的方法,还包括(h)比较将在步骤(f)中产生的错误消息发送给源节点之后接收到的分组的MTU信息、源地址信息和目的地址信息与在步骤(g)中存储的MTU信息、源地址信息和目的地址信息,如果每一比较中的信息都相同,则丢弃在发送在步骤(f)中产生的错误消息后接收到的分组而不产生错误消息和测试消息。
22.一种在动态IP网络上改变在源节点和目的节点之间的路径最大传输单位(PMTU)的设备,该设备包括PMTU发现分组产生单元,产生具有在其中存储在源节点和目的节点之间的路由选择路径上的最大传输单位(MTU)值的MTU信息存储空间的PMTU发现分组;发送单元,将该产生的PMTU发现分组发送给目的节点;和PMTU改变单元,如果接收到来自目的节点的PMTU发现分组的回应分组,则根据包含在该回应分组中的MTU信息改变PMTU,其中,将存储于MTU信息存储空间的该MTU值与PMTU发现分组经过的路径上的链路MTU比较,存储的MTU值和经过的路径上的链路MTU值中的较小者被存储于MTU信息存储空间。
23.如权利要求22所述的设备,其中,如果当前PMTU值维持了预定的时间,则产生PMTU发现分组。
24.如权利要求22所述的设备,其中PMTU发现分组的大小等于或小于当前PMTU的大小。
25.如权利要求22所述的设备,其中源节点的下一跳链路MTU值存储于MTU信息存储空间。
26.如权利要求22所述的设备,其中,如果PMTU发现分组到达目的节点,则产生包含在PMTU发现分组的MTU信息存储空间中存储的MTU值的分组,并将其发送给源节点。
27.如权利要求22所述的设备,其中PMTU发现分组是符合互联网协议版本6并且具有是扩展首标的逐跳可选首标的分组。
28.如权利要求27所述的设备,其中PMTU发现分组的逐跳可选首标的选择类型字段存储指示如果路由选择路径中间的节点不识别PMTU发现分组的选择类型则该PMTU发现分组应被丢弃的信息。
29.如权利要求28所述的设备,其中指示该PMTU发现分组应被丢弃的信息是存储于选择类型字段的最高2位。
30.如权利要求27所述的设备,其中选择类型字段存储指示能否改变存储于MTU信息存储空间的MTU信息的信息。
31.如权利要求30所述的设备,其中指示能否改变MTU信息的信息是存储于选择类型字段的最高第三位。
32.如权利要求22所述的设备,其中在其中存储MTU信息的字段是IPv6逐跳首标的选择字段中的选择数据字段。
33.如权利要求22所述的设备,其中,如果在发送PMTU发现分组至目的节点后在预定的时间内没有接收到回应分组,则将根据预定的PMTU值分割的分组发送给目的节点。
34.如权利要求33所述的设备,其中预定的大小是源节点的下一跳链路MTU。
35.如权利要求33所述的设备,其中,如果在发送根据预定的PMTU值分割的分组后接收到错误消息,则根据包含在接收到的错误消息中的链路MTU信息再次将分组分割,并发送分组。
36.如权利要求35所述的设备,其中错误消息是在互联网协议版本6(IPv6)的ICMP消息的“类型”字段中使用数0至127之一的互联网控制消息协议(ICMP)错误消息。
37.如权利要求35所述的设备,其中错误消息是IPv6的ICMP-分组过大消息。
38.如权利要求33所述的设备,其中如果发送的分组的大小大于路由选择路径中间的节点的下一跳链路MTU,则该节点产生错误消息,将产生的错误消息发送给源节点,产生该节点的下一跳链路MTU大小的测试消息,并将产生的测试分组发送给目的节点。
39.如权利要求38所述的设备,其中测试消息是在IPv6的ICMP消息的“类型”字段中使用数128至255之一的ICMP信息消息。
40.如权利要求38所述的设备,其中产生的测试消息包含由该节点接收到的分组的源地址及目的地址信息和该节点的下一跳链路MTU信息。
41.如权利要求38所述的设备,其中如果节点接收到的分组是由在路由选择路径中先前的节点产生的测试消息,则存储包含在接收到的分组中的MTU信息、源地址信息和目的地址信息。
42.如权利要求41所述的设备,其中,比较将在产生的错误消息发送给源节点之后接收到的分组的MTU信息、源地址信息和目的地址信息与存储的MTU信息、源地址信息和目的地址信息比较,如果每一比较中的信息都相同,则丢弃在发送产生的错误消息后接收到的分组而不产生错误消息和测试消息。
全文摘要
一种在动态IP网络上的源节点和目的节点之间的PMTU的发现和改变的方法包括产生具有在其中存储在源节点和目的节点之间的路由选择路径上的MTU值的MTU信息存储空间的PMTU发现分组;将所产生的PMTU发现分组发送给目的节点;和如果接收到来自目的节点的PMTU发现分组的回应分组,则根据包含在该回应分组中的MTU信息改变PMTU,其中,将存储于MTU信息存储空间的MTU值与PMTU发现分组经过的路径上的链路MTU值比较,存储的MTU值和分组经过的路径上的链路MTU值中的较小者被存储于MTU信息存储空间。
文档编号H04L12/56GK1647454SQ03807526
公开日2005年7月27日 申请日期2003年2月26日 优先权日2002年3月29日
发明者李学求, 金永根, 金善友, 李在皇 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1