用于通过避免数据损坏改进网络性能的方法、系统和物品的制作方法

文档序号:7950140阅读:184来源:国知局
专利名称:用于通过避免数据损坏改进网络性能的方法、系统和物品的制作方法
技术领域
本发明主要涉及在数据处理网络系统中的数据传送,并具体涉及通过因特网和相似网络传送数据块。更具体地,本发明涉及改进的因特网协议(IP)网络通信。
背景技术
计算机网络是用于在实体之间传输数据的互连的通信介质的地理上分布的集合。实体可以包括通过通信介质发起(即,传送)和/或接收网络消息的任何设备,例如主机或者终端站。有很种类型的计算机网络可用,这些类型的范围从局域网(LAN)到广域网(WAN)。可以包括个人计算机或者工作站的终端站通常通过根据预定协议交换数据的诸如帧或包的离散消息进行通信。在这种情境下,通信协议栈由定义站彼此之间如何交互的一组规则组成。
因特网已经成为用于传输和分配数据(文本、代码、图像、视频、音频或混合)和软件的重要的计算机网络。因特网通信体系结构协议栈的主要协议是网络层(层3)的网际协议(IP)和传输层(层4)的传输控制协议(TCP)。术语TCP/IP通常被用来指因特网体系结构,其已经成为在因特网和内联网技术中广泛使用的标准的通信协议,使得在客户机、服务器及与其连接的通信系统中广泛的异质性成为可能。IP在网络层提供“数据报”传递服务。TCP建立面向连接的传输层服务以在两个IP主机之间提供可靠、顺序的数据流的传递。TCP/IP传输中的可靠性通常受到三种事件的损害数据丢失、数据损坏和数据的重新排序。
在TCP/IP中的数据丢失由超时机制管理。TCP维护计时器(重传计时器)以测量在从接收器接收到传送的段的确认(ACK)时的延迟。当ACK在估计的时间间隔(重传超时(RTO))内未到达时,则认为相应的段丢失并进行重传。另外,因为TCP传统上是基于包丢失是网络拥塞的指示的假设,所以TCP将通过进入“慢起动”(slow start)使其传输率后退,由此将其拥塞窗口急剧减至一个段。
当段到达接收器时,TCP通过在段上执行校验和来管理数据损坏。校验和算法是在TCP首部和数据中的所有16位字的二进制反码和的16位的二进制反码。TCP发送器计算包数据上的校验和并将该2字节值载入TCP首部。TCP首部的校验和字段还包括包含来自IP首部信息的12字节的伪首部。接收器计算接收到的数据(不包括TCP首部中的2字节的校验和字段)的校验和,并验证其与首部中的校验和值匹配。
TCP通过维护对进入的包排队直至它们按顺序被重新排列的重装队列来管理数据或无序到达的段的重新排序。只有当该队列中的数据排好顺序时,该数据才被传送到用户的接收缓冲器中,在此该数据可以被用户看到。当接收器观察接收到的包的序号中的“漏洞”时,它为接收的每个随后的“无序”包产生一个重复确认(DACK)。直到接收到丢失的包,具有更高序号的每个接收到的数据包认为是“无序”的并将会导致产生DACK。
图10是IP包100的示意方框图,该IP包包含IP首部部分110和有效负载/数据部分150。IP首部110包含指示IP首部的格式的版本字段102、指示因特网首部长度(IHL)的因特网首部长度字段104和提供期望服务质量参数的指示的服务类型(TOS)字段106。IP总长度字段108指定包括IP首部和有效负载/数据的IP包的长度,而IP标识字段110指定发送实体指派以帮助组装包的片段的标识值。
IP首部还包括更多片段(MF)标志112、指定片段在IP包内的位置的IP片段偏移字段114和指示包被允许保持在网络中的最长时间的生存时间(TTL)字段116。协议字段118指示包的有效负载/数据部分150使用的下一层协议,而首部校验和字段120只提供IP首部的校验和。IP首部还包括包含发送实体的IP源地址的源地址字段122,和包含接收实体的IP目标地址的目标地址字段124,还有可选字段126和填充字段128。
如果与源和目标实体相关的局域网标准不同(例如,以太网和令牌环),则对IP数据报(以下称为包)进行分段通常是必需的。在这种情况下,网络的路由器和交换机可能需要改变包的格式,以使得其可以由目标实体接收。例如,如果包从允许大的包大小的网络中产生,并经过一个或多个链接或将包限制为较小大小的局部网(local network),则互连这些网络的交换机必须对IP包分段。在TCP/IP网络环境的情境下,分段和重装过程众所周知并在南加州信息科学研究院大学(1981)的因特网协议征求意见稿(RFC)791中进行了详细描述,该文献在此作为参考并入。根据RFC791,IP分段将一IP包分配到任意数目的随后可被重装的片段。
为了对IP包分段,源或中间系统(例如,交换机)创建两个或更多个新IP片段并将来自原始包的IP首部字段的部分的内容复制到所述片段的每个IP首部中。所述片段的接收实体使用IP标识字段110的内容(即,包标识符(ID))来确保不同包的片段不被混合。也就是说,标识字段110用于将一个包的片段和另一包的片段区分开来。IP片段偏移字段114通知接收实体关于片段在原始包中的位置。片段偏移字段和每个片段的IP总长度字段108的内容决定片段覆盖的原始包的部分。MF标志112指示(例如,当重置时)最后一个片段。完整IP包的发起主机将IP标识字段110设定为在该包将在网络中活跃的时间中对于源/目标地址对和协议(例如,TCP、UDP)的唯一值。完整包的发起主机还将MF标志112设定为例如零,并将IP片段偏移字段114设置为零。
IP标识字段110是2字节字段,在到达65535之后必须环绕(即,必须从1重新开始编号)。在每秒产生数千个IP包的高速网络上,字段110中的IP标识符(IP-ID)每秒能环绕多次。例如,在吉比特以太网上,每秒能产生80,000包,这意味着在1秒内能发生IP ID的环绕。当网络变得还要更快时,这种环绕发生得更频繁。例如,通过10吉比特以太网,可在几毫秒内发生环绕。
结果,如果属于环绕的IP-ID的片段与原始IP-ID标识的不同IP包的片段重装在一起,IP-ID环绕可以是网络中数据损坏的一个原因。诸如TCP或UDP的上层协议可能不能检测到损坏,因为利用首部校验和120检测损坏的因特网校验和算法并不很强大。在IP中通过使用重装计时器(参见RFC 791)来解决这个问题。如果被标识的包的所有片段在重装计时器期间还没有接收到,则IP片段重装使用重装计时器来丢弃片段。IP片段重装的许多实施通常使用30秒的重装计时器。在很快的网络中,IP-ID将会在这个时间间隔中环绕多次,从而提高了片段将与环绕IP-ID的错误片段错误匹配的可能性。
快速网络中IP-ID环绕的已有解决方案是将重装计时器设置成非常低的值,由此减少未完成的重复IP-ID的数目。但是,这在具有高速和低速网络的多种速度的网络环境中会使性能降低,因为当IP包仅仅是还没有到达时,片段将沿着慢的链路被错误丢弃。在慢的网络连接中丢弃IP片段将造成从上层要求不必要的重传。可以看出,希望提供一种对由速度可变的网络上的IP-ID环绕所引起的数据损坏问题的解决方案,该方案相对于已知解决方案提供了改进的性能。

