数据单元发送机的控制方法

文档序号:7610509阅读:204来源:国知局
专利名称:数据单元发送机的控制方法
技术领域
本发明涉及控制数据单元发送机的方法,涉及相应的数据单元发送机,涉及包括第一、第二数据单元发送机和数据单元接收机的通信系统,以及涉及控制这种系统的方法。面向数据单元的通信是众所周知的。在面向数据单元的通信中,大量的数据被分成一个或多个数据单元,其中数据单元的结构由通信中发送机和接收机遵循的通信协议来定义。该协议还定义了具体信息将如何被编码,以及发送机和/或接收机如何对具体信息做出反应。面向数据单元的通信又称为分组交换通信。应该注意的是,数据的这种单元或亚分割针对具体协议涉及不同的名称,例如分组、帧、段、协议数据单元、业务数据单元等。对本说明书和权利要求来说,术语“数据单元”一般指的是面向数据单元的通信中所用的所有类型单元。
用于提高可靠性的许多通信协议的特征在于,让接收机向发送机发送确认消息,而确认消息提供了有关数据单元接收的信息。更具体而言,给定协议的发送机或发送同等体(peer)发出数据单元,接收机或接收同等体回复确认消息,该消息提供有关数据单元的接收或未接收的信息。例如,可以发送肯定的确认消息或ACK,其确认一个或多个数据单元的正确接收,和/或可以发送非确认消息(NACK),其具体地指示数据单元未被正确地接收。“未正确地接收”的表达意味着接收具有无法纠正的错误或根本没有接收。基于此信息,该发送同等体可以因此调节要发送的另外数据单元的流量控制。
发送同等体按照序列发送数据单元,并且每个数据单元承载序列位置标识符,例如,正在数据单元中传输的整个数据流的字节或比特的计数值。接收同等体在确认消息中使用序列位置标识符。此外已知使用所谓的累积确认消息,其承载指示按照序列的顺序正确接收的上次数据单元的序列位置标识符。换言之,接收同等体不仅监控数据单元是否被正确接收,而且监控相对于先前正确接收的这些数据单元它是否处于序列的正确顺序中。如果数据单元被正确接收,但是没有按照所述序列的顺序(例如,第1至第5数据单元已被接收,然后数据单元7到达),然后接收同等体继续确认按照序列的顺序正确接收的上次数据单元(在刚刚给出的示例中为第5数据单元)。这可以导致所谓的重复确认(duplicate acknowledgment),即承载序列位置标识符的确认消息,该标识符已经在先前的确认消息中承载。发送同等体可以将这些重复确认用作接收同等体未按照所述序列的顺序接收数据单元的信息。使用累积确认消息的协议的示例是所谓的传输控制协议(TCP)。
为了调节数据单元的流量,已知使用一个或多个输出限制参数,该参数对发送同等体的瞬间数据发送速率设置限制。在基于窗口的流量控制中,拥塞窗口(如同例如从TCP中已知的)是这种的输出限制参数。拥塞窗口表示发送同等体一次可以未完成的数据的最大量。“未完成的”意味着数据单元被发送但还未确认为被正确接收。因此,拥塞窗口还限制发送同等体一次可以发送的数据量。
发送同等体还具有用于响应于可接受的确认消息来修改输出限制参数的程序,其中可接受的确认消息是与先前未被确认的数据单元相关联的确认消息。例如,拥塞窗口可以响应每个可接受的确认消息而被增大。在TCP中,增大程序运用所谓的慢启动与避免拥塞的算法。
因为在发送数据单元和接收有关确认之间经过了一定量的时间,即所谓的往返时间(RTT),所以拥塞窗口的结果是关于每个RTT可以发送多少数据的限制,其等于速率限制。
输出限制参数的另一示例是基于速率的流量控制方案中的发送限制速率。
要注意的是,可以有一个以上的输出限制参数,例如,从TCP中已知的所谓通告窗口。
为了处理从发送机向接收机发送的数据单元可能已经丢失的事实,已知实施用于检测数据单元丢失指示的程序。例如通过对重复确认消息的数量计数,比较所述计数与预定阈值,可以检测数据单元丢失指示,其中如果所述计数达到或超过阈值,则给出数据丢失指示。用于检测数据单元丢失指示的程序的另一示例是在发送给定数据单元之后监控超时周期,并且如果超时周期期满而没有接收到报告给定数据单元正确接收的确认消息,则认为它即数据单元丢失指示。此超时周期可以称为重传超时周期,缩写为RTO,例如如同TCP中的那样,并且在传输数据单元之后启动的计时器可被缩写为REXMT。
继续说明TCP的示例,已知通过重传数据单元对数据单元丢失指示的检测做出反应,而数据单元丢失指示指出了可能已经丢失的数据单元,并用这样的方法调整流量控制参数,即降低将数据单元从发送机传输到接收机的网络中的潜在拥塞。换言之,数据单元丢失指示被看作指示实际的数据丢失,而数据单元丢失被解释为网络拥塞的象征。由TCP做出的拥塞减轻在于其中降低拥塞窗口,其可被缩写为cwnd。
众所周知,数据单元丢失指示并不总是起因于实际的数据单元丢失。例如,重传计时器的期满或指示丢失数据单元的反馈信息的重复发送,也可以起因于数据单元在网络中的延迟。这种延迟可以导致重新排序的现象,其中较晚发送的数据单元在较早发送的数据单元之前到达接收机,以至于接收机将较早发送的数据单元检测为丢失。这种延迟还可以导致所谓的延迟尖峰信号,其中,整个一组数据单元被延迟,然而却没有发生任何的重新排序。考虑到此情况,已经提出了改进发送机流量控制的建议。
EP-1 018 821提议一种系统,在该系统中,在检测到数据丢失指示之后,发送机重传可能丢失的数据单元并减小拥塞窗口,如同常规TCP中完成的那样。然而,此后发送机分析从接收机接收的确认消息或ACK,并判别下一个可接受的确认消息与初始传输或重传是否相关联。如果此下一个可接受的ACK与重传的数据单元相关联,则先前的数据单元丢失指示被看作是已确认的。另一方面,如果该ACK与初始传输相关联,则清楚数据单元丢失还没有发生。作为对这种识别的响应,EP-1 018 821建议了使拥塞窗口返回到它在对数据单元丢失指示做出反应前所具有的值,因为该反应然后可以被判断为已经是错误的。
在S.Bhandarkar等人的出版物“TCP-DCRA Novel Protocol forTolerating Wireless Channel Errors”和互联网工程任务组(IETF)的相应互联网草案中,已经提议以这样一种方法修改TCP,即响应于第三重复确认消息或DUPACK,发送机不立即进行反应,而是等待预定时段,要么直到接收了丢失数据单元的可接受的确认,要么直到经过了预定时间。如果接收了可接受的确认,那么由此可见这三个DUPACK不是起因于数据单元丢失,并且如果时间周期期满,则系统像正常的TCP发送机一样进行反应,即重传丢失的数据单元,并且根据拥塞控制原则减小拥塞窗口。此概念称为延迟拥塞响应(DCR),并且通过一旦接收了第三个DUPACK就设置所谓的DCR计时器以及观察DCR计时器在接收可接受的确认之前是否期满,监控预定时间周期的经过。
WO 2004/047357描述了控制数据单元发送机的方法,其使用了更长和更短的超时周期,其中在所述更短的超时周期之后如果这时未发送数据的可用传输容量大于或等于指定数据单元的大小,则执行指定的数据单元的重传。此文件的一个实施例规定了延迟拥塞控制的选项,根据该选项,指定的数据单元被重传,然后等待直到接收了指定数据单元的可接受的确认消息。还公开了判别确认消息是否涉及初始传输或重传。本发明的目的在于提供一种在数据单元发送机中流量控制的改进方法以及相应改进的数据单元发送机。此目的通过独立权利要求中描述的主题来解决。在从属权利要求中描述了有利实施例。
根据本发明的一个方面,提供了一种控制通信的系统和方法,其包括第一数据单元发送机、第二数据单元发送机和数据单元接收机。第一数据单元发送机被安排成作为第一通信协议的发送同等体进行工作,根据第一通信协议-发送同等体按照序列发送数据单元,每个数据单元承载序列位置标识符,-接收同等体用确认消息确认数据单元的正确接收,其中每个确认消息承载指示按照所述序列的顺序正确接收的上次数据单元的序列位置标识符。例如,序列位置标识符可以是按顺序正确接收的上次数据单元的序列位置标识符,或者可以与按顺序接收的上次数据单元的序列位置标识符有一个预定关系,例如紧接先前数据单元的序列位置标识符。通信协议属于第一层,例如传输层L4。
第二数据单元发送机被安排成作为第二通信协议的发送同等体进行工作,第二通信协议属于比所述第一层低的第二层,例如链路层L2,所述另外的数据单元发送机被安排成按照所述序列的顺序接收第三通信协议的数据单元,第三通信协议属于所述第二层之上的第三层,例如网络层L3。数据单元接收机被安排成作为所述第二通信协议的接收同等体进行工作。
所述第一数据单元发送机的控制包括-流量控制程序,用于根据所述确认消息控制由所述数据单元发送机发送的数据单元的流量,并且所述流量控制程序利用输出限制参数对数据单元发送机的当前数据发送速率设置限制;-程序,用于--检测数据单元丢失指示;--响应于数据单元丢失指示的检测,执行所述数据单元丢失指示指出了可能已经丢失的数据单元的重传,然而不执行修改所述输出限制参数来减轻拥塞的拥塞响应步骤;--在所述重传之后等待承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息,以及--判别可接受的确认消息是否涉及被指出可能已经丢失的所述数据单元的初始传输,以及--响应于判别所述可接受的确认消息不涉及所述初始传输,执行所述拥塞响应步骤。
所述第二数据单元发送机的控制包括,将所述第三通信协议的所述数据单元嵌入所述第二通信协议的数据单元,并向所述数据单元接收机发送所述第二通信协议的所述数据单元;数据单元接收机的控制包括,从所述第二通信协议的所述数据单元中重构所述第三通信协议的所述数据单元,并向上释放所述第三通信协议的数据单元,其中允许不按照所述序列的顺序释放所述数据单元。
换言之,在接收端,允许不按顺序的传递。
与常规的TCP或与例如EP-1 018 821相反,响应于数据单元丢失指示,不直接引导在较高层(第一)数据单元发送机中的拥塞响应步骤,因为首先要等候的是,可接受的确认实际上是否确证数据单元丢失。即,如果在重传之后接收的可接受的确认消息不涉及初始传输,则这确证数据单元丢失(它并不证实或证明数据单元丢失,因为所考虑的数据单元可能仍然强烈地被延迟)。另一方面,如果在重传之后接收的可接受的确认消息涉及初始传输,则这意味着尽管存在数据单元丢失指示,但实际上未发生数据单元丢失。因此,只在数据单元丢失被确证时,进行拥塞响应步骤使流量控制适应发生数据单元丢失的情况。
本发明此方面的重要特征因此在于,数据单元重传程序和拥塞响应程序的分离。即,在数据单元重传程序被链接到用于检测数据单元丢失指示的程序的同时,拥塞响应程序被链接到数据单元丢失确证程序。这与在EP-1 018 821以及DCR提议中所述的两个概念形成鲜明对比,因为在这两个现有技术的概念中,拥塞减轻和重传是一起进行的。在EP-1 018 821中,响应于数据单元丢失指示,重传和拥塞减轻同时执行,并且拥塞减轻的修正可能随后执行,而在DCR中,重传和拥塞减轻的整个操作被延迟,直到DCR计时器已经期满,在这种情况下,重传和拥塞减轻重新同时执行。
本发明的概念的重要优点在于,第一数据单元发送机的性能变得与事件无关,例如突然的延迟尖峰信号或分组重新排序。即,由重新排序或延迟尖峰信号引起的数据单元丢失指示(例如超时或预定数量的重复确认),可以确定为不是起因于实际损失,并且可以避免常规的拥塞响应步骤,即通过降低发送速率来减少发送机的输出。因此,重新排序和延迟尖峰信号不会导致发送性能的不必要降低。这反过来意味着在接收端从第二层向上按顺序传递的需求可以减少。因此,第二层部件的实施可以被大大简化。按顺序传递的需求需要相当大的资源,例如重新排序缓冲器。在本发明中,不需要这些重新排序的缓冲器。此外,整个第二层的设计更简单。
根据本发明的另一方面,提供了一种控制数据单元发送机的方法和这种数据单元发送机,数据单元发送机被安排成按照通信协议工作,根据所述通信协议,发送同等体按照序列发送数据单元,每个数据单元承载序列位置标识符,接收同等体用确认消息确认数据单元的正确接收,其中每个确认消息承载指示按照所述序列的顺序正确接收的上次数据单元的序列位置标识符。例如,序列位置标识符可以是按顺序正确接收的上次数据单元的序列位置标识符,或者与按顺序接收的上次数据单元的序列位置标识符有一个预定关系,例如紧接先前数据单元的序列位置标识符。控制包括流量控制程序,用于根据所述确认消息控制由所述数据单元发送机发送的数据单元的流量,所述流量控制程序被安排成识别重复确认消息,其承载在先前接收到的确认消息中已经承载的序列位置标识符,并且所述流量控制程序利用输出限制参数(即,一个或多个)对数据单元发送机的当前数据发送速率设置限制。提供程序用于根据可接受的确认消息修改所述输出限制参数来增大所述限制,可接受的确认消息是与先前未确认的数据单元相关联的确认消息。提供程序用于-检测数据单元丢失指示;-响应于数据单元丢失指示的检测,执行所述数据单元丢失指示指出了可能已经丢失的数据单元的重传,然而不执行通过修改所述输出限制参数来减轻拥塞的拥塞响应步骤;-在所述重传之后等待承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息,以及-判别所述可接受的确认消息是否涉及被指出可能已经丢失的所述数据单元的所述初始传输。
响应于判别该可接受的确认消息不涉及该初始传输,其确证数据单元丢失,执行拥塞响应步骤。响应于判别可接受的确认消息涉及初始传输,其意味着数据单元丢失指示不涉及数据单元丢失,基于从上次可接受的确认消息以后接收的一个或多个重复确认消息来修改输出限制参数,所述上次可接受的确认消息在承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息之前。
重复确认消息指示数据单元的正确接收,虽然颠倒了顺序。如果随后确定该数据单元丢失指示不涉及实际的数据单元丢失,则可以推断重新排序已经发生。这意味着如果未发生重新排序,则重复确认将已经是可接受的确认,这反过来将已经被发送机用于修改输出限制参数,例如在基于窗口的方案中增大拥塞窗口。因此,本发明的此方面教导如果判别没有发生数据单元丢失,则针对修改一个(或多个)输出限制参数,来使用有关重复确认的信息。输出限制参数因此更能适应于该情况,这导致流量控制更好且更有效。
本发明的上述两方面共同具有对自身重新排序的有利使用或重新排序的影响。即,第一方面,在较低层的接收机允许不按顺序的传递,因此使得较低层更简单。同时,使较高层发送机的流量控制变得健壮,防止重新排序在较低层可能引起的不按顺序的传递。第二方面,发送机的流量控制被安排成针对修改一个(或多个)输出限制参数,对由于重新排序或延迟尖峰信号而产生的信息做出正面使用。现将通过参照具体实施例、继而参照


