CN1695337A - 数据发送器及其控制方法 - Google Patents
数据发送器及其控制方法 Download PDFInfo
- Publication number
- CN1695337A CN1695337A CNA028299043A CN02829904A CN1695337A CN 1695337 A CN1695337 A CN 1695337A CN A028299043 A CNA028299043 A CN A028299043A CN 02829904 A CN02829904 A CN 02829904A CN 1695337 A CN1695337 A CN 1695337A
- Authority
- CN
- China
- Prior art keywords
- data unit
- rto
- data
- out period
- time out
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1874—Buffer management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Radar Systems Or Details Thereof (AREA)
Abstract
提供了一种数据单元发送器和控制该数据单元发送器的方法,其中超时监视过程实施较长的第一超时周期(SRTO)和较短的第二超时周期(QRTO);其中,根据所述超时监视过程,在所述较短超时周期到期时,如果用于未发送数据的可用传输容量值大于或等于要重发的指定数据单元的大小,则执行重发。
Description
发明领域
本发明涉及数据单元发送器以及控制数据单元发送器的方法,所述数据单元发送器安排成:根据支持反馈功能的通信协议操作,所述发送器根据该通信协议接收报告数据单元通***接收到数据单元的反馈消息。这种反馈消息的示例包括承载数据通信的网络中始发的显式拥塞通知(ECN)、数据通***始发的确认消息(确认所发送的数据单元被正确接收)或非确认消息(通知未收到发送的数据单元)。
发明背景
本发明一般涉及数据单元通信领域。数据单元通信意味着将待发送数据量划分成各单元,然后通过通信路径例如网络将这些各单元发送到接收器。在本领域中,根据特定的上下文和技术,此类数据单元使用不同的名称,例如分组、片段、帧、协议数据单元等,而术语“数据单元”在本申请中用于涵盖对数据量的所有这类进一步划分。
面向数据单元的通信的概念常常伴随协议分层的概念。换言之,正在发送的数据单元将遵循给定通信协议(例如传输控制协议(TCP))的要求,并且该给定协议将是协议栈的一部分。在给定协议的给定数据单元通信中,还将数据单元发送器和数据单元接收器称为所述协议和所述通信的对等方。用于发送给定协议的数据单元的数据单元发送器一般从高层接收数据,然后将此接收到的数据放入符合给定层的协议的数据单元中。一般来说,数据单元发送器将因此具有用于存储待发送数据的缓冲器。通信协议和协议分层的概念在本领域是众所周知的,不必作更详细的解释。
虽然原理上可能的是,数据单元发送器将简单地取其发送缓冲器中的所有数据,准备适当的数据单元并且尽可能快地发送这些数据单元,但数据单元发送器通常执行流控过程,以便控制数据单元发送器发送的数据流,其中所述流控过程经过安排,使任何给定时刻发送器一次可以发送的先前未发送数据量受限于可用传输容量值。其原因是数据单元发送器通常没有无限的带宽可用于与数据单元接收器的通信。因此,需要对数据单元发送器一次可以发送的数据量实施某种限制。
此类流控过程的一个示例是基于窗口的流控,其中,数据单元发送器维护称为发送窗口的控制参数,所述数据单元发送器不得有超出发送窗口所示的未决数据单元。所述发送窗口按数据量(例如比特或字节)来测量。如果数据单元已发送,但数据单元发送器尚未接收到确认数据单元接收器正确接收到所述数据单元的反馈消息,则称为“未决”。在基于窗口的流控中,发送器一次可以发送的数据量被限制于发送窗口大小与未决数据单元中的数据量之差。此限量称为上文提到的“可用传输容量值”。应注意,数据单元发送器可以维护多个窗口,例如由TCP知晓的拥塞窗口和通告窗口,其中在所述多个窗口中选择发送窗口,例如选择其中最小的作为发送窗口。基于窗口的流控概念在本领域是众所周知的,不必作更详细的解释。
发送器一次可以发送的先前未发送数据量受限于可用传输容量值的流控过程的另一个示例是基于速率的流控。基于速率的流控示例即所谓的TCP友好速率控制(TFRC)协议,参见可从因特网工程任务小组(IETF)的网站www.ietf.org得到的因特网草案,例如可在http://www.ietf.org/Intemet-drafts/draft/ietf-tsvwg-tfrc-05.txt得到的2002年10月22日的草案。根据此概念,数据单元发送器根据预定吞吐量公式计算传输速率,使得发送器一次可以发送的数据量受限于所述吞吐量公式瞬时允许的传输速率。
在发送器与接收器之间的数据单元通信中,可能会发生发送的数据单元丢失而未到达接收器的情况。解决这种可能的数据丢失的一种机制是采用超时功能。超时功能经过安排,以便数据单元发送器监视超时周期,并且如果在超时周期到期之前没有指定数据单元的反馈消息到达,则重发所述指定的数据单元,因已假定该数据单元已丢失。这种超时概念在多种协议中被采用,例如在TCP中采用重发超时(RTO)功能的形式。
可以注意到,同样已知的是,响应超时周期到期而没有接收到所述数据单元的反馈消息,不仅重发指定数据单元,而且附带地修改流控过程的参数,以便减少允许发送器一次发送的未发送数据量。其原因是,由于超时而假定该数据单元已丢失,并因此假定传输数据单元的网络超载。因此,最好降低网络上的负载,为此可以减少允许发送器一次发送到该网络的数据量。例如,在基于窗口的流控中可以缩减发送窗口,或在基于速率的流控中,可以修改吞吐量公式中的参数以降低允许的传输速率。
发明目的
本发明的目的在于提供一种控制数据单元发送器的改进方法,和改进的数据单元发送器。
发明概述
本发明目的通过根据权利要求1所述的方法和权利要求13所述的数据单元发送器来实现。从属权利要求中则描述了一些优选实施例。
根据本发明,建议以这样的方式控制数据单元发送器:让超时监视过程利用第一超时周期和第二超时周期,其中第二超时周期短于第一超时周期。随后,如果在所述第二(较短的)超时周期到期时未发送数据的可用传输容量值大于或等于要重发的指定数据单元的大小,则重发所述指定的数据单元。
这样,本发明建议实施短超时周期和长超时周期,其中在所述短超时周期到期之后如果未超过所述数据单元发送器一方的公平负载份额,即如果为上述的“可用传输容量值”所允许,则执行重发。明显不同的是,如果发送器未充分利用其传输容量来发送未发送数据,则应该允许它以任何期望的方式利用该可用容量,尤其是还允许重发指定的数据单元。由此,可以实施更快或更主动的超时功能,而不致使数据单元发送到的网络超载。
可能有许多原因导致数据单元发送器未充分利用其可用传输容量。例如,这可能因为数据单元发送器未从高层,例如从产生供数据单元发送器发送的数据的应用接收到更多数据。例如,此情况可能出现在交互应用如Telnet、聊天或WWW交互中,在此类应用中,数据单元发送器(当使用因特网时数据单元发送器可以是TCP发送器)在任何给定时间只有非常少的数据单元未决(未决数据单元有时也称为“在飞行中”的数据单元),因为发送应用没有更多数据要发送。另一方面,以TCP发送器为例,如果发送窗口很大,则发送窗口大小与未决分组中的数据量之差也很大,数据单元发送器一次可以发送更多数据(如果这种数据存在的话)。根据本发明,数据单元发送器随后可以实施更主动的超时功能并更快地重发可能丢失的数据单元。这提高了数据吞吐量,而不会使传输网络超载,因为可用于数据单元发送器的传输容量足够用于重发。
如果较短(第二)超时周期到期时,可用传输容量值不足以重发指定的数据单元,则超时机制使用较长(第一)超时周期,如果没有在所述较长超时周期内接收到反馈消息,则重发所述指定数据单元,而不考虑可用的传输容量,正如惯例从TCP的RTO机制所知的那样。根据本发明的优选实施例,将本发明的概念应用于TCP发送器,所述第一(较长)超时周期是常规的RTO值。
如上所述,本发明的基本方面之一是,在可用传输容量允许的情况下,允许所述数据单元发送器采用更主动的超时周期。例如在基于窗口的流控***中,为什么有传输容量可用以及为什么发送窗口未被充分利用都不重要。这可能是因为发送缓冲器中没有或只有很少数据要发送,或可能由于其他原因使数据保留在发送缓冲器中,例如因数据单元发送器正在等待从高层接收数据以将其置入期望次序。根据本发明的优选实施例,如果发送缓冲器中未发送数据量小于或等于预定阈值,则仅在第二(较短的)超时周期到期时重发指定数据单元。根据此优选实施例,赋予发送所述发送缓冲器中数据比所述更主动重发数据单元高的优先级,使得在发送缓冲器中尚未发送数据量超过预定阈值的条件下,在较短超时周期到期时不进行重发,以便将可用传输容量保留用于发送(可能)的未发送数据。
附图简介
下文将参考附图,结合特定实施例来解释本发明的其他方面和优点,附图中:
图1是说明根据本发明的第一实施例的流程图;
图2a是对图1的实施例的修改;
图2b是对图1的实施例的进一步修改;
图3是对先前实施例的进一步修改的流程图;
图4是对图3的实施例的修改的流程图;以及
图5是表示根据本发明的数据单元发送器的实施例的示意框图。
优选实施例的详细说明
下面将描述本发明的具体实施例。要注意的是,对具体实施例的描述旨在帮助本领域技术人员更好地理解本发明,而不是限定本发明的范围。本发明仅由所附权利要求书限定。而且,在描述实施例的过程中,有时参考基于窗口的流控,具体为以传输控制协议TCP为优选示例。但是,应注意,本发明绝对不局限于基于窗口的流控或TCP。更确切地说,本发明适用于具有有限可用传输容量值且实施超时监视过程的任何数据单元发送器的上下文。这样,本发明还可以应用于例如基于速率的流控,如TFRC协议。
图1显示根据本发明的第一实施例的流程图。图1的处理开始于发生触发超时监视过程的预定事件。可以任何适当或期望的方式选择超时监视过程触发事件。例如,触发事件可以是第一次发送数据单元(即该数据单元尚未发送过),也称为数据单元的初始发送。然后,后续超时监控过程可涉及是否重发所述数据单元的问题。但是,超时监视过程还可以由其他事件触发,例如每当设计成对超时周期倒计时的定时器到期时,在此情况下,判断相应反馈消息是否在超时周期内到达的指定数据单元可以是尚未接收到相应反馈消息的最旧的数据单元,例如在将正确接收确认作为反馈消息的情况下的最旧未确认数据单元。又如,如果采用确认,则触发事件可以是收到确认。在此情况下,指定的数据单元还可以是最旧的未决或未确认数据单元。在第一步骤S1中,在相应的定时器上设置短超时周期。该定时器也称为重发定时器REXMT,而该较短超时周期也称为快速重发超时值QRTO。由此,步骤S1包括将REXMT设为值QRTO。再者,使REXMT开始对该值倒计时。
然后,在包括步骤S2和S3的超时监视子过程中,判断对指定数据单元的确认是否已经到达(例如初始发送触发超时监视的数据单元、或最旧未决数据单元、或任何其他适合的选定数据单元),并在步骤S3中判断定时器REXMT是否已到期。要注意的是,图1示例中,采用确认消息作为反馈消息示例。但是,本发明绝对不局限于确认(即指示数据单元是否被正确接收的消息),反馈消息还可以是非确认消息(即具体指示未接收到给定数据单元的消息)或让数据单元发送器知道发送的数据单元是否已被接收以及被如何接收的某种其他形式。
再参考图1的示例,如果在步骤S2接收到确认最旧未决片段的确认,则触发的过程结束,因为没有发生超时。如果未接收到此确认,则在步骤S3判断REXMT是否已到期,如果没有到期,则该过程循环到步骤S2,继续执行直到接收到确认或定时器到期。如果定时器REXMT到期,则该过程从步骤S3转到步骤S4。在步骤S4,判断根据所实施的流控过程确定的可用传输容量值是否足够用于重发指定的数据单元。例如,在基于窗口的流控中,这意味着判断发送窗口大小与未决数据单元中的数据量之差是否等于或大于指定数据单元的大小。在基于速率的流控的情况中,这意味着计算允许的瞬时速率并判断当前所用的速率是否比允许的速率足够低,以便重发指定的数据单元。如果步骤S4确定可用传输容量值是足够的,则过程转到步骤S8,在其中重发指定的数据单元。随后过程结束。
另一方面,如果步骤S4确定传输容量不足,例如如果重发指定数据单元会超过该数据发送器的允许传输容量值,则操作过程执行到步骤S5,在其中重发定时器REXMT复位,并以值(SRTO-QRTO)重新启动较,SRTO是比QRTO长的超时周期。在步骤S5之后,超时监视过程继续执行步骤S6和S7,其中,判断是否接收到对指定数据单元的确认(步骤S6),并判断重发定时器REXMT是否已到期(步骤S7)。这基本上与先前结合步骤S2和S3的所述的过程相同。如果接收到确认,则该超时监视过程结束,因为没有发生超时。否则,如果在超时周期内没有接收到确认,则在步骤S9执行重发,并在此后结束监视过程。
由于过程步骤S5至S9,这意味着使超时周期有效地延长到SRTO。最好,当将本发明应用于已实施超时监视过程的给定数据单元发送器时,将值SRTO选为等于为该给定数据单元发送器定义的单个超时周期的标准值。例如,如果数据单元发送器是TCP发送器,则SRTO可以选为等于在TCP中定义的标准重发超时值RTO。
通过将SRTO定义为应用本发明的数据发送器的标准超时周期,这意味着在步骤S4的判断结果为否定,即QRTO到期时未进行重发的条件下,数据单元发送器像在常规情况下简单地继续监视超时周期,即直到SRTO到期。
应注意,数据单元发送器可以同时进行图1所示的多个过程,即它可以并行监视多个指定数据单元的超时。自然,数据单元发送器每次只监视一个超时也是可能的。
虽然图1所示的实施例是基本的实施例,但也可以许多方式对其进行修改。例如,可以更改这些步骤的次序,也可以不同的方式执行这些步骤。例如,不一定非要在步骤1设定值并对其倒计时,因为同样可以在步骤S1初始化定时器,让该定时器正计时,然后在步骤S3和S7判断该定时器是否已达到预定值。还可以采用输出绝对时间值的定时器,在此情况中不需要步骤S1,并且在步骤S3和S7,判断该定时器是否已达到预定的绝对时间值。
如上所述,SRTO的值最好选为与标准超时周期对应。根据本发明,所述第二超时周期QRTO比SRTO短。原理上,QRTO可以选为具有比SRTO小的任何期望值。最好,QRTO的值选为大于或等于较长超时值SRTO的预定部分,该预定部分最好为该值的一半。
根据用于确定QRTO值的另一个实施例,最好基于一个或多个测量的反馈响应时间值来确定QRTO。反馈响应时间值是指示发送数据单元到接收到所述发送数据单元的反馈消息之间经过的时间的值。在TCP(和其他协议)的情况中,所说的往返时间RTT是此类反馈响应时间的一个示例。
该数据单元发送器可以安排为持续地测量所述反馈响应时间的样本。要注意的是,最好还根据一个或多个测量的反馈响应时间值来确定较长超时周期SRTO。例如在TCP中,基于测量的往返时间RTT来确定标准超时值RTO。
假定SRTO的确是基于多个测量的反馈响应时间确定的并且设为大于这些反馈响应时间,则QRTO可以选为例如等于上次测量的反馈响应时间或等于上次测量的反馈响应时间与SRTO/2中的最大者。最好将QRTO确定为上次测量的反馈响应时间、SRTO/2和该反馈响应时间的平滑平均值中的最大者。这种平滑平均值的示例为TCP上下文中定义的参数平滑往返时间SRTT。
还可以采用确定QRTO值的其他可能方案,例如:
QRTO=上次测量的反馈响应时间+(1/n×(上次测量的反馈响应时间)),n=1,2,3,...。
QRTO=MAX(上次测量的反馈响应时间+(1/m×(上次测量的反馈响应时间));平滑反馈响应时间),其中m=1,2,3,...。
QRTO=最近k次测量的反馈响应时间中的最大者,其中k是自然数。
如上所述,这些仅仅是示例,可以根据给定的具体应用选择合适或适当的QRTO值。
现在参考图2a。图2a显示了图1的实施例的变化。即,图2a所示方法包括附加步骤S20,其中所述步骤S20在图1所示的步骤S1之前执行。步骤S1之后的所有步骤与图1相同。因此,图2a未显示后续处理步骤。步骤S20在检测到超时监视过程触发事件之后执行,它判断发送缓冲器中的未发送数据量是否小于或等于预定阈值。如果否,例如未发送数据比阈值定义的量多,则过程转到步骤S21,在步骤S21中,采用较长超时周期SRTO(最好是标准超时周期)执行标准超时监视过程。这在附图中未作详细显示,其可以利用如图1中步骤S2、S3或S6、S7所示的监视过程来实现。另一方面,如果未发送数据的数据量等于或小于所述阈值,则执行结合图1所述的本发明过程,即过程转到步骤S1。
在根据图2a的实施例中,仅当最初发送缓冲器中未发送数据量未超过给定限量或阈值时,才进入使用较短且更主动的值QRTO的控制过程。这意味着,如果有多于某个量的未发送数据要发送,则不可能采用较短超时周期。换言之,此实施例赋予发送未发送数据比实现更快重发可能丢失的数据单元高的优先级。
可以任何适合或期望的方式选择步骤S20中使用的阈值。例如,可以将其设为零,这意味着仅当触发超时周期时先前未发送数据的发送缓冲器为空,即没有尚未发送数据要发送时,才有可能启用快速重发。自然,还可以选择值较大的阈值,例如流控过程定义的最大数据单元大小的一倍或预定倍数。例如,在TCP上下文中,这种最大数据单元大小也称为最大段大小MSS。
图2b显示图1的实施例的另一种修改,其中,图2b的实施例可以与或可以不与图2a组合。在图2b中,设有附加步骤S22,它本身与结合图2a讨论的步骤S20完全相同。即,在步骤S4确定传输容量足够允许重发指定数据单元之后,步骤S22判断发送缓冲器中的未发送数据量是否低于预定阈值。如果不低于,则不执行步骤S8的快速重发,而是让过程转到步骤S5,步骤S5及后续步骤S6、S7和S9已结合图1作了说明,因此不必重复。
仅当未发送数据量低于预定阈值(或者在图2b的实施例与图2a的实施例相组合的情况下仍低于预定阈值)时,才在步骤S8执行根据较短超时周期QRTO的快速重发。
还要注意的是,步骤S20和S22还可以一起执行,但采用各自不同的阈值。
结合图2b讨论的附加步骤S22的效果类似于结合图2a讨论的步骤S20的效果,即赋予发送未发送数据比快速重发高的优先级。仅当未发送数据量不太大,即未超过预定阈值时,才执行根据较短超时周期QRTO的快速重发。
根据本发明的其他实施例,在数据单元发送器中执行的超时监视过程还安排成在所述较短超时周期QRTO到期之后执行拥塞控制过程。拥塞控制过程包括用于调整所述流控过程所用的一个或多个参数的调整过程,以便减少允许发送器一次发送的先前未发送数据量。例如,在基于窗口的流控的情况中,所述调整过程可包括缩减发送窗口,而在基于速率的流控的情况中,则包括降低允许的传输速率。这些措施的目的在于降低传输发送数据单元的网络上的负载。以TCP为例,作为拥塞控制过程的一部分可以调整的一个参数是所谓的拥塞窗口cwnd,而另一个参数是所谓的慢启动阈值ssthresh。这两个参数的描述和定义可参见书籍《TCP/IP解说》的第21章(“TCP/IPIllustrated”,Volume 1,The Protocols by W.Richard Stevens,AddisonWesley Longman Corp.,1994),因此不必进一步描述这些参数。
图3显示了除实施图1、图2a和图2b所示基本超时监视步骤,还实施实施拥塞控制的一个示例。
图3所示的过程可以与图1或图2b所示过程相组合,且会在步骤S4(图1所示示例)或步骤S22(图2b所示示例)之后执行,如图3顶部所示。图1和图2b的步骤S5也在图3中显示,但其后的步骤(S6和S9)为简明起见不予显示。
在图3示例中,显示了步骤S30,在步骤S30判断是否应该执行延迟的拥塞控制。如果不执行延迟的拥塞控制,则在短超时周期QRTO到期时在步骤S8重发指定的数据单元,并在步骤S31对流控参数进行调整。要注意的是,并不一定要执行步骤S30,如果希望始终将重发步骤S8与对一个或多个流控参数的调整相结合,以作为拥塞控制过程的一部分,则还可以简单地在图1或图2b的流程图中于步骤S8前或后直接添加步骤31。
但是,最好将步骤S30实现为操作数据单元发送器的一个选项。换言之,在配置数据单元发送器时,可以将其配置为执行或不执行延迟的拥塞控制。如果配置了延迟的拥塞控制,则步骤S30的判断结果为“是”,于是过程转到步骤S32,在其中执行重发,然后将重发定时器REXMT设为(SRTO-QRTO)。然后,在中间时间间隔(SRTO-QRTO)内执行中间监视过程,以便判断在所述中间时间隔SRTO-QRTO内是否收到反馈消息(例如确认)。根据图3的优选实施例,调整过程是这样的:根据所述中间监视过程的结果,对流控参数执行不同类型的调整。即,如果定时器到期(步骤S34的结果=是),则执行第一种流控参数调整,如果在该时间间隔(SRTO-QRTO)内接收到反馈消息,则执行第一种流控参数调整。
如果过程转到步骤S35,即执行第一种调整,则意味着重发定时器REXMT已到期且没有指定数据单元的确认。换言之,在长超时周期SRTO内未收到确认。因此,可以假定该数据单元已丢失。由此,步骤S35中对流控参数的第一种调整安排为对数据单元丢失作出适当的响应。
另一方面,如果过程转到步骤S36,则意味着虽然没有在短超时周期QRTO内接收到确认,但在长超时周期SRTO内接收到了确认。因此,很可能所述指定数据单元未丢失。要注意的是,如果在步骤S32中接收到的确认对应于步骤S32中执行的重发,则说明最初发送的数据丢失了,而如果在步骤S33中接收到的确认与最初发送数据相关,则显然最初发送数据的确未丢失。但是,图3的示例未区分确认消息与哪次发送(即最初发送或重发)相关,这样,到达步骤S36时的结论是指定数据单元未丢失概率无论如何大于到达步骤S35时的数据单元未丢失概率。因此,步骤S36中执行的第二种流控参数调整将此结论纳入考虑,并会以这样的方式安排:就一次可以发送的数据量而言,步骤36中的流程过程受到的限制不如步骤S35中所执行的第一种调整强。
举一个TCP上下文中的示例,步骤S35中执行的第一种调整可以是将拥塞窗口缩减为所设计的抗数据丢失的预定大小,在本申请中,所述预定大小称为丢失窗口。在目前的TCP实施方案中,丢失窗口通常是一个MSS,但原则上可以是不同的值。再者,TCP上下文中的步骤S35可设为在缩减丢失窗口之前,将慢启动阈值ssthresh缩减为拥塞窗口值的一半。另一方面,步骤S36的第二种调整也可是再次将慢启动阈值ssthresh设为拥塞窗口大小的一半,但只将拥塞窗口缩减为其大小的一半,与步骤S35中较强的缩减相反。当然,这些仅仅是示例,还可以合适的或期望的不同方式改变变更这些参数。
一般而言,可以说,步骤S36中第二种调整会这样影响流控过程,即后续为降低通信网负载而对允许传输容量的缩减小于步骤S35中第一种调整对允许传输容量的缩减。由此,在步骤S36甚至可以不对流控参数作任何改动。
要注意的是,对流控参数的调整过程还可以用作监视超时周期的触发器。步骤S35的第一种调整过程可以包括例如以(SRTO+QRTO)重启REXMT,而步骤S31中的调整过程可以包括例如以2×SRTO重启REXMT。
图4显示图3的实施例的优选变型,在图4中,在步骤S33之后设有附加步骤S40。其余步骤与图3所示的那些步骤完全相同,因此不必重新描述。在图4的示例中,将数据单元发送器安排成:可以区分接收到的反馈消息是与步骤S32中执行的指定数据单元的重发相关,还是与该指定数据单元的最初发送相关。然后,将步骤S40安排为区分反馈消息(例如确认)是否与步骤S32中执行的指定数据单元重发相关。如果在步骤S33中接收到的确认与步骤S32的重发数据无关,则总的调整过程为:使这些流控参数保持不变,因为步骤S40的结果指示指定数据单元实际未丢失。由于该指定数据单元未丢失,就不必执行任何拥塞控制措施,因为实际上并无网络严重拥塞的任何指示。虽然未显示,但可以设想,可以根据步骤S33中接收到的确认与步骤S32的重发无关这一判断,设置针对流控参数的任意第三种调整。
可以任何适合或期望的方式实现数据单元发送器或中间监视过程区分反馈消息是与重发相反还是与在先发送相关的功能。例如,这可以借助时间戳功能来实现,据此,数据单元发送器在每个发送数据单元中包含一个时间戳,而接收器在反馈消息中包含相同的时间戳,这样,数据单元发送器就可以明确地识别出反馈消息与哪次发送相关。区分不同次发送的另一种可能方案是在发送数据单元中包含特定初试发送/重发标识符,此标识符可以简单得为一个区分初始发送和重发的比特。
图5显示根据本发明配置的数据单元的示意框图。图5显示了发送缓冲器51和控制单元52。例如,发送缓冲器51可以是适合于缓存数据的任何类型的存储器,而控制单元52可以是微处理器。图5中,数据单元发送器表示为协议层n上的一个通信对等方,其中与接收对等方的通信用双箭头53表示。缓冲器51从高层n+1接收数据,并遵循据以实现该数据单元发送器的协议准备数据单元,在控制单元52的控制下,缓冲器51将这些数据单元传递给下层n-1。控制单元52示意性地显示为包括根据结合图1至图4所述方法的如下组件:流控控制器521,用于控制数据单元发送器发送的数据流;检测器522,用于检测超时监视过程触发事件;以及超时监视器523,用于检测超时发生在短超时周期QRTO内还是长超时周期SRTO内。这样,将控制单元52安排用于实施上述各种方法实施例。
本发明的数据单元发送器可以硬件、软件、或硬件和软件的任何适当组合的形式来实现。因此,本发明还可以实施为计算机程序,该计算机程序安排为:在加载到可连接到通信网并可用作数据单元发送器的设备上,如以适当方式连接到因特网的个人计算机或用于数据单元通信的运动通信设备上,并由该设备运行时执行结合图1至图4所述方法之一,而且本发明可以通过承载这种计算机程序的数据载体来实施。
再次重申,本发明绝不局限于上述特定实施例,而是由所附权利要求书来限定。再者,各权利要求中的标号仅用于方便阅读这些权利要求,而不用于限制本发明。
Claims (26)
1.一种控制数据单元发送器的方法,所述数据单元发送器安排成:根据提供反馈功能的通信协议操作,根据该通信协议,在进行数据单元通信的发送器从接收器接收报告接收到所述数据单元的反馈消息;所述数据单元发送器具有用于存储待发送数据的发送缓冲器;所述方法包括如下步骤:
用于控制所述数据单元发送器发送的数据流的流控过程;所述流控过程经过安排,使任何给定时刻所述发送器一次可以发送的先前未发送数据量受限于可用传输容量值;
用于检测超时监视过程触发事件的过程;
超时监视过程,用于监视在预定超时周期(S-RTO)到期之前是否有指定数据单元的反馈消息到达,所述预定超时周期(S-RTO)开始于所述超时监视过程触发事件发生时;以及用于在所述预定超时周期(S-RTO)到期而所述确认消息仍未到达时,重发所述指定的数据单元;
其中:
所述预定超时周期(S-RTO)是第一超时周期(S-RTO);以及
所述超时监视过程安排成:如果在短于所述第一超时周期(S-RTO)的第二超时周期(Q-RTO)到期时,用于未发送数据的所述可用传输容量值大于或等于所述指定数据单元的大小,则在所述第二超时周期(Q-RTO)到期时执行所述指定数据单元的重发。
2.如权利要求1所述的方法,其特征在于:如果所述发送缓冲器中未发送数据量小于或等于预定阈值,则仅在所述第二超时周期(Q-RTO)到期时才重发所述指定数据单元。
3.如以上权利要求之一所述的方法,其特征在于:所述超时监视过程还安排成:在所述第二超时周期(Q-RTO)到期之后执行拥塞控制过程;所述拥塞控制过程包括调整过程,用于调整所述流控过程所用的一个或多个参数,以便减少允许所述发送器一次发送的先前未发送数据量。
4.如权利要求3所述的方法,其特征在于:所述拥塞控制过程安排成:在所述第二超时周期(Q-RTO)到期时执行所述调整过程。
5.如权利要求3所述的方法,其特征在于:所述拥塞控制过程安排成:延迟执行所述调整过程,以及在所述第二超时周期(Q-RTO)与所述第一超时周期(S-RTO)的到期之间的中间时间间隔内执行中间监视过程;所述中间监视过程安排成:检测与所述指定数据单元相关的反馈消息是否在所述中间时间间隔内到达;并且所述调整过程安排成:根据所述中间监视过程结果,在所述中间时间间隔内没有与所述指定数据单元相关的反馈消息到达时,执行针对所述一个或多个参数的第一调整;而在与所述指定数据单元相关的反馈消息在所述中间时间间隔内到达时,对所述一个或多个参数执行第二调整,所述第一调整不同于所述第二调整。
6.如权利要求5所述的方法,其特征在于:所述中间监视过程安排成:能够区分接收到的与所述指定数据单元相关的反馈消息是与所述第二超时值(Q-RTO)到期时执行的所述指定数据单元重发相关,还是与所述指定数据单元先前的发送相关;并且所述调整过程安排成:在所述接收到的反馈消息与所述指定数据单元先前的发送相关时,使所述一个或多个参数保持不变。
7.如权利要求1至6之一所述的方法,其特征在于:所述流控过程是基于窗口的,并且安排成:基于发送窗口与未决数据量之差来确定所述可用传输容量值。
8.如权利要求1至6之一所述的方法,其特征在于:所述流控过程是基于速率的,并且安排成:基于允许的传输速率来确定所述可用传输容量值。
9.如以上权利要求之一所述的方法,其特征在于包括:测量反馈响应时间(RTT)的过程,所述反馈响应时间指示发送数据单元到接收到与所述反馈消息相关的反馈消息之间经过的时间;其中所述第二超时值(Q-RTO)是根据一个或多个测量的反馈响应时间值来确定的。
10.如权利要求9所述的方法,其特征在于:所述第一超时值(S-RTO)也根据一个或多个测量的反馈响应时间值来确定。
11.如以上权利要求之一所述的方法,其特征在于:所述第二超时值(Q-RTO)大于或等于所述第一超时值(S-RTO)的某个百分数。
12.如以上权利要求之一所述的方法,其特征在于:所述数据单元发送器安排成根据传输控制协议TCP来操作;以及所述第一超时值(S-RTO)是标准的TCP重发超时参数RTO。
13.一种根据提供反馈功能的通信协议操作的数据单元发送器,根据所述协议,在进行数据单元通信的发送器接收报告接收到数据单元的反馈消息;所述数据单元发送器包括:
用于存储待发送数据的发送缓冲器;
用于控制所述数据单元发送器发送的数据流的流控控制器;所述流控控制器实施流控过程,所述流控过程经过安排,使任何给定时刻所述发送器一次可以发送的先前未发送数据量受限于可用传输容量值;
用于检测超时监视过程触发事件的检测器;
超时监视器,用于监视在预定超时周期(S-RTO)到期之前是否有指定数据单元的反馈消息到达的超时监视过程,所述预定超时周期(S-RTO)开始于所述超时监视过程触发事件发生时;以及用于在所述预定超时周期(S-RTO)到期而所述确认消息仍未到达时,重发所述指定的数据单元,其中所述预定超时周期(S-RTO)是第一超时周期(S-RTO);以及
所述超时监视器安排成:如果短于所述第一超时周期(S-RTO)的第二超时周期(Q-RTO)到期时用于未发送数据的所述可用传输容量值大于或等于所述指定数据单元的大小,则在所述第二超时周期(Q-RTO)到期时执行所述指定数据单元的重发。
14.如权利要求13所述的数据单元发送器,其特征在于:所述超时监视器经过安排,使得在所述发送缓冲器中未发送数据量小于或等于预定阈值时,仅在所述第二超时周期(Q-RTO)到期时才重发所述指定数据单元。
15.如权利要求13或14所述的数据单元发送器,其特征在于:所述超时监视器还安排成:在所述第二超时周期(Q-RTO)到期后执行拥塞控制过程;所述拥塞控制过程包括调整过程,用于调整所述流控过程所用的一个或多个参数,以便减少允许所述发送器一次发送的先前未发送数据量。
16.如权利要求15所述的数据单元发送器,其特征在于:所述拥塞控制过程安排成:在所述第二超时周期(Q-RTO)到期时执行所述调整过程。
17.如权利要求15所述的数据单元发送器,其特征在于:所述拥塞控制过程安排成:延迟执行所述调整过程,以及在所述第二超时值(Q-RTO)与所述第一超时值(S-RTO)到期之间的中间时间间隔内执行中间监视过程;所述中间监视过程安排成:检测与所述指定数据单元相关的反馈消息是否在所述中间时间间隔内到达;并且所述中间监视过程安排成:根据所述中间监视过程的结果,在所述中间时间间隔内没有与所述指定数据单元相关的反馈消息到达时,执行针对所述一个或多个参数的第一调整;而在与所述指定数据单元相关的反馈消息在所述中间时间间隔内到达时,对所述一个或多个参数执行第二调整;所述第一调整不同于所述第二调整。
18.如权利要求17所述的数据单元发送器,其特征在于:所述中间监视过程安排成:能够区分接收到的与所述指定数据单元相关的反馈消息是与所述第二超时值(Q-RTO)到期时执行的所述指定数据单元的重发相关,还是与所述指定数据单元先前的发送相关;并且所述调整过程安排成:在所述接收到的反馈消息与所述指定数据单元先前的发送相关时,使所述一个或多个参数保持不变。
19.如权利要求13至18之一所述的数据单元发送器,其特征在于:所述流控过程是基于窗口的,并且安排成:基于发送窗口与未决数据量之差来确定所述可用超时容量值。
20.如权利要求13至18之一所述的数据单元发送器,其特征在于:所述流控过程是基于速率的,并且安排成:基于允许的传输速率来确定所述可用传输容量值。
21.如权利要求13至20之一所述的数据单元发送器,其特征在于包括用于测量反馈响应时间(RTT)的部件,所述反馈响应时间指示发送数据单元到接收到与所述反馈消息相关的反馈消息之间经过的时间;其中所述数据单元发送器安排成:根据一个或多个测量的反馈响应时间值来确定所述第二超时值(Q-RTO)。
22.如权利要求21所述的数据单元发送器,其特征在于:所述数据单元发送器还安排成:根据一个或多个测量的反馈响应时间值来确定所述第一超时值(S-RTO)。
23.如权利要求13至22之一所述的数据单元发送器,其特征在于:所述第二超时值(Q-RTO)大于或等于所述第一超时值(S-RTO)的一半。
24.如权利要求13至23之一所述的数据单元发送器,其特征在于:所述数据单元发送器安排成根据传输控制协议TCP来操作;以及所述第一超时值(S-RTO)是标准的TCP重发超时参数RTO。
25.一种计算机程序,其在连接到通信网的数据处理设备上运行时用于执行如权利要求1至12之一所述的方法,以作为数据单元发送器工作。
26.一种含有如权利要求25所述计算机程序的计算机可读介质。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2002/012916 WO2004047357A1 (en) | 2002-11-18 | 2002-11-18 | Data unit sender and method of controlling the same |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1695337A true CN1695337A (zh) | 2005-11-09 |
CN100347983C CN100347983C (zh) | 2007-11-07 |
Family
ID=32319527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028299043A Expired - Fee Related CN100347983C (zh) | 2002-11-18 | 2002-11-18 | 数据发送器及其控制方法 |
Country Status (10)
Country | Link |
---|---|
US (1) | US7444578B2 (zh) |
EP (1) | EP1563634B1 (zh) |
JP (1) | JP4354406B2 (zh) |
CN (1) | CN100347983C (zh) |
AT (1) | ATE428234T1 (zh) |
AU (1) | AU2002352049A1 (zh) |
BR (1) | BR0215947A (zh) |
CA (1) | CA2501404A1 (zh) |
DE (1) | DE60231921D1 (zh) |
WO (1) | WO2004047357A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101938414A (zh) * | 2010-08-27 | 2011-01-05 | 北京星网锐捷网络技术有限公司 | 一种报文发送方法及装置 |
CN102571552A (zh) * | 2010-12-31 | 2012-07-11 | ***通信集团公司 | 网关拥塞调控方法及***、网关、网元 |
CN101488840B (zh) * | 2009-02-05 | 2013-04-17 | 腾讯科技(深圳)有限公司 | 一种数据传输的方法和装置 |
CN108989235A (zh) * | 2018-08-28 | 2018-12-11 | 新华三技术有限公司 | 一种报文转发控制方法及装置 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7603491B2 (en) * | 2003-06-19 | 2009-10-13 | Intel Corporation | Bandwidth conserving protocol for command-response bus system |
CN101076962B (zh) * | 2004-07-23 | 2011-06-15 | 艾利森电话股份有限公司 | 数据单元发送机及其控制方法 |
KR101026889B1 (ko) * | 2004-08-17 | 2011-04-04 | 엘지전자 주식회사 | 폐루프 stc를 위한 정보전달방법 |
US7660366B2 (en) * | 2004-08-30 | 2010-02-09 | Harmonic Inc. | Message synchronization over a stochastic network |
US7609638B2 (en) * | 2004-10-04 | 2009-10-27 | Lg Electronics Inc. | Message transmission in wireless access system |
US20060140193A1 (en) * | 2004-12-29 | 2006-06-29 | Nokia Corporation | Optimization of a TCP connection |
EP2056511B1 (en) * | 2007-10-31 | 2012-06-06 | Siemens Aktiengesellschaft | Method for transmission of data samples |
US7903562B2 (en) * | 2008-02-05 | 2011-03-08 | Lockheed Martin Corporation | Method and system for congestion control |
US8423854B2 (en) * | 2009-03-02 | 2013-04-16 | Clearwire Ip Holdings Llc | Communication retransmission based on transmission performance relative to expected quality of service |
US8340126B2 (en) | 2010-06-07 | 2012-12-25 | Lockheed Martin Corporation | Method and apparatus for congestion control |
EP2647153B1 (en) * | 2010-11-29 | 2015-01-28 | Telefonaktiebolaget L M Ericsson (PUBL) | Methods and devices for component carrier aggregation control |
EP2661138A1 (en) | 2012-05-04 | 2013-11-06 | Panasonic Corporation | Threshold-based and power-efficient scheduling request procedure |
US20150103667A1 (en) * | 2013-10-13 | 2015-04-16 | Mellanox Technologies Ltd. | Detection of root and victim network congestion |
US9660719B2 (en) * | 2014-11-17 | 2017-05-23 | Honeywell International Inc. | Minimizing propagation times of queued-up datalink TPDUs |
US9998360B2 (en) | 2014-11-17 | 2018-06-12 | Honeywell International Inc. | Minimizining message propagation times when brief datalink interruptions occur |
US9807024B2 (en) | 2015-06-04 | 2017-10-31 | Mellanox Technologies, Ltd. | Management of data transmission limits for congestion control |
US9743379B2 (en) * | 2015-06-12 | 2017-08-22 | Motorola Solutions, Inc. | Method and server for broadcasting a data file to a plurality of radio talk groups |
US10009277B2 (en) | 2015-08-04 | 2018-06-26 | Mellanox Technologies Tlv Ltd. | Backward congestion notification in layer-3 networks |
US10237376B2 (en) | 2015-09-29 | 2019-03-19 | Mellanox Technologies, Ltd. | Hardware-based congestion control for TCP traffic |
CN108897854B (zh) * | 2018-06-29 | 2020-06-05 | 京东数字科技控股有限公司 | 一种超时任务的监控方法和装置 |
US11075971B2 (en) | 2019-04-04 | 2021-07-27 | Evertz Microsystems Ltd. | Systems and methods for operating a media transmission network |
US11323780B2 (en) * | 2019-04-04 | 2022-05-03 | Evertz Microsystems Ltd. | Systems and methods for determining delay of a plurality of media streams |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04271327A (ja) | 1991-02-27 | 1992-09-28 | Nec Corp | 光増幅器 |
JPH06136773A (ja) | 1992-10-23 | 1994-05-17 | Shimizu Corp | 地下床の施工方法 |
US5774479A (en) * | 1995-03-30 | 1998-06-30 | Motorola, Inc. | Method and system for remote procedure call via an unreliable communication channel using multiple retransmission timers |
JPH1156886A (ja) | 1997-08-08 | 1999-03-02 | Yumiko Shimura | 鼻整形器 |
US6389016B1 (en) * | 1998-10-14 | 2002-05-14 | Nortel Networks Limited | Data communication system and method for transporting data |
US6289224B1 (en) * | 1998-10-29 | 2001-09-11 | Motorola, Inc. | Method and apparatus for starting an acknowledgment timer |
JP2000354267A (ja) * | 1999-04-07 | 2000-12-19 | Toshiba Corp | ハンドオーバ要求機能を備えた移動通信端末装置、ハンドオーバ制御装置、ハンドオーバ制御方法及びハンドオーバ制御方法を記憶した記憶媒体 |
US6401127B1 (en) * | 1999-05-04 | 2002-06-04 | Cisco Technology, Inc. | Adaptive timer for LLC type 2 reliable transport in a computer network |
US6405337B1 (en) * | 1999-06-21 | 2002-06-11 | Ericsson Inc. | Systems, methods and computer program products for adjusting a timeout for message retransmission based on measured round-trip communications delays |
EP1077559A1 (en) * | 1999-08-17 | 2001-02-21 | Telefonaktiebolaget Lm Ericsson | Method and device for determining a time-parameter |
US7154850B1 (en) * | 2000-09-20 | 2006-12-26 | Lucent Technologies Inc. | Wireless data transmission using time out control |
US7180871B1 (en) * | 2001-07-18 | 2007-02-20 | Nortel Networks Limited | Round trip timeout adjustment in a cellular wireless communication system |
-
2002
- 2002-11-18 CN CNB028299043A patent/CN100347983C/zh not_active Expired - Fee Related
- 2002-11-18 WO PCT/EP2002/012916 patent/WO2004047357A1/en active Application Filing
- 2002-11-18 US US10/535,355 patent/US7444578B2/en not_active Expired - Lifetime
- 2002-11-18 EP EP02787722A patent/EP1563634B1/en not_active Expired - Lifetime
- 2002-11-18 AT AT02787722T patent/ATE428234T1/de not_active IP Right Cessation
- 2002-11-18 JP JP2004552441A patent/JP4354406B2/ja not_active Expired - Fee Related
- 2002-11-18 DE DE60231921T patent/DE60231921D1/de not_active Expired - Lifetime
- 2002-11-18 CA CA002501404A patent/CA2501404A1/en not_active Abandoned
- 2002-11-18 AU AU2002352049A patent/AU2002352049A1/en not_active Abandoned
- 2002-11-18 BR BR0215947-3A patent/BR0215947A/pt not_active IP Right Cessation
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488840B (zh) * | 2009-02-05 | 2013-04-17 | 腾讯科技(深圳)有限公司 | 一种数据传输的方法和装置 |
CN101938414A (zh) * | 2010-08-27 | 2011-01-05 | 北京星网锐捷网络技术有限公司 | 一种报文发送方法及装置 |
CN101938414B (zh) * | 2010-08-27 | 2013-08-14 | 北京星网锐捷网络技术有限公司 | 一种报文发送方法及装置 |
CN102571552A (zh) * | 2010-12-31 | 2012-07-11 | ***通信集团公司 | 网关拥塞调控方法及***、网关、网元 |
CN102571552B (zh) * | 2010-12-31 | 2015-04-22 | ***通信集团公司 | 网关拥塞调控方法及***、网关、网元 |
CN108989235A (zh) * | 2018-08-28 | 2018-12-11 | 新华三技术有限公司 | 一种报文转发控制方法及装置 |
CN108989235B (zh) * | 2018-08-28 | 2022-11-01 | 新华三技术有限公司 | 一种报文转发控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
BR0215947A (pt) | 2005-08-09 |
AU2002352049A1 (en) | 2004-06-15 |
WO2004047357A1 (en) | 2004-06-03 |
DE60231921D1 (de) | 2009-05-20 |
EP1563634A1 (en) | 2005-08-17 |
EP1563634B1 (en) | 2009-04-08 |
ATE428234T1 (de) | 2009-04-15 |
US20060156164A1 (en) | 2006-07-13 |
CA2501404A1 (en) | 2004-06-03 |
JP2006506866A (ja) | 2006-02-23 |
JP4354406B2 (ja) | 2009-10-28 |
CN100347983C (zh) | 2007-11-07 |
US7444578B2 (en) | 2008-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100347983C (zh) | 数据发送器及其控制方法 | |
US11876714B2 (en) | Method and apparatus for network congestion control based on transmission rate gradients | |
CN100338899C (zh) | 检测方法和设备 | |
US7756127B2 (en) | Mobile terminal | |
US7978599B2 (en) | Method and system to identify and alleviate remote overload | |
KR101236080B1 (ko) | 손실된 패킷 검출 방법 및 패킷에 대한 재전송 메카니즘을결정하는 방법 | |
US7920477B2 (en) | Network layer error control systems and methods | |
AU2002321032B2 (en) | Method and system for processing a data unit | |
US8306062B1 (en) | Method and apparatus of adaptive large receive offload | |
WO2006027695A1 (en) | Signaling a state of a transmission link via a transport control protocol | |
US20040042465A1 (en) | Radio packet data transmission control system and method | |
TWI734282B (zh) | 資料傳輸方法與通信系統 | |
EP1427127A2 (en) | Communication control method, communication system and communication apparatus that can improve throughput | |
Dunaytsev et al. | An analytical comparison of the slow-but-steady and impatient variants of TCP New Reno | |
Jiong et al. | An adapted model of TCP steady state throughput and its performance analysis | |
Pujeri et al. | Survey of End-to-End TCP Congestion Control Protocols |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20071107 Termination date: 20161118 |
|
CF01 | Termination of patent right due to non-payment of annual fee |