CN104704783A - Tcp映射的***和方法 - Google Patents

Tcp映射的***和方法 Download PDF

Info

Publication number
CN104704783A
CN104704783A CN201380051835.3A CN201380051835A CN104704783A CN 104704783 A CN104704783 A CN 104704783A CN 201380051835 A CN201380051835 A CN 201380051835A CN 104704783 A CN104704783 A CN 104704783A
Authority
CN
China
Prior art keywords
tcp
congestion control
traffic
mapper
network
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.)
Pending
Application number
CN201380051835.3A
Other languages
English (en)
Inventor
马修·R·威廉斯
莫汉·K·韦米拉帕利
尤里·內布加特维
米卡·A·克莱姆蒂
维贾恩德兰·马亨德兰
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.)
LiveQoS Inc
Original Assignee
LiveQoS Inc
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
Priority claimed from US13/644,057 external-priority patent/US8630204B1/en
Application filed by LiveQoS Inc filed Critical LiveQoS Inc
Publication of CN104704783A publication Critical patent/CN104704783A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/12Avoiding congestion; Recovering from congestion
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/203Details of error rate determination, e.g. BER, FER or WER
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/205Arrangements for detecting or preventing errors in the information received using signal quality detector jitter monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
    • 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/11Identifying congestion
    • 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/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • 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
    • 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/188Time-out mechanisms

Landscapes

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

Abstract

一种使用传输控制协议(TCP)的网络中的通信量的拥塞控制的***,所述***包括:多个TCP拥塞控制程序,所述TCP拥塞控制程序具有一个或多个参数;多个TCP拥塞控制单元,所述TCP拥塞控制单元运行所述TCP拥塞控制程序;和TCP映射器,所述TCP映射器适于根据下列中的至少一者将输入TCP通信流从多个输入TCP通信流映射至所述TCP拥塞控制单元:(a)发起所述输入TCP通信流的应用程序的类型,(b)所述输入TCP通信流的目的地的网络的类型,(c)与网络性能有关的参数,(d)网络约束,(e)所述输入TCP通信流的来源,和(f)所述输入TCP通信流的目的地。

Description

