CN1812412A - 用于检测TCP网络连接上进行Nagle的系统和方法 - Google Patents

用于检测TCP网络连接上进行Nagle的系统和方法 Download PDF

Info

Publication number
CN1812412A
CN1812412A CNA2006100024694A CN200610002469A CN1812412A CN 1812412 A CN1812412 A CN 1812412A CN A2006100024694 A CNA2006100024694 A CN A2006100024694A CN 200610002469 A CN200610002469 A CN 200610002469A CN 1812412 A CN1812412 A CN 1812412A
Authority
CN
China
Prior art keywords
nagle
network
computer
recipient
time
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.)
Granted
Application number
CNA2006100024694A
Other languages
English (en)
Other versions
CN100553255C (zh
Inventor
拉齐夫·阿罗拉
杰西·M·戈登
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 CN1812412A publication Critical patent/CN1812412A/zh
Application granted granted Critical
Publication of CN100553255C publication Critical patent/CN100553255C/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
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1664Details of the supervisory signal the supervisory signal being transmitted together with payload signals; piggybacking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Abstract

公开了用于检测TCP网络连接上进行Nagle的系统、方法和介质。实施方式通常可以包括具有用于基于网络连接确定Nagle检测阈值的Nagle检测阈值确定器的系统。该系统通常还可以包括与Nagle检测阈值确定器通信、用于观察跟在指示第一时间进行Nagle状态的确认后第二时间的小段的Nagle检测模块,其中如果第二时间和第一时间之间的差值小于或等于Nagle检测阈值,则Nagle检测模块还可以检测进行Nagle状态。该系统可以是接收方计算机或网络计算机。该系统还可以产生并发送进行Nagle状态的通知、递增Nagle监视器计数器或将进行Nagle状态的指示保存在日志中。

Description

用于检测TCP网络连接上 进行Nagle的系统和方法
技术领域
本发明涉及计算机系统领域。更具体而言,本发明涉及用于检测在传输控制协议(TCP)网络连接上,尤其是实现Nagle算法[RFC 896]机制的TCP网络连接上进行Nagle的系统、方法和介质。
背景技术
个人计算机系统在本领域是众所周知的。对于向当今现代社会的许多部门提供计算机能力而言,它们已获得广泛应用。个人计算机(PC)可以定义为包括具有一个或多个中央处理单元(CPU)及相关易失和非易失存储器、系统监视器、键盘、一个或多个活动磁盘驱动器、CD-ROM驱动器、固定磁盘存储器驱动器(也称为“硬盘驱动器”)、如鼠标的定点设备及可选网络接口适配器的系统单元的桌面、立式或便携式微型计算机,其中易失和非易失存储器包括随机存取存储器(RAM)和基本输入/输出系统只读存储器(BIOS ROM)。这种个人计算机系统的例子是国际商业机器公司(IBM)的ThinkCenterTM、ThinkPadTM、AptivaTM和IntelliStationTM个人计算机系列。
而且,PC和其它计算机系统已经由如因特网、内联网、广域网(WAN)和局域网(LAN)的网络越来越多地连接在一起。网络常常使用一种或多种协议来方便网络中及其它网络上计算机之间的通信。如因特网协议(IP)和TCP的协议是网络上计算机之间通信的预建立方式。IP允许数据包(包括数据和头)从节点到节点的路由、基于4字节目的地地址(IP号)转发数据包。TCP在有点不可靠的包IP之上创建可靠的通信流(当它们结合时称为TCP/IP)。TCP增加了对检测错误或丢失数据及触发重新发送直到数据被正确和完整接收的支持。TCP将数据看作是包括指明起始字节和大小、使接收方能够检测丢失或顺序不正确包的头的字节流。
一旦建立了TCP连接,大部分发送最终都导致来自接收方的响应(如ACK,或确认)。但是,在给定与TCP和IP关联的开销的情况下,每次发送的明确确认会产生显著的附加通信量。因此,TCP试图将最少可能的包发送到网络中,以避免使网络拥塞及增加路由器和交换机的负担。为了方便发送,包可以分成多个段。“小”段是任何小于当TCP连接建立时由发送方和接收方协商的最大段尺寸(MSS)的段。[在1984年1月6日发表的标题为“Congestion Control in IP/TCPInternetworks”的网络工作组请求注释(RFC)896中描述的]Nagle算法是一种由TCP用于减少网络连接上发送的确认数的机制。当其实现时,Nalge算法要求发送方不会有多于一个未确认的小段未完成。当未确认的小段未完成时,发送方保留任何来自应用程序的任何更多数据,直到该未完成的段由接收方确认。TCP使接收方有可能将确认附加到另一响应(也称为“背负(piggyback)”的处理),以消除两次发送的需要,从而减小网络负担。当TCP连接主要具有单向通信时,附加确认的机会是有限的。因此,Nagle算法常常导致每个往返时间(RTT)只有一个小段在给定连接上发送,其中RTT是发送数据和随后接收该数据的确认所花费的时间,在许多情况下导致发送中不期望的延迟。
发送小段时由RTT造成的延迟由于TCP的延迟确认策略而更加剧了。传统的接收方TCP实现延迟向发送方发送确认,直到在反向路径上有数据要发送(使它能够将ACK附加到该数据)、直到至少有两个满尺寸的段(2乘MSS字节)要确认或者直到延迟确认定时器(一般是大约200毫秒)到期。当发送方发送小段时,确认一般要到延迟确认定时器到期才发送,导致应当快得多完成的操作延迟几百毫秒并在RTT之上给出另外的延迟。由于延迟确认定时器,因此其它延迟也是有可能的,如在某些操作系统(OS)中当发送方试图发送尺寸大于OS网络缓冲区大小的包时所发生的延迟,这种延迟会导致一个小段保持未确认,直到延迟确认定时器到期。
由于小段的确认很少能够利用其它数据背负,因此由延迟确认时间造成的延迟在主要具有单向通信的环境中是尤其不期望的。由于对某些网络连接与Nagle算法相关的问题,因此有些应用程序开发人员通过使用TCP_NODELAY套接字选项简单地对给定网络连接关掉Nagle算法。此外,在某些操作系统上,系统管理员可以利用OS调整参数关掉Nagle算法。尽管对于某些应用程序这提高了性能,但是对于许多应用程序,关掉Nagle算法将导致网络压力增加,尤其是当网络上有些发送方有错误输出缓冲区管理时。由于关掉Nagle算法常常比Nagle算法本身使网络减速更多,因此简单地关掉Nagle算法不能对由Nagle导致的减速提供满意的解决方案。而且,关掉Nagle算法还会导致损失由Nagle算法提供的好处。
关掉Nagle算法的另一问题是这种解决方案首先要求对由Nagle导致的减速的正确诊断。当前操作系统不能识别何时减速是由Nagle导致的延迟造成的。当网络减速发生时,如果不去分析日志或执行跟踪分析,那么管理员可能不会知道是什么造成了减速。即使当网络减速可以通过关掉Nagle算法改善时,管理员也不能很快确定这种解决方案将提供好处,从而导致它常常被忽略。
因此,需要有一种有效的机制来检测和管理TCP网络中Nagle算法的使用,尤其是当那些网络容易受由Nagle导致的减速影响时。当应用程序在它们数据包的发送中效率不高时这种机制的需求甚至更大。
发明内容
上面指出的问题很大部分是由用于检测TCP网络连接上进行Nagle的系统、方法和介质解决的。一种实施方式包括在第一时间由接收方计算机从发送方计算机接收小段并由接收方计算机向发送方计算机发送该小段的延迟确认。在发送完延迟确认后,该实施方式还可以包括在第二时间由接收方计算机从发送方计算机接收第二个小段。该实施方式还可以包括由接收方计算机确定用于网络连接的Nagle检测阈值及第二时间和第一时间之间的差值,如果第二时间和第一时间之间的差值小于或等于Nagle检测阈值,则由接收方计算机系统检测进行Nagle状态。更多的实施方式还可以包括响应检测到的进行Nagle状态,由接收方计算机递增接收方计算机的Nagle监视器计数器,如果Nagle监视器计数器超过Nagle监视器阈值,则由接收方计算机发送进行Nagle警告。
另一实施方式包括由网络计算机搜索在从网络连接上上次确认开始后小于所接收数据的MSS的两倍的时间里确认的通过网络连接从接收方计算机向发送方计算机的纯确认,如果找到纯确认,则由网络计算机搜索在该纯确认之后从发送方计算机发送到接收方计算机的小包。该实施方式还可以包括由网络计算机确定Nagle检测阈值及检测到纯确认和小包之间的时间差,如果该时间差小于或等于Nagle检测阈值,则由网络计算机检测进行Nagle状态。另外的实施方式还可以包括由网络计算机系统观察接收方计算机和发送方计算机之间网络连接的创建。
另一实施方式提供了用于检测TCP网络连接上进行Nagle的数据处理系统。该系统通常可以包括用于基于网络连接确定Nagle检测阈值的Nagle检测阈值确定器。该系统通常还可以包括与Nagle检测阈值确定器通信、用于观察跟在指示第一时间进行Nagle状态的确认之后第二时间的小段的Nagle检测模块,其中如果第二时间和第一时间之间的差值小于或等于Nagle检测阈值,那么Nagle检测模块也可以检测到进行Nagle状态。
附图说明
通过阅读以下具体描述并参考附图,本发明的其它目的和优点将变得显而易见,其中相同的标号可以指示类似的元件:
图1描述了根据一种实施方式的用于Nagle检测系统的环境;
图2描述了根据一种实施方式的用于由接收方计算机系统检测进行Nagle状态并递增Nagle监视器计数器的流程图的例子;
图3描述了根据一种实施方式的用于由接收方计算机系统检测进行Nagle状态及产生、发送和/或记录警告的流程图的例子;
图4描述了根据一种实施方式的用于由接收方计算机系统检测进行Nagle状态并修改Nagle算法配置的流程图的例子;及
图5描述了根据一种实施方式的用于由网络计算机系统检测进行Nagle状态的流程图的例子。
具体实施方式
以下是附图中所描述的本发明例子实施方式的具体描述。该例子实施方式具体到足以清楚地表达本发明。但是,所提供的细节量不是要限制本发明预期的变体;相反,其意图是要覆盖属于由所附权利要求定义的本发明主旨和范围的所有修改、等价物和可选物。以下具体描述设计成使这种实施方式对本领域普通技术人员显而易见。
公开了用于检测TCP网络连接上进行Nagle的系统、方法和介质。实施方式通常可以包括具有用于基于网络连接确定Nagle检测阈值的Nagle检测阈值确定器的系统。该系统通常还可以包括与Nagle检测阈值确定器通信、用于观察跟在指示第一时间进行Nagle状态的确认之后第二时间的小段的Nagle检测模块,其中如果第二时间和第一时间之间的差值小于或等于Nagle检测阈值,那么Nagle检测模块还可以检测到进行Nagle状态。该系统可以是接收方计算机或网络计算机。该系统还可以产生和发送进行Nagle状态的通知、递增Nagle监视器计数器或将进行Nagle状态的指示保存在日志中。
所公开的实施方式提供了从接收方计算机或网络计算机的观点用于检测TCP网络连接上进行Nagle的方法和系统。通过当Nagle状态存在时产生警告,所公开实施方式的Nagle检测系统为用户或管理员提供了诊断并可能校正网络问题的有效机制。所公开实施方式的Nagle检测系统可以在网络连接的接收方一侧提供用于检测由Nagle算法造成的延迟的启发式算法。所公开实施方式的Nagle检测系统还可以提供由(不是网络连接终点的)网络计算机使用的用于检测由Nagle算法造成的延迟的启发式算法。在一种例子中,如果网络减速发生,则接收方计算机的管理员可以利用所公开的Nagle检测系统对与多个发送方计算机关联的网络连接实时诊断由Nagle算法造成的延迟,从而使得比管理员在事实之后通过日志分析或细查对网络状态有更快更准确的诊断(该发送方计算机系统可能有造成进行Nagle的效率不高的应用程序)。在另一例子中,网络提供者可以分析网络中的包流,以确定哪些网络连接(及关联的发送方计算机和接收方计算机)有可能造成网络减速的进行Nagle情况。
尽管以下将参考硬件和/或软件的特定配置描述特定实施方式,但本领域技术人员应当认识到本发明的实施方式可以有利地利用其它基本等效的硬件和/或软件系统来实现。
现在转向附图,图1描述了根据一种实施方式的用于Nagle检测系统的环境。在所述实施方式中,Nagle检测系统100包括通过网络106与接收方计算机系统104(接收方计算机)通信的发送方计算机系统102(发送方计算机)。Nagle检测系统100还可以包括网络计算机系统120(网络计算机)。发送方计算机系统102可以通过网络106上的网络连接利用如TCP的协议向接收方计算机系统104发送数据。类似地,接收方计算机系统104可以通过网络106上的网络连接向发送方计算机系统102发送如响应或确认的数据。网络计算机系统120还可以与网络106通信或者是网络106的一部分。在Nagle检测系统100中,发送方计算机系统102可以通过在网络106上建立的TCP网络连接通过向接收方计算机系统104发送数据包并从其接收响应或确认与接收方计算机系统104通信。接收方计算机系统104或网络计算机系统120或两者都能够检测由Nagle引起的减速的存在并产生进行Nagle状态的警告。发送方计算机系统102和接收方计算机系统104每个都可以包括应用程序108、传输模块110和网络模块112。传输模块110和网络模块112帮助应用程序108在网络106上发送和接收数据。
发送方计算机系统102、接收方计算机系统104及网络计算机系统120可以是任何类型计算机系统中的一种或多种,包括服务器、个人计算机、工作站、大型计算机、笔记本或膝上计算机、桌面计算机等,而且每个都可以是彼此不同或类似的类型。在一种实施方式中,接收方计算机系统104是具有一个或多个处理器或者处理器线程、执行与如随机访问存储器(RAM)、只读存储器(ROM)、闪速存储器、光盘驱动器、硬盘驱动器等的数据存储设备耦合的软件和/或一个或多个状态机的IBMeServer或类似服务器。在这种实施方式中,接收方计算机系统104可以与多个发送方计算机系统102通信(并与其具有网络连接)。例如,服务提供者可以使用接收方计算机系统104与大量使用发送方计算机系统102的用户接口。在这种实施方式中,每个发送方计算机系统102都可以是具有一个或多个处理器或者处理器线程、执行与如RAM、ROM、闪速存储器、光盘驱动器、硬盘驱动器等的数据存储设备耦合的软件和/或一个或多个状态机的IBMThinkCenterTM或ThinkPadTM个人计算机系统。可选的网络计算机系统120也可以是由网络提供者运行的IBMeServer或类似服务器。发送方计算机系统102、接收方计算机系统104及网络计算机系统120可以位于相同位置,如在同一建筑或计算机实验室中,或者可以是远程的。尽管术语“远程”是参考Nagle检测系统100组件之间的距离使用的,但该术语是就指示某种类型间隔的意义,而不是就指示系统之间大物理距离的意义使用的。
网络106可以是任何类型的数据通信通道,如因特网、内联网、LAN、WAN、以太网或无线网。在一种实施方式中,网络106使用TCP/IP协议。但是,本领域技术人员应当认识到,在不背离本发明范围与主旨的前提下,发送方计算机系统102、接收方计算机系统104和/或网络计算机系统120之间其它类型的数据通信通道也可以使用。计算机网络最基本的层是计算机之间允许它们通信的一系列连接。如TCP和IP的协议是用于在网络上通信的预建立机制,它帮助定义网络的速度、内容和可靠性。使用TCP/IP协议的计算机系统可以使用包作为在网络106上发送的基本单元。包一般可以包括数据和如校验和、协议标识符、目的地和源地址的头信息及状态信息,而且为了发送可以分成多个段。
TCP/IP将整个网络协议集分成了多个任务(有些是由传输模块110或网络模块112执行的),因此每个应用程序108不需要有完整的网络协议实现,相反,可以依赖网络协议的其它“层”。TCP/IP通常包括链接层、网络层、传输层和应用层。每层都可以添加自己的头信息,以方便数据的处理。应用程序108可以是任何充当应用层的软件程序。在一种例子中,应用程序108可以方便用户通过网络106利用从传输模块110的传输层发送和接收数据来发送或接收数据。应用程序108可以包括如远程登录、文件传输协议(ftp)、电子邮件程序、在线聊天系统(IRC)和web浏览器的通信程序。
可以由传输模块110实现的传输层可以向应用层(可以由应用程序108实现)提供数据流和可靠性保证。传输模块110可以使用TCP协议来帮助确保包是以其发送的顺序接收的,而且丢失的包被重新发送。应用程序108可以使用传输模块110来与网络模块112,从而与网络106,交互。
网络层可以由网络模块112实现,而且可以确定如何使数据到达其预定的目的地。在一种实施方式中,网络模块112可以使用IP协议来发送和接收数据包。当要从计算机系统发送的数据从传输模块110接收到时,网络模块112可以基于IP地址确定将包发送到哪里及为了使其到达目的地该如何路由包。当网络模块112从链接层(链接层从网络106接收数据)接收到数据时,它可以将包交给传输模块110的传输层(在有些情况下如果包有问题则丢弃它)。链接层可以用于与真正的网络硬件,如以太网或其它网卡,通信,而且可以包括硬件设备驱动器。链接层可以从网络106接收数据、剥去任何链接层头信息并将数据交给网络模块112的网络层。链接层还可以从网络模块112接收数据、放置链接层头并将其放到网络106上。
利用传输模块110和网络模块112,发送方计算机系统102的应用程序可以向接收方计算机系统104的应用程序108发送数据包,如果必要,接收方计算机系统104利用其自己的传输模块110和网络模块112接收数据包并响应。接收方计算机系统104还可以包括用户接口114、Nagle检测模块116及Nagle检测阈值确定器118。用户接口114可以方便来自管理员或其它用户的输入的接收及向管理员或其它用户的信息传送。除了产生进行Nagle状态的警告,接收方计算机系统104的Nagle检测模块116还可以检测何时实现Nagle算法(并潜在地造成网络连接性能的减速)。在确定Nagle条件存在时,Nagle检测模块116可以利用由Nagle检测阈值确定器118计算出的Nagle检测阈值。
接收方计算机系统104的用户接口114可以从接收方计算机系统104的管理员或其它用户接收输入,如打开或关掉Nagle检测模块116的请求或改变Nagle检测模块116设置的请求。用户接口114可以包括如键盘、鼠标、声音激活的输入等的输入设备来接收用户输入。用户接口114还可以通过任何类型的通信设备,如显示器或扬声器,向接收方计算机系统104的管理员或其它用户传送如与Nagle算法相关的统计数据或当前设置的信息。
Nagle检测模块116可以确定何时Nagle算法被触发(即,何时进行Nagle状态存在),作为响应,产生警告或采取不同的动作。当在接收方计算机系统104中实现时,由于Nagle算法一般是在传输层实现的,因此Nagle检测模块116可以与传输模块110交互。可选地,传输模块110可以包括Nagle检测模块116。基于传输模块110的活动,Nagle检测模块116可以确定小段的延迟确认是否发送到发送方计算机系统102,及在由Nagle检测阈值确定器118确定的Nagle检测阈值中该延迟确认后面是否跟着来自发送方计算机系统的另一小段的接收(或观察)。该小段接收的第二时间和延迟确认发送的第一时间之间的差值可以与Nagle检测阈值进行比较,如果差值小于或等于Nagle检测阈值,则可能存在进行Nagle状态。通过在其传输模块110中实现的Nagle算法,这种尝试提供了第二个段的发送在发送方计算机系统102被延迟的有力指示。
一旦接收方计算机系统104的Nagle检测模块116确定了何时存在进行Nagle状态,作为响应,它就产生警告或采取其它动作。在一种实施方式中,Nagle检测模块116可以产生并向用户、管理员或性能监视和/或分析软件发送进行Nagle状态的警告。在可选实施方式中,Nagle检测模块116可以记录Nagle状态的指示,例如通过记录在日志中或递增Nagle监视器计数器。这使得管理员或其它用户能够很快找到对于特定连接Nagle状态多长时间发生一次的记录,而不需要在事实之后凭直觉从日志获得信息或分析日志或报告,从而使用户可以诊断网络问题或识别出具有效率不高的应用程序108的发送方计算机系统102。由于接收方计算机系统104的操作员能够很快诊断出由发送方计算机系统102造成的Nagle引起的减速,因此当接收方计算机系统104与大量具有不熟练用户的发送方计算机系统102通信时,这尤其有用。例如,利用与具有多个不熟练用户的发送方计算机系统102接口的接收方计算机系统104的服务提供者可以很快确定哪些用户在运行造成Nagle引起的减速的效率不高的应用程序108。
接收方计算机系统104的Nagle检测阈值确定器118可以确定或计算Nagle检测阈值,该阈值是对延迟确认通过网络106到达发送方计算机系统102的时间量、由发送方计算机系统102进行处理的时间量及小包通过网络106到达接收方计算机系统104的时间量的估计。这三个估计值的总和(下文中称为网络遍历(traversal)时间)可以充当Nagle检测阈值,如果接收方计算机系统104发送小段的延迟确认,而且随后在等于Nagle检测阈值的时间帧内接收到一小段,则很可能发生了Nagle引起的减速。可选地,Nagle检测阈值可以基于网络遍历时间,如通过将Nagle检测阈值设置为大于网络遍历时间固定量或固定百分比的值,以解决时间帧中的变化和增加捕捉所有进行Nagle状态的机会(及冒着捕捉其它虚假或错误读数的危险)。
在一种实施方式中,接收方计算机系统104的Nagle检测阈值确定器118通过利用已经由传输模块110作出的计算作为部分TCP自适应地估计网络遍历时间。众所周知的TCP实现通过采样在连接上发送的包的行为并将这些样本平均成“平滑的”往返时间估计(SRTT)来尝试预测未来的往返时间。当包在TCP连接上发送时,发送方的传输模块110计算确认要花费多长时间,基于各种计算产生随后变成SRTT的往返样本序列。当前的SRTT估计可以充当小包在两个方向通过网络106的时间估计。通过创建测量RTT和当前SRTT估计之间时间差的“平滑”估计,接收方计算机系统104的Nagle检测阈值确定器118还可以估计发送方计算机系统102中的处理时间。目前,这个差值是由TCP实现计算的,但一般不保存。测量RTT和当前SRTT之间的平滑差值可以充当发送方计算机系统102中的处理时间的估计。因此,在这种实施方式中,网络遍历时间可以通过将当前SRTT加到测量RTT和当前SRTT之间的平滑差值来估计。用于估计网络遍历时间的其它方法也是可能的。
代替接收方计算机系统104或者除接收方计算机系统104之外,Nagle算法的使用还可以在网络计算机系统120检测。网络计算机系统120可以包括用户接口114、Nagle检测模块116、Nagle检测阈值确定器118及跟踪历史122。用户接口114关于接收方计算机系统104进行了描述。网络计算机系统120的Nagle检测模块116和Nagle检测阈值确定器118与接收方计算机系统104的等价物有相同的功能,但可以使用不同的功能来实现它们的目的。由于网络计算机系统120不具有与接收方计算机系统104相同的由网络连接终点维护的状态信息,因此它必须使用其它方法检测Nagle算法的使用。
通过利用标准包捕捉方法观察发送方计算机系统102与接收方计算机系统104之间的包流,网络计算机系统120的Nagle检测模块116可以确定进行Nagle状态存在。追溯到网络连接初始的包流历史可以存储在跟踪历史122中。特定的网络连接可以由源IP地址、目的地IP地址、源端口和目的地端口来识别。Nagle检测模块可以搜索跟踪历史122来找进行Nagle状态的指示,如在由网络计算机系统120的Nagle检测阈值确定器118确定的Nagle检测阈值内后面跟着一小段的在小于数据的MSS的两倍的时间之内确认的(不带数据的)纯确认。从特定网络连接上上次确认开始后小于数据的MSS的两倍的时间内确认的纯确认有可能是延迟确认。为了确定延迟确认是否是由Nagle算法的实现造成的,Nagle检测模块116确定在Nagle检测阈值内延迟确认之后是否跟着一小段(换句话说,时间差小于Nagle检测阈值),这将指示小段是由Nagle算法阻塞的。
Nagle检测阈值确定器118可以通过计算三方握手网络连接启动序列的往返时间来估计网络遍历时间。在一种例子中,网络连接启动序列可以包括在时间T0从发送方计算机系统102到接收方计算机系统104的同步消息(SYN)、在时间T1返回到发送方计算机系统102的确认(ACK)和同步消息及随后在时间T2返回到接收方计算机系统104的确认。然后,Nagle检测阈值确定器118可以将网络连接的网络遍历时间估计为T2减T0。由于SYN和ACK消息非常小,因此它们提供了对小段和延迟确认网络遍历时间的有用估计,其中延迟确认也是小包。Nagle检测阈值确定器118可以通过跟踪历史122的评审找到网络连接初始状态的记录。在估计出网络遍历时间后,Nagle检测阈值确定器118可以基于网络遍历时间确定Nagle检测阈值。
所公开的Nagle检测系统100的实施方式提供了在接收方计算机系统104或通过观察网络计算机系统120检测Nagle状态和管理网络连接的有效方式。所公开实施方式的方法提供了可以精确估计在发送小段过程中何时Nagle算法造成延迟的启发式算法。通过检测Nagle状态并产生警告,Nagle检测系统100提供了用于分析网络性能、诊断网络减速并可能提高网络性能的接收方侧或基于网络的有效机制。
当Nagle检测系统100用在接收方计算机系统104时,管理员或其它用户可以很快诊断网络减速并识别出发送方计算机系统102侧不能有效发送数据且触发Nagle算法的应用程序108,而不需要在事实之后费力地分析网络日志。然后,运行接收方计算机系统104的服务提供者可以很快对网络减速的用户抱怨作出响应,并有可能响应进行Nagle的发生修改网络连接配置。运行在网络计算机系统120的Nagle检测系统100使网络提供者能够分析网络连接的效率,以识别不能有效使用网络106的发送方计算机系统102或接收方计算机系统104。当与现有系统比较时,所公开实施方式的Nagle检测系统100为管理员或其它用户提供了对网络连接上Nagle算法运行有价值的理解,从而方便对Nagle引起的减速的诊断或校正。
图2描述了根据一种实施方式的用于由接收方计算机系统确定进行Nagle状态存在并递增Nagle监视器计数器的流程图的例子。在一种实施方式中,流程图200的方法的单元可以由接收方计算机系统104的组件执行。在单元202,接收方计算机系统104的组件,如网络模块112或传输模块110,可以通过网络106与发送方计算机系统102建立TCP连接。作为建立TCP连接的一部分,两个计算机系统可以协商用于连接的MSS。当网络连接活动时,在单元204接收方计算机系统104可以从发送方计算机系统102接收小段。
在决定块206,传输模块110确定是否响应接收方小段向发送方计算机系统102发送延迟确认。在一种实施方式中,接收方计算机系统104将不发送小段确认,直到它可以在另一数据包上背负、收到足够多的小段使它们的总和大于MSS的两倍或者延迟确认定时器到期。如果延迟确认定时器到期,则流程图200继续到决定块208;否则,流程图200返回单元204,在那里等待新数据或流程图终止。传输模块110可以创建延迟确认包,该延迟确认包可以在包中包括头信息,如校验和、协议标识符、目的地和源地址及状态信息。
Nagle确定模块116在决定块208可以确定接收方计算机系统104在网络连接上发送完延迟确认后是否接收到第二个小段。如果接收方计算机系统104没有接收到第二个小段,则流程图200返回单元204,在那里等待新数据或流程图结束。如果接收方计算机系统104接收到第二个小段,则流程图200继续到单元210,开始计算Nagle检测阈值。如果第二个小段接收得足够快,则发送完延迟确认后第二个小段的接收可以指示Nagle算法的运行延迟了发送方计算机系统102第二个小段的发送。在传统Nagle算法下,当发送方侧传输模块110尝试发送第二个小段时未确认小段的存在将导致第二个小段发送的延迟,直到第一个小段的确认从接收方计算机系统接收到。
如果在决定块208接收到第二个小段,则接收方计算机系统104将开始确定Nagle检测阈值,以确定是否可能发生Nagle引起的延迟。在单元210,Nagle检测阈值确定器118可以估计延迟确认行进到发送方计算机系统102及第二个小段行进到接收方计算机系统104的往返时间。如关于图1所描述的,通过利用已经由传输模块110作出的计算作为部分TCP,Nagle检测阈值确定器118可以自适应地估计往返时间作为SRTT。在单元212,如关于图1所描述的,通过创建测量RTT与当前SRTT估计之间时间差的“平滑”估计,Nagle检测阈值确定器118可以估计发送方侧的处理时间(发送方计算机系统102的处理时间)。估计出的往返时间和发送方侧处理时间的总和是网络遍历时间。然后,在单元214Nagle检测阈值确定器118可以确定Nagle检测阈值。如关于图1所描述的,Nagle检测阈值可以基于网络遍历时间,如通过使用网络遍历时间作为Nagle检测阈值或通过修改网络遍历时间。
在确定Nagle检测阈值后,Nagle检测模块116在决定块216确定在Nagle检测阈值内是否接收到第二个小段。如果第二个小段与延迟确认接收时间之间的时间小于或等于Nagle检测阈值,则第二个小段可以看作是在Nagle检测阈值内接收到的。如果第二个小段在Nagle检测阈值后接收到,则流程图200或者终止,或者返回单元204继续处理。如果第二个小段是在Nagle检测阈值内接收到的,则可能存在Nagle状态,Nagle检测模块116在单元218递增Nagle监视器计数器。Nagle监视器计数器可以是传输模块110、Nagle检测模块116或位于发送方计算机系统102上的任何其它软件的一部分。在一种实施方式中,Nagle监视器计数器可以实现为可以由实用程序访问的操作系统(OS)计数器。例如,Linux和Unix操作系统中的netstat命令可以充当用于维护Nagle监视器计数器的机制。为了传送到管理员或其它用户,接收方计算机系统104的实用程序可以访问Nagle监视器计数器。Nagle监视器计数器使管理员或其它用户能够很快确定Nagle算法多长时间延迟一次小段的发送,因此个人可以诊断网络问题或提高网络连接的性能。
在递增Nagle监视器计数器后,Nagle检测模块116在决定块220确定Nagle监视器计数器是否高到足以产生和/或发送警告。如果计数器高于定义的Nagle计数器阈值,则Nagle监视器计数器足够高。通过提供事件将发生的Nagle监视器计数器水平(Nagle计数器阈值),错误或虚假Nagle警告的危险减少了,因为只有在超过该水平后警告才会发生。导致计数器足够高的Nagle警告个数可以任何方式定义,如用户定义的量、缺省的量、基于Nagle状态、基于警告接收者的偏好等。如果Nagle监视器计数器不够高,则流程图200或者终止,或者返回单元204作进一步处理。如果Nagle监视器足够高(高于Nagle监视器阈值),则Nagle检测模块116可以在单元222产生和/或发送进行Nagle状态的警告,其后流程图终止。如上所述,进行Nagle警告可以发送到用户、管理员、应用程序108或性能监视和/或分析软件,它们任何一个都可以位于接收方计算机系统104或其它计算机系统上。进行Nagle警告可以用来帮助管理员或其它用户分析网络性能和诊断网络性能的减速。在一种实施方式中,当接收到进行Nagle警告后,用户可以使用创建对一个或多个网络连接显示进行Nagle警告出现频率或其它性能信息的实时显示的实时性能分析工具。利用这种软件,用户或管理员能够很快诊断出网络减速是否是Nagle引起的。进行Nagle警告可以包括任何类型的信息,如关于网络连接、发送方计算机系统102的信息(如IP地址、端口号或其它标识符)、发送或接收数据的应用程序108的身份或时间戳。
图3描述了根据一种实施方式用于由接收方计算机系统确定进行Nagle状态存在及产生、发送或记录警告的流程图的例子。在一种实施方式中,流程图300的方法的单元可以由接收方计算机系统104的组件执行。流程图300从单元302、304、306、308、310、312、314和316开始,这些单元与流程图200的方法的类似编号的单元基本类似。当第二个小段在Nagle检测阈值内接收到时,决定块316的肯定响应指示可能存在进行Nagle状态。
在单元318,Nagle检测模块116可以产生、发送和/或记录进行Nagle警告。在一种例子中,进行Nagle警告可以产生并发送到接收方计算机系统104的管理员或其它用户、存在进行Nagle状态的发送方计算机系统102的用户、具有网络计算机系统120的网络提供者等。在另一例子中,Nagle检测模块116可以将进行Nagle状态的指示记录在日志中,如系统事件监视器或事件日志。通过记录网络连接的Nagle状态的历史,管理员或其它用户可以很快确定Nagle算法多长时间延迟一次小段的发送,因此个人可以诊断网络问题,而不需要细查长长的事件日志来试着分析或凭直觉获知网络减速的原因。
图4描述了根据一种实施方式用于由接收方计算机系统确定进行Nagle状态存在并修改Nagle算法配置的流程图的例子。在一种实施方式中,流程图400的方法的单元可以由接收方计算机系统104的组件执行。流程图400从单元402、404、406、408、410、412、414和416开始,这些单元与流程图200的方法的类似编号的单元基本类似。当第二个小段在Nagle检测阈值内接收到时,决定块416的肯定响应指示可能存在进行Nagle状态。
在单元418,在决定块416肯定响应和可能Nagle状态的情况下,接收方计算机系统104的传输模块110可以修改Nagle算法配置。传输模块110可以任何合适的方式修改Nagle算法配置,如通过在特定网络连接关掉Nagle算法或使其更难触发。例如,如果在特定网络连接进行Nagle状态被过于频繁地触发,则传输模块110可以对该网络连接关掉Nagle算法(如通过TCP_NODELAY套接字选项),因此过多的进行Nagle事件将不会过度减慢网络。在另一例子中,传输模块110可以改变对延迟确认的设置,来减小用于延迟确认定时器的时间帧。在这个例子中,延迟确认定时器可以从其初始值,一般是200毫秒,减小到更低的值,这将降低Nagle算法的效果。这比简单地关掉Nagle算法更能使管理员进行细微的控制。可选地,除传输模块110之外或代替它,接收方计算机系统104的Nagle检测模块116或应用程序108也可以修改Nagle算法配置。
图2、3和4的实施方式可以任何方式结合。例如,通过在Nagle监视器计数器递增到足够高的水平后(图2的单元218和220)只修改Nagle算法配置(图4的单元418),图2和4的功能可以结合。其它实施方式和结合也是可能的。
图5描述了根据一种实施方式的用于由网络计算机系统确定进行Nagle状态存在的流程图的例子。在一种实施方式中,流程图500的方法的单元可以由网络计算机系统120的组件执行。流程图500可以由网络计算机系统120实时执行或在网络连接建立后作为诊断或分析工具执行。在单元502,网络计算机系统120的组件,如Nagle检测模块116,可以利用标准包捕捉方法观察发送方计算机系统102与接收方计算机系统104之间TCP连接的创建。作为单元502的一部分,网络计算机系统120可以确定用于网络连接的协商MSS并开始将网络连接的历史记录到跟踪历史122中。
在单元504,网络计算机系统120的Nagle检测模块116利用标准包捕捉方法观察发送方计算机系统102与接收方计算机系统104之间的包流,来搜索与Nagle算法一致的模式。Nagle检测模块116首先在单元504搜索从网络连接上上次确认开始后小于数据的MSS的两倍时间里确认的来自一个计算机系统(不带数据)的纯确认。如果在决定块506没有找到这样的纯确认,则流程图500返回单元504继续搜索或终止。如果找到这种纯确认,则可以指示延迟确认,流程图500继续到单元508,在那里Nagle检测模块116可以搜索在Nagle检测阈值内跟在该纯确认之后来自另一计算机系统的小包。如果接收到小包和纯确认之间的时间小于或等于Nagle检测阈值,则小包可以看作是在Nagle检测阈值内接收到的。如果发现小包跟在纯确认后面,则流程图500继续到单元512,计算Nagle检测阈值。如果在决定块510没有找到小包,则流程图500返回单元504继续运行或终止。
网络计算机系统120的Nagle检测阈值确定器118可以在单元512确定连接握手时的往返时间。如关于图1所描述的,Nagle检测阈值确定器118可以评审跟踪历史来确定网络连接启动多长时间发生一次,并且可以利用这个时间作为网络遍历时间。在估计出网络遍历时间后,Nagle检测阈值确定器118可以在单元514基于网络遍历时间确定Nagle检测阈值。
在决定块516,网络计算机系统120的Nagle检测模块116确定在Nagle检测阈值内是否检测到来自第二个系统的小包。如果Nagle检测模块116没有在Nagle检测阈值内检测到小包,则流程图500或者返回单元504,在那里继续搜索,或者流程图终止。如果在Nagle检测阈值内检测到第二个包,则可能存在Nagle状态,Nagle检测模块116在单元518递增Nagle监视器计数器。在递增Nagle监视器计数器以后,Nagle检测模块116可以在决定块520确定Nagle监视器监视器是否高到足以进行动作,如Nagle监视器计数器是否大于Nagle监视器阈值。如果Nagle监视器计数器不够高,则流程图500或者终止,或者返回单元504作进一步处理。如果Nagle监视器计数器足够高,则流程图500继续到单元522,产生或发送进行Nagle警告,其后流程图终止。如上所述,进行Nagle警告可以发送到用户、管理员或性能监视和/或分析软件,它们任何一个都可以位于网络计算机系统120或其它计算机系统上。在一种实施方式中,网络计算机系统120可以将进行Nagle警告发送到接收方计算机系统104以进行通知或以便可以执行校正动作。可选地,网络计算机系统120可以将进行Nagle状态的指示记录在日志中。对检测到潜在进行Nagle状态的其它响应也是可能的。
总的来说,为实现本发明实施方式而执行的例程可以是操作系统或者是特定应用程序、组件、程序、模块、对象或指令序列的一部分。本发明的计算机程序一般包括由本地计算机转换成机器可读格式因而成为可执行指令的许多指令。而且,程序包括本地驻留在程序中或在存储器或存储设备中找到的变量和数据结构。此外,下文描述的各种程序可以基于在本发明特定实施方式中实现其的应用识别。但是,应当理解,接下来任何特定的程序术语都只是为了方便而使用的,因此本发明不应当限定为只用于由这些术语识别和/或暗示的任何特定应用。
本发明设想了用于检测TCP网络连接上进行Nagle的方法、系统和介质,这对受益于本公开内容的本领域技术人员来说将是显而易见的。应当理解,在具体描述和附图中示出和描述的本发明的形式应当仅仅视为例子。以下权利要求打算可以更广地解释,以包含所公开例子实施方式的所有变体。

Claims (20)

1、一种用于检测传输控制协议(TCP)网络连接上进行Nagle的方法,该方法包括:
由接收方计算机从发送方计算机接收小段;
由接收方计算机在第一时间向发送方计算机发送该小段的延迟确认;
在发送完延迟确认后,由接收方计算机在第二时间从发送方计算机接收第二个小段;
由接收方计算机确定用于网络连接的Nagle检测阈值及第二时间与第一时间之间的差值;及
如果第二时间与第一时间之间的差值小于或等于Nagle检测阈值,则由接收方计算机检测进行Nagle状态。
2、如权利要求1所述的方法,还包括:
其中检测步骤包括响应检测到的进行Nagle状态,由接收方计算机递增接收方计算机的Nagle监视器计数器;及
如果Nagle监视器计数器大于Nagle监视器阈值,则由接收方计算机发送进行Nagle警告。
3、如权利要求1所述的方法,还包括:
其中网络连接具有Nagle算法配置;及
响应检测到的进行Nagle状态,通过对网络连接关掉Nagle算法或通过减小用于网络连接的延迟确认定时器,由接收方计算机修改Nagle算法配置。
4、如权利要求1所述的方法,其中由接收方计算机确定Nagle检测阈值包括:
由接收方计算机估计网络连接的往返时间;
由接收方计算机估计发送侧的处理时间;及
其中Nagle检测阈值是基于估计的网络遍历时间确定的,该网络遍历时间包括估计的往返时间和估计的发送侧处理时间的总和。
5、如权利要求1所述的方法,其中检测步骤包括由接收方计算机产生并发送进行Nagle状态的通知、由接收方计算机显示进行Nagle状态的指示、由接收方计算机递增接收方计算机的Nagle监视器计数器或由接收方计算机将进行Nagle状态的指示记录在日志中的一个或多个。
6、一种用于检测具有最大段尺寸(MSS)的传输控制协议(TCP)网络连接上进行Nagle的方法,该方法包括:
由网络计算机搜索从网络连接上上次确认开始后小于所接收的数据的MSS的两倍的时间内确认的通过网络连接从接收方计算机向发送方计算机的纯确认;
如果找到纯确认,则由网络计算机搜索该纯确认后从发送方计算机发送到接收方计算机的小包;
由网络计算机确定Nagle检测阈值及检测到纯确认和小包之间的时间差;及
如果该时间差小于或等于Nagle检测阈值,则由网络计算机检测进行Nagle状态。
7、如权利要求6所述的方法,还包括由网络计算机观察接收方计算机和发送方计算机之间网络连接的创建。
8、如权利要求6所述的方法,还包括:
其中检测步骤包括响应检测到的进行Nagle状态,由网络计算机递增网络计算机的Nagle监视器计数器;及
如果Nagle监视器计数器高于Nagle监视器阈值,则由网络计算机向用户、管理员、接收方计算机或发送方计算机中的一个或多个发送进行Nagle警告。
9、如权利要求6所述的方法,其中搜索步骤包括实时搜索网络连接或搜索与该网络连接关联的跟踪历史中的一个或多个。
10、如权利要求6所述的方法,其中由网络计算机确定Nagle检测阈值包括:
估计从网络连接创建开始连接握手的往返时间;及
其中Nagle检测阈值是基于在连接握手时估计的往返时间确定的。
11、如权利要求6所述的方法,其中检测步骤包括由网络计算机产生并发送进行Nagle状态的通知、由网络计算机显示进行Nagle状态的指示、由网络计算机递增网络计算机的Nagle监视器计数器或由网络计算机将进行Nagle状态的指示记录在日志中的一个或多个。
12、一种用于检测网络连接上进行Nagle的数据处理系统,该系统包括:
Nagle检测阈值确定器,该Nagle检测阈值确定器适于基于网络连接确定Nagle检测阈值;及
Nagle检测模块,该Nagle检测模块与Nagle检测阈值确定器通信,该Nagle检测模块适于观察跟在指示第一时间进行Nagle状态的确认之后第二时间的小段,其中如果第二时间和第一时间之间的差值小于或等于Nagle检测阈值,则该Nagle检测模块还适于检测进行Nagle状态。
13、如权利要求12所述的系统,还包括跟踪历史,该跟踪历史适于存储网络连接上发送的历史。
14、如权利要求12所述的系统,还包括用户接口,该用户接口适于显示进行Nagle状态存在的指示。
15、如权利要求12所述的系统,还包括网络模块,该网络模块适于方便通过网络连接向发送方计算机发送和接收数据。
16、如权利要求12所述的系统,其中指示进行Nagle状态的确认包括从网络连接上上次确认开始后小于数据最大段尺寸(MSS)两倍的时间内确认的纯确认,而且其中Nagle检测阈值还至少部分地基于该网络连接的连接握手时估计的往返时间确定。
17、如权利要求12所述的系统,其中指示进行Nagle的确认包括响应小段的延迟确认,而且其中Nagle检测阈值还至少部分地基于该网络连接上估计的往返时间和估计的发送侧处理时间确定。
18、如权利要求12所述的系统,其中Nagle检测模块还适于产生包括IP地址、端口号或时间戳中至少一个的进行Nagle状态的警告。
19、如权利要求12所述的系统,其中Nagle检测模块还适于产生并向应用程序、接收方计算机、发送方计算机、网络计算机、用户或管理员中的至少一个发送进行Nagle状态的通知。
20、如权利要求12所述的系统,其中网络连接是TCP网络连接。
CNB2006100024694A 2005-01-27 2006-01-26 用于检测TCP网络连接上进行Nagle的系统和方法 Expired - Fee Related CN100553255C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/044,605 2005-01-27
US11/044,605 US7440419B2 (en) 2005-01-27 2005-01-27 Methods for detecting nagling on a TCP network connection

Publications (2)

Publication Number Publication Date
CN1812412A true CN1812412A (zh) 2006-08-02
CN100553255C CN100553255C (zh) 2009-10-21

Family

ID=36696633

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100024694A Expired - Fee Related CN100553255C (zh) 2005-01-27 2006-01-26 用于检测TCP网络连接上进行Nagle的系统和方法

Country Status (2)

Country Link
US (2) US7440419B2 (zh)
CN (1) CN100553255C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123196A (zh) * 2013-04-24 2014-10-29 擎泰科技股份有限公司 增强数据可靠性的系统以及方法
CN107294809A (zh) * 2017-07-13 2017-10-24 上海斐讯数据通信技术有限公司 Mii总线网络设备的测试方法、装置及计算机处理设备
CN113660144A (zh) * 2021-09-15 2021-11-16 佳缘科技股份有限公司 一种基于网络环回时间的跳板检测方法及其系统

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7948909B2 (en) 2006-06-30 2011-05-24 Embarq Holdings Company, Llc System and method for resetting counters counting network performance information at network communications devices on a packet network
US9094257B2 (en) 2006-06-30 2015-07-28 Centurylink Intellectual Property Llc System and method for selecting a content delivery network
US8477614B2 (en) 2006-06-30 2013-07-02 Centurylink Intellectual Property Llc System and method for routing calls if potential call paths are impaired or congested
US8289965B2 (en) 2006-10-19 2012-10-16 Embarq Holdings Company, Llc System and method for establishing a communications session with an end-user based on the state of a network connection
US8488447B2 (en) 2006-06-30 2013-07-16 Centurylink Intellectual Property Llc System and method for adjusting code speed in a transmission path during call set-up due to reduced transmission performance
US8000318B2 (en) 2006-06-30 2011-08-16 Embarq Holdings Company, Llc System and method for call routing based on transmission performance of a packet network
US8194643B2 (en) 2006-10-19 2012-06-05 Embarq Holdings Company, Llc System and method for monitoring the connection of an end-user to a remote network
US8717911B2 (en) 2006-06-30 2014-05-06 Centurylink Intellectual Property Llc System and method for collecting network performance information
US7889660B2 (en) * 2006-08-22 2011-02-15 Embarq Holdings Company, Llc System and method for synchronizing counters on an asynchronous packet communications network
US8125897B2 (en) 2006-08-22 2012-02-28 Embarq Holdings Company Lp System and method for monitoring and optimizing network performance with user datagram protocol network performance information packets
US8576722B2 (en) 2006-08-22 2013-11-05 Centurylink Intellectual Property Llc System and method for modifying connectivity fault management packets
US8223655B2 (en) 2006-08-22 2012-07-17 Embarq Holdings Company, Llc System and method for provisioning resources of a packet network based on collected network performance information
US7940735B2 (en) 2006-08-22 2011-05-10 Embarq Holdings Company, Llc System and method for selecting an access point
US7808918B2 (en) 2006-08-22 2010-10-05 Embarq Holdings Company, Llc System and method for dynamically shaping network traffic
US7843831B2 (en) 2006-08-22 2010-11-30 Embarq Holdings Company Llc System and method for routing data on a packet network
US8130793B2 (en) 2006-08-22 2012-03-06 Embarq Holdings Company, Llc System and method for enabling reciprocal billing for different types of communications over a packet network
US8144587B2 (en) 2006-08-22 2012-03-27 Embarq Holdings Company, Llc System and method for load balancing network resources using a connection admission control engine
US8189468B2 (en) 2006-10-25 2012-05-29 Embarq Holdings, Company, LLC System and method for regulating messages between networks
US8107366B2 (en) 2006-08-22 2012-01-31 Embarq Holdings Company, LP System and method for using centralized network performance tables to manage network communications
US8102770B2 (en) 2006-08-22 2012-01-24 Embarq Holdings Company, LP System and method for monitoring and optimizing network performance with vector performance tables and engines
US8040811B2 (en) 2006-08-22 2011-10-18 Embarq Holdings Company, Llc System and method for collecting and managing network performance information
US8144586B2 (en) 2006-08-22 2012-03-27 Embarq Holdings Company, Llc System and method for controlling network bandwidth with a connection admission control engine
US8274905B2 (en) 2006-08-22 2012-09-25 Embarq Holdings Company, Llc System and method for displaying a graph representative of network performance over a time period
US8537695B2 (en) 2006-08-22 2013-09-17 Centurylink Intellectual Property Llc System and method for establishing a call being received by a trunk on a packet network
US7684332B2 (en) 2006-08-22 2010-03-23 Embarq Holdings Company, Llc System and method for adjusting the window size of a TCP packet through network elements
US8224255B2 (en) 2006-08-22 2012-07-17 Embarq Holdings Company, Llc System and method for managing radio frequency windows
US8199653B2 (en) 2006-08-22 2012-06-12 Embarq Holdings Company, Llc System and method for communicating network performance information over a packet network
US8750158B2 (en) 2006-08-22 2014-06-10 Centurylink Intellectual Property Llc System and method for differentiated billing
US8619600B2 (en) 2006-08-22 2013-12-31 Centurylink Intellectual Property Llc System and method for establishing calls over a call path having best path metrics
US8228791B2 (en) 2006-08-22 2012-07-24 Embarq Holdings Company, Llc System and method for routing communications between packet networks based on intercarrier agreements
US8238253B2 (en) 2006-08-22 2012-08-07 Embarq Holdings Company, Llc System and method for monitoring interlayer devices and optimizing network performance
US8549405B2 (en) 2006-08-22 2013-10-01 Centurylink Intellectual Property Llc System and method for displaying a graphical representation of a network to identify nodes and node segments on the network that are not operating normally
US8194555B2 (en) 2006-08-22 2012-06-05 Embarq Holdings Company, Llc System and method for using distributed network performance information tables to manage network communications
US8531954B2 (en) 2006-08-22 2013-09-10 Centurylink Intellectual Property Llc System and method for handling reservation requests with a connection admission control engine
US8098579B2 (en) 2006-08-22 2012-01-17 Embarq Holdings Company, LP System and method for adjusting the window size of a TCP packet through remote network elements
US8307065B2 (en) 2006-08-22 2012-11-06 Centurylink Intellectual Property Llc System and method for remotely controlling network operators
US8407765B2 (en) 2006-08-22 2013-03-26 Centurylink Intellectual Property Llc System and method for restricting access to network performance information tables
US9479341B2 (en) 2006-08-22 2016-10-25 Centurylink Intellectual Property Llc System and method for initiating diagnostics on a packet network node
US8015294B2 (en) 2006-08-22 2011-09-06 Embarq Holdings Company, LP Pin-hole firewall for communicating data packets on a packet network
US8064391B2 (en) 2006-08-22 2011-11-22 Embarq Holdings Company, Llc System and method for monitoring and optimizing network performance to a wireless device
US8743703B2 (en) 2006-08-22 2014-06-03 Centurylink Intellectual Property Llc System and method for tracking application resource usage
US8111692B2 (en) 2007-05-31 2012-02-07 Embarq Holdings Company Llc System and method for modifying network traffic
JP4978327B2 (ja) * 2007-06-19 2012-07-18 富士通株式会社 再送制御方法及びその装置
WO2009031866A2 (en) * 2007-09-08 2009-03-12 Samsung Electronics Co., Ltd. Apparatus and method for determining time to response of retransmission in a multihop relay wireless communication system
US9112901B2 (en) * 2007-11-20 2015-08-18 Radware, Ltd. Method and system for providing connection resiliency
US8068425B2 (en) 2008-04-09 2011-11-29 Embarq Holdings Company, Llc System and method for using network performance information to determine improved measures of path states
US8352558B2 (en) * 2009-02-10 2013-01-08 Microsoft Corporation Transport high availability via acknowledge management
US8966374B1 (en) 2009-03-30 2015-02-24 Glance Networks, Inc. Method and apparatus for enabling participants to assume control over a presentation in a remote viewing session
US8312111B2 (en) * 2010-06-30 2012-11-13 Eastman Kodak Company Image processing in a computer network
US8341216B2 (en) * 2010-06-30 2012-12-25 Eastman Kodak Company Efficient method for image processing in a computer network
CN104704485B (zh) 2012-07-19 2018-11-30 格兰斯电讯网络有限公司 一种在第二位置查看第一浏览器的内容的方法
US10425371B2 (en) * 2013-03-15 2019-09-24 Trane International Inc. Method for fragmented messaging between network devices
US9191297B2 (en) * 2013-03-28 2015-11-17 Hcl Technologies Limited Providing feedback to media senders over real time transport protocol (RTP)
US9356869B2 (en) * 2013-04-10 2016-05-31 Viber Media Inc. VoIP bandwidth management
CN105991250B (zh) * 2015-02-10 2020-08-07 华为技术有限公司 一种基站、用户终端及载波调度指示方法和装置
US10684965B2 (en) 2017-11-08 2020-06-16 Advanced Micro Devices, Inc. Method to reduce write responses to improve bandwidth and efficiency
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof
US11044350B1 (en) * 2018-02-07 2021-06-22 F5 Networks, Inc. Methods for dynamically managing utilization of Nagle's algorithm in transmission control protocol (TCP) connections and devices thereof
US11122019B2 (en) * 2019-09-13 2021-09-14 Oracle International Corporation Systems and methods for client collaborated migration of live TLS connection

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6018516A (en) * 1997-11-14 2000-01-25 Packeteer, Inc. Method for minimizing unneeded retransmission of packets in a packet communication environment supporting a plurality of data link rates
US6321269B1 (en) * 1998-12-29 2001-11-20 Apple Computer, Inc. Optimized performance for transaction-oriented communications using stream-based network protocols
US7266613B1 (en) * 2000-08-09 2007-09-04 Microsoft Corporation Fast dynamic measurement of bandwidth in a TCP network environment
US20030110206A1 (en) * 2000-11-28 2003-06-12 Serguei Osokine Flow control method for distributed broadcast-route networks
US7343524B2 (en) * 2002-09-16 2008-03-11 Finisar Corporation Network analysis omniscent loop state machine

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123196A (zh) * 2013-04-24 2014-10-29 擎泰科技股份有限公司 增强数据可靠性的系统以及方法
CN107294809A (zh) * 2017-07-13 2017-10-24 上海斐讯数据通信技术有限公司 Mii总线网络设备的测试方法、装置及计算机处理设备
CN113660144A (zh) * 2021-09-15 2021-11-16 佳缘科技股份有限公司 一种基于网络环回时间的跳板检测方法及其系统

Also Published As

Publication number Publication date
US8228805B2 (en) 2012-07-24
US20080298233A1 (en) 2008-12-04
US7440419B2 (en) 2008-10-21
US20060164982A1 (en) 2006-07-27
CN100553255C (zh) 2009-10-21

Similar Documents

Publication Publication Date Title
CN100553255C (zh) 用于检测TCP网络连接上进行Nagle的系统和方法
CN100571271C (zh) 用于检测TCP网络连接上出界进行Nagle的系统和方法
US20230261960A1 (en) Link fault isolation using latencies
US7693975B2 (en) Network device applying kalman filter
CN100356733C (zh) 记录介质、故障分析设备以及故障分析方法
US20020078164A1 (en) System and method for data transfer acceleration in a TCP network environment
US10355961B2 (en) Network traffic capture analysis
WO2002019654A2 (en) Method for improving tcp performance over wireless links
CA2649375A1 (en) Enabling network devices to run multiple congestion control algorithms
CN114301676B (zh) 一种电力监控系统的无损化资产探测方法、装置和存储介质
CN111756713B (zh) 网络攻击识别方法、装置、计算机设备及介质
US7898955B1 (en) System and method for real-time diagnosis of routing problems
Cao et al. Towards efficient parallel multipathing: a receiver-centric cross-layer solution to aid multipath TCP
JP4733489B2 (ja) 隣接デバイスの共同作業による無線ネットワークにおけるパフォーマンスの問題の検出および診断
Vacirca et al. An algorithm to detect TCP spurious timeouts and its application to operational UMTS/GPRS networks
Zhang et al. High fidelity off-path round-trip time measurement via TCP/IP side channels with duplicate SYNs
Yedugundla et al. Probe or Wait: Handling tail losses using Multipath TCP
CN114826750B (zh) 一种网络异常检测方法、服务器、服务器集群及存储介质
Lan et al. Passive overall packet loss estimation at the border of an ISP
Farrington Multipath TCP under massive packet reordering
Zhuang et al. Exploring tradeoffs in failure detection in routing overlays
Vacirca et al. Estimating Frequency and Effects of TCP Spurious Retransmission Timeouts by Traffic Monitoring in Operational GPRS Networks
Vacirca et al. TCP Spurious Timeout estimation in an operational GPRS/UMTS network
Magalhaes et al. Improving Performance of Rate-Based Transport Protocols in Wireless Environments
Hong et al. Combining bandwidth estimate and explicit congestion notification for improving TCP over heterogeneous networks

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091021

Termination date: 20190126