专利名称:确定网络路径传输单元的制作方法
技术领域:
本发明一般涉及发现网络传输单元长度,该网络传输单元长度用于通过网络进行的发送端和接收端之间的数据传输,所述网络中的中介联网机器可能具有不同的最大传输单元长度。
背景技术:
例如因特网或其它网络的网络,可能具有各种联网机器,例如路由器、网关、服务器、客户机等。每个联网机器包括用于与其它联网机器通信的网络接口卡(NIC)(或其它通信设备)。网络通信本质上涉及小型数据包的传输,通常称为“数据报”或“分组”。不幸的是,不存在标准的最大数据报长度,因此通信端点之间的路线(此后称为“路径”)上的不同机器可利用支持不同最大数据报长度的不同的通信方法(例如,以太网,802.11)。
因此,设计通信协议来将特定的数据报分解成较小的数据块,以适应路径上机器所支持的最大数据报长度。例如,因特网协议(IP)提供了“IP分段”,它指将IP分组分解成若干段以满足底层网络接口的最大传输单元(MTU)的过程。MTU是网络接口类型所支持的最大物理分组长度,例如数据报长度。当数据通过网络上的机器时,在继续发送之前把大于特定机器的MTU的任何接收分组分段成较小的分组。
这样,当发送机器向接收机器发送分组时,理想的是发送端所用的MTU不大于路径上所有中介机器支持的最大MTU。如上所述,如果分组大于各个中介MTU的其中之一,将对其进行分段。这种分段使传输速度下降,并且因为IP的尽力传送特性,使得整个数据报被丢弃的可能性增加。图1说明分组分段过程。基于发送机器的本地MTU发送100分组。分组可由路径上的一个或多个中介机器104接收102,接着将分组的相关长度与中介接收端的本地MTU作比较,以判断106接收分组的MTU是否大于本地的MTU。如果大于,则将分组分段108以适应本地的MTU。将分组分段或者分段不必要时的接收分组转发110至接收端。接收114分组,且如有必要则从各分段重建116原始发送的分组。
这种分段对协议,例如基于IP之上的传输控制协议(TCP)具有不利的影响。单一TCP分段可能需要编码成多个IP分组(分组数取决于发送机器的MTU)。如上所述,如果发送机器的MTU大于底层网络的MTU,则对TCP分段的分组分段。接收端必须成功地接收所有IP分段,以便重建TCP分段。即使仅丢失一个分组分段,接收机都不能重建数据报,使得整个数据报被丢弃,等待所丢弃的TCP分段的确认的TCP发送端最终超时,导致整个TCP分段被重传。
为了使重传风险最小化,某些TCP实现尝试识别出路径沿线上所支持的最大MTU。一般采用试错法。如图2所示,选择200分组长度;最初的值一般为发送端的缺省/期望的MTU。发送202设置了“不要分段”(DF)位的IP分组。发送端和接收端之间的路由器或其它中间机器接收204该设置了DF位的分组。在分组长度和接收机的本地MTU之间进行比较。如果206本地的MTU小于分组长度,则接收机不可未对该分组分段就将其转发。
因为设置了DF位,故接收机将分组丢弃208并向发送端发送因特网控制消息协议(ICMP)分组以提醒发送端该数据报已被丢弃。有时,接收机将连同ICMP一起报告应采用的MTU。但是,经常只发送ICMP,这要求发送端猜测该采用何种MTU。因此,对于发送端和接收端之间的每个中间机器,处理将循环210,其中,发送端将以增量方式选择200另一个MTU长度。采用新选定的MTU的发送主机再次发送TCP分段,它当然可能导致某个后续中间机器发送另一ICMP消息。假定当前的接收机不是预定的接收端,如果206发送端的MTU不大于本地的MTU,那么将分组朝接收端转发212,如上所述接收204该分组并对其进行处理206-210,直到该分组最终由预定的接收端接收。
这种用于发现最大路径MTU的增量式方法可能导致发送端在其最终达到预定的目的地之前多次发送最初的TCP分段。对于持续时间短的连接,因为重传,轮询会将相当多的开销加到连接中。这对希望能够以非常高的速率处理短事务的基于TCP的应用特别重要。为了获得更多的信息,请参考因特网工程任务组(IETF)请求评论(RFC)1191。
发明内容
本发明的目在于提供一种方法,用于跟踪发送端和接收端之间路径沿线上可用的最大传输长度,所述方法包括如下步骤接收发送给所述接收端的网络分组,所述网络分组保存第一传输长度;将所述第一传输长度同与网络接口相关的第二传输长度作比较;以及如果所述第二传输长度小于所述第一传输长度,则将所述第二传输长度保存到所述接收的网络分组中。
根据本发明的一个方面,所述方法还包括如下步骤用指示保存在所述接收的网络分组中的所述传输长度的响应分组来应答所述发送端。
根据本发明的一个方面,所述响应网络分组的传送根据TCP/IP协议,且其中对所述发送端的所述应答包括如下步骤将所述响应分组的最大段长度选项设置为保存在所述接收的网络分组中的所述传输长度。
根据本发明的一个方面,所述接收的网络分组包括其中保存了所述第一传输长度的分组首部。
根据本发明的一个方面,将所述第二传输长度保存到所述网络分组中的步骤包括用所述第二传输长度替换保存在所述分组首部中的所述第一传输长度。
根据本发明的一个方面,所述方法还包括如下步骤将所述网络分组朝所述接收端转发。
根据本发明的一个方面,所述方法还包括如下步骤维护所述分组的差错校验和。
本发明的目还在于提供又一种方法,用于在发送端和接收端之间发起TCP/IP通信会话,所述接收端被配置为识别SYN分组中的记录MTU选项,将所述SYN分组中保存的MTU与所述接收端的MTU作比较,并识别所述保存的MTU和所述接收端的MTU中的较小的MTU,所述方法包括向所述接收端发送SYN分组,所述SYN分组包括记录MTU选项以及所述SYN分组保存了所述发送端的最大传输单元(MTU);以及从所述接收端接收设置了所述最大段长度(MSS)选项的SYN/ACK分组以及保存所述较小MTU的所述响应分组。
根据本发明的一个方面,所述方法还包括如下步骤发送多个网络分组,所述分组中的每个都具有不大于所述较小MTU的长度。
本发明的目还在于提供又一种方法,用于跟踪发送端和接收端之间路径上可用的最大分组传输长度,所述方法包括如下步骤接收发送给所述接收端的网络通信初始化分组,所述网络通信初始化分组保存传输长度;将所述保存的传输长度同与用于传输网络流量的网络接口相关的本地传输长度作比较;以及如果所述本地传输长度小于所述保存的传输长度,则用所述本地传输长度替换所述保存的传输长度,以使得最小的传输长度仍旧记录在所述网络通信初始化分组中。
根据本发明的一个方面,所述网络通信初始化分组设置了记录MTU选项,所述选项表示所述保存的传输长度的存在。
根据本发明的一个方面,所述方法还包括如下步骤响应所述网络通信初始化分组向所述发送端发送确认分组,所述确认分组所设的最大段长度(MSS)不大于所述保存的传输长度。
本发明的目的还在于提供一种包括机器可访问媒体的制品,所述机器可访问媒体含用于跟踪发送端和接收端之间路径上可用的最大传输长度的相关指令,其中所述指令在被访问时导致机器执行如下步骤接收发送给所述接收端的网络分组,所述网络分组保存第一传输长度;将所述第一传输长度同与网络接口相关的第二传输长度作比较;以及如果所述第二传输长度小于所述第一传输长度,则将所述第二传输长度保存到所述接收的网络分组中。
根据本发明的一个方面,所述制品的特征在于所述机器可访问媒体还包括这样的指令,该指令在被访问时导致所述机器执行如下步骤用指示所述接收的网络分组中保存的传输长度的响应分组来应答所述发送端。
根据本发明的一个方面,所述制品的特征在于所述机器可访问的媒体还包括用于将所述响应网络分组根据TCP/IP协议格式化的指令,以及其中用于应答所述发送端的所述指令包括这样的指令,该指令在被访问时导致所述机器执行如下步骤将所述响应分组的最大段长度选项设置为所述接收的网络分组中保存的传输长度。
根据本发明的一个方面,所述制品的特征在于用于将所述第二传输长度保存到所述网络分组中的所述指令还包括这样的指令,该指令在被访问时导致所述机器执行如下步骤用所述第二传输长度替换保存在所述分组首部中的所述第一传输长度。
本发明的目的还在于提供又一种包括机器可访问媒体的制品,所述机器可访问媒体具有用于在发送端和接收端之间发起TCP/IP通信会话的相关指令,所述接收端被配置为识别SYN分组中的记录MTU选项,将所述SYN分组中保存的MTU与所述接收端的MTU作比较,并识别所述保存的MTU和所述接收端的MTU中的较小的MTU,其中所述指令在被访问时导致所述机器执行如下步骤向所述接收端发送SYN分组,所述SYN分组包括记录MTU选项以及所述SYN分组保存了所述发送端的最大传输单元(MTU);以及从所述接收端接收设置了所述最大段长度(MSS)选项的SYN/ACK分组以及保存所述较小MTU的所述响应分组。
根据本发明的一个方面,所述制品的特征在于所述机器可访问媒体还包括这样的指令,该指令在被访问时导致所述机器执行如下步骤发送多个网络分组,所述分组中的每个都具有不大于所述较小MTU的长度。
本发明的目的还在于提供又一种包括机器可访问媒体的制品,所述机器可访问媒体具有用于跟踪发送端和接收端之间路径上可用的最大传输长度的相关指令,其中所述指令在被访问时导致所述机器执行如下步骤接收发送给所述接收端的网络通信初始化分组,所述网络通信初始化分组保存传输长度;将所述保存的传输长度同与用于传输网络流量的网络接口相关的本地传输长度作比较;以及如果所述本地传输长度小于所述保存的传输长度,则用所述本地传输长度替换所述保存的传输长度,以使得最小的传输长度仍旧记录在所述网络通信初始化分组中。
根据本发明的一个方面,所述制品的特征在于所述机器可访问媒体还包括这样的指令,该指令在被访问时导致所述机器执行如下步骤检查所述网络通信初始化分组以确定是否设置了记录MTU选项。
根据本发明的一个方面,所述制品的特征在于所述机器可访问媒体还包括这样的指令,该指令在被访问时导致所述机器执行如下步骤响应所述网络通信初始化分组向所述发送端发送确认分组,所述确认分组所设的最大段长度(MSS)不大于所述保存的传输长度。
本发明的目的还在于提供机器可访问信息,所述机器可访问信息在用于跟踪发送端和接收端之间路径沿线上可用最大传输长度的传播信号中实现,所述机器可访问信息在被访问时导致机器执行如下步骤接收发送给所述接收端的网络通信初始化分组,所述网络通信初始化分组保存传输长度;将所述保存的传输长度同与用于传输网络流量的网络接口相关的本地传输长度作比较;以及如果所述本地传输长度小于所述保存的传输长度,则用所述本地传输长度替换所述保存的传输长度,以使得最小的传输长度仍旧记录在所述网络通信初始化分组中。
根据本发明的一个方面,所述机器可访问信息的特征在于还包括这样的信息,该信息在被访问时导致所述机器执行如下步骤响应所述网络通信初始化分组向所述发送端发送确认分组,所述确认分组所设的最大段长度(MSS)不大于所述保存的传输长度。
本发明的目的还在于提供一种用于跟踪发送端和接收端之间路径沿线上可用的最大传输长度的系统,所述系统包括机器;以及天线,它与所述机器通信连接,用于接收对机器可访问信息编码的传播信号,所述机器可访问信息在被访问时导致所述机器执行如下步骤接收发送给所述接收端的网络通信初始化分组,所述网络通信初始化分组保存传输长度;将所述保存的传输长度同与用于传输网络流量的网络接口相关的本地传输长度作比较;以及如果所述本地传输长度小于所述保存的传输长度,则用所述本地传输长度替换所述保存的传输长度,以使得最小的传输长度仍旧记录在所述网络通信初始化分组中。
根据本发明的一个方面,所述系统的特征在于所述传播信号还对这样的机器可访问信息编码,该机器可访问信息在被访问时导致机器执行如下步骤响应所述网络通信初始化分组向所述发送端发送确认分组,所述确认分组所设的最大段长度(MSS)不大于所述
根据以下对本发明的详细描述,本发明的特征和优点将变得显然,其中图1说明通过网络发送数据的分组分段。
图2说明用于确定网络路径上最小MTU的现有技术的试错法。
图3说明根据一个实施例发现通信端点之间的路径上所支持的最大MTU的过程。
图4说明将图3实施例应用于TCP/IP网络通信协议。
图5说明本发明的某些方面可以在其中实现的适合的计算环境。
具体实施例方式
图3说明根据一个实施例不依靠现有技术中目前所用的增量式轮询方法来发现通信端点之间路径上支持的最大MTU。除非另外指明或由上下文隐含,术语“发送端”和“接收端”将用于指通信端点,而术语“接收机”将指通信端点之间网络路径上的中间机器。
发送端识别300发送端的硬件和/或软件所支持的最大发送端分组(LSP)的长度。如图4所示,在TCP/IP环境中,LSP可以是发送端的MTU;然而,应理解,图3所示的实施例不限于TCP/IP实现。将与发送端的LSP相关的分组发送302给接收端。在一个实施例中,将LSP保存在分组的首部中。在另一实施例中,将LSP保存在分组的数据净荷区。网络路径上的一个或多个中介接收机接收分组并将分组附带的LSP与接收机的最大本地分组(LLP)长度相比较304。与发送端的LSP的情况一样,在TCP/IP实现中,LLP可以是接收机的MTU。
如果306LSP大于LLP,则将接收机的LLP与分组相关联308。例如,如果LSP在分组中保存,则用LLP数据重写分组的适当部分。如果306LSP不大于LLP,或在将接收机的LLP与分组相关联308之后,就在必要时更新310分组,例如,可以重新计算分组的校验和以适应关联308接收机的LLP、可以修改分组的生存期限(TTL)、或进行一些适用于分组的其它例行更新。在更新分组之后,将其向发送端发送312。操作304-312在方框314中示出,用于说明这些操作可以在多个中介接收机中循环316,直到预定接收端接收318为止。
在接收318分组(该分组可能具有比原来与该分组相关的发送端LSP小的相关LSP长度)之后,将当前相关的LSP与接收端的LSP相比较。接收端将用标识将为发送端使用的预期LSP的分组来应答发送端。如果322与该分组相关的LSP大于接收端的LLP,则接收端的LLP是路径上各机器中的最小LLP长度,因此将预期的LSP设为326接收端的LLP。向发送端发送328响应分组,以将接收端的LLP标识为应由发送端用于与接收端通信的LSP。如果322LLP大于LSP,则接收端的LLP要么大于之前遇到的LLP,要么大于发送端的LSP。因此,将预期的LSP设为326当前相关的LSP,并相应发送328响应分组。
图4说明将图3所示的实施例应用于TCP/IP网络通信协议。在这个实施例中,假定通信按照TCP/IP通信协议(或等效的通信协议)进行,并且使用新的IP选项(记录最大传输单元(MTU))和现有的TCP选项(最大段长度(MSS))来发现发送端应使用的MTU,而发送端不必参加目前所用的增量式轮询过程。
如本领域中所公知的那样,为了发起TCP/IP连接,通信端点参加“三方握手”来建立连接。首先,发送端向发送端发送TCP/IP“SYN”分组,例如设置了SYN标志的分组。接收端用携带SYN/ACK分组的分组,例如设置了SYN和确认(ACK)标志的分组来响应。发送端则用ACK分组来响应。如上所述,希望最优化由发送端使用的MTU。为了避免以上讨论的采用试错法来发现MTU,所示的实施例利用了SYN分组,该SYN分组一般沿端点之间用于通信的同一网络路径传播。
在向接收端发送400SYN分组时,在一个实施例中,发送其新IP首部选项“记录MTU”选项设置为发送端的预期MTU的分组,发送端的预期MTU一般为发送端的输出网络接口所支持的最大MTU。在此实施例中,记录MTU选项是添加到IP选项字段中的一个字段,例如,是一个新的6字节的类型长度值(TLV)字段。根据各种目前的TCP/IP配置,类型和长度均为一字节,而MTU字段为4字节。应理解,长度字段不是必需的,但为了符合IETF RFC 1812,长度字段必须为不理解新选项的路由器(忽略未知的选项)存在。
如以上参照图3所述,分组可能由多个中间接收机接收,总的由框402和循环返回404表示。在特定中间机器,例如发送端和目的地接收端之间的路由器接收406分组时,对记录MTU选项的处理与对现有IP记录路由选项的处理类似(参见例如RFC 791)。当某个支持记录MTU选项的接收机检测到该选项的存在时,它就将接收端的MTU,例如接收端输出网络接口的MTU与该分组当前保存的路径MTU的MTU作比较。如果408当前的路径MTU大于接收机的MTU,则接收机就用接收机的MTU替换410记录MTU选项中的MTU字段。这样,就保存了路径所支持的最小MTU。根据RFC 1812,不理解记录MTU选项的接收机将会忽略它。如果408接收机的MTU超过所保存的路径MTU,或者在替换所保存的路径MTU之后,则如有必要就更新412分组,例如重新计算分组的校验和、减少生存时间(TTL)、等等。
接着朝目的地接收端发送该分组;如上所述,在接收端收到416SYN分组之前,处理可能在多个中间接收机中循环404。为了向发送端发送SYN/ACK,假定接收端理解记录MTU选项,接收端将路径MTU与接收端的MTU作比较418。如果420路径MTU小于接收端的MTU,则接收端将SYN/ACK分组的最大段长度(MSS)选项(参见RFC 793)设置为路径MTU,例如,接收端报告通信端点之间的路径上的机器所支持的最小MTU。如果420接收端的MTU小于路径MTU,则接收端将SYN/ACK分组的MSS选项设置为接收端的MTU。然后将SYN/ACK响应分组发回426发送端。
在常规的TCP实现中,如果SYN/ACK响应不包含MSS选项,则发送端必须假定缺省的MSS长度。然而,如果设置了MSS选项,那么发送端不准发送大于MSS的段。因此,如上所述,主机可以确定它可以发送给接收端的有效的路径MTU。应理解,接收端可以利用记录MTU选项来确定用于与发送端通信的最佳MTU。这种由接收端进行的检查可能是帮助的,因为路由不一定是对称的。还应理解,所发送的任何分组都可以设置新记录MTU选项。然而,除非期待的是持续时间长的连接,否则如上所述,可以在连接协商期间有效地发现所支持的最大路径MTU。
在图4中,假定中介接收机和目的地接收端理解新记录MTU选项。然而,情况不一定如此。在一个未作图示的实施例中,发送端为发送的TCP段设置不要分段(DF)标志。因此,如果中介接收机或目的地接收端不理解新纪录MTU选项,以及该段的MTU太大,那么如以上参照图2的所述,该段被丢弃并向发送端发送ICMP出错消息。这就允许透明地恢复使用传统的轮询或其它路径MTU发现技术。
图5和如下讨论意在提供对一种合适的机器的简明、一般的描述,所述发明的某些方面可以在所述合适的机器中实现。在本说明书中,术语“机器”包括单个机器,例如计算机、手持设备、交通设备等或者在通信时相连的若干机器或设备构成的系统。
一般而言,机器500包括系统总线502,与系统总线502相连的是处理器504、例如随机存取存储器(RAM)、只读存储器(ROM)或者其它状态保持媒体的存储器506、存储装置508、视频接口510和输入/输出接口端口512。所述机器可至少部分由例如键盘、鼠标的常规输入设备的输入以及通过接收自另一机器的指令、与虚拟现实(VR)环境的交互、生物计量的反馈或其它输入源或信号来控制。
所述机器可包括嵌入式控制器,例如可编程或不可编程的逻辑器件或阵列、专用集成电路、嵌入式计算机、智能卡等。该机器可通过例如网络接口5 18、调制解调器520或其它通信连接来利用连到一个或多个远程机器514、516的多条连接。多个机器可通过例如内部网、因特网、局域网和广域网的物理和/或逻辑网络522互联。本领域的技术人员应理解,网络522可利用各种有线和/或无线的短程或远程载体和协议,其包括射频(RF)、卫星、微波、电气电子工程师协会(IEEE)的802.11、蓝牙、光、红外线、电缆、激光等。
本发明可通过引用或结合包括各种功能、程序、数据结构、应用程序等的相关数据来描述,所述相关数据在被机器使用时导致所述机器执行各种任务或者定义抽象数据类型或低级硬件关联。相关数据可以保存在例如易失性和/或非易失性存储器506、或者存储装置508及其相关的存储媒体中,所述相关的存储媒体包括硬盘驱动器、软盘驱动器、光存储器、磁带、快速存储器、存储条、数字视频盘、生物存储器等。相关数据可通过包括网络522的传输环境以分组、串行数据、并行数据、传播信号等形式传送,并可以压缩或加密格式使用。相关数据可用于分布式环境中,并且在本地和/或远程存储,以供单个或多个处理机器、便携式计算机、如个人数字助理(PDA)的手持式设备、蜂窝电话、输入板等存取。
因此,例如参照所述实施例,假定机器500实现图4所示的与目的地接收端建立通信会话的发送机器,则远程机器514、516可分别作为通信端点之间网络路径524上的两个中间接收机。应理解,远程机器514、516可像机器500一样配置,并因此包括所述的机器所用的许多或所有部件。
已经参照所述实施例对本发明的原理作了说明和图解,应理解,在不背离这些原理的前提下,可对所述实施例在配置和细节上进行修改。并且,尽管前述讨论集中于特定实施例,但也可考虑其它配置。具体说,即使本说明中使用了例如“在一个实施例”、“在另一实施例”等表达,这些措词意在一般地指实施例的各种可能,并不打算将本发明限制于特定的实施结构。在说明书中,这些术语可指能结合到其它实施例中的相同或不同的各种实施例。
因此,鉴于本说明书所述实施例的各种各样的排列,本详细说明仅仅旨在作为说明性的,不应视为限制本发明的范围。因此,本发明所要求的是在以下权利要求及其等效的精神和范围之内的所有这种修改。
权利要求
1.一种用于跟踪发送端和接收端之间路径沿线上可用的最大传输长度的方法,所述方法包括接收发送给所述接收端的网络分组,所述网络分组保存第一传输长度;将所述第一传输长度同与网络接口相关的第二传输长度作比较;以及如果所述第二传输长度小于所述第一传输长度,则将所述第二传输长度保存到所述接收的网络分组中。
2.如权利要求1所述的方法,其特征在于还包括用指示保存在所述接收的网络分组中的所述传输长度的响应分组来应答所述发送端。
3.如权利要求2所述的方法,其特征在于,所述响应网络分组的传送根据TCP/IP协议,且其中对所述发送端的所述应答包括将所述响应分组的最大段长度选项设置为保存在所述接收的网络分组中的所述传输长度。
4.如权利要求1所述的方法,其特征在于,所述接收的网络分组包括其中保存了所述第一传输长度的分组首部。
5.如权利要求4所述的方法,其特征在于,将所述第二传输长度保存到所述网络分组中包括用所述第二传输长度替换保存在所述分组首部中的所述第一传输长度。
6.如权利要求1所述的方法,其特征在于还包括将所述网络分组朝所述接收端转发。
7.如权利要求1所述的方法,其特征在于还包括维护所述分组的差错校验和。
8.一种用于在发送端和接收端之间发起TCP/IP通信会话的方法,所述接收端被配置为识别SYN分组中的记录MTU选项,将所述SYN分组中保存的MTU与所述接收端的MTU作比较,并识别所述保存的MTU和所述接收端的MTU中的较小的MTU,所述方法包括向所述接收端发送SYN分组,所述SYN分组包括记录MTU选项以及所述SYN分组保存了所述发送端的最大传输单元(MTU);以及从所述接收端接收设置了所述最大段长度(MSS)选项的SYN/ACK分组以及保存所述较小MTU的所述响应分组。
9.如权利要求8所述的方法,其特征在于还包括发送多个网络分组,所述分组中的每个都具有不大于所述较小MTU的长度。
10.一种用于跟踪发送端和接收端之间路径上可用的最大分组传输长度的方法,所述方法包括接收发送给所述接收端的网络通信初始化分组,所述网络通信初始化分组保存传输长度;将所述保存的传输长度同与用于传输网络流量的网络接口相关的本地传输长度作比较;以及如果所述本地传输长度小于所述保存的传输长度,则用所述本地传输长度替换所述保存的传输长度,以使得最小的传输长度仍旧记录在所述网络通信初始化分组中。
11.如权利要求10所述的方法,其特征在于,所述网络通信初始化分组设置了记录MTU选项,所述选项表示所述保存的传输长度的存在。
12.如权利要求1所述的方法,其特征在于还包括响应所述网络通信初始化分组向所述发送端发送确认分组,所述确认分组所设的最大段长度(MSS)不大于所述保存的传输长度。
13.一种包括机器可访问媒体的制品,所述机器可访问媒体含用于跟踪发送端和接收端之间路径上可用的最大传输长度的相关指令,其中所述指令在被访问时导致机器执行如下步骤接收发送给所述接收端的网络分组,所述网络分组保存第一传输长度;将所述第一传输长度同与网络接口相关的第二传输长度作比较;以及如果所述第二传输长度小于所述第一传输长度,则将所述第二传输长度保存到所述接收的网络分组中。
14.如权利要求13所述的制品,其特征在于,所述机器可访问媒体还包括这样的指令,该指令在被访问时导致所述机器执行如下步骤用指示所述接收的网络分组中保存的传输长度的响应分组来应答所述发送端。
15.如权利要求14所述的制品,其特征在于,所述机器可访问的媒体还包括用于将所述响应网络分组根据TCP/IP协议格式化的指令,以及其中用于应答所述发送端的所述指令包括这样的指令,该指令在被访问时导致所述机器执行如下步骤将所述响应分组的最大段长度选项设置为所述接收的网络分组中保存的传输长度。
16.如权利要求13所述的制品,其特征在于,用于将所述第二传输长度保存到所述网络分组中的所述指令还包括这样的指令,该指令在被访问时导致所述机器执行如下步骤用所述第二传输长度替换保存在所述分组首部中的所述第一传输长度。
17.一种包括机器可访问媒体的制品,所述机器可访问媒体具有用于在发送端和接收端之间发起TCP/IP通信会话的相关指令,所述接收端被配置为识别SYN分组中的记录MTU选项,将所述SYN分组中保存的MTU与所述接收端的MTU作比较,并识别所述保存的MTU和所述接收端的MTU中的较小的MTU,其中所述指令在被访问时导致所述机器执行如下步骤向所述接收端发送SYN分组,所述SYN分组包括记录MTU选项以及所述SYN分组保存了所述发送端的最大传输单元(MTU);以及从所述接收端接收设置了所述最大段长度(MSS)选项的SYN/ACK分组以及保存所述较小MTU的所述响应分组。
18.如权利要求17所述的制品,其特征在于,所述机器可访问媒体还包括这样的指令,该指令在被访问时导致所述机器执行如下步骤发送多个网络分组,所述分组中的每个都具有不大于所述较小MTU的长度。
19.一种包括机器可访问媒体的制品,所述机器可访问媒体具有用于跟踪发送端和接收端之间路径上可用的最大传输长度的相关指令,其中所述指令在被访问时导致所述机器执行如下步骤接收发送给所述接收端的网络通信初始化分组,所述网络通信初始化分组保存传输长度;将所述保存的传输长度同与用于传输网络流量的网络接口相关的本地传输长度作比较;以及如果所述本地传输长度小于所述保存的传输长度,则用所述本地传输长度替换所述保存的传输长度,以使得最小的传输长度仍旧记录在所述网络通信初始化分组中。
20.如权利要求19所述的制品,其特征在于,所述机器可访问媒体还包括这样的指令,该指令在被访问时导致所述机器执行如下步骤检查所述网络通信初始化分组以确定是否设置了记录MTU选项。
21.如权利要求19所述的制品,其特征在于,所述机器可访问媒体还包括这样的指令,该指令在被访问时导致所述机器执行如下步骤响应所述网络通信初始化分组向所述发送端发送确认分组,所述确认分组所设的最大段长度(MSS)不大于所述保存的传输长度。
22.机器可访问信息,所述机器可访问信息在用于跟踪发送端和接收端之间路径沿线上可用最大传输长度的传播信号中实现,所述机器可访问信息在被访问时导致机器执行如下步骤接收发送给所述接收端的网络通信初始化分组,所述网络通信初始化分组保存传输长度;将所述保存的传输长度同与用于传输网络流量的网络接口相关的本地传输长度作比较;以及如果所述本地传输长度小于所述保存的传输长度,则用所述本地传输长度替换所述保存的传输长度,以使得最小的传输长度仍旧记录在所述网络通信初始化分组中。
23.如权利要求22所述的机器可访问信息,其特征在于还包括这样的信息,该信息在被访问时导致所述机器执行如下步骤响应所述网络通信初始化分组向所述发送端发送确认分组,所述确认分组所设的最大段长度(MSS)不大于所述保存的传输长度。
24.一种用于跟踪发送端和接收端之间路径沿线上可用的最大传输长度的系统,所述系统包括机器;以及天线,它与所述机器通信连接,用于接收对机器可访问信息编码的传播信号,所述机器可访问信息在被访问时导致所述机器执行如下步骤接收发送给所述接收端的网络通信初始化分组,所述网络通信初始化分组保存传输长度;将所述保存的传输长度同与用于传输网络流量的网络接口相关的本地传输长度作比较;以及如果所述本地传输长度小于所述保存的传输长度,则用所述本地传输长度替换所述保存的传输长度,以使得最小的传输长度仍旧记录在所述网络通信初始化分组中。
25.如权利要求24所述的系统,其特征在于,所述传播信号还对这样的机器可访问信息编码,该机器可访问信息在被访问时导致机器执行如下步骤响应所述网络通信初始化分组向所述发送端发送确认分组,所述确认分组所设的最大段长度(MSS)不大于所述保存的传输长度。
全文摘要
在一个实施例中实现一种协议选项,其中,网络分组保存用于在发送端和接收端之间的路径上发送数据的最大传输单元长度。如果网络分组的接收机所用的最大传输单元(MTU)小于所保存的值,就替换所保存的值。该选项可用于通信初始握手期间发送的初始化分组中,以允许建立通信会话并确定有效的传输单元长度。所发送的初始化分组可设置不分段选项,以致如果接收机不理解所述选项,以及分组对接收机而言太大时,那么接收机就会拒绝该分组并通知发送端,要求采用常规的试错法来确定允许的MTU。
文档编号H04L29/06GK1494296SQ0315941
公开日2004年5月5日 申请日期2003年9月19日 优先权日2002年10月10日
发明者J·贾森, E·J·约翰逊, J 贾森, 约翰逊 申请人:英特尔公司