本发明,其中图1示出了本发明流量控制方法的流程图;图2a-2d示出了用于响应重复确认的接收的程序的流程图;图3示出了用于对数据单元丢失指示做出反应的程序的流程图;图4示出了根据本发明安排的数据单元发送机的示意框图;图5示出了三个协议层的发送和接收同等体的概观;以及图6给出了本发明的一个实施例的概观。在下面,说明将参考具体的协议层,例如链路层和网络层,以及参考具体的协议,例如TCP,但是应该注意的是,本发明决不局限于这种具体的层或具体的协议,它可以应用于充当运用累积确认的协议发送同等体的任何数据单元发送机的环境中。
尽管如此,本发明的概念可以优选被用于TCP或类似TCP的协议。类似TCP的协议是至少在下列特征类似TCP的通信协议流量控制是基于窗口的,发送机被安排成按照序列发送数据单元,每个数据单元承载序列位置标识符,并且数据单元接收机被安排成用确认消息来确认数据单元的正确接收,所述确认消息承载指示按照所述序列顺序即按序正确接收的上次数据单元的序列位置标识符,发送机保持像从TCP已知的参数cwnd的拥塞控制窗口,发送机具有超时特征(像从TCP已知的RTO和REXMT)以及用于计数重复反馈消息的特征(即,其重复地指示相同的数据单元为丢失,例如从TCP已知的DUPACK),用于检测数据单元丢失指示,并且提供拥塞响应或者减轻程序,其中减少至少所述的拥塞窗口。优选地,拥塞响应程序还包括将慢启动阈值设成发送窗口的一半,并且要么执行慢启动(如果数据丢失最初用超时指示),要么执行避免拥塞(如果数据单元丢失最初用DUPACK阈值的达到来指示)。
要注意的是,虽然该本规范使用结合TCP已知的一些术语(例如,RTO、REXMT、拥塞窗口cwnd、慢启动阈值ssthresh、可接受的ACK、DUPACK、通告窗口、发送窗口、慢启动、避免拥塞、快速恢复等),这些术语全都被理解为一般与任何类似TCP的协议有关,即针对所述参数象TCP一样工作、但是另外可以不同于TCP的协议。
图1示出了根据本发明的数据单元发送机中流量控制的基本方法的流程图。数据单元发送机被安排成按照通信协议工作,根据所述通信协议,发送同等体按照序列发送数据单元,每个数据单元承载序列位置标识符,接收同等体用确认消息确认数据单元的正确接收,其中每个确认消息承载指示按照所述序列顺序正确接收的上次数据单元的序列位置标识符。通信协议可以例如是安排在传输层上的传输协议,例如TCP。序列位置标识符可以用任何适宜的或所需的方式来选择,例如可以是连续的编号(例如,1、2、3、...)或正在传输的数据流的比特或字节计数,如从TCP中知道的那样。
在第一步骤S100中,用于对数据单元发送机的数据发送速率设置限制的一个或多个输出限制参数olp被初始化。如已经所述的,olp的示例是基于窗口的系统中的拥塞窗口或基于速率的系统中的数据发送速率。
拥塞窗口表示发送同等体一次可以未完成的数据的最大量。“未完成的”意味着数据单元被发送但还未确认为被正确接收。在使用拥塞窗口cwnd的协议中,cwnd可以例如被初始化为对应于预定数据单元大小的值,例如一个最大段长度(MSS)。要注意的是,拥塞窗口可以用数据量来表示(例如,用字节)或用数据单元数来表示。
方法然后进行到步骤S101,在步骤S101确定是否存在将要发送的任何数据。例如,如果在传输层应用本发明,则步骤S101确定较高层(例如,应用层)是否提供用于传输的数据。该程序等待直到数据可用。如果数据可用,则步骤S102启动重传计时器REXMT。REXMT被设置成预定的超时值RTO。然后,程序前进到步骤S103,在步骤S103,一个或多个数据单元根据一个或多个正在使用的olp发送。
在步骤S103之后,步骤S104确定可接受的确认是否已被接收。可接受的确认是与先前未确认的数据单元相关联的确认消息。通常这意味着可接受的确认承载先前确认中未承载的序列位置标识符。然而,应当注意的是,所谓的环绕式(wrap-around)可以针对序列位置标识符发生,即在会话期间,有限数量的序列位置标识符(例如,由于通过有限数目的比特进行编码)可以后跳回初始值。数据单元发送机因此通过从上次环绕式以后确定接收的ACK是否承载未出现的序列位置标识符,来确定可接受的ACK。
如果步骤S104确定了可接受的确认被接收,则程序前进到步骤S105,在步骤S105中,DUPACK记录被复位。步骤S105的意义随后结合图2和3的程序进行描述。然后,步骤S106以这样的方式修改一个或多个olp,即增大限制。例如,如果olp是cwnd,则增大cwnd。此增大可以用任何适宜的或所需的方式来选择,例如如同从TCP中所知道的。即如果cwnd小于慢启动阈值ssthresh,则通过给cwnd加上MSS来增大cwnd,并且如果cwnd超过ssthresh,则通过给cwnd加上MSS2/cwnd来增大cwnd。程序然后转到步骤S107,在步骤S107,确定所有未完成的数据单元是否已被确认,或更具体而言,确定是否留下任何未完成的数据单元。“未完成的”意味着数据单元被发送,但针对其接收的确认还未被接收。如果所有未完成的数据单元已经被确认,则REXMT在步骤S108被停止,并且发送同等体然后返回S101等待另外的数据。如果未被确认,则程序转到步骤S102。
如果步骤S104的结果是否,则程序转到步骤S109,在步骤S109中,识别重复确认(DUPACK)是否被接收。DUPACK是与先前已经确认的数据单元相关联的ACK,即其承载从上次环绕以后已经在先前ACK中承载的序列位置标识符。如果DUPACK被接收,则程序转到点C,如图2a或2b所示,列出了用于响应DUPACK的程序。
在步骤图2a的步骤S201中,DUPACK记录被更新。类似于步骤S105,步骤S201的意义随后结合图3的步骤S319的优选实施例进行说明。在步骤S202中,确定另外的数据单元是否可用于发送(例如,在依旧未发送或来自更高层的数据的缓冲器中),并且如果是的话,则步骤S203确定是否存在对发送另外的数据单元的限制。这种限制可以例如起因于任何olp。在基于窗口的协议中,检查cwnd是否允许另外数据单元的发送。步骤S203还可以涉及检查其他的olp,例如,如从TCP中知道的通告窗口。如果步骤S203的结果也为是,则发送另外的数据单元并在S205重新启动REXMT。如果步骤S202和S203其中任一步骤提供了否定的结果(回答“否”),则跳过步骤S204和S205。图2a的程序是如果输出限制参数允许且所述另外的数据单元可用于发送的话,通过发送另外的数据单元响应重复确认消息接收的概念的示例。此对应于数据单元保存的概念,即DUPACK的接收是一个数据单元已经成功地离开连接发送和接收同等体的网络的指示,从而应该有新数据单元的空间。图2a是不管是否已经经过超时周期,每当响应于接收重复确认消息而发送另外的数据单元时,就重新启动监控的概念的示例。
在图2b中示出了图2a程序的替换。步骤S201~S205与图2a的相同,因此不需要重复的描述。图2a和2b的程序之间的差异在于图2b的步骤S206,其在步骤S202或S203的否定结果(回答“否”)之后。步骤S206与图1的步骤S107相同,即确定所有未完成的数据单元是否已被确认。如果被确认,则程序前进到点D,即存在。另一方面,如果存在未完成的数据单元,则执行步骤S205,即重新启动REXMT。图2b是不管是否已经经过超时周期,每当接收到重复确认消息并存在未完成的数据单元时,就重新启动监控的概念的示例。
程序然后返回到图1在步骤S110的步骤。在步骤S110,确定是否存在数据单元丢失指示。数据单元丢失指示可以用任何适宜的或所需的方式来选择。例如,步骤S110可以包括确定REXMT是否已经期满,其是在发送给定数据单元之后监控预定超时周期(RTO)的示例,并判断如果经过所述预定的超时周期而没有接收到可接受的确认消息,则存在数据单元丢失指示,而可接受的确认消息承载与所述给定数据单元相关联的序列位置标识符。另一示例是对多个重复确认消息计数,比较所述计数与阈值,并且如果所述计数达到或超过所述阈值,则判断存在数据单元丢失指示。这DUPACK阈值可以是固定值(例如3)或自适应参数。
如果S110不确定存在数据单元丢失指示,则在步骤S111检查中断条件(例如,从应用到结束通信的外部命令),并且如果程序继续,则它循环返回到步骤S104,继续等待可接受的ACK、DUPACK或数据单元丢失指示。换言之,随着时间的过去,连续地检查步骤S104、S109、S110。
另一方面,如果S110的结果指示数据单元丢失指示的存在,则启动对应的响应程序,包括-执行所述数据单元丢失指示指出了可能已经丢失的数据单元的重传,然而不执行通过修改所述输出限制参数减轻拥塞的拥塞响应步骤;-在所述重传之后等待承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息,以及-判别所述可接受的确认消息是否涉及被指出可能已经丢失的所述数据单元的初始传输,并响应于判别所述可接受的确认消息不涉及所述初始传输,执行所述拥塞响应步骤,而响应于判别所述可接受的确认消息涉及所述初始传输,基于从接收上次可接受的确认消息以后接收的一个或多个重复确认消息,修改所述输出限制参数,所述上次可接受的确认消息在承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息之前。
将结合图3说明此方面的示例。图3的程序从步骤S311开始,步骤S311执行最早未完成的数据单元的重传,并且同时重新启动计时器REXMT用于监控超时周期RTO。“未完成的”意味着数据单元被发送,但针对其接收的确认还未被接收。术语“最早”指的是未完成数据单元的序列当中最低的序列位置标识符。
要注意的是,步骤S311中最早未完成的数据单元的重传与标准TCP发送机的反应完全相同,但也应注意,与标准TCP发送机相反,本发明的发送机在步骤S311不执行任何拥塞控制反应。更确切地,发送机一直等到它可以确证检测到的S110数据单元丢失指示是否是实际的数据单元丢失。
为此,程序进入回路S312、S313、S314和S315。在步骤S312,询问是否已经接收到针对重传的数据单元的确认。如果没有接收到,则在步骤S313询问重传计时器REXMT是否已经期满。如果没有期满,则程序循环返回到步骤S312。如果重传计时器已经期满,则程序转到步骤S314,在步骤S314,适当增大RTO的值(例如,加倍),并且表示重新开始重传的计数值RR增加1。之后执行步骤S315,在步骤S315确定RR的值是否超过中止阈值ab_th。此中止阈值可以例如具有值为10,因此如果发生了十次循环仍没有接收到确认,则程序中断,并假定发送机和接收机之间的连接中断。另一方面,如果RR未超过阈值,则程序循环返回到步骤S311,用于重传最早未完成的数据单元并重新启动重传计时器REXMT。
如果步骤S312的结果指示ACK已被接收,则步骤S316确定它是可接受的ACK还是DUPACK。如果它是DUPACK,则执行结合图2c或2d描述的DUPACK响应程序,此后程序返回步骤S312。图2c的程序与图2a的程序完全相同,并且图2d的程序与图2b的程序完全相同,因此不需要重复的描述。
如果步骤S316确定它不是DUPACK,则处理转到S317,在S317,确定ACK是否针对初始传输或重传。如果ACK针对重传(S317的结果“否”),则程序前进到S318,在步骤S318执行标准的拥塞响应步骤。例如,在基于窗口的系统中,这可以包括减小拥塞窗口。在基于速率的系统中,这可以包括减少发送速率。可以用和常规系统中一样的方法,执行拥塞控制窗口或发送速率的减少,在常规系统中,在单个环接的步骤中执行重传和拥塞响应。
另一方面,如果ACK针对初始(步骤S317的结果“是”),则程序转到步骤S319,在步骤S319,基于在两个上次可接受的ACK之间接收的一个或多个DUPACK,修改一个或多个输出限制参数olp。
用于确定确认消息是否报告了在S311重传或先前传输的数据单元的接收的程序,可以用任何适宜的或所需的方法来完成。例如,可以采用在EP-1 018 821 A1中列出的原理,即发送机给发送的数据单元加上具体的标记,其中所述标记允许初始传输和重传之间的区别。接收机然后在确认消息中镜像这些标记。这种标记可以是单个的比特(针对初始传输的一种设置,而针对重传的另一种设置)、包含更多信息的位串、或反映发送各个数据单元时间的时间戳。
对于步骤S317,要注意的是,“初始传输”本身可以是重传,因此“重传”可以是重传等的重传。换言之,触发数据单元重传程序的数据单元丢失指示可以涉及本身先前响应于更早的数据单元丢失指示而重传的数据单元。
最后,处理转到步骤S320,在步骤S320,RTO可以被适当更新。程序然后返回图1在步骤S107的处理。
基于DUPACK的修改可以用任何适宜的或所需的方式来完成。优选地,这通过重复确认记录保留程序来完成,重复确认记录保留程序包括基于接收的重复确认消息修改重复确认记录参数,其中响应于判别承载指示被指出了可能已经丢失的数据单元的序列位置标识符的可接受的确认消息涉及初始传输,根据所述重复确认记录参数来修改输出限制参数。重复记录保留参数可以用任何适宜的或所需的方式来选择,例如,可以是用于对多个重复确认消息计数的计数器。它可以是增长式计数器(1、2、3、...)或下降式计数器。可以用任何适宜的或所需的方式使用计数结果来修改输出限制参数。例如,在基于窗口的协议中,拥塞窗口可以增加一值,该值线性地取决于在两个上次可接受的ACK之间接收的DUPACK的数量。
重复确认记录参数还可以是假输出限制参数。
记录保留程序优选通过适当地对DUPACK或可接受的ACK的接收做出反应来进行工作。即,响应于DUPACK,重复确认记录参数被适当更新(见图2的步骤S201),并且响应于可接受的ACK,DUPACK记录参数被复位(见图1的S105)。更新和复位的具体方式可以用任何适宜的或所需的方法来选择,并且通常将取决于选定的DUPACK记录参数。例如,如果是计数器,则复位意味着复位到预定的初始值(例如,0),并且更新意味着加上或减去预定的差值(例如,1)。
当使用假输出限制参数时,例如,基于窗口的协议中假版本的拥塞窗口,然后复位可以包括一旦每次接收到可接受的确认消息,就根据所述输出限制参数的瞬时值,来设置所述假输出限制参数。例如,假拥塞窗口(下面称为cwnd_aix)可以设成等于cwnd的瞬时值,或等于cwnd与预定值之和。响应于重复确认消息来修改或更新假输出限制参数(S201),优选采用与以下方法相同的方法来完成,即修改输出限制参数的程序响应于可接受的确认消息来修改输出限制参数。
例如,在基于窗口的协议中,这可以用下列方法来完成。虚假值cwnd_aix响应于每个接收的DUPACK而增大,而虚假值cwnd_aix此时间点未在流量控制程序中使用。可以执行假拥塞窗口cwnd_aix的增大程度,如同从用于可接受的确认的TCP中知道的,即在慢启动阶段期间(如果cwnd_aix<ssthresh),假拥塞窗口cwnd_aix增大了用于每个DUPACK的最大数据单元大小(例如,最大段大小MSS)的等价值,并且在避免拥塞的阶段中(如果cwnd_aix>ssthresh),假拥塞窗口cwnd_aix增大了最大数据单元大小的平方除以假拥塞窗口大小。因为慢启动和避免拥塞的算法是本领域中众所周知的,所以另外的说明在此不需要。
然后,根据数据单元丢失确证程序的结果,虚假值cwnd_aix可用于修改实际的拥塞窗口cwnd。更具体而言,如果数据单元丢失确证程序没有确证数据单元丢失(图3步骤S317中的“是”),然后自适应程序S319将根据cwnd_aix修改cwnd。例如,cwnd可以被设置成cwnd_aix的值。优选地,实现一种机制,根据该机制,cwnd更少突然地逼近cwnd_aix。这可以例如通过将慢启动阈值ssthresh设为cwnd_aix的值来完成,因此(因为cwnd_aix>cwnd)流量控制将进入慢启动,并且使拥塞窗口cwnd按指数规律增长直到cwnd_aix的值。
这是一般概念的示例,其中,响应于判别可接受的确认消息涉及原始传输,所述输出限制参数被设置成所述假输出限制参数的值,所述可接受的确认消息承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符。优选地,响应于判别承载指示被指出了可能已经丢失的数据单元的序列位置标识符的可接受的确认消息涉及初始传输,引导程序使输出限制参数逐渐逼近所述假输出限制参数的值。
根据本发明的优选实施例,数据单元发送机被安排成在每个发送的数据单元中设置指示发送时间的时间戳。数据单元接收机将被安排成在任何正在发送的可接受的或重复确认中设置上次正确接收的数据单元的时间戳,并且数据单元发送机反过来被安排成基于在可接受的确认和重复确认中都接收到的时间戳,执行往返时间(RTT)测量。例如,发送机可以从它的瞬时系统时间中减去在接收到的ACK或DUPACK中时间戳的值,以便直接导出RTT估计。此概念背离常规的类似TCP的系统,因为常规的TCP规定数据单元接收机将上次按序正确接收的数据单元的时间戳回送进入任何确认,因此重复确认将不包含上次接收的数据单元的时间戳。本优选实施例的优点在于,数据单元发送机可以从DUPACK中执行更精确的RTT测量,这提高了RTT估计的精度。
根据另一优选实施例,提供程序用于以这样的方法修改输出限制参数,即响应于判别所述可接受的确认消息涉及初始传输,降低数据单元发送机的当前数据发送速率,而所述可接受的确认消息承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符。修改根据在数据单元的上次发送与所述可接受的确认消息的接收之间经过的空闲时间量来进行,所述可接受的确认消息承载指示被指出了可能已经丢失的数据单元的序列位置标识符。相应的步骤可以例如是被安排在紧接图3的S319之后。
响应于这种对无丢失的确证,以这样的方式执行用于改变发送机输出限制参数的程序,即降低发送机的输出,其中,改变量取决于在数据单元的上次发送与证实可能丢失的数据单元并未丢失之间经过的空闲时间量。例如,在类似TCP的发送机中,如果空闲时间比RTO短,则不执行改变,而如果空闲时间比RTO长,则根据空闲时间与RTO之比来改变发送机的输出限制参数。
这将通过参照图6所示图表来阐述。图6示出了时间轴(timearrow),并且作为第一事件,示出了数据单元丢失指示。此数据单元丢失指示在该时间点重传,如上文结合图3的步骤S311所述。在重传通过数据单元丢失指示触发之后,可以发送一个或多个另外的数据单元,取决于具体的控制选项和情况。然而,结合数据单元丢失指示的重传实际上还可能是在空闲时间发生之前发送的上次数据单元,这是因为数据单元发送机等待与响应于该数据单元丢失指示而重传的数据单元有关的第一可接受的ACK。当第一可接受的ACK到达时,则判别丢失是否被确证(图3的步骤S317)。如果丢失被确证,即如果ACK涉及响应于数据单元丢失指示执行的重传,则执行标准的拥塞控制参数自适应,例如,将拥塞窗口cwnd降到一个数据单元的大小,慢启动阈值由其一半的阈值替换等。
另一方面,如果丢失未被确证,即,可接受的ACK涉及初始传输且不涉及重传,则执行步骤S319,用于基于在两个上次可接受的ACK之间接收到的DUPACK修改olp。然后,原则上可以仅返回到常规的流量控制程序(见图1和3的B点)。
然而,优选的是具有上述用于根据空闲时间来降低发送机输出限制参数(例如,拥塞窗口cwnd)的程序,因为此发送机输出限制参数的该值估计所基于的情况可能在空闲时间的期间已经改变,从而优选的是采用保守的方法并降低限制参数。
要注意的是,步骤S319基于DUPACK修改olp。如果若干DUPACK已经介于两个上次可接受的ACK之间到达,则每个DUPACK通常将导致另外数据单元的发送(见图2的步骤S204),因此空闲时间将是短的。正如下文将要更详细阐述的,短的空闲时间优选针对olp不导致另外的动作。然而,如果没有或极少的DUPACK已经到达,则空闲时间可是重要的,并且olp的值(例如,拥塞窗口)将不会基于最近可接受的ACK(步骤S106)或最近的DUPACK(S319)而被更新。同样,olp的值可能已经变得“陈旧”,因此优选的是让它根据空闲时间量衰减。
根据空闲时间的减少可以用任何适宜的或所需的方式来进行,例如,相对于给定的固定时间因子成简单比例关系。例如,可以用cwnd/F替换cwnd,其中,F=空闲时间/Δ,而Δ是预定的恒量。
如果数据单元发送机通过监控超时周期,可以检测数据单元丢失指示,就像针对类似TCP操作的情况一样,则发送机输出限制参数的降低优选根据空闲时间与超时周期之间的比较来进行。例如,在这种情况下,上述的恒量Δ可以用可修改的RTO值来代替。根据图6的本实施例,拥塞窗口的自适应以这种方式进行,即N被确定为空闲时间的截取部分(truncate fraction)除以RTO,然后拥塞窗口被平分N次。
作为对非确证的进一步优选响应,图6的实施例教导适当修改RTO的值或DUPACK阈值。例如,如果数据单元丢失指示是超时,则非确证优选导致增大超时周期RTO,因为此非确证指示RTO过短。例如,RTO可以被加倍。
同样地,如果数据单元丢失指示起因于到达DUPACK阈值,则DUPACK阈值可以响应于该非确证而被增大,因为此阈值显然过低。优选地,通过监控数据单元丢失确证程序随时间过去的结果,发生DUPACK阈值的自适应。更具体而言,判别步骤S317的结果针对不同的数据单元丢失指示检测事件而被监控。例如,数据单元发送机可以保留关于在由于达到或超过DUPACK阈值而引起的数据单元丢失指示之后的非确证的数量的统计,然后根据非确证的频率(即,超过预定周期时间的非确证的数量),增加或者减少DUPACK阈值。如果该频率超过预定的上限,则DUPACK阈值可以增大预定的因子(例如,加上1),并且如果该频率超过预定的下限,则DUPACK阈值可以减小预定的因子(例如,减去1)。
还可以根据在可接受的ACK之间接收的DUPACK的数量,或更具体而言,根据从接收上次可接受的确认消息以后接收的重复确认消息的数量,来修改DUPACK阈值,而上次可接受的确认消息在承载指示被指出了可能已经丢失的数据单元的序列位置标识符的可接受的确认消息之前。即,此数量反映了重新排序的长度,并且希望根据重新排序的长度设置DUPACK阈值。例如,如果超过了预定的第一重新排序长度,则DUPACK阈值可以增大预定量(例如,1),并且如果重新排序长度降到预定的第二重新排序长度阈值之下,则DUPACK阈值可以减去预定的量(例如,1)。
本发明直到此刻已经在数据单元发送机中用于执行流量控制的方法环境中得以描述。同样地,本发明还可以是体现为计算机程序产品,包括被安排成在数据单元发送机中运行时执行一个或多个上述方法的计算机程序。
本发明而且可以用数据单元发送机来体现,如将要结合图4的示意框图阐述的那样。图4示出了被安排成按照通信协议工作的数据单元发送机40,根据所述通信协议,发送同等体按照序列发送数据单元43,每个数据单元承载序列位置标识符,接收同等体(未示出)用确认消息44确认数据单元的正确接收,其中每个确认消息44承载指示按照所述序列的顺序正确接收的上次数据单元的序列位置标识符。提供了流量控制器42,用于根据确认消息44控制由数据单元发送机40发送的数据单元43的流量,并且用于利用至少一个输出限制参数对数据单元发送机的当前数据发送速率设置限制。图4示意性地示出了缓冲设备41,其被安排成保存经由连接46来自较高层的数据,保存用于发送的数据单元,以及保存接收到的ACK。同样地,缓冲设备41可以由多个单个缓冲器(例如,输入缓冲器和输出缓冲器)组成。流量控制器42被安排成识别ACK44当中的重复确认消息。
提供适配器425用于根据可接受的确认消息来修改输出限制参数以增大所述限制。提供检测器420用于检测数据单元丢失指示。提供重传器422用于响应于数据单元丢失指示的检测,执行所述数据单元丢失指示指出了可能已经丢失的数据单元的重传。提供监控器421,用于在所述重传之后等待承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息。提供判别器423,用于判别所述可接受的确认消息是否涉及被指出可能已经丢失的所述数据单元的初始传输。
提供拥塞响应器424,用于执行修改所述输出限制参数来减轻拥塞的拥塞响应步骤,该拥塞响应器响应于判别器423判别该可接受的确认消息不涉及原始传输而被触发,而不是通过检测器420检测到数据单元丢失指示而被触发。适配器425还被安排成响应于判别器423判别可接受的确认消息不涉及重传,基于从上次可接受的确认消息以后接收的一个或多个重复确认消息来修改输出限制参数,上次可接受的确认消息在承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息之前。
上述的控制器42和元件420~425可以作为硬件、软件或任何适宜的软硬件组合来提供。优选地,检测器420、监控器421、数据单元重传器422、判别器423、拥塞响应器424和适配器425,可以作为由可编程控制器42执行的计算机程序中的程序代码部分来提供。
正如先前已经提到的,本发明具有下列好处,即发送机的性能变得与事件无关,例如突然的延迟尖峰信号或分组重新排序。因为发生这种干扰的可能性在无线通信中增大,所以本发明优选应用于无线数据单元发送机,例如,应用于移动电话。
现参照图5描述本发明的另一方面。示出了通信系统,其包括被安排成作为在第一层51上第一通信协议的发送同等体进行工作的数据单元发送机510。还示出了层51的对应接收同等体511。层51可以例如是传输层L4,并且通信协议可以例如是TCP。发送同等体按照序列发送数据单元551,每个数据单元承载序列位置标识符,接收同等体用确认消息确认数据单元的正确接收,其中每个确认消息承载指示按照所述序列的顺序正确接收的上次数据单元的序列位置标识符。数据单元发送机510被安排成非常类似于图4的数据单元发送机。它包括流量控制器,用于根据所述确认消息控制由数据单元发送机发送的数据单元551的流量,并且用于利用至少一个输出限制参数对数据单元发送机的当前数据发送速率设置限制。提供检测器用于检测数据单元丢失指示。提供重传器用于响应于数据单元丢失指示的检测,执行所述数据单元丢失指示指出了可能已经丢失的数据单元的重传。提供监控器,用于在所述重传之后等待承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息。提供判别器,用于判别可接受的确认消息是否涉及被指出可能已经丢失的所述数据单元的初始传输。提供拥塞响应器,用于执行修改所述输出限制参数来减轻拥塞的拥塞响应步骤,该拥塞响应器响应于所述判别器判别所述可接受的确认消息不涉及所述原始传输而被触发,而不是通过检测器检测到数据单元丢失指示而被触发。
检测器、监控器、数据单元重传器、判别器、拥塞响应器和适配器,可以作为充当流量控制器的可编程处理器执行的计算机程序中的程序代码部分来提供。
图5的系统还包括第二数据单元发送机530,其被安排成作为第二通信协议的发送同等体进行工作,第二通信协议属于比所述第一层51低的第二层53。例如,层53可以是链路层L2。第二数据单元发送机530被安排成按照所述序列的顺序接收第三通信协议的数据单元552,第三通信协议属于所述第二层53之上的第三层52。第三层52可以与第一层51相同。另一方面,如果层51是传输层L4,并且层53是链路层L2,则层52可以是网络层L 3。
第二发送机530包括嵌入控制器,用于将第三通信协议的数据单元552嵌入第二通信协议的数据单元。“嵌入”意味着将层52的数据单元552封装或分割为层53的数据单元553。提供发送控制器,用于将所述第二通信协议的数据单元553发送给所述第二通信协议的对应接收同等体。嵌入控制器和发送控制器都可以用可编程处理器5301的形式来体现。
图5还示出了数据单元接收机531,其被安排成作为层53的所述第二通信协议的接收同等体进行工作。接收机531包括重构控制器,用于控制所述第三通信协议的数据单元555的重构(事实上反转在第二发送机530执行的嵌入操作);以及释放控制器,用于向上释放所述第三通信协议的数据单元555。根据本发明,释放控制器被安排成允许不按照所述序列的顺序释放第三通信协议的数据单元555。重构控制器和释放控制器都可以用可编程处理器5311的形式来体现。
在层52上可能的处理(未示出)之后,层51的数据单元556向上传递给层51的接收同等体511。接收同等体511然后发送对应的确认消息(未示出),如针对图1~4和6详细描述的那样。
发送机510和530可以在一个物理位置中被提供,即,在一个设备中提供,例如移动电话或移动通信系统的基站。另一方面,它们还可以在物理上分开。同样地,接收机531和511可以在一个物理位置中提供,即,在一个设备中提供,例如移动电话或移动通信系统的基站,或者它们还可以在物理上分开。通常,较低层的同等体530和531可以在路径的任何地方提供,层51的数据单元通过该路径正在从发送机510向接收机511发送。
在图5的系统中,在接收端从较低层53向上按顺序传递的常规需求已被减少。因此,第二层的接收同等体531的实施可以被大大简化。按顺序传递的需求需要相当大的资源,例如重新排序缓冲器。在本发明中,不需要这些重新排序缓冲器。因此,整个第二层的设计更简单。
虽然通过参考具体详细实施例已经描述了本发明,但是这些实施例仅仅为了更好地阐述本发明而提供,而本发明的范围通过所附权利要求来定义。同样地,权利要求中的参考标记不是意欲进行限制,而是仅仅用来使权利要求更加易于阅读。
权利要求
1.一种控制数据单元发送机的方法,数据单元发送机被安排成按照通信协议工作,根据所述通信协议,发送同等体按照序列发送数据单元,每个数据单元承载序列位置标识符,接收同等体用确认消息确认数据单元的正确接收,其中每个确认消息承载指示按照所述序列的顺序正确接收的上次数据单元的序列位置标识符,所述方法包括流量控制程序,用于根据所述确认消息控制由所述数据单元发送机发送的数据单元的流量,所述流量控制程序被安排成识别(S109;S316)重复确认消息,其承载在先前接收到的确认消息中已经承载的序列位置标识符,并且所述流量控制程序利用(S103)输出限制参数(olp;cwnd),用于对数据单元发送机的当前数据发送速率设置限制;程序(S106),用于根据可接受的确认消息修改所述输出限制参数(olp;cwnd)来增大所述限制,可接受的确认消息是与先前未确认的数据单元相关联的确认消息;程序,用于-检测(S110)数据单元丢失指示;-响应于数据单元丢失指示的检测,执行(S311)所述数据单元丢失指示指出了可能已经丢失的数据单元的重传,但不执行通过修改所述输出限制参数来减轻拥塞的拥塞响应步骤(S318);-在所述重传(S311)之后等待(S312)承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息,以及-判别(S317)所述可接受的确认消息是否涉及被指出可能已经丢失的所述数据单元的初始传输,以及响应于判别所述可接受的确认消息不涉及所述初始传输,执行(S318)所述拥塞响应步骤,响应于判别所述可接受的确认消息涉及所述初始传输,基于从接收上次可接受的确认消息以后接收的一个或多个重复确认消息,来修改(S319)所述输出限制参数,所述上次可接受的确认消息在承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息之前。
2.权利要求1的方法,还包括重复确认记录保持程序,其包括基于接收的重复确认消息而修改(S201)重复确认记录参数,其中,响应于判别所述可接受的确认消息涉及所述初始传输,所述输出限制参数根据所述重复确认记录参数进行修改,而所述可接受的确认消息承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符。
3.权利要求2的方法,其中所述重复确认记录参数是用于对多个重复确认消息计数的计数器。
4.权利要求2的方法,其中所述重复确认记录参数是假输出限制参数(cwnd_aix)。
5.权利要求4的方法,其中所述记录保持程序包括,响应于重复确认消息,修改(S201)所述假输出限制参数,其与用于修改所述输出限制参数(olp;cwnd)的所述程序(S106)响应于可接受的确认消息来修改所述输出限制参数(olp;cwnd)的方法相同。
6.权利要求4或5的方法,其中所述记录保持程序包括,一旦每次接收到可接受的确认消息,就根据所述输出限制参数(olp;cwnd)的瞬时值设置(S105)所述假输出限制参数(cwnd_aix)。
7.权利要求4~6其中之一的方法,其中响应于判别所述可接受的确认消息涉及所述初始传输,所述输出限制参数(olp;cwnd)被设置成所述假输出限制参数(cwnd_aix)的值,而所述可接受的确认消息承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符。
8.权利要求4~6其中之一的方法,其中响应于判别所述可接受的确认消息涉及所述初始传输,引导程序让所述输出限制参数(olp;cwnd)逐渐趋近所述假输出限制参数(cwnd_aix)的值,而可接受的确认消息承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符。
9.权利要求1~8其中之一的方法,其中所述数据单元发送机中的所述流量控制是基于窗口的,并且所述发送机的输出限制参数是拥塞控制窗口(cwnd)。
10.权利要求1~8其中之一的方法,其中所述数据单元发送机中的所述流量控制是基于速率的,并且所述发送机的输出限制参数是发送速率参数。
11.权利要求1~10其中之一的方法,还包括用这种方法修改所述输出限制参数(olp;cwnd)的程序,即响应于判别所述可接受的确认消息涉及所述初始传输,来降低数据单元发送机的当前数据发送速率,而所述可接受的确认消息承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符,进行所述修改取决于在数据单元的上次发送与所述可接受的确认消息的接收之间经过的空闲时间量,而所述可接受的确认消息承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符。
12.权利要求11的方法,其中用于检测数据单元丢失指示的所述程序(S110)包括,在发送给定数据单元之后监控预定的超时周期(RTO),并且如果经过所述预定的超时周期而仍没有接收到承载指示所述给定数据单元的序列位置标识符的可接受的确认消息,则判断存在数据单元丢失指示,并且其中,所述发送机输出限制参数(olp;cwnd)取决于所述空闲时间的修改,包括比较所述空闲时间量与所述超时周期。
13.前述权利要求其中之一的方法,其中所述数据单元发送机中的所述流量控制取决于所述输出限制参数(olp;cwnd)和其他的输出限制参数,并且包括如果所述输出限制参数和所述其他输出限制参数允许且所述另外的数据单元可用来发送的话,通过发送其他的数据单元来响应重复确认消息的接收。
14.权利要求13的方法,其中用于检测数据单元丢失指示的所述程序(S130)包括在发送给定数据单元之后监控预定的超时周期(RTO),并且如果经过所述预定的超时周期而没有接收到承载指示所述给定数据单元的序列位置标识符的可接受的确认消息,则判断存在数据单元丢失指示,其中每当响应于接收重复确认消息而发送(S204)另外的数据单元时,监控是否重新开始(S205)已经经过的超时周期。
15.前述权利要求其中之一的方法,其中用于检测数据单元丢失指示的所述程序(S130)包括在发送给定数据单元之后监控预定的超时周期(RTO),并且如果经过所述预定的超时周期而没有接收到承载指示所述给定数据单元的序列位置标识符的可接受的确认消息,则判断存在数据单元丢失指示,其中每当接收重复确认消息并存在未完成的数据单元时,监控是否重新开始(S205)已经经过的超时周期。
16.前述权利要求其中之一的方法,其中所述数据单元发送机在每个发送的数据单元中设置指示发送时间的时间戳,其中所述数据单元接收机被安排成在任何正在发送的可接受的或重复确认中设置上次正确接收的数据单元的时间戳,其中所述数据单元发送机基于在接收的可接受的和重复确认中设置的所述时间戳,执行往返时间测量。
17.前述权利要求其中之一的方法,其中用于检测数据单元丢失指示的所述程序(S110)包括在发送给定数据单元之后监控预定的超时周期(RTO),并且如果经过所述预定的超时周期而没有接收到与所述给定数据单元相关联的可接受的确认,则判断存在数据单元丢失指示。
18.权利要求17的方法,还包括用于响应于判别所述可接受的确认消息涉及所述初始传输而增大所述超时周期(RTO)的程序,所述可接受的确认消息承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符。
19.前述权利要求其中之一的方法,其中用于检测数据单元丢失指示的所述程序(S110)包括对多个重复确认消息计数,比较所述计数与阈值,并且如果所述计数达到所述阈值则判断存在数据单元丢失指示。
20.权利要求19的方法,还包括用于通过监控所述判别步骤(S317)对于不同数据单元丢失指示检测事件的结果来修改所述阈值的程序。
21.一种计算机程序产品,包括被安排成在数据单元发送机上运行时执行权利要求1~20其中之一的方法的计算机程序。
22.一种被安排成按照通信协议工作的数据单元发送机(40),根据所述通信协议,发送同等体按照序列发送数据单元(43),每个数据单元承载了序列位置标识符,接收同等体用确认消息(44)确认数据单元的正确接收,其中每个确认消息(44)承载指示按照所述序列的顺序正确接收的上次数据单元的序列位置标识符,所述数据单元发送机包括流量控制器(42),用于根据所述确认消息(44)控制由所述数据单元发送机(40)发送的数据单元(43)的流量,并用于利用输出限制参数对数据单元发送机的当前数据发送速率设置限制,所述流量控制器(42)被安排成识别重复确认消息,而重复确认消息承载在先前接收到的确认消息中已经承载的序列位置标识符;适配器(425),用于根据可接受的确认消息修改所述输出限制参数来增大所述限制,可接受的确认消息是与先前未确认的数据单元相关联的确认消息;检测器(420),用于检测数据单元丢失指示;重传器(422),用于响应于数据单元丢失指示的检测,执行所述数据单元丢失指示指出了可能已经丢失的数据单元的重传;监控器(421),用于在所述重传之后等待承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息,以及判别器(423),用于判别所述可接受的确认消息是否涉及被指出可能已经丢失的所述数据单元的初始传输,以及拥塞响应器(424),用于执行修改所述输出限制参数来减轻拥塞的拥塞响应步骤,所述拥塞响应器响应于所述判别器(423)判别所述可接受的确认消息不涉及所述初始传输而被触发,而不是通过所述检测器(420)检测数据单元丢失指示来触发,其中所述适配器(425)被安排成响应于所述判别器(423)判别所述可接受的确认消息涉及所述初始传输,基于从上次可接受的确认消息以后接收的一个或多个重复确认消息来修改所述输出限制参数,所述上次可接受的确认消息在承载指示被指出了可能已经丢失的所述数据单元的可接受的确认消息之前。
23.一种通信系统,包括数据单元发送机(510),被安排成作为第一通信协议的发送同等体进行工作,根据第一通信协议,发送同等体按照序列发送数据单元,每个数据单元承载序列位置标识符,接收同等体用确认消息确认数据单元的正确接收,其中每个确认消息承载指示按照所述序列的顺序正确接收的上次数据单元的序列位置标识符,所述通信协议属于第一层(51),所述数据单元发送机(510)包括流量控制器,用于根据所述确认消息控制由所述数据单元发送机发送的数据单元(551)的流量,并且用于利用输出限制参数对数据单元发送机的当前数据发送速率设置限制;检测器,用于检测数据单元丢失指示;重传器,用于响应于数据单元丢失指示的检测,执行所述数据单元丢失指示指出了可能已经丢失的数据单元的重传;监控器,用于在所述重传之后等待承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息,以及判别器,用于判别所述可接受的确认消息是否涉及被指出可能已经丢失的所述数据单元的初始传输,以及拥塞响应器,用于执行修改所述输出限制参数来减轻拥塞的拥塞响应步骤,所述拥塞响应器响应于所述判别器判别所述可接受的确认消息不涉及所述初始传输而被触发,而不是通过所述检测器检测数据单元丢失指示来触发;并且所述系统还包括另外的数据单元发送机(530),被安排成作为第二通信协议的发送同等体进行工作,第二通信协议属于比所述第一层(51)低的第二层(53),所述另外的数据单元发送机(530)被安排成按照所述序列的顺序接收第三通信协议的数据单元(552),第三通信协议属于所述第二层(53)之上的第三层(52),所述另外的数据单元发送机(530)包括嵌入控制器(5301),用于将所述第三通信协议的所述数据单元(552)嵌入所述第二通信协议的数据单元;以及发送控制器(5301),用于向所述第二通信协议的接收同等体发送所述第二通信协议的所述数据单元(553);数据单元接收机(531),被安排成作为所述第二通信协议的所述接收同等体进行工作,包括重构控制器(5311),用于控制所述第三通信协议的数据单元(555)的重构;以及释放控制器(5311),用于向上释放所述第三通信协议的数据单元(555),所述释放控制器(5311)被安排成允许不按照所述序列的顺序释放所述第三通信协议的所述数据单元(555)。
24.权利要求23的系统,其中所述第一层(51)和所述第三层(52)是相同的。
25.权利要求23或24的系统,其中所述第一层(51)是传输层,而所述第二层(53)是链路层。
26.一种控制通信的方法,包括第一数据单元发送机(510)、第二数据单元发送机(530)和数据单元接收机(531),所述第一数据单元发送机(510)被安排成作为第一通信协议的发送同等体进行工作,根据第一通信协议-发送同等体按照序列发送数据单元,每个数据单元承载序列位置标识符,-接收同等体用确认消息确认数据单元的正确接收,其中每个确认消息承载指示按照所述序列的顺序正确接收的上次数据单元的序列位置标识符,所述通信协议属于第一层(51),所述第二数据单元发送机(530)被安排成作为第二通信协议的发送同等体进行工作,第二通信协议属于比所述第一层(51)低的第二层(53),所述另外的数据单元发送机被安排成按照所述序列的顺序接收第三通信协议的数据单元,第三通信协议属于所述第二层(53)之上的第三层(52),以及所述数据单元接收机(531)被安排成作为所述第二通信协议的接收同等体进行工作,所述第一数据单元发送机的控制包括-流量控制程序,用于根据所述确认消息控制由所述数据单元发送机发送的数据单元的流量,并且所述流量控制程序利用输出限制参数对数据单元发送机的当前数据发送速率设置限制;-程序,用于--检测数据单元丢失指示;--响应于数据单元丢失指示的检测,执行所述数据单元丢失指示指出了可能已经丢失的数据单元的重传,但不执行修改所述输出限制参数来减轻拥塞的拥塞响应步骤;--在所述重传之后等待承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息,以及--判别所述可接受的确认消息是否涉及被指出了可能已经丢失的所述数据单元的初始传输,以及--响应于判别所述可接受的确认消息不涉及了所述初始传输,执行所述拥塞响应步骤,所述第二数据单元发送机的控制包括将所述第三通信协议的所述数据单元嵌入所述第二通信协议的数据单元,并向所述数据单元接收机发送所述第二通信协议的所述数据单元,以及所述数据单元接收机的控制包括从所述第二通信协议的所述数据单元中重构第三通信协议的所述数据单元,并向上释放所述第三通信协议的数据单元,其中允许不按照所述序列的顺序释放。
27.权利要求26的方法,其中所述第一层(51)和所述第三层(52)是相同的。
28.权利要求26或27的方法,其中所述第一层(51)是传输层,而所述第二层(53)是链路层。
全文摘要
描述了一种控制数据单元发送机的方法。根据来自接收机的确认消息,引导用于控制由所述数据单元发送机发送的数据单元的流量的流量控制程序。流量控制程序利用(S103)至少一个输出限制参数(olp;cwnd),用于对数据单元发送机的当前数据发送速率设置限制。提供了一种程序,用于检测(S110)数据单元丢失指示,响应于数据单元丢失指示的检测,执行(S311)重传,在所述重传(S311)之后等待(S312)承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息,并判别(S317)所述可接受的确认消息是否涉及初始传输,然后响应于判别所述可接受的确认消息不涉及所述初始传输,执行(S318)拥塞响应步骤,而响应于判别所述可接受的确认消息涉及所述初始传输,基于从接收上次可接受的确认消息以后接收的一个或多个重复确认消息,修改(S319)所述输出限制参数,所述上次可接受的确认消息在承载指示被指出了可能已经丢失的所述数据单元的序列位置标识符的可接受的确认消息之前。
文档编号H04L1/18GK101076962SQ200480043665
公开日2007年11月21日 申请日期2004年7月23日 优先权日2004年7月23日
发明者R·卢德威格, M·迈耶, H·埃克斯特罗姆 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1