CN102859950B - 估计拥塞的方法 - Google Patents

估计拥塞的方法 Download PDF

Info

Publication number
CN102859950B
CN102859950B CN201180011092.8A CN201180011092A CN102859950B CN 102859950 B CN102859950 B CN 102859950B CN 201180011092 A CN201180011092 A CN 201180011092A CN 102859950 B CN102859950 B CN 102859950B
Authority
CN
China
Prior art keywords
receiver
conveyer
delay
traffic
network path
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.)
Active
Application number
CN201180011092.8A
Other languages
English (en)
Other versions
CN102859950A (zh
Inventor
M.陈
C.罗布罗
S.V.安德森
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.)
Microsoft Technology Licensing LLC
Original Assignee
Skype Ltd Ireland
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 Skype Ltd Ireland filed Critical Skype Ltd Ireland
Publication of CN102859950A publication Critical patent/CN102859950A/zh
Application granted granted Critical
Publication of CN102859950B publication Critical patent/CN102859950B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/12Avoiding congestion; Recovering from congestion
    • H04L47/127Avoiding congestion; Recovering from congestion by using congestion prediction
    • 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/18End to end
    • 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/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • 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/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • 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/31Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits

Abstract

提供了一种用于控制经由路由器通过网络路径从传送器传送到接收器的通信量的方法,所述通信量包括多个分组,以及所述方法包括:在所述传送器和接收器中的一个处,基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在所述路由器的缓冲器处的最大排队延迟,且基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计在所述路由器的缓冲器处的当前排队延迟;和基于当前排队延迟和最大排队延迟的所述估计,控制通过所述网络路径的在传送器和接收器之间的通信量。

Description

