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

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

Info

Publication number
CN101080914B
CN101080914B CN2005800431054A CN200580043105A CN101080914B CN 101080914 B CN101080914 B CN 101080914B CN 2005800431054 A CN2005800431054 A CN 2005800431054A CN 200580043105 A CN200580043105 A CN 200580043105A CN 101080914 B CN101080914 B CN 101080914B
Authority
CN
China
Prior art keywords
packet
time
receiver
fragment
transmitter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2005800431054A
Other languages
English (en)
Other versions
CN101080914A (zh
Inventor
S·曼朱纳萨
V·瓦拉巴内尼
V·文卡塔苏布拉
R·P·扬曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101080914A publication Critical patent/CN101080914A/zh
Application granted granted Critical
Publication of CN101080914B publication Critical patent/CN101080914B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

在TCP/IP接收器中的重装计时器被动态设置以避免在快速网络上由IP标识环绕所引起的数据损坏。发送器基于目标的子网或基于连接的计算的往返时间产生具有指定用于片段的重装时间的特殊选项的IP包。接收器将重装计时器设定为在选项中指定的重装时间。发送器可产生具有为产生的包设定时间戳的另一选项的IP包。接收器基于片段的到达时间和该时间戳之间的差值计算穿越时间,并基于该穿越时间设定重装计时器。

Description

用于通过避免数据损坏改进网络性能的方法、系统和物品
技术领域
本发明主要涉及在数据处理网络系统中的数据传送,并具体涉及通过因特网和相似网络传送数据块。更具体地,本发明涉及改进的因特网协议(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等、或者通过传输代码以便远程执行来使用。本发明的方法形式可以通过组合包含根据本发明的代码的一个或多个机器可读存储设备和适当的标准计算机硬件来执行包含在其中的代码来实施。用于实施本发明的装置可以是一个或多个计算机和存储系统,所述存储系统包含或者具有对根据本发明编码的计算机程序的网络访问。

Claims (10)

1.一种用于通过数据处理系统网络通信的方法,包括:
判断发送器与数据包的接收器是否在相同的子网上;
响应于确定发送器与数据包的接收器在相同的子网上,产生包含定制的重装时间的选项的数据包,发送器可使重装时间基于连接发送器和所述数据包的接收器的子网的速度设定;
响应于确定发送器与数据包的接收器不在相同的子网上,确定是否已经计算了所述数据包传输的往返时间;
响应于已计算所述数据包的往返时间,产生包含定制的重装时间的选项的数据包,其中所述选项设置为往返时间;
响应于未计算所述数据包的往返时间,产生包含定制的重装时间的选项的数据包,其中所述选项指定产生所述数据包的时间的时间戳;以及
传输该数据包,其中该数据包的接收器将利用该重装时间以丢弃在接收到该数据包的片段后保持为片段的时间长于由该重装时间指示的时间的片段。
2.根据权利要求1所述的方法,其中当所述发送器与所述数据包的接收器在网络的相同子网中时,所述数据包的发送器通过已知快速网络链路连接到所述接收器。
3.根据权利要求1所述的方法,其中所述往返时间是所述数据包从发送器传送到接收器的往返时间。
4.根据权利要求3所述的方法,其中所述往返时间是TCP层计算的RTT。
5.根据权利要求1到4中任一项所述的方法,其中所述数据包是IP层产生的IP包。
6.根据权利要求1到4中任一项所述的方法,其中所述数据包的接收器将利用所述定制的重装时间基于所述数据包的片段的到达时间计算所述数据包的片段的穿越时间,且进一步地其中所述接收器基于所述穿越时间设定用于所述数据包的片段的重装时间。
7.根据权利要求1到4中任一项所述的方法,其中所述重装时间的选项在所述数据包的首部中设定。
8.一种用于通过数据处理系统网络通信的系统,包含:
用于判断发送器与数据包的接收器是否在相同的子网上的装置;
用于响应于确定发送器与数据包的接收器在相同的子网上产生包含定制的重装时间的选项的数据包的装置,其中发送器可使重装时间基于连接发送器和所述数据包的接收器的子网的速度设定;
用于响应于确定发送器与数据包的接收器不在相同的子网上确定是否已经计算了所述数据包传输的往返时间的装置;
用于响应于已计算所述数据包的往返时间产生包含定制的重装时间的数据包的装置,其中所述选项设置为往返时间;
用于响应于未计算所述数据包的往返时间产生包含定制的重装时间的数据包的装置,其中所述选项指定产生所述数据包的时间的时间戳;以及
用于传送该数据包的装置,其中该数据包的接收器将利用该定制的重装时间以丢弃在接收到数据包的片段后保持为片段的时间长于该定制的重装时间指示的时间的片段。
9.根据权利要求8所述的系统,其中所述往返时间是所述数据包从发送器传送到接收器的往返时间。
10.根据权利要求8或9所述的系统,其中所述重装时间的选项在所述数据包的首部中设定。
CN2005800431054A 2004-12-16 2005-12-15 用于通过避免数据损坏改进网络性能的方法、系统和物品 Expired - Fee Related CN101080914B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/014,552 US7564843B2 (en) 2004-12-16 2004-12-16 Method, system and article for improved network performance by avoiding IP-ID wrap-arounds causing data corruption on fast networks
US11/014,552 2004-12-16
PCT/EP2005/056832 WO2006064047A1 (en) 2004-12-16 2005-12-15 Method, system and article for improved network performance by avoiding data corruption

Publications (2)

Publication Number Publication Date
CN101080914A CN101080914A (zh) 2007-11-28
CN101080914B true CN101080914B (zh) 2012-09-05

Family

ID=35717713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800431054A Expired - Fee Related CN101080914B (zh) 2004-12-16 2005-12-15 用于通过避免数据损坏改进网络性能的方法、系统和物品

Country Status (5)

Country Link
US (2) US7564843B2 (zh)
EP (1) EP1829324A1 (zh)
JP (1) JP4829896B2 (zh)
CN (1) CN101080914B (zh)
WO (1) WO2006064047A1 (zh)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7170890B2 (en) * 2002-12-16 2007-01-30 Zetera Corporation Electrical devices with improved communication
US7649880B2 (en) 2002-11-12 2010-01-19 Mark Adams Systems and methods for deriving storage area commands
CN100557579C (zh) 2002-11-12 2009-11-04 雷特泽遥距管理有限责任公司 具有ip能力分区的数据存储设备
US8005918B2 (en) 2002-11-12 2011-08-23 Rateze Remote Mgmt. L.L.C. Data storage devices having IP capable partitions
US7921285B2 (en) * 2002-12-27 2011-04-05 Verizon Corporate Services Group Inc. Means of mitigating denial of service attacks on IP fragmentation in high performance IPsec gateways
US8050272B2 (en) 2004-06-29 2011-11-01 Damaka, Inc. System and method for concurrent sessions in a peer-to-peer hybrid communications network
US7933260B2 (en) 2004-06-29 2011-04-26 Damaka, Inc. System and method for routing and communicating in a heterogeneous network environment
US8009586B2 (en) 2004-06-29 2011-08-30 Damaka, Inc. System and method for data transfer in a peer-to peer hybrid communication network
US8437307B2 (en) 2007-09-03 2013-05-07 Damaka, Inc. Device and method for maintaining a communication session during a network transition
US7570636B2 (en) 2004-06-29 2009-08-04 Damaka, Inc. System and method for traversing a NAT device for peer-to-peer hybrid communications
GB0420549D0 (en) * 2004-09-15 2004-10-20 Nokia Corp A method and entity for monitoring traffic
US7564843B2 (en) * 2004-12-16 2009-07-21 International Business Machines Corporation Method, system and article for improved network performance by avoiding IP-ID wrap-arounds causing data corruption on fast networks
US7702850B2 (en) 2005-03-14 2010-04-20 Thomas Earl Ludwig Topology independent storage arrays and methods
US7620981B2 (en) * 2005-05-26 2009-11-17 Charles William Frank Virtual devices and virtual bus tunnels, modules and methods
JP4526458B2 (ja) * 2005-07-29 2010-08-18 富士通株式会社 パケット処理装置及びパケット処理プログラム
US8819092B2 (en) 2005-08-16 2014-08-26 Rateze Remote Mgmt. L.L.C. Disaggregated resources and access methods
US7743214B2 (en) * 2005-08-16 2010-06-22 Mark Adams Generating storage system commands
EP1763204B1 (en) * 2005-09-13 2013-12-04 Unify GmbH & Co. KG System and method for redundant switches taking into account learning bridge functionality
US9270532B2 (en) 2005-10-06 2016-02-23 Rateze Remote Mgmt. L.L.C. Resource command messages and methods
US7924881B2 (en) * 2006-04-10 2011-04-12 Rateze Remote Mgmt. L.L.C. Datagram identifier management
TWI470987B (zh) * 2006-12-12 2015-01-21 Interdigital Tech Corp 經高速下鏈封包存取傳送及接收封包方法及裝置
US8862164B2 (en) 2007-09-28 2014-10-14 Damaka, Inc. System and method for transitioning a communication session between networks that are not commonly controlled
US8380859B2 (en) 2007-11-28 2013-02-19 Damaka, Inc. System and method for endpoint handoff in a hybrid peer-to-peer networking environment
US20090161569A1 (en) * 2007-12-24 2009-06-25 Andrew Corlett System and method for facilitating carrier ethernet performance and quality measurements
US8233502B2 (en) * 2008-01-18 2012-07-31 Juniper Networks, Inc. System and method for heuristically dropping packets in a multilink PPP bundle
JP5071178B2 (ja) * 2008-03-14 2012-11-14 富士通株式会社 パケット伝送装置
EP2534780B1 (en) 2010-02-12 2018-06-27 InterDigital Patent Holdings, Inc. Sending feedback for multiple downlink carriers
US8892646B2 (en) 2010-08-25 2014-11-18 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
US8874785B2 (en) 2010-02-15 2014-10-28 Damaka, Inc. System and method for signaling and data tunneling in a peer-to-peer environment
US8725895B2 (en) 2010-02-15 2014-05-13 Damaka, Inc. NAT traversal by concurrently probing multiple candidates
US9043488B2 (en) 2010-03-29 2015-05-26 Damaka, Inc. System and method for session sweeping between devices
US9191416B2 (en) 2010-04-16 2015-11-17 Damaka, Inc. System and method for providing enterprise voice call continuity
US8352563B2 (en) 2010-04-29 2013-01-08 Damaka, Inc. System and method for peer-to-peer media routing using a third party instant messaging system for signaling
US8446900B2 (en) 2010-06-18 2013-05-21 Damaka, Inc. System and method for transferring a call between endpoints in a hybrid peer-to-peer network
US8611540B2 (en) 2010-06-23 2013-12-17 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US8468010B2 (en) 2010-09-24 2013-06-18 Damaka, Inc. System and method for language translation in a hybrid peer-to-peer environment
US8743781B2 (en) 2010-10-11 2014-06-03 Damaka, Inc. System and method for a reverse invitation in a hybrid peer-to-peer environment
US8407314B2 (en) 2011-04-04 2013-03-26 Damaka, Inc. System and method for sharing unsupported document types between communication devices
US8694587B2 (en) 2011-05-17 2014-04-08 Damaka, Inc. System and method for transferring a call bridge between communication devices
US8478890B2 (en) * 2011-07-15 2013-07-02 Damaka, Inc. System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability
US9596177B2 (en) * 2012-04-12 2017-03-14 Lantiq Deutschland Gmbh Method for a retransmission roundtrip correction
US10284482B2 (en) * 2012-06-29 2019-05-07 Honeywell International Inc. Stateful connectionless overlay protocol for information transfer across multiple datalinks
US9027032B2 (en) 2013-07-16 2015-05-05 Damaka, Inc. System and method for providing additional functionality to existing software in an integrated manner
US9357016B2 (en) 2013-10-18 2016-05-31 Damaka, Inc. System and method for virtual parallel resource management
US9462087B2 (en) * 2014-05-09 2016-10-04 Unisys Corporation Avoiding collisions in internet protocol (IP) packet identification numbers
CA2956617A1 (en) 2014-08-05 2016-02-11 Damaka, Inc. System and method for providing unified communications and collaboration (ucc) connectivity between incompatible systems
US9698825B2 (en) * 2014-10-22 2017-07-04 Quest Software Inc. Fast update of data packet checksums
US10305928B2 (en) * 2015-05-26 2019-05-28 Cisco Technology, Inc. Detection of malware and malicious applications
US10091025B2 (en) 2016-03-31 2018-10-02 Damaka, Inc. System and method for enabling use of a single user identifier across incompatible networks for UCC functionality
US10673785B2 (en) * 2017-02-16 2020-06-02 Netscout Systems, Inc. Flow and time based reassembly of fragmented packets by IP protocol analyzers
WO2018166042A1 (zh) * 2017-03-14 2018-09-20 北京小米移动软件有限公司 数据单元传输方法及装置
WO2019107870A1 (en) * 2017-11-28 2019-06-06 Samsung Electronics Co., Ltd. Method and a user equipment (ue) for transport layer optimization using a preemptive cross layer signaling
US10897417B2 (en) * 2018-09-19 2021-01-19 Amazon Technologies, Inc. Automated route propagation among networks attached to scalable virtual traffic hubs
JP2022047551A (ja) * 2019-01-24 2022-03-25 ソニーグループ株式会社 無線通信装置および方法
CN111953807B (zh) * 2020-07-30 2022-02-22 新华三信息安全技术有限公司 一种报文标识处理方法、装置及存储介质
US11902343B1 (en) 2021-04-19 2024-02-13 Damaka, Inc. System and method for highly scalable browser-based audio/video conferencing
US11770584B1 (en) 2021-05-23 2023-09-26 Damaka, Inc. System and method for optimizing video communications based on device capabilities

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1387347A (zh) * 2001-05-18 2002-12-25 华为技术有限公司 一种定长分组交换的信元适配方法
CN1512702A (zh) * 1999-04-06 2004-07-14 ����ɭ�绰�ɷ����޹�˾ 半可靠重传协议的分组丢弃通告

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH022757A (ja) * 1988-06-16 1990-01-08 Nippon Telegr & Teleph Corp <Ntt> パケット転送方式
JP3625302B2 (ja) * 1994-07-19 2005-03-02 株式会社東芝 ネットワークシステムのデータ送達装置および方法
JPH09191314A (ja) * 1996-01-10 1997-07-22 Mitsubishi Electric Corp 連続データ伝送方法および連続データ伝送装置
US5892753A (en) * 1996-12-02 1999-04-06 International Business Machines Corporation System and method for dynamically refining PMTU estimates in a multimedia datastream internet system
US5959974A (en) * 1996-12-02 1999-09-28 International Business Machines Corporation System and method for discovering path MTU of internet paths
JPH11145975A (ja) * 1997-11-07 1999-05-28 Toshiba Corp 送信制御方式
US6272131B1 (en) * 1998-06-11 2001-08-07 Synchrodyne Networks, Inc. Integrated data packet network using a common time reference
US6810042B1 (en) * 1999-01-04 2004-10-26 Cisco Technology, Inc. Method of queuing traffic to many destinations covering a wide range of transmission speeds while minimizing buffer size
US6894976B1 (en) * 2000-06-15 2005-05-17 Network Appliance, Inc. Prevention and detection of IP identification wraparound errors
US7760737B2 (en) 2000-11-30 2010-07-20 Audiocodes, Inc. Method for reordering and reassembling data packets in a network
US7185083B2 (en) * 2001-01-17 2007-02-27 Fisher-Rosemount Systems, Inc. Method and apparatus for identifying an I/O network in a process control system
JP2003060699A (ja) * 2001-08-14 2003-02-28 Nippon Telegr & Teleph Corp <Ntt> ネットワークにおける再送制御方法
US7162418B2 (en) * 2001-11-15 2007-01-09 Microsoft Corporation Presentation-quality buffering process for real-time audio
KR100541880B1 (ko) 2002-07-10 2006-01-10 주식회사 케이티프리텔 대기 시간을 이용한 재조립 기능이 포함된 방송형 단문메시지 송수신 장치 및 방법
US7301943B2 (en) * 2002-07-31 2007-11-27 Industrial Technology Research Institute QoS-oriented burstification method supporting various grades of burstification delay guarantee
JP4133299B2 (ja) * 2002-12-20 2008-08-13 財団法人電力中央研究所 遅延時間抑制伝送方法およびシステムおよび遅延時間抑制伝送用ルータ
JP4087734B2 (ja) * 2003-04-01 2008-05-21 三菱電機株式会社 無線通信システム、無線ネットワーク制御装置、基地局および移動機
US7061914B2 (en) * 2003-05-28 2006-06-13 Verizon Corporate Services Group Inc. Schemes for determining whether all of the fragments of a datagram are received
US7742454B2 (en) * 2004-12-16 2010-06-22 International Business Machines Corporation Network performance by dynamically setting a reassembly timer based on network interface
US7564843B2 (en) * 2004-12-16 2009-07-21 International Business Machines Corporation Method, system and article for improved network performance by avoiding IP-ID wrap-arounds causing data corruption on fast networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1512702A (zh) * 1999-04-06 2004-07-14 ����ɭ�绰�ɷ����޹�˾ 半可靠重传协议的分组丢弃通告
CN1387347A (zh) * 2001-05-18 2002-12-25 华为技术有限公司 一种定长分组交换的信元适配方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Lixia Zhang.Why TCP Timers Don't Work Well.COMPUTER COMMUNICATION REVIEW, ACM16 3.1986,16(3),第3.1、3.2节.
Lixia Zhang.Why TCP Timers Don't Work Well.COMPUTER COMMUNICATION REVIEW, ACM16 3.1986,16(3),第3.1、3.2节. *

Also Published As

Publication number Publication date
JP2008524891A (ja) 2008-07-10
US20060133365A1 (en) 2006-06-22
US7564843B2 (en) 2009-07-21
US20080225847A1 (en) 2008-09-18
CN101080914A (zh) 2007-11-28
US7826449B2 (en) 2010-11-02
JP4829896B2 (ja) 2011-12-07
EP1829324A1 (en) 2007-09-05
WO2006064047A1 (en) 2006-06-22

Similar Documents

Publication Publication Date Title
CN101080914B (zh) 用于通过避免数据损坏改进网络性能的方法、系统和物品
CN100493035C (zh) 通过动态设置重组计时器改进网络性能的方法和系统
Fairhurst et al. Advice to link designers on link Automatic Repeat reQuest (ARQ)
CN101939967B (zh) 通信方法
EP2086187B1 (en) Method for transmitting a data stream with anticipation of acknowledgements, corresponding input device, computer program product and storage means
US6694471B1 (en) System and method for periodic retransmission of messages
US8072898B2 (en) Method for managing a transmission of data streams on a transport channel of a tunnel, corresponding tunnel end-point and computer-readable storage medium
CN101641898A (zh) 增强差错控制通信系统和方法
US10505677B2 (en) Fast detection and retransmission of dropped last packet in a flow
Dunaytsev et al. Modeling TCP SACK performance over wireless channels with completely reliable ARQ/FEC
US7274663B2 (en) System and method for testing differentiated services in a value add network service
Psaras et al. The TCP minimum RTO revisited
Diot et al. Impact of out-of-sequence processing on the performance of data transmission
Happenhofer et al. Measurement-based analysis of head-of-line blocking for sip over TCP
Fairhurst et al. RFC3366: Advice to link designers on link Automatic Repeat reQuest (ARQ)
Sallantin et al. An end‐to‐end alternative to TCP PEPs: Initial Spreading, a TCP fast start‐up mechanism
EP3809748A1 (en) Data transmitting method and device, and data receiving method and device
Rebok Active router communication layer
Telekom RFC 9097 Metrics and Methods for One-Way IP Capacity
CN114449057A (zh) 一种数据传输方法及装置
Chukarin et al. Performance evaluation of the stream control transmission protocol
JP5842519B2 (ja) 通信システム、データ送信装置、データ受信装置、パケット再送制御方法、パケット再送制御プログラム
Botoṣ et al. FECTCP for high packet error rate wireless channels
Wood et al. STATUS OF THIS MEMO
Fairhurst et al. Link ARQ Issues for IP Traffic, IETF RFC 3366 (BCP62)

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120905

Termination date: 20201215

CF01 Termination of patent right due to non-payment of annual fee