TCP映射的***和方法
技术领域
本发明涉及使用传输控制协议(TCP)的网络。
发明内容
根据一个实施例,提供了一种使用传输控制协议(TCP)的网络中的通信量的拥塞控制的***,所述通信量包括多个输入TCP通信流。所述***包括:多个TCP拥塞控制程序,所述拥塞控制程序具有一个或多个参数;多个TCP拥塞控制单元,每个拥塞控制单元运行所述多个TCP拥塞控制程序之中的一个TCP拥塞控制程序;和TCP映射器,所述TCP映射器适于将第一输入TCP通信流从所述多个输入TCP通信流映射至所述多个TCP拥塞控制单元的第一TCP拥塞控制单元,所述第一TCP拥塞控制单元运行所述多个TCP拥塞控制程序的第一TCP拥塞控制程序。所述映射基于下列中的至少一者:
(a)发起所述输入TCP通信流的应用程序的类型,
(b)所述输入TCP通信流的目的地的网络的类型,
(c)与网络性能有关的参数,
(d)网络约束,
(e)所述输入TCP通信流的来源,和
(f)所述输入TCP通信流的目的地。
所述输入TCP通信量可以发起于TCP发送主机。
一个实施包括TCP发送主机,所述TCP发送主机调整所述发送主机看到的往返时间(RTT),并且分析与网络性能有关的所述参数的测量,所述测量由外部传感器和所述TCP映射器中的至少一者进行。所述***可以进行一种以上探试法并且根据所述一种以上探试法的结果对所述第一TCP拥塞控制程序的至少一个参数进行调谐。所述探试法可以包括下列中的至少一者:(a)确定拥塞是否存在和拥塞的持久性,(b)确定有效吞吐量为所述TCP主机传输的通信量的速率的一小部分,(c)确定所述TCP主机传输的通信量的单向延迟的变化,以及(d)使用下列中的至少一者来估算通道容量:(i)包间隔到达时间,(ii)确认信息间隔到达时间,(iii)突发内的数据包的延迟的方差,和(iv)突发内的数据包的丢失率。该***还可以根据拥塞是否存在以及拥塞的持久性的确定来识别数据包丢失事件的原因。
在包含TCP发送主机的***中,TCP映射器可以将信号发送至TCP主机,且这些信号之中的至少一个信号可以重复丢失的数据包的重新传输。
一种使用传输控制协议(TCP)的网络中的通信量的拥塞控制的方法,其中,所述通信量包括一个或多个输入TCP通信流。所述网络包括多个TCP拥塞控制程序和多个TCP拥塞控制单元,每个TCP拥塞控制单元运行所述多个TCP拥塞控制程序之中的一个TCP拥塞控制程序。所述方法使用TCP映射器将输入TCP通信流从所述一个或多个输入TCP通信流映射至所述多个TCP拥塞控制程序的第一TCP拥塞控制程序。所述映射基于下列中的至少一者:
(a)发起所述输入TCP通信流的应用程序的类型,
(b)所述输入TCP通信流的目的地的网络的类型,
(c)与网络性能有关的参数,
(d)网络约束,
(e)所述输入TCP通信流的来源,和
(f)所述输入TCP通信流的目的地。
在一个实施中,所述TCP映射器是中间流TCP代理。
附图说明
通过参照下面的结合附图的说明,可以最好地理解本发明。
图1示出了具有一个TCP发送主机和一个TCP接收主机的典型网络。
图2示出了图1的但是包含有TCP映射器的网络。
图3示出了在网络的发送侧和接收侧分别具有TCP映射器105和TCP映射器205的网络103。
图4示出了另一个实施例,从而发送TCP主机201A至201M连接至一个映射器。
图5示出了一个实施例,从而发送主机-映射器组合401A至401K被连接至网络103。
图6示出了具有发送-主机映射器组合501A至501L的示例,其中:组合501A至501K是单发送主机-映射器组合;组合501L是多发送主机-映射器组合。
具体实施方式
尽管将结合某些优选实施例来说明本发明,但是应理解本发明不限于这些特定的实施例。相反,本发明旨在涵盖可能包含于由随附的权利要求所限定的本发明的主旨和范围内的所有替代方案、变型例和等同布置。
图1示出了具有TCP发送主机101的典型网络,该TCP发送主机101通过网络103将利用TCP的通信量(traffic)发送至TCP接收主机102。TCP发送主机101具有TCP传输队列104。网络103例如可以是单线、3G、4G或Wi-Fi网络。在一个实施例中,网络103还可以包含有线、3G、4G或Wi-Fi子网络。
图2示出了图1的但是还包含有TCP映射器105的网络。TCP映射器105对通常会在TCP接收主机上终止的TCP流起到中间流TCP代理的作用。TCP映射器105包含处理***107。TCP映射器105拦截来自TCP发送主机101的输入TCP通信流(traffic flow),且TCP映射器处理***107内的处理器106将各输入TCP通信流分别映射至TCP映射器处理***107的TCP拥塞控制(CC)单元108-A至108-N。在一个实施例中,各CC单元运行不同的拥塞控制程序。在另一个实施例中,一部分CC单元可以运行相同的程序,但是该部分内的每个CC单元仅能够调谐或配置在该程序内使用的特定的一部分参数。在另一个实施例中,TCP映射器处理器106与各CC单元一起工作来,从而对由CC单元运行的TCP拥塞控制程序的CC单元可用的相应的参数进行调谐。下面提供有CC程序的示例。各CC单元还具有用来存储等待传输的数据包的相关联的缓冲器(如图2所示的109-A至109-N)。在一个实施例中,TCP映射器105具有数个传感器(未示出),以用来测量与网络性能有关的参数(例如,丢失、吞吐量、延迟、带宽、抖动和有效吞吐量等等)。在另一个实施例中,TCP映射器还使用这些参数进行分析。如下面将进一步详述的,在另一个实施例中,TCP映射器根据网络约束(例如,优先级和通信量监管)是否正被用于网络来进行映射。
TCP映射器105提供了多个优势。发送主机101在达到与最大的吞吐量相对应的阶段之前必须通过一个或多个不同的阶段来累进。此外,通过阶段累进的速度取决于往返时间(RTT)。在一个实施例中,映射器105与发送主机101是分离的但是紧密靠近于发送主机101。在一个实施例中,映射器105与发送主机101之间的RTT在阈值RTTthresh以下,RTTthresh是发送主机101与接收主机102之间的RTT的一小部分。RTTthresh能够例如经由历史记录的分析、计算或网络性能的仿真来设定。因为映射器105的位置靠近发送主机101,所以由映射器105进行的拦截具有减小发送主机101看到的RTT的效果,且因此具有在TCP发送主机101达到与最大的吞吐量相对应的阶段之前的通过各阶段的吞吐量累进的加速效果。
在另一个实施例中,TCP映射器将RTT调整为最适于发送主机101的要求的值。例如,映射器可以调整RTT,以此减小发送主机101看到的RTT的方差。可替代地,映射器可以通过添加额外的延迟来增大RTT,因为一些发送主机101应用程序在看到增大的RTT时能够更好地执行。这是有益的,因为如果测量到低的RTT那么一些操作***会限制未确认数据的量。
在进一步的实施例中,TCP映射器作出调整以控制RTT的计算。例如,由映射器调整用来计算RTT的开始值和结束值,以此避免在发送主机处分别发送和接收数据包的任何“开销(overhead)”。在另一个实施例中,TCP映射器测量这些开销或与发送主机通信来测量这些开销,并从记录的RTT中减去这些测量。这给出了网络内RTT的更加真实的估算。
在另一个实施例中,TCP映射器放置在发送主机101内,但是与发送主机101的TCP引擎是分离的。这具有使RTT减小至几乎为零的效果,还具有使发送主机通过TCP各阶段以达到能够实现最大吞吐量的阶段的累进加速的效果。在又一个实施例中,TCP映射器替代发送主机101的TCP引擎。
TCP映射器105能够识别发起通信量的应用程序,通信量例如是(包含但不限于)文件传输通信量、远程桌面协议(RDP)通信量或流式通信量。在一个实施例中,TCP映射器通过检查数据包的报头和内容来识别原始应用程序(originating application)。在另一个实施例中,TCP映射器通过应用程序、终端***或其它网络设备的显式通知来识别原始应用程序。
在一个实施例中,TCP映射器105根据原始应用程序将通信量映射至相对应的拥塞控制单元,并且将来自不同应用程序的数据包存储在缓冲器109A至109N中与选择的拥塞控制单元相对应的一个缓冲器中。
在另一个实施例中,TCP映射器能够通过如下方式来确定通信量目的地的网络的类型:例如,通过检查数据包的用来确定目的地的报头或内容并且识别通信量目的地的网络的类型(例如,有线、3G、4G或Wi-Fi)。然后,TCP映射器根据通信量目的地的网络的类型将通信量映射至CC单元108A至108N。例如,可以存在与有线、3G、4G或Wi-Fi网络相对应的不同的CC单元。
在另一个实施例中,TCP映射器察觉到由流经同一个网络设备的其它TCP流使用的拥塞控制程序。那么,向CC单元108A至108N的映射取决于这些其它流使用的拥塞控制程序。例如,如果TCP映射器需要映射来自输入流的通信量并且确定了许多其它的输入流由主机使用TCPReno程序来发送,那么TCP映射器可以将来自输入流的通信量映射至TCP CUBIC程序。
TCP映射器能够以各种方式来确定网络中正在使用的其它拥塞控制程序。在一个实施例中,根据拥塞控制程序的已知行为,TCP映射器能够将未知的拥塞控制程序的拥塞窗口尺寸演进(congestion window sizeevolution)与现有的拥塞控制程序的拥塞窗口尺寸演进关联。
在另一个实施例中,TCP映射器对飞行中窗口(inflight window)的演进进行采样,该窗口是给定RTT的飞行中字节的字节量;并且检测到这个值随着时间(假设离散的按RTT大小排列的时间递增)线性地增大。据此,TCP映射器以合理的精确度判定TCP RENO拥塞控制程序正被使用。
在另一个实施例中,TCP映射器使用更高的采样率来对飞行中窗口的演进进行采样,并且确定丢失事件之间的曲线形状是在时间和振幅上偏移的三次函数的形状。据此,TCP映射器以合理的精确度判定TCPCUBIC拥塞控制程序正被使用。
在另一个实施例中,TCP映射器使用根据探测法来识别拥塞控制程序的已知方法(例如,参见网址为http://cnds.eecs.jacobs-university.de/courses/nds-2009/feyzabadi-report.pdf的作者为S.S.Feyzabadi的“Identifying TCP Congestion ControlMechanisms using Active Probing(使用主动探测来识别TCP拥塞控制机构)”)。
在另一个实施例中,在推断出主机正在使用的TCP拥塞控制程序后,考虑到当前观察的网络状况,TCP映射器进一步判断该TCP拥塞控制程序是否适合于该主机发起的流。如果不适合,那么TCP映射器将这样的流映射至更加适合的拥塞控制程序。
在另一个实施例中,TCP映射器要么根据通信量所属的流的来源要么根据通信量所属的流的目的地将通信量映射至CC单元108A至108N。例如,通过检查数据包的报头和内容或经由应用程序、终端***或其它网络设备的显式通知,TCP映射器能够识别上述来源或目的地。
在又一个实施例中,TCP映射器根据与网络性能有关的参数(例如,丢失、吞吐量、有效吞吐量、延迟、数据包抖动和带宽等等)的测量将通信量映射至CC单元108A至108N。在一个实施例中,由TCP映射器105内的传感器进行这些参数的测量。然而,某些参数可以仅在接收侧进行测量,所以在另一个实施例中,这些网络性能例如由接收侧的外部传感器在外部进行测量,并且经由带内技术或带外技术被传送至TCP映射器105。
在另一个实施例中,TCP映射器使用这些测量进行分析,并且根据这些分析的结果作出映射判定。例如,TCP映射器可以使用这些测量以下面的方式判断网络是否拥塞以及拥塞的性质:当给定通道内的所有流的总比特率达到通道容量的极限时,可以说通道被拥塞了。通过分析得到的稳态并绘制丢失和延迟随着时间的演进以及通过丢失与延迟之间的相关性,能够确定这个拥塞的持久性。在另一个实施例中,由外部模块进行诸如上述技术的探试式技术或探试法。然后,根据这些分析的结果,TCP映射器将通信量映射至上述CC单元中的一个单元。
在又一个实施例中,TCP映射器根据网络约束(例如,在网络内某些类型的通信量相对于其它类型的通信量的优先级;以及是否存在通信量监管)将通信量映射至CC单元108A至108N。在一个实施例中,TCP映射器能够自动检测是否存在这样的约束。例如,通过查看数据包的各个方面(例如,互联网协议差分服务代码点(IP DSCP)位)或通过查看介质访问控制(MAC)报头的优先位,TCP映射器能够检测优先级是否正被使用。TCP映射器也能够检测何时给定的TCP流是“应用受限的”或换言之,未利用CC程序的当前状态所允许的最大带宽。通过分析上述的流是否是“应用受限的”或是否正受到优先级策略的限制,TCP映射器能够选择适合的CC程序。可替代地,TCP映射器能够被明确地编程以将这些网络约束考虑在内。例如,映射器可以被用户编程以识别出某些类型的通信量相对于其它类型的通信量将被优先化。类似地,用户能够从监管合约中提取出相关数据并且用户随后将它们明确地编程到TCP映射器中。然后根据这样的数据作出映射决定。
在进一步的实施例中,TCP映射器根据下列中的两者以上将通信量映射至CC单元108A至108N:
-原始应用程序;
-通信量目的地的网络类型;
-通信量所属的流的来源;
-通信量所属的流的目的地;
-与网络性能有关的参数;
-网络约束。
如前所述,在一个实施例中,各CC单元运行不同的拥塞控制程序。在另一个实施例中,一部分CC单元可以运行相同的程序,但是该部分内的各CC单元仅能够调谐或配置该程序内所使用的特定部分的参数。在另一个实施例中,针对由CC单元运行的相对应的TCP拥塞控制程序,TCP映射器处理器106与各CC单元一起工作以调谐CC单元可用的参数。
能够以各种方式实施映射。在一个实施例中,查找表能够与在不存在查找表入口的情况下被使用的定义的缺省CC单元一起被用于将TCP端口号映射至CC单元。其它的查找表可以将来源和目的地IP地址和其它IP和TCP报头值映射至目标CC单元。在另一个实施例中,多个查找表能够被依次使用直至实现匹配。
如前所述,针对在飞行中的由CC单元运行的拥塞控制程序,各拥塞控制单元能够对CC单元可用的参数进行调谐,以使得各个流类型的约束(延迟、带宽和抖动)得以满足。作为示例,如果CC单元正在使用TCP CUBIC,那么参考时间常数和总体比例因子能够是被调整的参数。能够使用多种调谐方法。在一个实施例中,能够根据与网络性能有关的参数(例如,丢失、吞吐量、有效吞吐量、延迟、数据包抖动和带宽等等)的测量来调谐。能够使用含有测量的与网络性能有关的衡量标准和调谐参数的查找表。这些衡量标准能够包括数据包丢失、延迟、抖动、吞吐量、有效吞吐量和其它可测量的网络统计量。在另一个实施例中,能够使用这样的查找表:该查找表将内部的CC衡量标准(例如,缓冲器填充水平和定时器值等等)与调谐参数关联起来。在另一个实施例中,针对由CC单元运行的相对应的TCP拥塞控制程序(诸如在上面给出的TCP CUBIC示例中),TCP映射器处理器106与各CC单元协作以对CC单元可用的参数进行调谐。随着进行新测量,初始的参数值能够根据历史测量而被计算并进一步被调谐。
在另一个实施例中,TCP映射器使用这些测量进行分析,并且根据分析的结果进行调谐。如前所述,例如,TCP映射器可以使用这些测量来判断网络是否持久地拥塞。然后,TCP映射器能够相应地进行调谐。
在另一个实施例中,TCP映射器使用其它的探试法来恰当地调谐参数。在这样的探试法中,对诸如达到的有效吞吐量、瓶颈链路缓冲器容量和通道容量等测量进行分析,且使用这些测量。因探试法的使用而获得的结果被用来调谐参数。在一个实施例中,由外部模块执行上述探试法。
在又一个示例中,探试法被用来区分因拥塞事件而造成的网络丢失和因随机事件而造成的网络丢失。关于拥塞的示例,一旦已经识别出持久性拥塞时段开始,很有可能的就是:该持久性拥塞时段内的数据包丢失事件是由于拥塞而不是随机的原因造成的,并且能够被这样识别出。同样,在非拥塞时段内,丢失事件更有可能是随机事件。根据由应用该探试法获得的结果,映射器相应地进行参数的调谐。作为示例,在一个实施例中,如果所述参数中的一个是拥塞窗口且丢失事件被确定为随机事件而不是因拥塞造成的,那么映射器将指令发送至CC程序以不减小该拥塞窗口。
探试法的另一个示例是测量由接收主机确认的TCP通信量的速率(即,有效吞吐量),作为由发送主机发送的TCP通信量的速率的一小部分。这个比率然后被转交查找表以选择适合的调谐参数。进行该操作例如用来防止网络缓冲器的溢出。例如,使用历史观察值、计算机仿真或通过使用对于已知的通信量到达过程(例如,泊松过程等)而言已经建立的数学关系来构建查找表。
探试法的另一个示例是使用被传输数据的单向延迟的变化的测量来估算瓶颈链路缓冲器内排队的数据包的数量。与先前的示例类似,将单向延迟的变化转送至查找表以估算瓶颈链路缓冲器内排队的数据包的数量。例如,通过使用历史观察值、计算机仿真或对于已知的通信量到达过程(例如,泊松过程等)而言已经建立的数学关系来构建这样的查找表。这个探试法有助于限制由在瓶颈链路缓冲器内的长队列中等待的数据包造成的延迟“臃肿”。
探试法的又一个示例是使用包间隔到达时间来估算通道容量。确认信息间隔到达时间也可以用来估算通道容量。突发(burst)内的数据包的延迟的方差可以用来估算通道容量。突发内的数据包的丢失率也可以用来估算通道容量。也可以使用下列中的一个或多个来估算通道容量。
-包间隔到达时间
-确认信息间隔到达时间
-突发内的数据包的延迟的方差
-突发内的数据包的丢失率
与先前的示例类似,能够将这些测量中的一个或多个转送至查找表以估算通道容量。例如,使用历史观察值、计算机仿真或众所周知的数学关系来构建查找表。这样的估算可以被用于确保平均通信量速率与估算的链路容量恰当地匹配。
在另一个实施例中,能够根据网络约束(例如,网络内某些类型的通信量相对于其它类型的通信量的优先级)来调谐。如前所述,TCP映射器能够自动检测诸如优先级等约束是否正被使用。可替代地,TCP映射器能够被用户明确编程,从而当进行映射时将约束考虑在内。如前所述,映射器能够被编程以考虑到某些类型的通信量的优先级相对于其它类型的通信量将被优先化。同样,用户能够从监管合约中提取相关数据并且随后用户将相关数据明确编程至TCP映射器中。然后根据这样的数据作出调谐决定。
在另一个实施例中,如前所述,TCP映射器察觉到由流经同一个网络设备的其它TCP流使用的拥塞控制程序。如上所述,映射器能够使用各种方法来识别拥塞控制程序。然后,映射器能够根据正在网络中使用的其它拥塞控制程序进行调谐。
在另一个实施例中,TCP映射器105可以根据网络性能测量在“飞行中”对映射至用于给定流的CC单元的映射进行切换。考虑这样的情况:流在当前被映射至第一CC单元。随后,能够动态地切换映射,以使得针对属于同一数据流的通信量的拥塞控制将由不同于第一CC单元的第二CC单元进行处理。动态切换后,属于该数据流的通信量将在与第二CC单元相对应的缓冲器内得到缓冲。能够通过以下方式完成上述操作:将数据从第一CC单元的缓冲器复制至第二CC单元的缓冲器,并且使用最新的已知衡量标准来为第二CC单元可用的参数计算初始设定。在一个实施例中,TCP映射器处理器106将流映射动态地切换至第二CC单元,并将属于该数据流的通信量从第一CC单元复制至第二CC单元的缓冲器。第二CC单元为它可用的参数计算初始设定。在进一步的实施例中,TCP映射器处理器106与第二CC单元协作来计算所述参数的初始设定。
TCP映射器处理器106的另一个方法是:针对由第一CC单元运行的CC程序,TCP映射器处理器106与第一CC单元协作来对第一CC单元可用的参数进行调谐;而TCP映射器处理器106同时与替代的CC单元协作来对由替代的CC单元运行的CC程序的可用参数进行调谐。这样,当期望向替代的CC单元的切换时,参数的正确设定已经到位。
例如,根据网络性能测量(例如,丢失、吞吐量、有效吞吐量、延迟、数据包抖动和带宽等等),进行拥塞控制程序参数调谐。如前所述,在一个实施例中,由TCP映射器105内的传感器进行这些网络性能测量。如前所述,某些网络性能测量可以仅在接收侧进行测量,所以在另一个实施例中,这些网络性能的测量例如由接收侧的外部传感器在外部进行测量,并且经由带内技术或带外技术被传送至TCP映射器105。
在一个实施例中,TCP映射器处理器106从传感器中收集结果,并将这些结果分配给单个的CC单元108A至108N。在各CC单元,CC单元根据不同的应用程序需求和与网络性能有关的参数在飞行中对由该单元运行的TCP拥塞控制程序的参数进行调谐。在另一个实施例中,TCP映射器处理器106与各CC单元一起工作来对由CC单元运行的相对应的TCP拥塞控制程序的参数进行调谐。
能够运行各种类型的TCP拥塞控制程序。在一个实施例中,CC单元108A至108N中的一个运行TCP Hybla CC程序。此外,待被传输至具有长RTT(例如,远大于500ms)的网络的通信量被指向与TCP HyblaCC单元相关联的缓冲器,且相对应的TCP Hybla CC单元将被用于该通信量的拥塞控制。TCP Hybla CC单元中相关参数的操作和调谐已经在它处有良好的文件记载(例如,参见C.Caini等的"TCP Hybla:a TCPEnhancement for Heterogeneous Networks",International Journal of SatelliteCommunications and Networking,John Wiley&Sons,Volume 22,Number 5,pp 547-566,September 2004)。
在另一个实施例中,CC单元108A至108N中的一个运行TCP CUBIC拥塞控制程序。此外,例如,待被传输至高速网络的通信量被指向与TCPCUBIC相关联的缓冲器,且相对应的TCP CUBIC CC单元将被用于该通信量的拥塞控制。TCP CUBIC CC单元中相关参数的操作和调谐已经在它处有良好的文件记载(例如,参见Ha等的“CUBIC:A NewTCP-Friendly High-Speed TCP Variant”,ACM SIGOPS Operating SystemReview,Volume 42,Issue 5,July 2008,Page(s):64-74,2008)。
在另一个实施例中,CC单元108A至108N中的一个运行数据中心TCP(DCTCP)拥塞控制程序。此外,例如,待被传输至数据中心网络的通信量或来自需要小延迟和大带宽的应用程序的通信量被指向与DCTCP相关联的缓冲器。相对应的DCTCP CC单元将被用于该通信量。DCTCP CC单元中相关参数的操作和调谐已经在它处有良好的文件记载(例如,参见Alizadeh等的"DCTCP:Efficient Packet Transport for theCommoditized Data Center",Proceedings of SIGCOMM 2010)。
在另一个实施例中,CC单元108A至108N中的一个运行TCPWestwood+拥塞控制程序或TCP Westwood CC程序。此外,例如,待被传输至无线网络的通信量被指向与TCP Westwood+或TCP Westwood相关联的缓冲器。然后,相对应的TCP Westwood+CC单元将用于该通信量的拥塞控制。相关参数的操作和调谐已经在它处有良好的文件记载(例如,参见Mascolo等的"TCP Westwood:Bandwidth Estimation for EnhancedTransport over Wireless Links",Proc.of the ACM Mobicom 2001,Rome,Italy,July 16-212001或Grieco等的"Performance evaluation andcomparison of Westwood+,New Reno and Vegas TCP congestion control",ACM Computer Communication Review,April 2004,Vol.34(2))。
在另一个实施例中,CC单元108A至108N中的一个运行TCP Illinois拥塞控制程序或TCP Illinois CC程序。此外,例如,待被传输至高速的、长RTT网络的通信量被指向与TCP Illinois相关联的缓冲器。相对应的TCP Illinois CC单元然后将被用于该通信量的拥塞控制。相关参数的操作和调谐已经在它处有良好的文件记载(例如,参见Liu等的"TCP-Illinois:A loss and delay-based congestion control algorithm for high-speednetworks",Pages 417–440,Performance Evaluation 65(2008))。
在另一个实施例中,CC单元108A至108N中的一个运行FAST TCPCC程序。此外,例如,来自对延迟和抖动敏感的应用程序的通信量或待被传输至高速、长RTT网络的通信量被指向与FAST TCP相关联的缓冲器。相对应的FAST TCP CC单元随后将被用于该通信量的拥塞控制。相关参数的操作和调谐已经在它处有良好的文件记载(例如,参见Wei等的"FAST TCP:Motivation,Architecture,Algorithms,Performance",IEEE/ACM Transactions on Networking,vol.14.no.6Dec 2006)。
CC单元能够运行其它类型的CC程序。例如,CC单元108A至108N之一也能够运行这样的CC程序:该CC程序根据测量的延迟对窗口尺寸进行动态修改。此外,例如,来自诸如远程桌面协议(RDP)等应用程序的通信量能够被指向相对应的缓冲器,且CC单元将用于该种类型的通信量的拥塞控制。
在一个实施例中,TCP映射器105还能够通过将信号发送至发送主机来进行流量适配,并以此来进行例如:
-控制吞吐量累进
-避免映射器内的缓冲器的溢出
-减小由于缓冲而造成的延迟
-明确要求改变拥塞控制程序
这些步骤能够包括(但不限于)下列中的一个或多个:
-通过变更时间戳来减小通信量的发送速率,
-对TCP片段的丢弃进行仿真,
-修改窗口尺寸,
-修改比例参数,并且
-放慢ACK的传输。
诸如下面文件记载的那样,TCP映射器也能够将信号发送至发送主机来调整TCP选项,Internet Engineering Task Force(IETF)Request forComments(RFC)2780“IANA Allocation Guidelines For Values In theInternet Protocol and Related Headers”by S.Bradner and V.Paxson,March2000。
当重新传输丢失的数据包且发送主机接收到与在重新传输的数据包之后被传输的数据包相对应的选择性的确认(SACK)时,重新传输的数据包很有可能也丢失了。在另一个实施例中,TCP映射器105能够将信号发送至发送主机以重复进行重新传输。
在一个实施例中,如图3所示,网络103的发送侧和接收侧分别存在TCP映射器105和205。此外,发送侧和接收侧的映射器105和205能够彼此相互作用以确保各种流类型的约束得以满足。在一个实施例中,接收侧的TCP映射器205能够进行上文概述的流量适配。在另一个实施例中,发送侧的TCP映射器105和接收侧的TCP映射器205均进行上述步骤的流量适配。在又一个实施例中,仅发送侧的TCP映射器105或接收侧的TCP映射器205进行上文概述的流量适配。
如前所述,某些网络性能的测量(例如,包含但不限于数据包抖动和带宽)可以仅在接收侧进行测量。在一个实施例中,接收侧的TCP映射器205的传感器被用来测量这些参数。此外,接收侧的TCP映射器205使用带内技术或带外技术与发送侧的映射器105通信。可由接收侧的TCP映射器205测量的网络性能测量包括(但不限于):关联流的接收带宽、正在接收的总带宽(所有接收流的和)、数据包抖动、误码率、误包率和数据包间间距。能够交换对于调谐发送侧的TCP映射器105有用的其它有用信息。
能够使用带内技术或带外技术交换其它信息。例如,能够传输:与网络103内发现的子网络的类型(例如,Wi-Fi、3G和有线)有关的信息;下游网络故障;和队列延迟等等。
在一个实施例中,发送侧的TCP映射器105具有2种操作模式:
-“单端”—接收侧不存在对应的TCP映射器205;
-“双端”—接收侧存在对应的TCP映射器205。
在一个实施例中,处于双端模式的发送侧的TCP映射器进一步被构造用来将一个或多个TCP确认汇总成单个TCP确认。这在发送多个确认可能降低网络性能的网络中是有利的。在另一个实施例中,接收侧的TCP映射器能够接收单个TCP确认,从所述单个TCP确认中派生出一个或多个TCP确认并且传输从所述单个TCP确认中派生出的所述一个或多个TCP确认。在一个实施例中,在多个TCP拥塞控制程序中的一个TCP拥塞控制程序内既实施汇总又实施派生。
图4示出了另一个实施例,其中TCP发送主机201A至201M连接至同一个映射器305。在这种情况下,映射器305会聚且处理来自数个不同主机的流量。例如,这可以与办公室相对应。
图5示出了又一个实施例,其中存在数个发送主机-映射器组合401A至401K。主机-映射器组合401A包含TCP发送主机401AA和映射器401AB;主机-映射器组合401B包含TCP发送主机401BA和映射器401BB;以此类推直至包含TCP发送主机401KA和映射器401KB的主机-映射器组合401K。映射器401AA-401KA连接至控制网络411且能够彼此相互作用。在一个实施例中,映射器401AA-401KA以分散的方式彼此相互作用。在另一个实施例中,存在集中控制,例如,映射器401AA-401KA中的一个作为主映射器。在另一个实施例中,主映射器中的处理器额外起到协调其它的映射器的操作的作用。在另一个实施例中,由与TCP映射器分离的专用***提供集中控制。在一个实施例中,这个专用***可以位于控制网络411内。在另一个实施例中,这个专用***可以位于控制网络411的外部。
进一步的组合也是可能的。图6示出了一个“混合”示例,其中,存在数个发送主机-映射器组合501A、501B……501K、501L。发送主机-映射器组合501A至501K均包含TCP发送主机和映射器。主机-映射器组合501A包含TCP发送主机501AA和映射器501AB;主机-映射器组合501B包含TCP发送主机501BA和映射器501BB;以此类推直至包含TCP发送主机501KA和映射器501KB的主机-映射器组合501K。
然而,主机-映射器组合501L是类似于图4的多个发送主机-单个映射器组合。映射器501LB与发送主机501LA-A至501LA-M连接。虽然仅示出了一个多个发送主机-单个映射器组合,但是在其它的实施例中,存在一个以上的多个发送主机-单个映射器组合。
图4、5和6所示的构造也能够在接收侧实现。类似于图4,单个TCP映射器能够连接至数个接收主机。类似于图5,可以存在数个接收主机-映射器组合。类似于图6,可以存在数个接收主机-映射器组合,且这些组合中的一个或多个可以包含多个接收主机。发送侧的TCP映射器则能够设置为前述2种模式中的一种。
在又一个实施例中,TCP映射器还能够与网络内的其它TCP控制设备相互操作。所述控制设备和TCP映射器彼此交换数据并且使用交换的数据作为操作用输入。所述控制设备在仅存在发送侧的TCP映射器或接收侧的TCP映射器的构造中可以与发送侧的TCP映射器或接收侧的TCP映射器相互作用,或者在既存在发送侧的TCP映射器又存在接收侧的TCP映射器的构造中与两者相互作用。
在另一个实施例中,参照图2,在网络103内发生子网络故障的情况下,TCP映射器105将继续接收来自发送主机101的通信量,并且在寻找网络103内的用来发送通信量的替代路径的同时将上述通信量存储在缓冲器109A至109N内,且映射器105内的单独的TCP拥塞控制程序为替代路径进行调谐。
虽然已经图示和说明了本发明的特定实施例和应用,但是应理解:本发明不限于本说明书所述的精确结构和组成;在不脱离随附的权利要求书限定的本发明的主旨和范围的情况下,显然可以从前述的说明中得出各种变型、变化和改变。

Claims (51)

1.一种使用传输控制协议(TCP)的网络中的通信量的拥塞控制的方法,其中,所述通信量包括一个或多个输入TCP通信流,所述网络包括多个TCP拥塞控制程序和多个TCP拥塞控制单元,每个所述TCP拥塞控制单元运行所述多个TCP拥塞控制程序中的一个,所述方法包括:
使用TCP映射器将第一输入TCP通信流从所述一个或多个输入TCP通信流映射至所述多个TCP拥塞控制程序的第一TCP拥塞控制程序,其中,所述映射是根据下列至少一者:
(a)发起所述第一输入TCP通信流的应用程序的类型,
(b)所述第一输入TCP通信流的目的地的网络的类型,
(c)与网络性能有关的参数,
(d)网络约束,
(e)所述第一输入TCP通信流的来源,和
(f)所述第一输入TCP通信流的目的地。
2.如权利要求1所述的方法,其中,所述第一输入TCP通信流发起于TCP发送主机。
3.如权利要求2所述的方法,还包括:调整所述TCP发送主机看到的往返时间(RTT)。
4.如权利要求2所述的方法,还包括:对与网络性能有关的所述参数的测量进行分析,其中,所述测量由外部传感器和所述TCP映射器中的至少一者进行。
5.如权利要求4所述的方法,还包括:进行一种以上探试法,并且
根据所述一种以上探试法的结果对所述第一TCP拥塞控制程序的至少一个参数进行调谐。
6.如权利要求5所述的方法,其中,所述一种以上探试法包括下列中的至少一者:
确定拥塞是否存在和拥塞的持久性;
确定有效吞吐量为所述TCP主机传输的通信量的速率的一小部分;
确定所述TCP主机传输的通信量的单向延迟的变化;并且
使用下列中的至少一者来估算通道容量:
包间隔到达时间,
确认信息间隔到达时间,
突发内的数据包的延迟的方差,和
突发内的数据包的丢失率。
7.如权利要求6所述的方法,还包括:根据拥塞是否存在和拥塞的持久性的确定来识别数据包丢失事件的原因。
8.如权利要求2所述的方法,还包括:所述TCP映射器将信号发送至所述TCP主机。
9.如权利要求8所述的方法,其中,所述TCP映射器将信号发送至所述TCP主机以重复丢失的数据包的重新传输。
10.一种使用传输控制协议(TCP)的网络中的通信量的拥塞控制的***,所述通信量包括多个输入TCP通信流,所述***包括:
多个TCP拥塞控制程序,所述拥塞控制程序具有一个或多个参数,
多个TCP拥塞控制单元,每个拥塞控制单元运行所述多个TCP拥塞控制程序之中的一个程序,
TCP映射器,所述TCP映射器适于根据下列中的至少一者将第一输入TCP通信流从所述多个输入TCP通信流映射至所述多个TCP拥塞控制单元的第一TCP拥塞控制单元,所述第一TCP拥塞控制单元运行所述多个TCP拥塞控制程序的第一TCP拥塞控制程序:
(a)发起所述输入TCP通信流的应用程序的类型,
(b)所述输入TCP通信流的目的地的网络的类型,
(c)与网络性能有关的参数,
(d)网络约束,
(e)所述输入TCP通信流的来源,和
(f)所述输入TCP通信流的目的地。
11.如权利要求10所述的***,其中,所述第一输入TCP通信流发起于TCP发送主机。
12.如权利要求11所述的***,其中,所述TCP映射器调整所述TCP发送主机看到的往返时间。
13.如权利要求11所述的***,还包括:对与网络性能有关的所述参数的测量进行分析,其中,所述测量由外部传感器和所述TCP映射器中的至少一者进行。
14.如权利要求13所述的***,还包括:进行一种以上探试法,并且
根据所述一种以上探试法的结果对所述第一TCP拥塞控制程序的至少一个参数进行调谐。
15.如权利要求14所述的***,其中,所述一种以上探试法包括下列中的至少一个:
确定拥塞是否存在和拥塞的持久性;
确定有效吞吐量为所述TCP主机传输的通信量的速率的一小部分;
确定所述TCP主机传输的通信量的单向延迟的变化;并且
使用下列中的至少一者来估算通道容量:
包间隔到达时间,
确认信息间隔到达时间,
数据包突发内的数据包的延迟的方差,和
数据包突发内的数据包的丢失率。
16.如权利要求15所述的***,还包括:根据拥塞是否存在和拥塞的持久性的确定来识别数据包丢失事件的原因。
17.如权利要求11所述的***,还包括:所述TCP映射器将信号发送至所述TCP主机。
18.如权利要求17所述的***,其中,所述TCP映射器将信号发送至所述TCP主机以重复丢失的数据包的重新传输。
19.一种网络中的通信量的拥塞控制的方法,所述网络使用传输控制协议(TCP)且包括多个TCP拥塞控制程序和至少一个TCP拥塞控制单元,所述TCP拥塞控制程序具有一个或多个参数,所述TCP拥塞控制单元运行所述多个TCP拥塞控制程序中的一个TCP拥塞控制程序,所述方法包括以下步骤:
对输入TCP通信流进行拦截,其中,所述输入TCP通信流发起于TCP发送主机;
确定将拦截的所述输入TCP通信流映射至所述至少一个TCP拥塞控制单元中的哪一个拥塞控制单元;
根据下列中的至少一者将拦截的所述输入TCP通信流映射至所述至少一个TCP拥塞控制程序中的第一TCP拥塞控制程序:
(a)发起所述输入TCP通信流的应用程序的类型,
(b)所述输入TCP通信流的目的地的网络的类型,
(c)与网络性能有关的参数,
(d)网络约束,
(e)所述输入TCP通信流的来源,和
(f)所述输入TCP通信流的目的地;
将所述映射从第一TCP拥塞控制单元动态切换至第二TCP拥塞控制单元;并且
由起到TCP中间流代理作用的TCP映射器进行上述拦截、确定、映射和动态切换。
20.如权利要求19所述的方法,其中,所述TCP发送主机包含TCP引擎;
所述TCP映射器的全部位于所述TCP发送主机内;并且
所述TCP映射器与所述TCP引擎是分离的。
21.如权利要求19所述的方法,其中,所述TCP映射器的全部位于与所述TCP发送主机分离的设备上;并且
其中,所述设备的位置靠近所述发送主机以减小所述发送主机看到的往返时间。
22.如权利要求20所述的方法,其中,所述确定基于网络约束,所述网络约束包括通信量优先级和通信量监管中的至少一者;并且
由所述TCP映射器自动检测所述网络约束是否存在。
23.如权利要求20所述的方法,还包括以下步骤:测量与网络性能有关的参数;
分析上述测量以判断拥塞是否存在,所述分析还包括:
确定所述拥塞的持久性,包括:
确定丢失和延迟随着时间的演进,并且
确定所述丢失与所述延迟之间的相关性;并且
拦截的所述输入TCP通信流映射至多个TCP拥塞控制单元的确定基于所述分析。
24.如权利要求21所述的方法,其中,所述确定基于网络约束,所述网络约束包括通信量优先级和通信量监管中的至少一者;并且
由所述TCP映射器自动检测所述网络约束的存在。
25.如权利要求21所述的方法,还包括:测量与网络性能有关的参数;
分析上述测量以判断拥塞是否存在,所述分析还包括:
确定所述拥塞的持久性,包括:
确定丢失和延迟随着时间的演进,并且
确定所述丢失与所述延迟之间的相关性;并且
拦截的所述输入TCP通信流映射至多个TCP拥塞控制单元的确定基于所述分析。
26.如权利要求19所述的方法,其中,所述网络约束包括通信量优先级和通信量监管中的至少一者;并且
由所述TCP映射器自动检测所述网络约束的存在。
27.如权利要求19所述的方法,还包括:测量与网络性能有关的参数;
分析所述测量以判断拥塞是否存在;并且
其中,所述判断基于与网络性能有关的参数的所述测量的所述分析。
28.如权利要求27所述的方法,其中,所述分析还包括确定所述拥塞的持久性,其中,所述持久性的确定包括:
确定丢失和延迟随着时间的演进;并且
确定所述丢失与所述延迟之间的相关性。
29.如权利要求19所述的方法,还包括:在与所述第二TCP拥塞控制程序相关联的缓冲器内对所述输入TCP通信流进行缓冲。
30.如权利要求19所述的方法,还包括:对所述第二TCP拥塞控制程序的至少一个参数进行调谐。
31.如权利要求19所述的***,其中,所述输入TCP通信流包括远程桌面协议(RDP)通信量,并且其中,所述多个TCP拥塞控制程序之中的至少一个TCP拥塞控制程序对RDP通信量的拥塞进行控制。
32.一种网络中的通信量的拥塞控制的方法,所述网络使用传输控制协议(TCP)且包括至少一个TCP拥塞控制程序和至少一个TCP拥塞控制单元,所述TCP拥塞控制程序具有一个或多个参数且所述TCP拥塞控制单元运行所述至少一个TCP拥塞控制程序之中的一个TCP拥塞控制程序,所述方法包括以下步骤:
拦截输入TCP通信流;
确定将拦截的所述输入TCP通信流映射至所述至少一个TCP拥塞控制单元之中的哪一个拥塞控制单元;并且
根据下列中的至少一者将拦截的所述输入TCP通信流映射至所述至少一个TCP拥塞控制程序之中的第一TCP拥塞控制程序:
(a)发起所述输入TCP通信流的应用程序的类型,
(b)所述输入TCP通信流的目的地的网络的类型,
(c)与网络性能有关的参数,
(d)网络约束,
(e)所述输入TCP通信流的来源,和
(f)所述输入TCP通信流的目的地;
对所述至少一个TCP拥塞控制程序的所述一个或多个参数之中的至少一个参数进行调谐,其中,所述调谐基于包括通信量优先级或通信量监管的网络约束;
自动检测所述网络约束是否存在;并且
由TCP中间流代理进行上述拦截、确定、映射、调谐和自动检测。
33.如权利要求32所述的方法,还包括:在与所述输入TCP通信流被映射至的第一拥塞控制单元相关联的缓冲器内对所述输入TCP通信量进行缓冲。
34.如权利要求32所述的方法,其中,所述方法包括多个TCP拥塞控制程序;
所述输入TCP通信流包括远程桌面协议(RDP)通信量,所述多个TCP拥塞控制程序之中的至少一个TCP拥塞控制程序对RDP通信量的拥塞进行控制,并且所述映射包括将所述RDP通信量映射至所述多个TCP拥塞控制程序之中的对所述RDP通信量的拥塞进行控制的所述至少一个TCP拥塞控制程序。
35.如权利要求32所述的方法,其中,所述方法包括多个TCP拥塞控制程序,并且
所述多个TCP拥塞控制程序之一是TCP CUBIC拥塞控制程序。
36.一种使用传输控制协议(TCP)的网络中的通信量的拥塞控制的***,所述***包括:
多个TCP拥塞控制程序,所述拥塞控制程序具有一个或多个参数;
多个TCP拥塞控制单元,每个所述拥塞控制单元运行所述多个TCP拥塞控制程序之中的一个TCP拥塞控制程序;
TCP映射器,所述TCP映射器起到中间流TCP代理的作用,其中,所述TCP映射器
拦截输入TCP通信流,
确定将拦截的所述输入TCP通信流映射至所述多个TCP拥塞控制单元之中的哪一个TCP拥塞控制单元,并且
将拦截的所述输入TCP通信流映射至所述多个TCP拥塞控制单元的第一TCP拥塞控制单元,所述确定基于下列中的至少一者:
(a)发起所述输入TCP通信流的应用程序的类型,
(b)所述输入TCP通信流的目的地的网络的类型,
(c)与网络性能有关的参数,
(d)网络约束,
(e)所述输入TCP通信流的来源,和
(f)所述输入TCP通信流的目的地;
其中,所述输入TCP通信流发起于TCP发送主机;并且
还其中,所述TCP映射器将所述映射从所述第一TCP拥塞控制单元动态切换至第二TCP拥塞控制单元。
37.如权利要求36所述的***,其中,所述TCP发送主机包括TCP引擎;
所述TCP映射器的全部位于所述TCP发送主机内;并且
所述TCP映射器与所述TCP引擎是分离的。
38.如权利要求36所述的***,其中,所述TCP映射器的全部位于与所述TCP发送主机分离的设备上;并且
其中,所述设备的位置靠近所述发送主机以减小所述发送主机看到的往返时间。
39.如权利要求37所述的***,其中,所述确定基于网络约束,所述网络约束包括通信量优先级和通信量监管中的至少一者;并且
所述TCP映射器自动检测所述网络约束是否存在。
40.如权利要求37所述的***,还包括:测量与网络性能有关的参数;
分析所述测量以判断拥塞是否存在,所述分析还包括:
确定所述拥塞的持久性,包括:
确定丢失和延迟随着时间的演进,并且
确定所述丢失与所述延迟之间的相关性;并且
拦截的所述输入TCP通信流映射至所述多个TCP拥塞控制单元的确定基于所述分析。
41.如权利要求38所述的***,其中,所述确定基于网络约束,所述网络约束包括通信量优先级和通信量监管中的至少一者;并且
所述TCP映射器自动检测所述网络约束是否存在。
42.如权利要求38所述的***,还包括:测量与网络性能有关的参数;
分析所述测量以判断拥塞是否存在,所述分析还包括确定所述拥塞的持久性,包括:
确定丢失和延迟随着时间的演进,并且
确定所述丢失与所述延迟之间的相关性;并且
拦截的所述输入TCP通信流映射至所述多个TCP拥塞控制单元的确定基于所述分析。
43.如权利要求36所述的***,其中,所述网络约束包括通信量优先级和通信量监管中的至少一者;并且
所述TCP映射器自动检测所述网络约束是否存在。
44.如权利要求36所述的***,还包括:测量与网络性能有关的参数;
分析所述测量以判断拥塞是否存在;并且
其中,所述判断基于与网络性能有关的参数的所述测量的所述分析。
45.如权利要求44所述的***,其中,所述分析还包括确定所述拥塞的持久性,
其中,持久性的所述确定包括:确定丢失和延迟随着时间的演变;并且
确定所述丢失与所述延迟之间的相关性。
46.如权利要求36所述的***,其中,所述多个TCP拥塞控制单元均具有相关联的缓冲器,并且所述TCP映射器把被映射的输入TCP通信流存储在与所述输入TCP通信流被映射至的所述第一TCP拥塞控制单元相关联的所述缓冲器内。
47.如权利要求46所述的***,其中,在所述TCP映射器将所述映射从所述第一TCP拥塞控制单元动态切换至所述第二TCP拥塞控制单元后,所述TCP映射器把所述被映射的输入TCP通信流存储在与所述第二TCP拥塞控制单元相关联的所述缓冲器内。
48.如权利要求36所述的***,其中,所述多个TCP拥塞控制程序的至少一者是TCP CUBIC。
49.如权利要求36所述的***,其中,所述TCP映射器对由所述第一TCP拥塞控制单元运行的所述TCP拥塞控制程序的至少一个参数进行调谐,并且所述调谐基于与网络性能和网络约束之中的至少一者相关的参数。
50.如权利要求36所述的***,其中,所述TCP映射器对由所述第二TCP拥塞控制单元运行的所述TCP拥塞控制程序的至少一个参数进行调谐,并且所述调谐基于与网络性能和网络约束之中的至少一者相关的参数。
51.如权利要求36所述的***,其中,所述动态切换基于网络性能测量。
CN201380051835.3A 2012-10-03 2013-09-26 Tcp映射的***和方法 Pending CN104704783A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/644,057 2012-10-03
US13/644,057 US8630204B1 (en) 2012-10-03 2012-10-03 System and method for a TCP mapper
US13/799,110 US8711690B2 (en) 2012-10-03 2013-03-13 System and method for a TCP mapper
US13/799,110 2013-03-13
PCT/IB2013/058900 WO2014053969A1 (en) 2012-10-03 2013-09-26 System and method for a tcp mapper

Publications (1)

Publication Number Publication Date
CN104704783A true CN104704783A (zh) 2015-06-10

Family

ID=50385074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380051835.3A Pending CN104704783A (zh) 2012-10-03 2013-09-26 Tcp映射的***和方法

Country Status (5)

Country Link
US (4) US8711690B2 (zh)
EP (1) EP2904750A4 (zh)
KR (1) KR20150074018A (zh)
CN (1) CN104704783A (zh)
WO (1) WO2014053969A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113873571A (zh) * 2020-06-30 2021-12-31 华为技术有限公司 一种拥塞控制方法及相应设备

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10136355B2 (en) 2012-11-26 2018-11-20 Vasona Networks, Inc. Reducing signaling load on a mobile network
US9397915B2 (en) 2013-11-12 2016-07-19 Vasona Networks Inc. Reducing time period of data travel in a wireless network
US10341881B2 (en) 2013-11-12 2019-07-02 Vasona Networks, Inc. Supervision of data in a wireless network
US9345041B2 (en) 2013-11-12 2016-05-17 Vasona Networks Inc. Adjusting delaying of arrival of data at a base station
US10039028B2 (en) * 2013-11-12 2018-07-31 Vasona Networks Inc. Congestion in a wireless network
CN105763474B (zh) * 2014-12-19 2019-10-25 华为技术有限公司 数据传输方法和装置
CN105991462B (zh) * 2015-03-02 2019-05-28 华为技术有限公司 传输控制协议tcp数据包的发送方法、发送装置和***
CN107770082B (zh) * 2017-10-19 2020-05-12 中南大学 数据中心网络中一种基于任务流量特性的传输控制方法
CN110138678B (zh) * 2018-02-08 2023-02-24 华为技术有限公司 数据传输控制方法和装置、以及网络传输设备和存储介质
US11606277B2 (en) * 2021-02-10 2023-03-14 Cohesity, Inc. Reducing the impact of network latency during a restore operation

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2853701B2 (ja) * 1997-03-18 1999-02-03 日本電気株式会社 Atm網における端末間フロー制御方法
US6862622B2 (en) 1998-07-10 2005-03-01 Van Drebbel Mariner Llc Transmission control protocol/internet protocol (TCP/IP) packet-centric wireless point to multi-point (PTMP) transmission system architecture
US6826620B1 (en) 1998-08-26 2004-11-30 Paradyne Corporation Network congestion control system and method
US6826147B1 (en) * 2000-07-25 2004-11-30 Nortel Networks Limited Method and apparatus for aggregate flow control in a differentiated services network
EP1376945B1 (en) * 2002-06-18 2006-06-07 Matsushita Electric Industrial Co., Ltd. Receiver-based RTT measurement in TCP
US7650416B2 (en) * 2003-08-12 2010-01-19 Riverbed Technology Content delivery for client-server protocols with user affinities using connection end-point proxies
US7953114B2 (en) 2004-08-06 2011-05-31 Ipeak Networks Incorporated System and method for achieving accelerated throughput
US7782759B2 (en) * 2006-04-21 2010-08-24 Microsoft Corporation Enabling network devices to run multiple congestion control algorithms
US8351327B1 (en) * 2006-08-28 2013-01-08 Juniper Networks, Inc. Intermediate network device applying application-layer quality of service to channels within a communication session
AU2007296442A1 (en) 2006-09-13 2008-03-20 Asankya Networks, Inc. Systems and methods of improving performance of transport protocols in a multi-path environment
US8320250B2 (en) 2008-02-12 2012-11-27 Nvidia Corporation Method and arrangement for TCP flow control
US8639813B2 (en) 2008-11-25 2014-01-28 Citrix Systems, Inc. Systems and methods for GSLB based on SSL VPN users
US8412832B2 (en) 2009-12-23 2013-04-02 Citrix Systems, Inc. Systems and methods for GSLB MEP connection management across multiple core appliances
US9001663B2 (en) * 2010-02-26 2015-04-07 Microsoft Corporation Communication transport optimized for data center environment
JP5976277B2 (ja) * 2011-02-23 2016-08-23 富士通株式会社 伝送制御方法
US9240950B2 (en) 2011-03-23 2016-01-19 Hughes Network Systems, Llc System and method for providing quality of service over dedicated local loop networks
US10292066B2 (en) * 2011-11-04 2019-05-14 Cisco Technology, Inc. System and method of modifying congestion control based on mobile system information

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113873571A (zh) * 2020-06-30 2021-12-31 华为技术有限公司 一种拥塞控制方法及相应设备
WO2022001213A1 (zh) * 2020-06-30 2022-01-06 华为技术有限公司 一种拥塞控制方法及相应设备

Also Published As

Publication number Publication date
EP2904750A4 (en) 2015-10-28
US20140092741A1 (en) 2014-04-03
US10079764B2 (en) 2018-09-18
US20180359185A1 (en) 2018-12-13
US20170041232A1 (en) 2017-02-09
EP2904750A1 (en) 2015-08-12
US9503377B2 (en) 2016-11-22
WO2014053969A1 (en) 2014-04-10
US20140133308A1 (en) 2014-05-15
US8711690B2 (en) 2014-04-29
KR20150074018A (ko) 2015-07-01

Similar Documents

Publication Publication Date Title
CN104704783A (zh) Tcp映射的***和方法
US20210021532A1 (en) Systems and methods for pacing data flows
JP4433202B2 (ja) トランスポート層中継方法及びトランスポート層中継装置並びにプログラム
JP2020502948A (ja) パケット伝送システムおよび方法
KR20200109326A (ko) 광대역 통신 링크 성능 모니터링을 위한 시스템 및 방법
CN108234338B (zh) 报文传输方法及混合接入网关
EP1382219A2 (en) Method and device for robust real-time estimation of bottleneck bandwidth
US8630204B1 (en) System and method for a TCP mapper
CN104702445B (zh) 用户网络的优化方法及***
US9143454B2 (en) System and method for a TCP mapper
JP5440200B2 (ja) 中継装置及び帯域制御方法
Fisk et al. Dynamic adjustment of TCP window sizes
Szilágyi et al. LTE user plane congestion detection and analysis
JP3853784B2 (ja) データ通信管理方法
CN111224884B (zh) 拥塞控制的处理方法、报文转发装置及报文接收装置
Kumar et al. Device‐centric data reordering and buffer management for mobile Internet using Multipath Transmission Control Protocol
WO2019124290A1 (ja) 送信データ量制御装置、方法および記録媒体
KR20200060791A (ko) 네트워크 스위칭 장치 및 이를 이용한 마킹 수행 방법
Zhang et al. LIA-EN: enhancing the performance of multipath congestion control over lossy networks
Bąk et al. Measurement methodology of TCP performance bottlenecks
Arshad et al. Issues of multihoming implementation using FAST TCP: a simulation based analysis
Kantawala et al. Improving the performance of internet data transport

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150610