估计拥塞的方法
技术领域
本发明涉及估计拥塞的方法、在连接的端点处处理数据的方法、适于执行这些方法中的一种或两种的设备、以及包括程序代码的计算机程序产品,所述程序代码适于当在处理器上运行时执行这些方法中的一种或两种的步骤。
在通信系统中,提供了通信网络,其可以将两个端点装置或设备链接在一起,以使得所述端点设备可以在呼叫或其他通信事件中互相发送信息。所述信息可以包括语音、文本、图像或视频,并且所述设备中的一个或两个可以包括诸如个人计算机或移动电话这样的用户终端。
通过互联网可操作的通信系统包括互联网协议上的话音(“VoIP”)系统,其包括通过互联网或通过任何其他的基于IP的通信网络的会话中的话音的路由。这样的系统对用户是有益的,因为它们通常具有比传统的固定线路或移动电信网络显著低的成本。对于长距离的通信来说尤其如此。为了使用VoIP系统,用户安装和执行他们的设备(即,用户终端)的客户机软件。客户机软件建立VoIP连接并提供其他的功能,例如注册和鉴别。除了话音通信外,客户机还可以建立针对其它通信媒体的连接,诸如视频呼叫、即时消息(IM)、SMS消息传送、文件传送和话音邮件。
用于基于分组的通信的一种类型的通信系统使用对等(“P2P”)拓扑。为了使得能访问对等系统,用户必须在他们的设备上执行由P2P软件提供者提供的P2P客户机软件,并且向P2P系统注册。在用户向P2P系统注册时,客户机软件被提供以来自服务器的数字证书。一旦客户机软件已经被提供以所述证书,则呼叫或其他的通信连接便可以随后在P2P系统的用户间被建立和路由,而无需在建立中进一步使用服务器。相反,客户机从分布于P2P系统内的终端用户设备上的P2P客户机软件中间的信息查找需要的IP地址。即,地址查找列表被分布在对等体自身中间。一旦被呼叫方的终端的IP地址被这样地确定,则呼叫方的P2P客户机软件就与被呼叫方的P2P客户机软件交换证书。用户间的数字证书(或“用户身份证书”,“UIC”)的交换提供了用户身份的证据,并且它们在P2P系统中被适当地授权和鉴别。因此,数字证书的呈现提供了对用户身份的信任。
因此,对等通信的特征在于:一旦被注册,用户就可以基于分布式地址查找和/或一个或多个数字证书的交换,以至少部分分散的方式来通过P2P系统建立他们自己的通信路由,而无需为那些目的使用服务器。示例性的P2P系统的进一步的细节可以在WO2005/009019中找到。VoIP或其他的基于分组的通信也可以通过使用非P2P系统来实施,这些非P2P系统确实使用例如经由服务器或移动电信网络的集中式呼叫建立和/或鉴别。
现代通信系统是基于在跨越基于分组的通信网络(诸如互联网)的端点(诸如用户终端)之间的数字信号的传输。诸如语音这样的模拟信息可以被输入到一个终端的传送器处的模拟-数字转换器,并被转换为数字信号。数字信号然后被编码并被放入数据分组中以便经由基于分组的网络在信道上传输给另一个终端的接收器。
这样的基于分组的通信系统受制于可能会对两个端点间的呼叫或其他通信事件的质量产生不利影响的因素。由于互联网的发展增进以及用户要求新的应用和更好的性能,数据量的上升产生了一些问题,诸如分组递送时的长延迟、丢失和丢弃的分组、震荡和同步问题。这些麻烦是由拥塞引起的,拥塞在有太多源对于网络太快发送太多数据以致无法处理时发生。
从发送端点发送的数据分组在到达接收端点之前典型地经过互联网中的一个或多个路由器。互联网路由器典型地维持一组队列,每个接口有一个队列,其保存被调度来从该接口上出去的分组。这些队列通常使用尾部丢弃规则,其中如果该队列短于它的最大尺寸,则使分组进入该队列。当队列被填充到它的最大容量时,新到达的分组被丢弃,直到该队列具有足够的空间来接受进入的通信量为止。尾部丢弃队列具有惩罚(penalize)突发流以及引起流间的全局同步的倾向。尾部丢弃队列以同样的方式对待每个分组。常常是来自多个连接的分组被丢弃,这导致在连接中所有牵涉到的发送者进入“缓慢开始”状态,其中所有的发送者降低它们的数据发送速率达某个时间段。常常是所有的发送者在再一次增加它们的发送速率前使用相同的时间延迟。因此,当这些延迟在相同的时间期满时,所有的发送者开始发送额外的分组,那么路由器队列再一次溢出,导致更多的分组被丢弃。结果,发送者再一次降低它们的数据发送速率达固定的延迟期。这是带宽的一种低效率使用,因为可用的带宽经常没有被使用,并且由于大量的丢弃的分组,使得可用的带宽被使用于丢失分组的重传。
如果互联网中的路由器运行主动队列管理(AQM)并使用显式拥塞通知(ECN)标记将信息反馈给连接的端点,则网络拥塞控制的性能可以得到改进。AQM是这样一种技术,其包括在分组绑定的队列满之前丢弃该分组或对该分组进行ECN-标记。典型地,这些路由器通过维持一个或多个概率,且甚至在队列短时概率性地丢弃或标记分组来操作。当使用ECN时,路由器能够在分组的头标中设置标志而不是丢弃分组,以便用信号告知下游接收器拥塞的程度。所述标志包括在头标中的两个比特。接收器将拥塞指示回送给分组的发送者,发送者然后就像检测到分组丢弃一样做出反应。通过概率性地丢弃分组,AQM规则典型地避免了惩罚突发流。而且,通过在队列满之前向连接的端点(例如,用户终端)提供拥塞指示,AQM规则典型地能够维持比尾部丢弃规则更短的队列长度,这降低了网络等待时间(“ping(查验)时间”)。早期检测并通知即将发生的拥塞有助于避免全局同步。
互联网拥塞控制在源(端点)的传输层中被实行,并具有两个部分:端到端协议TCP(传输控制协议)和在路由器中实施的AQM方案。最常见的AQM目标是:高效的队列利用(即,最小化队列上溢和下溢的发生,由此减少分组丢失和最大化链路利用)、小的排队延迟(即,最小化数据分组由路由队列进行服务所需要的时间)和鲁棒性(即,尽管条件改变仍维持闭环性能)。
已经提出用于AQM方案的不同的算法,诸如RED(随机早期检测)以及它的变体PI、REM、Blue、AVQ等等。RED监视路由器处的平均队列尺寸,并且基于统计概率丢弃(或者当结合ECN使用时标记)分组。如果队列是空的或近乎空的,则接受所有进入的分组。随着队列长度的增长,标记或丢弃进入的分组的概率也随之增加。当缓冲器满时,进入的分组被丢弃。随着被标记的分组的比例增加,在分组的源(即,经过路由器的连接的端点)处的速率控制器反应性地降低分组的发送速率。
MingyuChen等人的在2009年4月的IEEE/ACMTRANSACTIONONNETWORKING,Vol17,No:2上发表的“NormalizedQueueingDelay:CongestionControlJointlyUtilizingDelayandMarking(归一化的排队延迟:连带地利用延迟和标记的拥塞控制)”讨论了延迟和标记(D+M)TCP,其可以在连接的端点处被利用来控制它的数据传输速率。
AQM在路由器处实施,在那里可以轻易地监控实际的队列。然而,当前只有一小部分路由器实施AQM和支持ECN。相反,大部分的路由器使用尾部丢弃原则。因此,远远不能保证在携带涉及两个端点间用户的呼叫或其他通信事件的信息的分组的传输中牵涉到的所有路由器将支持AQM和ECN。就这一点而论,携带针对用户的呼叫或其他通信事件的数据的分组很可能被路由器处的尾部丢弃队列所丢弃,而不是使用ECN标记和使用AQM来向预期的接收器前进。因此,呼叫或其他通信事件的质量很可能被不利地影响。
呼叫或其他通信事件的低质量对于用户来说会是令人失望的,并可能使得他或她寻求可替换的通信方法。本发明的一些实施例的目的是解决这些问题中的一个或多个。
所以,本发明提供了用于实施来试图增强网络拥塞控制的性能的一种或多种系统和方法。
因此,本发明的第一方面提供了一种控制经由路由器通过网络路径从传送器传送到接收器的通信量的方法,所述通信量包括多个分组,以及所述方法包括:在所述传送器和接收器中的一个处,基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在路由器的缓冲器处的最大排队延迟,且基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计在该路由器的缓冲器处的当前排队延迟;以及基于当前排队延迟和最大排队延迟的所述估计,控制通过所述网络路径的在传送器和接收器之间的通信量。
本发明的第二方面提供了一种控制经由路由器通过网络路径在传送器和接收器之间传送的通信量的方法,所述通信量包括多个分组,以及所述方法包括:在所述传送器和接收器中的一个处,基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在路由器的缓冲器处的最大排队延迟,且基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计在该路由器的缓冲器处的当前排队延迟;以及基于当前排队延迟和最大排队延迟的所述估计,将反馈从所述传送器和接收器中的所述一个发送到所述传送器和接收器中的另一个,该反馈用于使得所述传送器和接收器的所述另一个控制通过网络路径的通信量。
本发明的第三个方面提供了一种在经由路由器通过网络路径从传送器传送到接收器的分组中设置指示符的方法,其中所述指示符被设置成提供网络拥塞的指示以使得多个分组从传送器到接收器的传输速率可以被控制,所述方法包括:在所述传送器和接收器中的一个处,基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计路由器的缓冲器处的最大排队延迟,且基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计在该路由器的缓冲器处的当前排队延迟;以及在所述传送器和接收器中的一个处,基于当前排队延迟和最大排队延迟的所述估计来在分组中设置指示符。
本发明的第四方面提供了一种包括代码的计算机程序产品,所述代码被安排成使得当其在处理器上被执行时完成第一到第三方面的任一方面的步骤。
本发明的第五方面提供了一种传送器,其包括:用于基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在传送器和接收器之间的网络路径上路由器的缓冲器处的最大排队延迟的装置;用于基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计在该路由器的缓冲器处的当前排队延迟的装置;以及用于基于当前排队延迟和最大排队延迟的所述估计来控制通过所述网络路径的在传送器和接收器之间的通信量的装置。
本发明的第六方面提供了一种接收器,其包括:用于基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在传送器和接收器之间的网络路径上路由器的缓冲器处的最大排队延迟的装置;用于基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计该路由器的缓冲器处的当前排队延迟的装置;以及用于基于当前排队延迟和最大排队延迟的所述估计来控制通过所述网络路径的在传送器和接收器之间的通信量的装置。
本发明的第七方面提供了一种传送器,其包括:用于基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在传送器和接收器之间的网络路径上路由器的缓冲器处的最大排队延迟的装置;用于基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计该路由器的缓冲器处的当前排队延迟的装置;以及用于基于当前排队延迟和最大排队延迟的所述估计来向所述接收器发送反馈的装置,该反馈用于使得所述接收器控制通过网络路径的通信量。
本发明的第八方面提供了一种接收器,其包括:用于基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在传送器和接收器之间的网络路径上路由器的缓冲器处的最大排队延迟的装置;用于基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计该路由器的缓冲器处的当前排队延迟的装置;以及用于基于当前排队延迟和最大排队延迟的所述估计来向所述传送器发送反馈的装置,该反馈用于使得所述传送器控制通过网络路径的通信量。
本发明的第九方面提供了一种传送器,其包括:用于基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在传送器和接收器之间的网络路径上路由器的缓冲器处的最大排队延迟的装置;用于基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计该路由器的缓冲器处的当前排队延迟的装置;以及用于基于当前排队延迟和最大排队延迟的所述估计来在经由该路由器通过网络路径从传送器被传送到接收器的分组中设置指示符的装置,其中该指示符被设置成提供网络拥塞的指示,以使得多个分组从传送器到接收器的传输速率可以被控制。
本发明的第十方面提供了一种接收器,其包括:用于基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在传送器和接收器之间的网络路径上路由器的缓冲器处的最大排队延迟的装置;用于基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计该路由器的缓冲器处的当前排队延迟的装置;以及用于基于当前排队延迟和最大排队延迟的所述估计来在经由该路由器通过网络路径从传送器被传送到接收器的分组中设置指示符的装置,其中该指示符被设置成提供网络拥塞的指示,以使得多个分组从传送器到接收器的传输速率可以被控制。
为了更好地理解本发明以及显示本发明可以被如何实现,现在将参考附图来描述本发明的示例性实施例,其中:
图1显示了经由通信网络互相连接的连接的两个端点;
图2显示了适合于实施本发明的实施例的用户终端的示意性框图;
图3显示了适合于实施本发明的实施例的另一种用户终端的示意性框图;和
图4显示了用于图示按照本发明的实施例的方法的流程图。
如以上所讨论的,当前仅有少数互联网路由器支持AQM和ECN。为了增强网络拥塞控制的性能,在本发明的一些实施例中提出在连接的一个或多个端点上运行AQM的虚拟版本。通过实验已经发现这种虚拟AQM提供了对在路由器处运行AQM的情形的良好近似。在一些实施例中,在端点上运行的虚拟AQM提供了一种概率,其被使用以便确定是否对在端点上接收到的分组进行ECN标记和/或是否对要从端点传送的分组进行ECN标记和/或是否在端点上采取其他步骤来控制分组的传输速率。拥塞控制协议(比如,TCP)将能够使用由端点提供的标志来增强网络的总体性能。
为了设法控制或减少网络中的拥塞,本发明的一些实施例提供了一种用于控制在连接上从连接的第一端点朝向连接的第二端点的分组的传输速率的方法。除了帮助控制或减少拥塞,本发明的一些实施例还将拥塞的指示从第二端点提供到第一端点,并试图减少在连接上被丢弃的分组的数量。
现在将描述用于实施本发明的实施例的合适的通信系统和终端的例子。
首先参照图1,图中显示了第一终端100,其经由通信网络300被连接到第二终端200。
尽管在本实施例中,第一和第二终端形成经由网络300的连接的端点,但在其他的实施例中,所述端点的一个或两者可以采取另外的形式,例如服务器或其他的节点。终端100和200中的一个或两者可以包括例如:个人计算机、游戏设备、个人数字助理(PDA)、适当地使能的移动电话、电视或能够连接到网络300的另外的设备。终端间连接建立的发起可以由终端中的任一个执行。因为连接的建立可以如本领域中所熟知的,所以为了简洁起见,这里不再进一步描述。
网络300包括基于分组的网络。尽管第一终端100和第二终端200被安排来经由网络300相互交换数据,但为了下述讨论的目的,第一终端100将被称为传送终端,而第二终端200将被称为接收终端。在一些实施例中,分组携带在终端100、200间已建立的呼叫或其他通信事件的信息(包括语音、文本、图像或视频中的一项或多项)。
在本发明的一些实施例中,通信网络300包括由互联网提供的VoIP网络。应当意识到,尽管这里所显示和详细描述的示范性实施例使用了VoIP网络的术语,但本发明的实施例可以被使用在便于数据传递的任何其他合适的通信系统中。
在本发明的优选的实施例中,VoIP系统是对等(P2P)通信系统,其中多个终端用户可以经由诸如互联网的通信结构被连接用于通信的目的。图1中图示的终端100、200可以各自与终端用户相关联。所述通信结构相对于其中的通信交换实质上被分散,以便连接终端用户。即,终端用户可以基于用来获得对该结构的访问的授权证书(UIC)的交换而建立他们自己的通过该结构的通信路由。如以上所提及的,这样的通信系统在WO2005/009019中被描述。
在网络300包括互联网时的情形中,那么每个终端具有在互联网中可使用来定位所述终端的相关联的IP地址。而且,在终端间传达的数据是在互联网协议(IP)分组中输送的。当然应意识到,互联网是由比明确显示的那些单元多得多的单元组成的。这一点在图1中由通信云300示意性地表示,云300可以包括许多服务器和网关、以及互联网服务提供商(ISP)的路由器和互联网主干路由器。此外,当然应意识到,比所示的两个终端100、200多得多的终端可以被连接到网络300。
现在将参照图2,其更详细地显示了第一终端100。
第一终端100包括:接收电路1,用于接收从第二终端200经由网络300传送的数据;以及传送电路2,用于经由网络300向第二终端200传送数据。接收电路1被安排来向诸如扬声器18和显示屏20的各种输出设备输出数据,所述数据是在分组中被接收的,所述分组被包含在从例如第二终端200经由网络300接收的信号中。接收电路1包括:抖动缓冲器10,用于缓冲从网络300接收的数据分组;解码器12,用于解码在数据分组中接收的数据;再现器(renderer)14,用于操控要被输出到显示屏20的视频数据;以及数字-模拟转换器16,用于向模拟输出设备输出模拟数据。
终端100的传送电路2被安排来从诸如话筒24和网络摄像机26这样的输入设备接收数据,并以信号的形式经由网络300把数据传送到例如第二终端200。传送电路2包括:模拟-数字转换器28,用于将从模拟输入设备输入的模拟数据转换为数字信息;编码器30,用于将数字信息编码为编码的数据帧;分组化器32,用于将编码的数据帧放入分组中;以及缓冲器34,被安排来在分组被传送进网络300前对它们进行排队。
按照本发明的实施例,用户终端100的处理器22被安排来控制传送电路2的组件的操作。例如优选地,编码器30编码数据的比特率由处理器22控制,以便控制数据从缓冲器34被传送到网络300中的速率。
在这个实施例中,处理器22包括中央处理单元(CPU)。应指出,在一些实施例中,在终端100的组件间将提供进一步的连接,比如在处理器22与输入和输出设备的每一个之间的连接。
而且,尽管话筒24、网络摄像机26、扬声器18和显示屏20被显示为集成到第一终端100,但是在其他的实施例中,这些组件的一个或多个可以采用经由有线或无线连接被连接到用户终端100的外围设备的形式。此外,在端点100包括用户终端以外的设备的实施例中,话筒24、网络摄像机26、扬声器18和显示屏20中的一个或多个可以被省去。
诸如硬驱动机或闪存的非易失性存储器36、以及诸如随机存取存储器(RAM)的易失性存储器38也被耦合到CPU22。非易失性存储器36存储软件,其至少包括操作系统(OS)和以P2P通信客户机形式的基于分组的通信软件。一经启动或重置终端100,操作系统便被自动装载到RAM38,并且通过在CPU22上被执行而从该RAM运行。一旦运行,操作系统于是便可以通过将诸如P2P通信客户机这样的应用装载进RAM38并在CPU22上执行它们而运行所述应用。
现在参照图3,其更详细地显示了第二终端200。
在这个实施例中,第二终端200采用与第一终端相似的格式。因此,类似的组件用相同的参考数字指示,只是在图3中把符号“’”后缀添加到参考数字,以帮助区分第二终端200的特征的讨论与第一终端100的特征的讨论。为了简洁,不提供第二终端200的特征的进一步的详细描述。当然,在端点200包括用户终端以外的设备的实施例中,所图示的话筒24’、网络摄像机26’、扬声器18’和显示屏20’中的一个或多个可以被省去。
如果大量的数据在各种终端、路由器和其他节点之间经过网络300,则引发网络拥塞并且终端100、200可能经历分组递送中的长延迟。分组甚至可能在终端100、200间的连接上丢失或丢弃。例如,如以上所讨论的,网络300内的路由器处的尾部丢弃缓冲器可能达到它的最大的被允许尺寸,在这之后路由器处新接收的来自第一终端100的分组被丢弃。这会导致第二终端200接收到不完整的数据,并且由于要向它们的预期接收者重传在途中丢失或丢弃的分组,还会随后导致经过网络300的额外的通信量。
为了设法减少网络300中的拥塞,本发明的实施例提供了一种方法,用于控制从传送终端进入网络300朝向接收终端的分组的传输速率。本发明的一些实施例从接收终端200向传送终端100提供拥塞的指示,使得传送终端可以降低它的分组发送速率,以试图降低在终端100、200间的连接上被丢弃的分组的数量。
现在参照图4,其图示了本发明的方法的例子。该示例性的方法包括在第二终端200的处理器22’上确定指示在端点100、200之间的路径上观察到的分组“n”的单向端到端排队延迟“”的值,换句话说,指示在从第一终端100行进到第二终端200时分组“n”在队列中所花费的时间的值。该值将被称作为“”,并且这个步骤是图4中的步骤S1。
为了确定该值,从第一终端100发送到第二终端200的分组在传输时被打上时间戳,比如在分组中提供该分组从第一终端100被传送时的时间的指示()。替换地,该指示可以包括在被附带于分组的辅助信息中。在第二终端200上接收分组的时间()被记下。然而,在分组中提供的指示依赖于第一终端100上的第一时钟的值,而记录的接收时间则依赖于第二终端200上的第二时钟的值。由于两个时钟之间缺乏同步(“时钟偏差”),第二终端200没有按照第二时钟的、该分组从第一终端被发送时的时间的指示。这个时钟偏差可以被估计且随着时间推移被消除。在US2008/0232521以及共同待决的美国专利申请No.12/455908中阐述了用于这样做的合适的方法。与此操作有关的这两个文档的内容通过引用的方式被合并于此。
在这些文档中阐述的方法还(从算术-的结果)筛选出(filterout)分组由于以某一速度(当采用在光纤上的传播时为光速)经过两个终端100、200间的物理距离所经历的传播延迟。在美国专利申请No.12/455908中描述的方法的概要如下。
原始分组延迟是接收者时钟读数和分组时间戳之间的差值,即:
当然,D(n)并不是实际的传输延迟的精确测量,因为是相对于不同的、非同步的时钟而测量的。D(n)可以由下式描述:
其中,是分组排队延迟,是传播延迟,以及是由于时钟未被同步而造成的测量误差。这里做出假设:尽管是未知的,但随着时间的推移它们接近于恒定,且我们将它们的和值称为
最小跟踪功能观察单向延迟D(n)以生成对于时钟和传播偏差的估计的补偿。在一个实施例中,最小跟踪功能被实施为卡尔曼(Kalman)滤波器,其将建模为一阶模型以抓住任何的时钟漂移。最小跟踪是通过针对更高的D(n)值而在卡尔曼滤波器中利用更高的观察噪声来获得的。从D(n)减去估计的偏差以获得的估计。
因此,通过使用()的指示和记录的接收时间()以及在共同待决的美国专利申请No.12/455908或US2008/0232521中阐述的方法,时钟失配和传播延迟都可以随着时间推移被估计和被筛选出,以便获得单向排队延迟“”的估计。在替换的实施例中,可以使用替换的方法来获得“”的估计。
在优选的实施例中,针对在第二终端200上接收的每个分组(即“n”、“n+1”、“n+2”等等)估计单向排队延迟。在替换的实施例中,可以只针对在第二终端200上接收的每隔一个或者每隔两个分组来估计该延迟。所以,该估计可以每隔X-1个接收的分组被实行,其中X是整数。在替换的实施例中,该估计可以每Y秒被实行一次,例如其中Y=1。
优选地,终端200的处理器22’计算“”。然而,在替换的实施例中,该计算可以在别处(比如,在终端200的不同的处理器上,或在不同于终端200但连接到终端200的实体上)执行,于是用户终端200的处理器22’可以接收为“”计算的值。
该方法还包括在终端200的处理器22’上估计指示在端点100、200之间的网络路径上的最大端到端排队延迟“”的值,换句换说,指示当分组从第一终端100行进到第二终端200时在队列中可能花费的最大时间的值(图4中的步骤S2)。因此,可提供在位于第一终端100和第二终端200之间的网络路径上的路由器的缓冲器处的最大可能队列长度的估计。这个最大的端到端排队延迟的估计“”通过使用指示针对某些分组的单向的端到端排队延迟“Tq”的值而被周期性地更新,正如下面将更详细地描述的。
为了估计“”(即,在第二终端200上接收到分组“n”后的“”),首先所确定的“”被与最大端到端排队延迟的先前估计“”(它是在接收到分组“n-1”后被估计的)进行比较。(注意,当没有“先前的”估计时被使用的最大端到端排队延迟的初始估计优选地是缺省值,比如250ms)。
如果针对分组“n”指示的端到端排队延迟“”的值大于或等于指示最大端到端排队延迟的先前估计“”的值,则相对小的加权“()”(比如0.9)被应用到代表最大端到端排队延迟的先前估计“”的值。另一方面,如果指示端到端排队延迟“”的值小于指示最大端到端排队延迟的先前估计“”的值,则相对大的加权“()”(比如0.99)被应用到代表最大端到端排队延迟的先前估计“”的值。一旦加权因子“()”在这个比较的基础上被确定,则第二加权因子“(1-)”被应用到代表端到端排队延迟“”的值。可以看出,在这个实施例中,第二加权因子等于加权因子“()”和“1”之间的差值。
照这样,观察到的端到端排队延迟“”的大值比观察到的端到端排队延迟“”的小值被更高地加权。因此,如果针对特定分组的观察到的端到端排队延迟大于或等于最大端到端排队延迟的先前估计,则针对该分组的观察到的端到端排队延迟与针对该分组的观察到的端到端排队延迟小于最大端到端排队延迟的先前估计的情况相比,对最大端到端排队延迟的修正估计有更大的影响。
在接收到分组(n)后,在终端100和终端200之间的最大端到端排队延迟的修正估计于是可以通过使用以下的筛选获得:
其中,是排队延迟。
换句话说,加权的、指示最大端到端排队延迟的先前估计的值与加权的、指示观察到的端到端排队延迟的值相加以获得在终端100和终端200之间的最大端到端排队延迟的更新的估计。
在替换的实施例中,通过不同的方法来获得最大端到端排队延迟的估计“”。例如,最大端到端排队延迟“”可以被估计为等于特定的观察到的端到端排队延迟,比如最大的观察到的端到端排队延迟。这个最大的观察到的端到端排队延迟优选地是在对单向端到端排队延迟的预定数量的先前测量中已经获得的指示端到端排队延迟的最大记录的值。例如,最大的端到端排队延迟“”可以被估计为等于在所述方法的先前100次迭代中观察到的最大的单向端到端排队延迟,即的最大值。
优选地,在端点100、200之间的路径上的最大端到端排队延迟“”的估计由终端200的处理器22’实行。然而,在替换的实施例中,该估计可以在别处(比如,在终端200的不同处理器上或在不同于终端200但连接到终端200的实体上)进行,于是用户终端200的处理器22’可以接收该估计。
在该方法中的随后的步骤(图4中的步骤S3)是要确定在端点100、200之间的网络路径上的平均端到端排队延迟“”。因此,“”可以提供位于第一终端100和第二终端200间的网络路径上的路由器的缓冲器处的当前或即时队列长度的估计。
在一些实施例中,该确定包括更新先前所确定的在所述路径上的平均端到端排队延迟。在这个实施例中,通过使用加权平均来获得平均排队延迟。因此,在该路径上的平均端到端排队延迟是通过使用下述等式被确定的:
其中,“”是所确定的在该路径上的平均端到端排队延迟,它是当在第二终端200上接收到分组“n”后被确定的,“”是先前确定的平均端到端排队延迟(它是在接收到分组“n-1”后被确定的),“”是当前观察到的该路径上的单向端到端排队延迟,以及“w”是加权因子。可以看出,在这个实施例中,被应用到代表观察到的单向端到端排队延迟的值上的加权因子等于被应用到代表先前确定的端到端排队延迟的值的加权因子与“1”之间的差值。优选地,加权因子“w”对于所描述的方法的每次迭代是不变的,并且可以等于比方说0.99。在一些实施例中,加权因子“w”为零。
换句话说,确定端点100、200间的路径的平均端到端排队延迟牵涉到将加权的、指示先前确定的在该路径上的平均端到端排队延迟的值与加权的、指示当前观察到的在该路径上的端到端排队延迟的值相加。
在替换的实施例中,平均端到端排队延迟“”的确定是通过不同的方法获得的。例如,“”可以被认为是在的预定数量的先前测量中获得的值的平均。例如,平均端到端排队延迟“”可以被估计为的平均。
优选地,“”的确定是在终端200的处理器22’上实行的。然而,在替换的实施例中,该确定可以在别处(比如,在终端200的不同处理器上或在不同于终端200但连接到终端200的实体上)进行,于是终端200的处理器22’可以接收所确定的“”。
该示例性方法的下一个步骤是计算关于分组是否应当用网络路径上拥塞的指示进行标记的概率(如下面更详细讨论的)(图4中的步骤S4)。所述概率有效地是涉及该网络路径上路由器处的缓冲器接近溢出的程度的拥塞的量度。所述概率可以是所述队列超出最大可能队列长度的预定比例的概率。
在这个实施例中,该计算牵涉到使用网络路径上的最大端到端排队延迟“”和网络路径上的平均端到端排队延迟“”的算法。
该算法可以类似于在路由器处执行的RED算法。运行RED的路由器使用具有指数加权移动平均的低通滤波器来计算平均队列大小,并且平均队列大小被与两个阈值(最小阈值和最大阈值)进行比较。当平均队列大小小于最小阈值时,没有分组被标记。当平均队列大小大于最大阈值时,每个到达的分组均被标记。RED算法可用下述伪代码概述:
将最小和最大阈值设置为总的缓冲器大小的分数,并且缺省地设置参数
RED的缺省是设置为0.1。然后,对于每个到达的分组,计算平均队列大小avg:
如果
则标记概率
并且正在到达的分组按照概率p被标记:
否则如果
则正在到达的分组被标记(标记概率等于1)。
在本发明中可以在端点上使用的示例性算法可以是基于该RED算法(或它的变体)的,其中由最大排队延迟的估计取代缓冲器大小限制,以及由平均排队延迟的估计取代平均队列大小“avg”的估计。在其他方面,伪代码的其余部分可以是相同的。
因此,在这个实施例中,所利用的算法可以被认为是牵涉到最小阈值“”和最大阈值“”的“虚拟AQM”算法。这些阈值可以被设置为“”的函数(例如,分数),并且所述算法可以是如下的:
所以,如果网络路径上的平均端到端排队延迟是小于最小阈值的值,则p等于零。如果网络路径上的平均端到端排队延迟是大于或等于最大阈值的值,则p等于1。如果网络路径上的平均端到端排队延迟是大于或等于最小阈值但小于最大阈值的值,则p是介于0到0.1之间的值。下面更详细地讨论如何使用所确定的“p”的值。
该算法可以对每个分组重复。例如,当在第二终端200上实行步骤S4的场合下,可以针对从第一终端100到达第二终端200的每个分组实行该算法。
当然,尽管优选地该算法使用,但在其它的实施例中,可以使用不同的算法来确定“p”。例如,其它的基于队列长度的AQM可以在端点上被虚拟地实施,因为尽管使用不同的函数来计算标记概率p,但这些AQM算法都是基于平均队列大小和缓冲器大小限制的。例如,在REDgentle(温和)中,随着增加到,“p”的值可以从线性地增加到1。而且,在自适应RED中,的值可以按照由的动态特性(dynamics)所反映的通信量负载被自适应地设置,例如从0.01到0.5。
在替换的实施例中,在步骤S4所使用的算法中可以由即时的取代。在该情形下,即时的提供在位于第一和第二终端100、200间的网络路径上的路由器的缓冲器处的当前或即时的队列长度的估计。
在步骤S4的这个计算可以在终端200的处理器22’上进行,或者可以在别处(比如,在终端200的不同处理器上或在不同于终端200但连接到终端200上的实体上)进行,且处理器22’接收该计算的结果。
在这个实施例中,概率“p”是分组“n”在其于终端200上被接收后要用拥塞指示进行标记(优选地,通过在分组“n”的IP头标中设置ECN标志)的概率。因此,按照本发明的一些实施例,基于统计概率用拥塞指示对分组进行标记。优选地,拥塞指示包括至少一个比特(例如,一个比特或两个比特)。
在分组中设置的拥塞的指示使得反馈指令从第二终端200被发送到第一终端100以使第一终端100降低它的数据发送速率。例如,当利用TCP协议时,确认分组被标记并被反馈回第一终端100。
替换地,在其中第二终端200未被使能提供这样的标记或其中第一终端100未被使能对这样的标记做出反应的实施例中,所计算的概率p可以被使用来确定供第一终端100在该路径上发送数据时使用的比特率。p的值可以作为指令经由定制的“带内”反馈从第二终端200被提供给第一终端100。例如,“p”的值可以通过私有协议或应用层中的数据报被明确地反馈给第一端点100。该数据报可以包括被设置以便指示概率p的字段。要被第一端点100使用的比特率然后可以通过将接收的p的值代入到等式中而在处理器22上被确定,或者包括有在概率p的值和比特率适配级之间的映射的查找表可以被处理器22查阅以选择新的比特率。替换地,要由第一终端100使用的新的比特率可以在第二终端200上基于“p”的值被确定,然后可以把所确定的比特率的指示从第二终端200经由类似的定制的“带内”反馈提供给第一终端100,作为给第一终端100的要应用该确定的比特率的指令。新的比特率可以在第二终端200上通过由处理器22’查阅包括有在概率p的值和比特率适配级(或要达到的特定比特率)之间的映射的查找表而确定,以便选择新比特率。
在任何情形中,基于从第二终端200接收的反馈,第一终端100的处理器22优选地被安排来控制数据从终端100到网络路径(在该路径上建立了端点100、200间的连接)上的传输速率(图4中的步骤S5)。
例如,基于从第二终端200接收的反馈,数据传输速率可以通过由第一终端100上的处理器22控制编码器30编码用于传输的数据所用的比特率而达到。编码器30将数字信息流的比特集合成代表要被编码的信号的一些部分的帧。所述帧然后按照在编码器30中实施的编码方案被编码。处理器22可以基于所述反馈,例如通过编辑或变更编码器30使用的编码方案或通过指令编码器30使用不同的编码方案,而控制编码器30编码数据的比特率。处理器22可以使得不同的编码方案被提供给编码器30。不同的可用的编码方案可以被存储在可以由处理器22和/或编码器30访问的存储器中。
另外地或替换地,传送电路2可以在分组化器32和缓冲器34之间包括后编码块(postencodingblock),并且其接收分组化器32的输出。基于从第二终端200接收的反馈,处理器22可以控制后编码块以便在将分组放入缓冲器34来传输进网络300之前丢弃更多或更少数量的分组。因此,数据传输速率可以通过控制输入到缓冲器34中的分组的输入而被控制。
在于第二终端200上进行以上方法(即,步骤S1到S4)的迭代之后,该过程然后返回到步骤S1以针对随后接收的分组(例如,分组n+1)重复以上步骤,并且因此获得针对在第二终端200上接收的分组“n+1”的“p”的更新值。
在一些实施例中,第二端点200在要从第二端点200发送到第一端点100的分组中设置标志。所述标志可以被第一端点100识别。
因此,不管端点100、200间的网络路径上的任意路由器是否实施AQM或支持ECN,第一端点100都经由来自第二端点200的反馈(其或者以接收的标志或者以接收的指令的形式)而被提供有拥塞程度的指示。
第一端点100然后可以对这个指示做出适当的反应,诸如通过降低它的将分组传输到网络300中的速率、延迟分组到网络300中的传输直到确定网络拥塞已经被降低、或通过丢弃一些分组而不是将它们传送到网络300中来进行。
在第一终端100上的数据发送速率可以按照如下等式被确定:
其中R(n)是速率,是在前向路径上的排队延迟,K是步长,以及是自适应缓冲器设置点,即在缓冲器中排队的分组的目标数量。依赖于标记概率“p”,如下面的等式所示:
其中,是常量。,并且是标记概率p的归一化函数。归一化函数的一个例子是:
归一化函数的上述例子被调谐成与REDgentle版本一起工作,其中“p”的值可以随着增加到而线性地从增加到1。归一化函数可以被重新定义以便与其他的AQM算法一起工作。
按照本发明的实施例,标记概率p在连接的第二端点200上被确定。作为计算的p的结果,第二端点200可以在接收的分组中提供标记,使得TCP接收器向数据源(即,第一端点100)发送确认分组,在TCP头标中带有设置的回送标志(例如,ECN-echo标志)。TCP源(即,第一端点100)然后可以通过计数它接收的回送标志的数量来估计标记概率p。
替换地,通过使用以上等式,p可以被使用来确定新的传输速率。首先依据p找出归一化函数。依据归一化函数找出目标队列设置点,并且依据,按照R(n)=R(n-1)+K(NT–R(n-1)Tfq)更新请求的传输速率。和K可以是常量。这些操作可以在传送器100上实行,并且R(n)被用做用于将数据从传送器100发送到网络路径上的新的目标发送速率。替换地,此操作可以在接收器200上实行,并且将结果(R(n))的指示从接收器200反馈给传送器100。传送器100然后可以按照从接收器200接收的所指示的R(n)的值来将数据发送到网络路径上。
因此,标记概率p可以被使用来确定在数据源处排队的分组的目标数量,并且最终确定从数据源的数据传输速率。这个办法允许数据源通过使用时变的缓冲器设置点,按照网络条件动态地缩放它的速率。数据源的操作可以按照在上面提及的“NormalizedQueueingDelay:CongestionControlJointlyUtilizingDelayandMarking”中讨论的操作。
在一些实施例中,所述方法的步骤S1到S4中的任意一个或多个可以在第一端点100上执行。例如,第一端点可以记录它向第二端点200传送分组“n”的时间(Tx(n))。第二端点200然后可以将该分组在第二端点200上的接收时间(Tr(n))报告给第一端点100。处理器22然后可以使用这些值、(以及优选地,并不是必须地)在美国专利申请No.12/455908或US2008/0232521中阐述的方法,来估计和筛选出时钟失配和分组传播延迟以获得单向排队延迟“”的估计。处理器22然后可以使用这个值“”来以类似于以上描述的方式执行步骤S2到S4的任一步骤或所有步骤。
在上述的实施例中,在第一端点100上执行步骤S5。在一些实施例中,可以基于在步骤S4确定的概率去控制来自第二端点200的数据的传输速率。例如,第二端点200可以标记它已经接收的分组,该标记使得处理器22’控制数据从第二终端200到网络路径上的传输速率。
在本发明的优选的实施例中,只有当检测到网络300中在端点100、200间的路径上的路由器不能设置ECN标志时,才在端点100、200之一上使用标记概率p来在分组中设置标志。检测路由器不支持ECN标志设置的一种方式是:假设路由器不支持ECN标志设置,然后如果在端点100、200上接收的分组中检测到ECN标志则否决该假设。
在检测到路径上的一个或多个路由器确实支持ECN标志标记的情景中,则终端100、200可被配置成停止在随后的分组中设置标志或停止向其它的端点发送指令或标志去使得其它的端点更改它的数据传输速率。
替换地,在端点100、200上的标志设置以及在网络路径上的一个或多个路由器处的ECN标志设置可以级联地工作。例如,端点100、200中的一个的处理器可以被安排成或是依赖于在端点100、200自身上确定的“p”的值或是基于在端点100、200上接收到的分组中检测到的ECN标志,使得在接收的分组中或要被发送到端点200、100中的另一个的分组中设置标志以指示拥塞。如果确定网络路径上的路由器能够在分组中提供这样的标志来指示网络路径上的拥塞,但没有这样的拥塞指示被包括到在端点上接收的分组中,则可以在端点上接收的分组中设置标志以指示拥塞。
在任何情形下,在连接的端点(诸如,终端或其它节点)上的速率控制器可以从在另一个端点上执行的标志设置或从由另一个端点提供的反馈中获益。因为不管在所述端点和另一个端点间的网络路径上的任意路由器是否实施AQM或支持ECN,所述端点都经由来自另一个端点的反馈(其或者以接收的标记或者以接收的指令的形式)而被提供有拥塞程度的指示,所以所述端点可以做出适当反应。通过反应性地控制分组从所述端点进入网络的传输速率,在所述端点间的呼叫或其它通信事件的质量不太可能被拥塞不利地影响。
在优选的实施例中,以上讨论的过程由存储在诸如闪存或硬驱动机的通用存储器上的软件实施,并在通用处理器上被执行,所述软件优选地但不是必须地被集成为通信客户机的一部分。然而替换地,所述过程可以作为单独的应用、或是以固件、或甚至是以专用硬件被实施。
以上讨论的方法的任一步骤或所有步骤可以在计算机可读介质(比如存储器)上被编码,以提供计算机程序产品,所述计算机程序产品被安排使得当其在处理器(诸如处理器22’或处理器22)上被执行时实施所述方法。
尽管已经参照优选实施例具体地显示和描述了本发明,但是本领域技术人员应当理解,可以做出形式和细节上的各种改变而不背离如权利要求所定义的本发明的范围。