发明内容
根据本发明,公开了一种用于在数据处理系统网络上通信的改进的方法、系统和制造物品。本发明的一个优选方法包括以下步骤判定用于将被发送的特定数据包的定制的重装时间,产生数据包,包括将定制的重装时间插入数据包的字段内,以及发送数据包,其中数据包的接收器将利用定制的重装时间丢弃在接收到包的片段后保持为片段(fragmented)的时间长于由定制的重装时间指示的时间的片段。
用于在数据处理系统网络上的通信的本发明的另一优选方法包括在网络上接收包含一选项的数据片段,该选项指示用于包含该数据片段的数据包的定制重装时间,以及如果在接收到该数据片段后该数据片段相对于该数据包保持为片段的时间长于由定制的重装时间指示的时间,则丢弃该数据片段。
本发明的所有目标、特征和优点将会在下面的详细书面描述中变得显而易见。


在下面的说明中将参照附图通过优选实施例描述本发明,在以下附图中相同的标号表示相同或相似的部件图1示出了其中可以实施本发明的优选实施例的数据处理系统网络。
图2示出了可以用在本发明的优选实施例中的用于服务器-客户系统的典型软件体系结构。
图3是可以用在本发明的优选实施例中的用于网络的4层通信体系结构。
图4示出了可以用在本发明的优选实施例中的诸如由路由器互连的因特网的网络的方框图。
图5示出了可以用在本发明的优选实施例中的当数据包经过TCP/IP协议栈时的该数据包的格式。
图6示出了根据本发明的优选实施例的用于IP首部的重装计时器选项的格式。
图7示出了根据本发明的优选实施例的用于IP首部的时间戳重装计时器选项的格式。
图8示出了根据本发明的优选实施例的用于产生包含重装时间的IP包的过程的流程图。
图9示出了根据本发明的优选实施例的用于响应于接收到IP片段来设定重装计时器的过程的流程图。
图10是包含IP首部部分和有效负载/数据部分的IP包数据格式的示意性方框图。
在下面对本发明的示例性实施例的详细描述中,参照了附图,所述附图形成描述的一部份,并且其中作为示例示出了本发明可在其中实施的具体的示例性实施例。
具体实施例方式
在下面对本发明的示例性实施例的详细描述中,充分详细地描述了本发明可在其中实施的具体的示例性实施例,以使得本领域技术人员能够实施本发明,并可以理解可以利用其他的实施例以及可以进行逻辑、结构、编程、机械、电以及其他方面的改变而不会背离本发明的精神或范围。因此,下面的详细说明不应在限制的意义上理解,而是本发明的范围只由所附的权利要求所限定。特别地,虽然在下面相对于TCP/IP网络环境描述了优选的实施例,但是可以理解本发明并不限制于TCP/IP实现。
现在参照附图,具体参照图1,描述了其中本发明的优选实施例可以在其中实施的数据处理系统网络。数据处理系统网络101包括至少一个服务器系统103,该服务器系统经由诸如因特网107的至少一个网络连接到至少一个客户系统105。在服务器103和客户105之间的数据传送符合TCP/IP规范,以及文件传输协议(FTP)、超文本传输协议(HTTP)、或某种相似的通信协议。可以理解,虽然只示出单个服务器103和单个客户系统105,但是数据处理系统网络101可以包括通过一个或多个连接和包括因特网107的网络互连的多个服务器和客户系统(未示出)。为了例示的目的,服务器103和客户系统105使用TCP/IP通信,虽然本发明不受限于此,且在其他可选的实施例中,还可以利用其他的适用的协议。
图2是可以在本发明的优选实施例中使用的用于服务器-客户系统的典型软件体系结构的描述。服务器103和客户105各自用软件体系结构200构造。在最低级,利用操作系统205来提供高级功能给用户和其他的软件。这种操作系统典型地包括BIOS(基本输入输出系统)。通过直接调用操作系统功能或间接地、绕过操作系统而访问硬件以便通过网络通信,通信软件210经由物理通信链路提供通过外部端口与诸如因特网的网络的通信。应用编程接口215允许系统的用户,不管是个人还是软件例程,使用标准一致的接口调用系统的能力,而不关心特定的功能如何实现。因特网软件220表示可用于用因特网功能装备计算机的几个标准商业包中的任何一个。应用软件225表示被设计成经过通信端口对数据作出反应以提供用户寻求的期望的功能的任何数量的软件应用。这个级别的应用可以包括处理数据、视频、图形、照片或者文本所必需的哪些应用,其能由因特网的用户访问。
如图3所示,TCP/IP和相似的协议由用于网络的4层通信体系结构利用,该通信体系结构包含应用层310、传输层312、网络层314、链路层316和物理层318。每层负责处理不同的通信任务如下物理层318通常将数据转换成用于在网络中的不同物理设备之间通信的位。在物理层中使用的协议的例子可以包括,但不限于,来自网络接口卡例如以太网卡、令牌环卡,无线网卡等的协议。电气与电子工程师学会(IEEE)已经发布了可以在物理层中利用的多种协议,例如IEEE 802.3标准(以太网)、IEEE 802.5标准(令牌环)协议和IEEE 802.11标准(无线以太网)等协议。
链路层316通常管理通过网络通信的数据。链路层316(还称作数据-链路层或者网络接口层)通常包括设备驱动器并可以包括诸如介质访问控制(MAC)的协议。物理层和链路层一起处理与使用的网络介质物理接口的所有的硬件细节。
网络层314(还称作网际层)处理数据包在整个网络中的移动。例如,网络层处理通过网络传送的各数据包的路由。在TCP/IP组中的网络层包含几个协议,包括IP(网际协议)、ICMP(网际控制报文协议)和IGMP(网际组管理协议)。
传输层312在网络层314和应用层310之间提供一接口,其促进在两个主机之间的数据传送。传输层关心一些事情,例如将从应用传递到传输层的数据划分成用于下面的网络层的适当大小的块,确认接收到的包,设定超时以确定另一端确认已经发送的包等。在TCP/IP协议组中,有两个显然不同的传输协议TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供可靠性服务以确保数据在两个主机之间正确传输,包括漏失检测和重传服务。相反,UDP通过仅仅将称为数据报的数据包从一个主机发送到另一主机而没有提供用于保证数据正确传送的任何机制,来提供更简单得多的服务给应用层。当使用UDP时,应用层必须执行可靠性功能。
应用层310处理特定应用的细节。有许多几乎每个实现都提供的常见的TCP/IP应用,包括(1)用于远程登录的Telnet,;(2)FTP,文件传输协议;(3)SMTP,用于电子邮件的简单邮件传输协议,(4)SNMP,简单网络管理协议和(5)邮局协议,v3(POP3)。
诸如因特网的网络通过路由器互连,每个路由器将两个或更多个网络连接在一起。典型的路由器包含具有输入和输出连接的专用硬件盒,和允许连接很多不同类型的物理网络连例如以太网、令牌环、点对点链接等的专用硬件和/或嵌入式软件。图4示出互联网400,其包含通过路由器436连接到令牌环网434的以太网432。虽然图4只示出通信中的两个主机,但是在以太网上的任一主机能与在其上的任一主机通信,或与在令牌环网络上的任一主机通信,反之亦然。
如图4所示,路由器436包括网络层模块438(在这种情况下为IP模块),和用于连接到主机网络的适当的网络驱动器,即以太网驱动器440和令牌环驱动器442。在应用层,网络包含FTP客户420和FTP服务器422;在传输层,网络包含TCP客户424和TCP服务器426;而在网络层,网络包含IP客户428和IP服务器430。多数网络应用被设计成使得一端是客户,而另一端是服务器。服务器向各客户提供某些类型的服务,在这种情况下,提供到服务器主机上的文件的访问。每层具有用于与其在相同的层的对等者进行通信的一个或多个协议。这些通信协议包括在应用层的FTP协议444、在传输层的TCP协议446、在网络层的IP协议448、和在链路层的以太网协议450和令牌环协议454。通常是应用层处理用户进程,而较低的三层(传输层、网络层和链路层)在诸如UNIX或Windows操作系统的操作系统的内核中实现。例如,网络接口层的目的是处理通信介质(以太网、令牌环等)的细节,而应用层的目的是处理一个特定的用户应用(FTP、Telnet等)。
应用层和传输层使用端到端协议(FTP协议444、TCP协议446)。网络层提供用在两个端系统和在其之间的每个中间系统(为了简明,这里只示出了一个中间系统)上的逐跳(hop-to-hop)协议。例如,路由器436的IP模块438通过IP协议448连接到两个主机。还有链路层协议,其特定于连接到路由器的多种类型的主机网络以在链路层处理在网络和路由器之间的通信。因此,以太网协议450用于处理路由器436中的以太网驱动器440和以太网网络432上的主机的以太网驱动器452之间的通信,而令牌环协议454用于处理在路由器436的令牌环驱动器442和令牌环网络434上的主机的令牌环驱动器456之间的通信。
当应用使用TCP/IP发送数据时,数据沿着协议栈向下经过每层被发送,直到它作为位流被发出到网络上。如图5所示,在协议栈500中的每层通过将首部(且有时添加尾部信息)前加(prepend)到其接收到的数据上而把信息添加到数据上。例如,在应用层,将应用首部580前加到用户数据582而形成应用数据584。在传输层,将传输协议首部前加到应用数据。在图5的情况下,传输层是TCP,因此将TCP首部586前加到应用数据584,由此形成被发送到网络层IP的TCP帧588。TCP首部586包含二十个字节。同样,在网络层,将网络层首部前加到传输层数据。在TCP/IP的情况下,将IP首部590前加到TCP帧588而形成IP数据报592。IP首部590也包含二十个字节。最后,在链路层,将诸如以太网首部594的介质首部加到从网络层接收到的数据而形成数据帧。在一些情况下,例如当介质是以太网时,还将介质尾部附加到数据末端。例如,在图5中,将以太网尾部96附加到以太网首部594和IP数据报592而形成以太网帧598。以太网帧包含流过网络、对应于原始应用消息数据的位流。在首部底部的数字(14、20、20、4)是通常的首部字节大小,例如,以太网首部94包含14个字节等。帧的大小将受到用于传输数据包的网络类型的最大传输单元(MTU)的限制。例如,以太网网络的MTU是1500个字节。网络层自动执行分段(将数据报分成较小的块),使得每个片段比网络的MTU小。
现在回过来参照图1和4,现描述了在异质网络环境中使用的本发明的一优选实施例中提供的动态IP包重装计时器的操作。在本发明的多种实施例中,为每个IP包动态地单独计算用于丢弃IP片段的重装计时器。这些实施例提供了实质性的改进以避免由于IP网络系统的IP-ID环绕导致的数据损坏。
在第一实施例中,IP包发送器(服务器103或客户105)在IP包首部100中指定一个新的IP选项126,该IP选项指定用于产生的IP包的重装计时器值。根据本发明的优选实施例,这个新的选项称作重装计时器选项。在图6中示出了根据本发明的一优选实施例的用于IP首部的重装计时器选项的格式。
如图6所示,重装计时器选项602包含指定在IP中为重装计时器选项标识的选项126的选项号的一字节字段604。字段604是指定有效负载字节长度的一字节字段。在这个例子中,重装计时器选项602的有效负载是重装时间的数值,其被指定为4字节字段。字段608指示应该分派给接收器的重装计时器的用于这个IP包的重装时间。发送器将基于与网络、发送器和接收器以及被发送的IP包有关的多种因素确定用于重装时间608的值。
在用于设定重装时间608的优选实施例中,发送器具有用于设定重装时间的两种考虑。作为第一考虑,发送器判定IP包的目标地址是否与发送器在相同的子网上。如果发送器和接收器在相同的子网上,则发送器可使重装时间608基于连接发送器和接收器的子网的速度。例如,在每秒能产生80,000个包的吉比特以太网上,重装计时器可被设定为半秒(0.5sec),而对于10吉比特以太网,重装计时器可被设定为该时间的十分之一(即50毫秒)。
作为第二考虑,发送器可检查TCP计算的往返时间(RTT)值,以用作重传计时器计算。通过使用该值,发送器可向接收器提供在正常网络情况下的预期往返时间的估计,由此建议花费比RTT更多时间的片段应当适当地被重传。使用这个算法,发送器将把重装时间608设定成等于RTT或RTT加上某增量(例如,RTT*1.5)。应该理解,当设定重装时间608时,发送器可以考虑任意数目的因素和算法,并可以使用任何单个的考虑或者这些或其他考虑的组合。
在本发明的其他可选的优选实施例中,发送器和接收器协调一同步定时算法以判定适当的重装计时器。这个优选的实施例可用在网络协议没有往返时间的估计环境中,或者目标不在相同的子网上的情况中。
图7示出根据本发明的优选实施例的用于称作“时间戳重装计时器”的新IP选项126的数据格式。时间戳重装计时器选项702是IP包的IP首部100内的一选项126。字段704指示在IP中为时间戳重装计时器选项识别的选项号。字段706是指示该选项的有效负载的长度的1字节字段。在这种情况下,该选项指示4字节有效负载。字段708指定当前时间的数值,其被指定为4字节字段。发送服务器在产生IP首部100时设定时间戳708。
发送器首先使用网络时间协议同步其时间,并发送当前时间作为时间戳708。当接收到包含在IP首部100的选项126中的时间戳重装计时器选项702时,接收器通过计算当前时间和时间戳708之间的差值来计算该片段的穿越(traversal)时间。接收器接着把“增量”时间段添加到计算的穿越时间以确定用于该IP包的片段的重装计时器。例如,在计算了该片段的穿越时间之后,接收器可以添加等于穿越时间的一半的时间量以将重装计时器设置成该IP包的计算的穿越时间的1.5倍。如果接收到的包是一IP包的第一片段或者如果计算的重装计时器被判定为比接收系统中当前使用的计时器大,则这种计算的重装计时器将通常由接收器使用。根据期望的粒度,该用于设定重装时间的算法可以仅用在IP包的第一片段上或每个片段上。在重装计时器和时间戳重装计时器选项不可用或未接收到的网络环境中,接收器可使用用于重装计时器的预编程值。
现在参照图8,其中示出根据本发明的优选实施例的用于产生包含重装时间的IP包的过程的流程图。当指示发送服务器产生IP包时,过程在步骤802开始。在判定块804,发送服务器判定IP目标是否在与IP源地址相同的子网上。如果如此,则子网具有已知的、快速的吞吐量,这表明应该为IP片段设定非常短的重传计时器。过程进行到步骤806,在此发送服务器将产生IP包,该IP包在选项126中包含重装计时器选项602,使重装时间608被设定为对应于服务器和客户之间的已知子网的速度的非常短的时间。随后,服务器如步骤808(过程结束)所示传送IP包(或片段)。
回到判定块804,如果IP目标与发送器不在相同的子网上,过程进行到判定块810,在此发送服务器判定传输层是否已经计算了用于数据通信的往返时间。例如,TCP计算RTT并在TCP首部中包括了这个计算。如果如此,过程进行到步骤812,在此发送服务器产生IP包,该IP包包含被设置成为传输层计算的往返时间的重装计时器选项602。在TCP,被设定成RTT。随后,当发送服务器传送IP包时,过程在步骤808结束。
回到判定块810,如果传输层没有计算往返时间或如果这种计算未被传输层支持,过程进行到步骤814,在此发送服务器产生包含时间戳重装计时器选项702的IP包。发送器用指示产生该IP包时的当前时间的数值设定时间戳708。随后,过程在发送服务器将IP包传送到客户之后结束,如步骤808所示。现在将会理解,这些首部选项中的每一个可被个别使用或组合使用。
现在参照图9,示出了根据本发明的优选实施例的用于响应于接收到IP片段设定重装计时器的过程的流程图。当IP片段由客户在网络上接收到时,过程在步骤902开始。过程进行到判定块904,在此接收客户判定IP片段是否包含重装计时器选项602。如果如此,接收客户将用于接收到的IP片段的重装时间设定为在该选项的有效负载字段708设定的值,如步骤906所示。如果IP片段不包含重装计时器选项602,过程进入到判定块908,在此接收客户判定IP片段是否包含时间戳重装计时器选项702。如果如此,接收器通过从在接收器的本地时间减去包含在有效负载中的时间戳708来计算IP片段的穿越时间,如在步骤910所示。接收器接着基于计算的穿越时间设定重装计时器,如在步骤912所示。返回判定块908,如果没有设定时间戳重装选项,则过程在块914结束,在此接收客户将重装计时器设定成由用户预定或系统计算的存储值,作为用于丢弃IP片段和需要重传的最佳时间。
本领域技术人员可以理解,上述的方法通常将在一个或多个处理器(未示出)上运行的软件中执行,而且该软件可以作为在诸如磁性或光学计算机盘的任何适当的数据载体(也未示出)上承载的计算机程序元件被提供。用于数据传输的信道同样可以包括各种各样的存储介质以及信号承载介质,例如有线或无线信号介质。
因此,本发明可以适当地实现为用于计算机系统的计算机程序产品。这种实现可以包含一系列计算机可读指令,这些指令或者固定在有形介质,例如诸如软盘、光盘、ROM或硬盘等计算机可读介质上;或者可通过有形介质,包括但不限于光学或模拟通信线,或无形地使用无线技术,包括但不限于微波、红外线或其他的传输技术,经由调制解调器或者其他的接口设备传输到计算机系统。该计算机可读指令系列体现了以上在本文中描述的功能的全部或部分。
本领域技术人员将会理解,这种计算机可读指令能用多种编程语言编写,以用于很多计算机体系结构或操作系统。而且,这种指令可以使用任何存储技术存储,所述存储技术可以是现有的或未来的,包括但不限于,半导体、磁的、或光学的,或使用任何通信技术传输,所述通信技术可以是现有的或未来的,包括但不限于,光学的、红外线或微波。预期这种计算机程序产品可以作为可拆装介质分发,并有附随的印刷或者电子文档,例如,热缩包装的软件、预载在计算机系统中,例如在系统ROM或者固定盘上,或通过例如因特网或万维网的网络从服务器或电子公告板分发。
尽管已经参照优选的实施例具体地示出和描述了本发明,但是本领域技术人员可以了解,可以对其进行形式和细节方面的多种改变而不背离本发明的精神和范围。例如,本发明可以使用计算机编程软件、固件或硬件的任何组合实现。作为实施本发明或构造根据本发明的装置的预备步骤,根据本发明的计算机编程代码(无论是软件还是固件)将通常被存储在一个或多个机器可读存储介质,例如固定(硬)驱动器、软盘、光盘、磁带、诸如ROM、PROM等的半导体存储器等中,由此制得根据发明的制造物品。包含计算机编程代码的该制造物品通过直接从该存储设备执行编码、通过将代码从该存储设备复制到另一存储设备例如硬盘、RAM等、或者通过传输代码以便远程执行来使用。本发明的方法形式可以通过组合包含根据本发明的代码的一个或多个机器可读存储设备和适当的标准计算机硬件来执行包含在其中的代码来实施。用于实施本发明的装置可以是一个或多个计算机和存储系统,所述存储系统包含或者具有对根据本发明编码的计算机程序的网络访问。
权利要求
1.一种在数据处理系统网络中的方法,包括通过网络接收数据片段,该数据片段包含指示用于包括该数据片段的数据包的定制的重装时间的选项;以及如果在接收到该数据片段后该数据片段保持相对于该数据包为片段的时间长于由该定制的重装时间指示的时间,则丢弃该数据片段。
2.根据权利要求1所述的方法,其中所述选项在所述数据片段的字段中指定所述定制的重装时间,或者其中所述选项指定发送器何时产生所述数据包的时间戳,并且该方法进一步包括将所述数据片段的穿越时间计算为所述时间戳和所述数据片段到达接收器的时间的函数,并进一步基于所述穿越时间指定用于所述数据片段的重装时间。
3.根据权利要求1或2所述的方法,其中所述定制的重装计时器用来指示用于所述数据包的所有数据片段的重装时间,或者其中所述定制的重装计时器用来在该定制的重装计时器指示长于接收系统中的当前使用的重装时间的重装时间的情况下,设定接收器中的重装时间。
4.一种数据处理系统,包含用于通过网络接收数据片段的装置,所述数据片段包含指示用于包括该数据片段的数据包的定制的重装时间的选项;以及用于在接收到该数据片段后该数据片段保持相对于该数据包的为片段的时间长于由所述定制的重装时间指示的时间的情况下,丢弃该数据片段的装置。
5.一种用于通过数据处理系统网络通信的方法,包括判定用于将被发送的特定数据包的定制的重装时间;产生数据包,包括将该定制的重装时间插入该数据包的字段内;以及传输该数据包,其中该数据包的接收器将利用该定制的重装时间以丢弃在接收到该包的片段后保持为片段的时间长于由该定制的重装时间指示的时间的片段。
6.根据权利要求5所述的方法,其中所述判定定制的重装时间的步骤包括如果所述数据包的发送器通过已知快速网络链路连接到接收器,则将定制的重装时间设定为第一时间,而如果所述数据包的发送器没有通过已知快速网络链路连接到接收器,则将其设定为第二时间。
7.根据权利要求6所述的方法,其中当所述发送器与所述数据包的接收器在网络的相同子网中时,所述数据包的发送器通过已知快速网络链路连接到所述接收器。
8.根据权利要求5到7中任一项所述的方法,其中所述判定定制的重装时间的步骤包括将定制的重装时间设定为用于从发送器传送到接收器的数据包的计算的往返时间。
9.根据权利要求8所述的方法,其中所述往返时间是TCP层计算的RTT。
10.根据权利要求5到9中任一项所述的方法,其中所述数据包是IP层产生的IP包。
11.根据权利要求5到10中任一项所述的方法,其中所述定制的重装时间是指定产生所述数据包的时间的时间戳,且其中所述数据包的接收器将利用所述定制的重装时间基于所述数据片段的到达时间计算所述数据片段的穿越时间,且进一步地其中所述接收器基于所述穿越时间设定用于所述数据片段的重装时间。
12.根据权利要求5到11中任一项所述的方法,其中所述产生数据包的步骤包括在所述数据包的首部中设定指定重装时间的选项。
13.一种数据处理系统,包含用于判定用于将被传送的特定数据包的定制的重装时间的装置;用于产生该数据包,包括将该定制的重装时间插入该数据包的字段内的装置;以及用于传送该数据包的装置,其中该数据包的接收器将利用该定制的重装时间以丢弃在接收到数据包的片段后保持为片段的时间长于该定制的重装时间指示的时间的片段。
14.根据权利要求13所述的系统,还包括这样的装置,其用于在所述数据包的发送器通过已知快速网络链路连接到接收器的情况下,将所述定制的重装时间设定为第一时间,而在所述数据包的发送器没有通过已知快速网络链路连接到接收器的情况下,将其设定为第二时间。
15.根据权利要求13或14所述的系统,还包括用于将定制的重装时间设定为用于从发送器传送到接收器的数据包的计算的往返时间的装置。
16.根据权利要求10所述的系统,还包括用于在所述数据包的首部中设定指定重装时间的选项装置,或者用于以指定产生数据包的时间的时间戳设定所述数据包的首部中的选项的装置。
全文摘要
在TCP/IP接收器中的重装计时器被动态设置以避免在快速网络上由IP标识环绕所引起的数据损坏。发送器基于目标的子网或基于连接的计算的往返时间产生具有指定用于片段的重装时间的特殊选项的IP包。接收器将重装计时器设定为在选项中指定的重装时间。发送器可产生具有为产生的包设定时间戳的另一选项的IP包。接收器基于片段的到达时间和该时间戳之间的差值计算穿越时间,并基于该穿越时间设定重装计时器。
文档编号H04L29/06GK101080914SQ200580043105
公开日2007年11月28日 申请日期2005年12月15日 优先权日2004年12月16日
发明者S·曼朱纳萨, V·瓦拉巴内尼, V·文卡塔苏布拉, R·P·扬曼 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1