Claims (47)

1.一种用于控制经由路由器通过网络路径从传送器传送到接收器的通信量的方法,所述通信量包括多个分组,以及所述方法包括:
在所述传送器和接收器中的一个处,基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在所述路由器的缓冲器处的最大排队延迟,且基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计在所述路由器的缓冲器处的当前排队延迟;和
基于当前排队延迟和最大排队延迟的所述估计,控制通过所述网络路径的在传送器和接收器之间的通信量,包括将在通过网络路径向接收器发送通信量时要由所述传送器采用的通信量的传输速率的指示从接收器发送到传送器。
2.权利要求1的方法,包括基于当前排队延迟的估计和最大排队延迟的估计来确定拥塞的量度,其中所述控制是基于所述拥塞的量度的。
3.权利要求1的方法,其中所述控制包括控制通过所述网络路径的从传送器到接收器的通信量的传输速率。
4.权利要求2的方法,其中所述控制包括控制通过所述网络路径的从传送器到接收器的通信量的传输速率。
5.权利要求2或4的方法,其中所述拥塞的量度涉及缓冲器接近溢出的程度。
6.权利要求2或4的方法,其中所述拥塞的量度包括队列超出最大排队延迟的预定比例的概率的量度。
7.权利要求1到4的任一项的方法,其中当前排队延迟的估计是基于针对分组从传送器行进到接收器的平均的观察到的延迟。
8.权利要求1到4的任一项的方法,其中所述最大的观察到的延迟和所述观察到的延迟在接收器处被观察并被反馈给传送器,当前排队延迟和最大排队延迟的所述估计是在传送器处基于从接收器反馈的延迟而被估计的。
9.权利要求8的方法,包括依赖于拥塞的量度,在从传送器传送到接收器的分组中提供拥塞的指示。
10.权利要求1到4的任一项的方法,其中当前排队延迟和最大排队延迟的估计是在接收器处被估计的。
11.权利要求2的方法,其中所述拥塞的量度是在接收器处被确定的。
12.权利要求11的方法,其中所述拥塞的量度是在接收器处被确定的,并被反馈给传送器。
13.权利要求11的方法,包括依赖于拥塞的量度,在从接收器反馈到传送器的分组中提供拥塞的指示。
14.权利要求11的方法,包括在接收器处,依赖于拥塞的量度,在接收器处接收到的分组中提供拥塞的指示。
15.权利要求9的方法,其中所述拥塞的指示包括显式拥塞通知标志。
16.权利要求13或14的方法,其中所述拥塞的指示包括显式拥塞通知标志。
17.权利要求9的方法,其中所述拥塞的指示是在确定所述路由器不能在通过所述网络路径传送的通信量中提供该网络路径上的拥塞指示的基础上提供的。
18.权利要求13或14的方法,其中所述拥塞的指示是在确定所述路由器不能在通过所述网络路径传送的通信量中提供该网络路径上的拥塞指示的基础上提供的。
19.权利要求14的方法,其中如果确定所述路由器能够在通过所述网络路径传送的通信量中提供该网络路径上的拥塞的指示,并且没有这样的拥塞指示被包括到在接收器处接收的分组中,则在所述分组中提供所述拥塞的指示。
20.权利要求14的方法,包括依赖于在接收器处检测到在接收器处接收的分组中的拥塞指示,将指令从接收器发送到传送器,该指令指示在通过网络路径向接收器发送通信量时要由所述传送器采用的通信量的所述传输速率。
21.权利要求1到4的任一项的方法,包括依赖于当前排队延迟和最大排队延迟的估计,确定在通过网络路径向接收器发送通信量时要由所述传送器采用的通信量的所述传输速率;其中所述控制是基于所确定的传输速率。
22.权利要求21的方法,其中所述传输速率是在接收器处确定的,并被反馈给传送器。
23.权利要求21的方法,其中所述最大的观察到的延迟和所述观察到的延迟被在接收器处观察并被反馈给传送器,当前排队延迟和最大排队延迟的所述估计是在传送器处基于从接收器反馈的所述最大的观察到的延迟和所述观察到的延迟来估计的,并且所述传输速率是在传送器处被确定的。
24.一种用于控制经由路由器通过网络路径在传送器和接收器之间传送的通信量的方法,所述通信量包括多个分组,以及所述方法包括:
在所述传送器和接收器中的一个处,基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在所述路由器的缓冲器处的最大排队延迟,且基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计在所述路由器的缓冲器处的当前排队延迟;和
基于当前排队延迟和最大排队延迟的所述估计,将反馈从所述传送器和接收器中的所述一个发送到所述传送器和接收器中的另一个,该反馈包括在通过网络路径发送通信量时要由所述传送器和接收器中的所述另一个采用的通信量的传输速率的指示,用于使得所述传送器和接收器的所述另一个控制通过所述网络路径的通信量。
25.权利要求24的方法,其中当前排队延迟的估计是基于针对分组从传送器行进到接收器的平均的观察到的延迟。
26.权利要求24或25的方法,包括在所述传送器和接收器中的所述一个处,在所述传送器和接收器中的所述一个处接收的分组中提供拥塞指示,其中所述反馈依赖于在所接收的分组中检测到拥塞指示而被发送。
27.权利要求24或25的方法,其中所述反馈包括其中包含显式拥塞通知标志的分组。
28.权利要求24的方法,包括基于当前排队延迟的估计和最大排队延迟的估计来确定拥塞的量度。
29.权利要求28的方法,包括依赖于所述拥塞的量度来发送所述反馈。
30.权利要求28或29的方法,其中所述拥塞的量度涉及缓冲器接近溢出的程度。
31.权利要求28或29的方法,其中所述拥塞的量度包括队列超出最大排队延迟的预定比例的概率的量度。
32.权利要求28或29的方法,其中所述反馈包括所述拥塞的量度的指示。
33.权利要求26的方法,其中所述拥塞的指示包括显式拥塞通知标志。
34.权利要求26的方法,其中所述拥塞的指示是在确定所述路由器不能在通过所述网络路径传送的通信量中提供该网络路径上的拥塞指示的基础上提供的。
35.权利要求26的方法,其中如果确定所述路由器能够在通过所述网络路径传送的通信量中提供该网络路径上的拥塞的指示,并且没有这样的拥塞指示被包括到在所述传送器和接收器中的所述一个处接收的分组中,则在所述分组中提供所述拥塞的指示。
36.一种在经由路由器通过网络路径从传送器传送到接收器的分组中设置指示符的方法,其中所述指示符被设置成提供网络拥塞的指示,以使得多个分组从传送器到接收器的传输速率可以被控制,所述方法包括:
在所述传送器和接收器中的一个处,基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在所述路由器的缓冲器处的最大排队延迟,且基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计在所述路由器的缓冲器处的当前排队延迟;和
在所述传送器和接收器中的一个处,基于当前排队延迟和最大排队延迟的所述估计来在该分组中设置指示符,其中该分组中设置的指示符使得发送反馈,该反馈包括在通过网络路径发送通信量时要由所述传送器和接收器中的另一个采用的通信量的传输速率的指示。
37.权利要求36的方法,其中所述拥塞的指示包括显式拥塞通知标志。
38.权利要求36或37的方法,其中所述拥塞的指示是在确定所述路由器不能在通过所述网络路径传送的通信量中提供该网络路径上的拥塞指示的基础上提供的。
39.权利要求36或37的方法,其中如果确定所述路由器能够在通过所述网络路径传送的通信量中提供该网络路径上的拥塞的指示,并且没有这样的拥塞指示被包括到在所述传送器和接收器中的所述一个处接收的分组中,则在所述分组中提供所述拥塞的指示。
40.权利要求36或37的方法,其中所述传送器和接收器中的一个或两者包括用户终端。
41.权利要求36或37的方法,其中所述网络路径包括通过互联网的路径,以及
其中所述接收器是包括处理器的设备,所述处理器被配置来执行互联网协议上的话音客户机和互联网协议上的视频客户机中的一个或两者,并且所述设备被配置来参与经由所述网络路径的与传送器的呼叫。
42.一种传送器,包括:
用于基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在传送器和接收器之间的网络路径上路由器的缓冲器处的最大排队延迟的装置;
用于基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计在该路由器的缓冲器处的当前排队延迟的装置;和
用于基于当前排队延迟和最大排队延迟的所述估计以及从所述接收器接收到的指示来控制通过所述网络路径的在传送器和接收器之间的通信量的装置,该指示是在通过网络路径发送通信量时要由所述传送器采用的通信量的传输速率的指示。
43.一种接收器,包括:
用于基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在传送器和接收器之间的网络路径上路由器的缓冲器处的最大排队延迟的装置;
用于基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计在该路由器的缓冲器处的当前排队延迟的装置;和
用于基于当前排队延迟和最大排队延迟的所述估计以及从所述发送器接收到的指示来控制通过所述网络路径的在传送器和接收器之间的通信量的装置,该指示是在通过网络路径发送通信量时要由所述接收器采用的通信量的传输速率的指示。
44.一种传送器,包括:
用于基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在传送器和接收器之间的网络路径上路由器的缓冲器处的最大排队延迟的装置;
用于基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计在路由器的缓冲器处的当前排队延迟的装置;和
用于基于当前排队延迟和最大排队延迟的所述估计来向所述接收器发送反馈的装置,该反馈包括在通过网络路径发送通信量时要由所述接收器采用的通信量的传输速率的指示,用于使得所述接收器控制通过所述网络路径的通信量。
45.一种接收器,包括
用于基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在传送器和接收器之间的网络路径上路由器的缓冲器处的最大排队延迟的装置;
用于基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计在该路由器的缓冲器处的当前排队延迟的装置;和
用于基于当前排队延迟和最大排队延迟的所述估计来向所述传送器发送反馈的装置,该反馈包括在通过网络路径发送通信量时要由所述传送器采用的通信量的传输速率的指示,用于使得所述传送器控制通过所述网络路径的通信量。
46.一种传送器,包括:
用于基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在传送器和接收器之间的网络路径上路由器的缓冲器处的最大排队延迟的装置;
用于基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计在该路由器的缓冲器处的当前排队延迟的装置;和
用于基于当前排队延迟和最大排队延迟的所述估计来在经由路由器通过网络路径从传送器传送到接收器的分组中设置指示符的装置,其中所述指示符被设置成提供网络拥塞的指示,以使得多个分组从传送器到接收器的传输速率可以被控制,并且该分组中设置的指示符使得发送反馈,该反馈包括在通过网络路径发送通信量时要由所述传送器采用的通信量的传输速率的指示。
47.一种接收器,包括
用于基于针对通信量从传送器行进到接收器的最大的观察到的延迟来估计在传送器和接收器之间的网络路径上路由器的缓冲器处的最大排队延迟的装置;
用于基于针对一个或多个指定分组从传送器行进到接收器的观察到的延迟来估计在该路由器的缓冲器处的当前排队延迟的装置;和
用于基于当前排队延迟和最大排队延迟的所述估计来在经由路由器通过网络路径从传送器传送到接收器的分组中设置指示符的装置,其中所述指示符被设置成提供网络拥塞的指示,以使得多个分组从传送器到接收器的传输速率可以被控制,并且该分组中设置的指示符使得发送反馈,该反馈包括在通过网络路径发送通信量时要由所述传送器采用的通信量的传输速率的指示。
CN201180011092.8A 2010-02-25 2011-02-25 估计拥塞的方法 Active CN102859950B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB1003206.8A GB201003206D0 (en) 2010-02-25 2010-02-25 Method of estimating congestion
GB1003206.8 2010-02-25
PCT/EP2011/052850 WO2011104363A1 (en) 2010-02-25 2011-02-25 Method of estimating congestion

Publications (2)

Publication Number Publication Date
CN102859950A CN102859950A (zh) 2013-01-02
CN102859950B true CN102859950B (zh) 2016-01-27

Family

ID=42125635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180011092.8A Active CN102859950B (zh) 2010-02-25 2011-02-25 估计拥塞的方法

Country Status (5)

Country Link
US (1) US8422367B2 (zh)
EP (1) EP2522109B1 (zh)
CN (1) CN102859950B (zh)
GB (1) GB201003206D0 (zh)
WO (1) WO2011104363A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012025139A1 (en) * 2010-08-23 2012-03-01 Telefonaktiebolaget L M Ericsson (Publ) Improved program clock reference insertion
WO2012031746A1 (en) * 2010-09-07 2012-03-15 Nec Europe Ltd. A framework of an efficient congestion exposure audit function
EP2727284B1 (en) * 2011-06-30 2018-06-06 British Telecommunications public limited company Determining path congestion measures
US9654399B2 (en) * 2011-12-28 2017-05-16 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices in an IP network for congestion control
US9112804B2 (en) 2012-05-31 2015-08-18 International Business Machines Corporation Network congestion notification preservation and modification during transmission of network data between physical network and virtual network
US8914537B2 (en) * 2012-08-07 2014-12-16 Intel Mobile Communications GmbH Methods and apparatuses for rate adaptation of quality of service based application
KR20140052110A (ko) * 2012-10-11 2014-05-07 한국전자통신연구원 네트워크 최대 지연 추정 장치 및 방법, 네트워크 인입 제어 장치 및 방법
WO2014164919A1 (en) * 2013-03-11 2014-10-09 Mojix, Inc. Systems and methods for estimation of a population of passive rfid sensors
KR101468624B1 (ko) * 2013-05-30 2014-12-04 삼성에스디에스 주식회사 단말기와 이를 이용한 네트워크 상태 측정 시스템 및 방법
GB201310665D0 (en) * 2013-06-14 2013-07-31 Microsoft Corp Rate Control
US10236906B2 (en) 2013-10-22 2019-03-19 Schlumberger Technology Corporation Compression and timely delivery of well-test data
US20150195326A1 (en) * 2014-01-03 2015-07-09 Qualcomm Incorporated Detecting whether header compression is being used for a first stream based upon a delay disparity between the first stream and a second stream
US10225761B2 (en) 2014-11-06 2019-03-05 At&T Intellectual Property I, L.P. Enhanced network congestion application programming interface
WO2016128931A1 (en) * 2015-02-11 2016-08-18 Telefonaktiebolaget Lm Ericsson (Publ) Ethernet congestion control and prevention
CN109716683B (zh) * 2016-09-30 2021-03-19 网络洞察力有限公司 实时内容分发系统中的时间同步
CN106911580B (zh) * 2017-01-24 2019-11-05 中国科学院声学研究所 一种tcp拥塞控制方法和系统
US10659364B2 (en) * 2017-04-19 2020-05-19 Nxp Usa, Inc. Hybrid AQM controller using RBF for queue utilization approximation as a non-linear system
EP3677003A4 (en) * 2017-08-31 2021-05-26 Pensando Systems Inc. METHODS AND SYSTEMS FOR OVERLOAD MANAGEMENT IN A NETWORK
US10594617B2 (en) * 2017-09-18 2020-03-17 Mellanox Technologies, Ltd. Probabilistic normalized congestion indication based on packet size
CN109462553A (zh) * 2018-10-24 2019-03-12 盛科网络(苏州)有限公司 一种基于时延的动态队列管理芯片实现方法
KR102128015B1 (ko) * 2018-11-20 2020-07-09 울산과학기술원 네트워크 스위칭 장치 및 이를 이용한 마킹 수행 방법
US11212227B2 (en) 2019-05-17 2021-12-28 Pensando Systems, Inc. Rate-optimized congestion management
US20210328930A1 (en) * 2020-01-28 2021-10-21 Intel Corporation Predictive queue depth
US11394700B2 (en) 2020-01-31 2022-07-19 Pensando Systems Inc. Proxy service through hardware acceleration using an IO device
US11431681B2 (en) 2020-04-07 2022-08-30 Pensando Systems Inc. Application aware TCP performance tuning on hardware accelerated TCP proxy services
US11784932B2 (en) * 2020-11-06 2023-10-10 Innovium, Inc. Delay-based automatic queue management and tail drop
US11770347B1 (en) * 2021-03-08 2023-09-26 United States Of America As Represented By The Secretary Of The Air Force Method of risk-sensitive rate correction for dynamic heterogeneous networks
US20220385709A1 (en) * 2021-05-28 2022-12-01 Spotify Ab Command buffering
CN116170380B (zh) * 2023-04-21 2023-08-29 中国科学技术大学 基于拥塞预测的ecn标记策略和队列管理方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1503551A2 (fr) * 2003-07-29 2005-02-02 Alcatel Traitement de paquets de données adaptable en fonction de l'état de charge interne, en vue d'un routage dans une architecture QoS
CN1823519A (zh) * 2003-07-16 2006-08-23 斯凯普有限公司 对等电话系统及方法
CN101636945A (zh) * 2007-03-20 2010-01-27 斯凯普有限公司 在通信系统中传输数据的方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560198B1 (en) * 1997-11-07 2003-05-06 Telcordia Technologies, Inc. Method and system for stabilized random early detection using packet sampling
US6452950B1 (en) * 1999-01-14 2002-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive jitter buffering
US6894974B1 (en) 2000-05-08 2005-05-17 Nortel Networks Limited Method, apparatus, media, and signals for controlling packet transmission rate from a packet source
US7304951B2 (en) * 2000-11-21 2007-12-04 North Carolina State University Methods and systems for rate-based flow control between a sender and a receiver
KR100994940B1 (ko) * 2002-07-19 2010-11-19 코닌클리케 필립스 일렉트로닉스 엔.브이. 전송 매체를 통해 송신기로부터 수신기로 데이터 패킷들을 송신하는 방법 및 전송 매체를 통해 상호 결합된 송신기 및 수신기를 포함하는 전송 시스템
US7190670B2 (en) 2002-10-04 2007-03-13 Nokia Corporation Method and apparatus for multimedia streaming in a limited bandwidth network with a bottleneck link
US8081644B2 (en) 2003-12-23 2011-12-20 Telefonaktiebolaget Lm Ericsson (Publ) Method and device for controlling a queue buffer
US7859996B2 (en) * 2004-10-29 2010-12-28 Broadcom Corporation Intelligent congestion feedback apparatus and method
US7983156B1 (en) * 2004-11-12 2011-07-19 Openwave Systems Inc. System and method for controlling network congestion
US7724660B2 (en) * 2005-12-13 2010-05-25 Alcatel Lucent Communication traffic congestion management systems and methods
JP4891392B2 (ja) 2006-04-13 2012-03-07 ドルビー ラボラトリーズ ライセンシング コーポレイション 無線処理システム装置のキュー長の推定および無線ネットワークにおける信号受信品質の推定
US20080239953A1 (en) 2007-03-28 2008-10-02 Honeywell International, Inc. Method and apparatus for minimizing congestion in gateways
BRPI0822489B1 (pt) * 2008-03-12 2020-10-06 Telefonaktiebolaget Lm Ericsson (Publ) Método para adaptar uma taxa alvo atual de um sinal de vídeo transmitido de um provedor de vídeo para um receptor de vídeo, dispositivo para calcular uma nova taxa alvo de um sinal de vídeo transmitido a partir de um provedor de vídeo, e, meio legível por computador
GB2466208B (en) 2008-12-11 2013-09-11 Skype Controlling packet transmission

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1823519A (zh) * 2003-07-16 2006-08-23 斯凯普有限公司 对等电话系统及方法
EP1503551A2 (fr) * 2003-07-29 2005-02-02 Alcatel Traitement de paquets de données adaptable en fonction de l'état de charge interne, en vue d'un routage dans une architecture QoS
CN101636945A (zh) * 2007-03-20 2010-01-27 斯凯普有限公司 在通信系统中传输数据的方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
delay-based congestion avoidance for video communication with fuzzy logic control;emmanuel jammeh et al等;《packet video》;20071101;第8-12页 *
delay-based early congestion detection and adaptation in tcp;LF.perrone等;《computer communication》;20050516;第28卷(第8期);第807-850页 *
Low-Priority Service via End-Point Congestion Control;Aleksandar Kuzmanovic等;《IEEE》;20060801;第14卷(第4期);第739-745页 *
making a delay-based protocol adaptive to heterogeneous environment;kotla.k等;《quality of service》;20080602;第100-103页 *

Also Published As

Publication number Publication date
US20110205895A1 (en) 2011-08-25
GB201003206D0 (en) 2010-04-14
US8422367B2 (en) 2013-04-16
CN102859950A (zh) 2013-01-02
EP2522109A1 (en) 2012-11-14
WO2011104363A1 (en) 2011-09-01
EP2522109B1 (en) 2016-09-21

Similar Documents

Publication Publication Date Title
CN102859950B (zh) 估计拥塞的方法
US8171123B2 (en) Network bandwidth detection and distribution
KR101046105B1 (ko) 컴퓨터 프로그램 제조품, 리소스 요구 조정 방법 및 엔드 시스템
CN105493449A (zh) 速率控制
EP3780542A1 (en) Data transmission method and device
US8538470B2 (en) Call server, call terminal, call system, transfer processing method, and program storage medium storing program thereof
US8259724B2 (en) Data transmitting apparatus and data retransmitting method
US20220294727A1 (en) Systems and methods for managing data packet communications
JPH11308271A (ja) データ通信装置及び受信装置及び制御方法及び記憶媒体及びデータ通信システム
US20120155268A1 (en) Packet relay device
JP4772053B2 (ja) 送信装置および送信レート制御方法
EP3560152B1 (en) Determining the bandwidth of a communication link
JP4761078B2 (ja) マルチキャストノード装置とマルチキャスト転送方法ならびにプログラム
JP4798495B2 (ja) 映像配信品質測定システム、装置および方法
US9026610B2 (en) Method of collecting real time data
CN115347994A (zh) 网内状态反馈方法、装置、介质、无线接入设备及系统
JP2009105662A (ja) マルチホップ通信システム、マルチホップ通信方法、端末装置および中継装置
Adhari et al. Eclipse: A new dynamic delay-based congestion control algorithm for background traffic
Jurca et al. Distributed media rate allocation in multipath networks
JP2021145168A (ja) 配信サーバ及びプログラム
JPH1168880A (ja) データ通信装置及び方法及びシステム及び記憶媒体
KR20200113632A (ko) 전송 경로 상태에 기반한 혼잡 제어를 사용하는 타겟 전송 속도 결정 방법 및 시스템
Oh et al. One-way delay estimation using packet intervals for efficient retransmission
Sadiku et al. Wide Area 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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200515

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Ai Erlandubailin

Patentee before: Skype