用于确定时间参量的方法和设备的制作方法

文档序号:7602316阅读:170来源:国知局
专利名称:用于确定时间参量的方法和设备的制作方法
背景技术
本发明涉及在数据单元发射机中用于确定与“重新发送超时(time-out)”的特性有关的参量的方法和设备。
通常,在通信领域中,人们区分电路交换的连接与数据单元交换的连接。在数据单元交换的连接中,要被发送的数据量被划分成数据单元,这些数据单元按照一个管理通信的协议来进行发送。可以指出,在不同协议的环境中,数据单元接受不同的名称,诸如分组、帧等等,其中术语“数据单元”总的被使用于以下的说明。
为了确保数据的可靠传输,许多协议提供数据单元重发的特性。更具体地,数据单元重发意味着在通信中接收机对数据单元的正确接收,需要由接收机把一个适当的应答消息发送返回给发送装置作为确认。一旦发送装置接收到应答,它就可适当地继续发送另外的数据单元,或如果没有接收到应答或接收到一个非应答消息,则没有被接收机正确地接收的数据单元可被重发。
一个典型地伴随着数据单元重发的特性是重发超时的特性。这个特性意味着通信时的发送装置将只等待一段用于应答消息的预定的时间间隔,即,重发超时的时间间隔。当这段时间已经消逝而没有接收到应答,则相应的数据单元将被自动地重发。这个特性确保如果数据单元被丢失,则在上述的“超时”时间间隔后,丢失的数据单元将被自动重发。
提供重发和重发超时特性的协议的例子是所谓的传输控制协议(TCP),它是熟知的TCP/IP协议组的一部分。通常,显然,所述超时的时间间隔应当根据所谓的往返行程时间RTT(即,在一个数据单元的发送和对于所述数据单元的应答的接收之间的传送的时间)来被确定。
超时=f(RTT) (1)
即,如果连接是“远距离的”(即,长的RTT),则“超时”时间间隔必须被设置为比“接近的”连接(即,短的RTT)更长。在这方面,也很明显,超时时间间隔应当被设置为如必要的那麽长和尽可能地短,因为被设置得太长的超时时间间隔会导致传输中不必要的延时。
由于多种因素(诸如输送数据单元的网络的业务条件,延迟的应答机制等等),RTT的测量的数值在短的时间间隔内可以强烈地变化。为了克服这个问题,已建议引入对于往返行程时间的平滑的估计量。这在W.Richard Stevens的“TCP/IP Illustrated,Volumel,Protocols(协议,第1卷,说明TCP/IP)”(Addison Wesley 1994),第21.3节中被描述。确定RTT估计量的第一种方法使用以下的方程SRTT←α·SRTT+(1-α)·RTT (2)其中SRTT代表平滑的估计量,RTT代表瞬时测量的往返行程时间值,以及α是加权因子或平滑化因子,它具有0.9的推荐值。每次作出RTT的新的测量时,平滑的估计量SRTT被更新。这个数值0.9是指每个新的估值的90%是来自以前的估值,以及10%是来自新的测量值。RFC 793(RFC=对于评论的请求)建议把所谓的重发超时数值RTO设置为RTO=SRTT·β(3)其中RTO是与用于上述的超时时间间隔的TCP相关联地使用的特定的项,以及是另一个加权因子,它也被称为延时变化因子,具有等于2的推荐值。
上述的用于计算RTO的方法有一个问题它跟不上RTT的宽的起伏。这导致不必要的重发,从而恶化了网络中的状态。所以提出了这样一种改进,它不单考虑平均值,而且也企图跟踪标准偏差。在以上的Stevens的著作中提到,最好是去计算标准偏差,但这需要计算平方和平方根,这些最好是要加以避免的。这导致以下的方法
Δ=RTT-SRTT (4)SRTT←SRTT+g·Δ(5)RTTVAR←RTTVAR+h·(|Δ|-RTTVAR) (6)RTO=SRTT+4·RTTVAR (7)其中RTT再次代表测量的往返行程时间值,SRTT代表平滑的往返行程时间估值,RTTVAR代表平均偏差的估值,RTO代表重新发送超时数值,g代表第一加权因子,以及h代表第二加权因子。这些加权因子g和h也被称为增益,以及g的数值被设置为0.125,而h被设置为0.25。
上述的公式(4)到(7)的方法十几年来是一直沿用的。
发明目的本发明的目的是提供对于数据单元发射机的数据发送的改进的系统,该数据单元发射机实施提供重发超时特性的协议。
按照在权利要求1和33中描述的第一方面,执行平均偏差值(例如,上述的RTTVAR)的计算,以使得如果测量的往返行程时间值小于根据所存储的平滑的往返行程时间值(上述的SRTT)而确定的门限值,则所测量的往返行程时间值(例如,上述的RTT)对所述平均偏差值的贡献,比起如果测量的往返行程时间值大于所述门限值时是不同的。
按照优选实施例,这个门限值等于平滑的往返行程时间值的数值。换句话说,对于上述的公式(4)到(7)的例子,这个优选实施例意味着RTTVAR对于Δ的正的和负的数值将会不同地被计算。这样,可以避免减小了的测量的往返行程时间的数值将导致重发超时参量的增加。更具体地,正如将在优选实施例的说明中详细地解释的,以上的公式(6)引入Δ的绝对值,这意味着RTT的减小了的数值(RTT<SRTT),比起RTT的增加了的数值(RTT>SRTT),对于RTTVAR数值具有相同的影响。因此,如果在以上的公式(7)中,因子4·RTTVAR超过SRTT的因子,则RTT的减小的数值具有增加RTO的效果。本发明认识到,这个绝对不希望的结果可以通过上述的权利要求1的总的方法而被避免。
按照在权利要求11和34中描述的本发明的第二方面,加权因子(例如,在公式(7)中RTTVAR以前的g,h和特定的因子4)被做成是随时间变化的。这个特性使得对超时参量(例如,上述的RTO)的确定相对于实现通信的网络中的变化的情形灵活得多。按照这个第二方面的优选实施例,加权值是根据“正在飞行的”数据单元的数目(即,被发送的、但在任何时间点还没有被应答的数据单元的数目(也被称为未解决的数据单元的数目))而被作出的。
按照在权利要求17和35中描述的本发明的第三方面,这样来确定超时参量(例如,RTO)以使得这个参量也根据一个指示给定的发送装置和接收者之间的通信中出现的虚假的超时的数目的数值而被计算的。虚假的超时是由链路上过量的延时造成的,而不是由数据单元的实际损耗造成的。这样做的优点在于,由虚假的超时给出的含意(即,超时时间间隔太短)可被用作为计算更保守的(即,更长的)超时时间间隔的基础。
上述的三个方面优选地可以以任何适当的方式被组合。这样的组合也被称为Eifel(埃菲尔)重发定时器。本发明的有利的实施例将在各从属权利要求中被描述。
优选实施例详细描述以下的说明将是在对TCP的应用方面给出的。然而,应当指出,这仅仅是优选的例子,以及本发明可以应用到任何的、提供重发和重发超时的传输协议。
按照本发明的第一方面,当平均偏差值的数值RTTVAR被更新时,如果测量的往返行程时间值RTT小于根据所存储的平滑的往返行程时间值SRTT(老的)而被确定的预定的门限值TH,则测量的往返行程时间值RTT对更新的平均偏差值RTTVAR的贡献比起如果测量的往返行程时间值RTT大于预定的门限值时是不同的。
按照本发明的第一实施例,门限值TH等于所存储的SRTT值,以及如以上的公式所示的参量RTTVAR的计算或更新被修正为使得 数值Δ=0可被分配给公式(8.1)的上部的或下部的式子,但优选地,把它分配给上部的式子,以便确保RTTVAR随时间衰减,如果RTT成为恒定的话。
正如可看到的,RTT的负偏差(即,当RTT小于SRTT时)将被滤除。这样,可以避免在公式(6)中取Δ的绝对值的不利的影响。这在结合以下对

图1的详细的说明中将变得更清楚。
图1显示与重发超时有关的参量随时间的变化。这些参量是在TCP稳态(即在给定的发送装置与接收机之间的连接具有到它本身的一条链路)下测量的。在图的底部的图形按步长改变,它描述了往返行程时间RTT的测量的值。RTO(pa)的符号代表通过现有技术公式(4)到(7)计算的重发超时参量。数值Rexmt(pa)关系到按一般情况实施的重发定时器。这将概略地加以说明。
理论上,重发超时数值RTO和重发定时器Rexmt应当是相同的。然而,正如本发明人认识到的,TCP的现有技术实施方案事实上包含有误差,这导致在RTO与Rexmt之间总是存在有差值。这个误差是由于实际的重发定时器总是针对着最老的未解决的(即,未应答的)数据单元而启动的。然而,由于使用累积的或延时的应答,在发送特定的数据单元时,一般将不会知道这个特定的数据单元将很快就会变成为最老的未解决的数据单元。只有在对于直到所述特定的数据单元的所有数据单元的应答都已接收以后,才知道这个特定的数据单元是最老的未解决的数据单元。TCP的所有的实际的实施方案总是只有当接收到对于直到所述特定的数据单元的所有数据单元的这个应答时才启动重发定时器。因此,在该数据单元的发送和对于直到所述特定的数据单元的所有数据单元的应答消息的接收之间总是有延时δ,这导致重发定时器Rexmt大于重发超时数值RTO,即,Rexmt=RTO+δ。
这种效应的结果是,重发超时总是保守的,即,总是太长。
回到图1,在RTO(pa)与Rexmt(pa)之间的这个差值是明显的。而且,图上也显示按照本发明计算的、如以上在公式(8.1)中表示的RTO数值。
如从粗黑箭头A和B看到的,当测量的往返行程时间值RTT急剧地下降时,这导致RTO(pa)急剧地增加。这是非常不希望的,因为重发超时数值应当具有跟随往返行程时间的走向趋势。正如可以看到的,这显然是通过按照本发明的RTO的数值得到的,这些RTO数值是根据按照以上的公式(8.1)计算的平均偏差值RTTVAR来计算的。正如可以看到的,按照本发明确定的RTO的数值将会遵循着RTT的走向趋势,以及该数值总是接近于和大于RTT,其准确度如所希望的那样。
图2显示图1的放大的部分,其中仅仅显示了RTT,RTO(pa)和RTO。正如可以看到的,如按照本发明计算的RTO的数值比起按照现有技术计算的RTO(pa)具有更稳定的图形。
在以上的公式(8.1)中,被用来确定RTT应当对平均偏差RTTVAR作出怎样的贡献的门限值等于所存储的平滑的往返行程时间值SRTT。然而,本发明并不限于此,因为门限值TH通常可以是根据SRTT来确定的任何适当的数值,例如TH(SRTT)=SRTT+const(常数),或TH(SRTT)=SRTT-const(常数),其中const代表任何适当的常数值,即,一个或多或少大于或小于所存储的SRTT值的门限值,通常,TH可以是SRTT的任何适当的函数。
所以,这导致更一般的公式(8.2) 再次地,RTT=TH(SRTT)优选地被分配给上部的式子。
在以上的公式(8.1)和(8,2)中,给出用于计算RTTVAR的两个各自的替换式子。然而,同样地很可能给出更大量的替换的式子,这不单取决于测量的RTT数值和存储的SRTT数值,也取决于存储的RTTVAR数值。即,公式(8.1)的优选的变例是在为了简明和清晰起见而用伪代码写出的以下的公式(8.3)中给出的。
<pre listing-type="program-listing"><![CDATA[  IFΔ≥0 THEN   IFΔ-RTTVAR<0 THEN   RTTVAR←RTTVAR+h2·(Δ-RTTVAR)   ELSE   RTTVAR←RTTVAR+h·(Δ-RTTVAR)  ELSE   RTTVAR←RTTVAR (8.3)]]></pre>换句话说,对于RTT大于门限值的情形(在这种情形下,TH=SRTT;即,Δ=0),考虑两种子情形。如果h是在0和1之间的数值或限于这个范围的函数(通常是这种情形),则以上公式(8.3)的效应是一种“振动吸收器”特性,即,对应于RTT增加的ROT增加(ROT能以任何适当的方式被计算,正如将在后面解释的)比起对应于RTT减小的ROT减小更为快速。
最后,正如公式(8.1)的情形,公式(8.3)也可被归纳为不同于TH=SRTT(Δ=0)的门限值
<pre listing-type="program-listing"><![CDATA[  IF RTT≥TH(SRTT)THEN  IFΔ-RTTVAR<0 THEN   RTTVAR←RTTVAR+h2·(Δ-RTTVAR)  ELSE   RTTVAR←RTTVAR+h·(Δ-RTTVAR)  ELSE   RTTVAR←RTTVAR (8.4)]]></pre>在以上的公式(8.1)到(8.4)中,加权参量h可被选择为常数(h=常数)或变量值。优选地,它被选择为随时间而变化的变量(h=h(t))。更优选地,它被选择为与在给定时间的未解决的数据单元的数目N相关联。瞬时值h(t)例如可被选择为1/N(t),其中N(t)代表被发送的、但直到时间点t还没有被应答的数据单元的数目。
虽然有可能把h与N直接联系起来,但优选地使用N的移动平均值或平滑值(类似于SRTT是“带噪声的”RTT值的平滑平均值)。换句话说,可以使用未解决的数据单元的数目N的移动平均数值SN,它可被确定为SN←SN+m·N其中m是适当的加权因子。
作为找出一个表示未解决的数据单元数目的数值的另一个可能性,加权因子h可以与从TCP获知的、所谓的慢启动门限值ssthresh相联系(参照以上提到的Stevens的著作,第21.6章节),因为ssthresh事实上可被看作为未解决的数据单元的数目的平滑平均值。
慢启动门限值ssthresh传统上在避免阻塞方面被使用。避免阻塞连同着基于窗口的流程控制一起被使用,它具有两个主要参量,即,慢启动门限值和所谓的阻塞窗cwnd。避免阻塞子程序基本上以以下的方式运行- 发送窗永不大于阻塞窗和接收机的通告的窗的最小值;- 当出现阻塞时(例如,由超时所表示,或由接收到重复的应答所表示),则瞬时发送窗尺寸的一半(或某个其它的适当部分)被保存起来作为ssthresh,以及在一个超时事件中,阻塞窗被复位为一个段;- 当新的数据被应答时,cwnd增加,这要取决于cwnd和ssthresh之间的关系,即,如果cwnd小于或等于ssthresh,则cwnd在每次应答被接收时就递增一个段(这个子程序被称为慢启动),以及如果cwnd大于ssthresh,则cwnd在每次应答被接收时就递增1/cwnd(这是实际的阻塞避免)。
慢启动导致窗口尺寸的指数增加,而阻塞避免只导致线性增加。
现在返回过来确定h,通常加权因子h被选择为一个表示未解决的数据单元数目的数值的函数,即,N、SN、或sstresh的函数。可以指出,这些只是例子,以及表示(直接地或间接地)未解决的数据单元数目的任何数值都是适当的。然而,最好使用ssthresh的数值,它典型地已在通常的TCP实施方案中可提供,这样,分开的确定子程序是不必要的。
按照一个优选实施例,加权因子h然后被选择为sstresh的函数的倒数,即,h=1/(ssthresh+1)。虽然是sstresh以字节被规定的,但在本申请中,sstresh的数值是依据段被使用的,即,sstresh=1意味着sstresh的尺寸等于1段,sstresh=2意味着sstresh的尺寸等于2段,等等。优选地,sstresh的尺寸根据最大段尺寸MSS来测量,这是在初始的连接阶段期间被设置或被协商的参量。替换地,任意固定的值(诸如1024字节)可被用作为段参考。
以上的公式(8.1)到(8.4),连同着对于h的各种可能性一起,可以与以上用于确定PTO的公式(4),(5)和(7)相组合。然而,优选地,公式(8.1)到(8.4)与以下的公式(9)和(10)相组合SRTT←SRTT+g(t)·Δ (9)RTO=SRTT+w(t)·RTTVAR (10)其中g(t)和w(t)代表时间变量加权因子。
按照优选实施例,三个加权因子g(t)、h(t)和w(t)互相有关,即,h=g,和w=l/g。
通常,g和/或w可被选择为与未解决的数据单元的数目N有关,正如上面结合加权因子h说明的,即,g和/或w也可被选择为一个表示未解决的数据单元的数目N的数值(诸如N、SN、或sstresh)的函数。
更优选地,以上两个特性被组合,所有三个加权因子g、h、和w被选择为以特定的方式与N相联系,即,与可适当地选择的F的函数(其中F是N、SN、或sstresh的函数或可表示未解决的数据单元的数目的任何其它适当的数值)相联系g=1/F;h=1/F;w=F.
例如,F(N)可被选择为F(N)=N+1,从而g=1/(N+1);h=1/(N+1);w=N+1.
同样很可能根据平滑的平均SN或慢启动门限值sstresh来选择加权因子,从而g=1/F(ssthresh);h=1/F(ssthresh);w=F(ssthresh),例如g=1/(ssthresh+1);h=1/(ssthresh+1);w=ssthresh+1.
自然地,这些组合也可以使得只有加权因子g、h和w之一是时间变量,或这三个加权因子中的两个是时间变量,相应的其它的加权因子总是常数。
按以上方式选择加权因子的正面的效果可以在图3上看到,图上再次显示测量的往返行程时间值RTT;现有技术的重发定时器Rexmt(pa)和通过使用g=1/(sstresh+1)、h=1/(sstresh+1)以及w=sstresh+1并按照以上的公式(8)、(9)和(10)计算的重发超时数值RTO。正如可以看到的,使用恒定的加权参量的问题可以导致重发超时数值PTO(pa)太接近于往返行程时间值RTT,这样,在事实上就没有平滑或平均的效果。这导致不稳定的流程控制过程。另一方面,正如从代表本发明的RTO的图形看到的,本发明的重发超时数值遵循RTT的走向趋势,但保持着上述的RTT。换句话说,通过使用时间变量加权因子g、h和w,有可能避免数值RTO“落入到”RTT的数值中,这会导致通常应当避免的虚假的超时。
虽然以上的实施例是结合公式(8.1)到(8.4)描述的,但在现有技术方程(6)中,也有可能引入时间变量加权因子h(t),诸如h=1/(N(t)+1)或h=1/(sstresh+1)。自然地,也有可能把使用时间变量加权因子w(t)的方程(10)与使用固定加权因子g,h的方程(5)和(6)相组合,或把使用时间变量加权因子g(t)的方程(9)与使用固定加权因子的方程(5)和(7)相组合。通常,本发明的第二部分是选择所述三个加权因子中的至少一个作为依赖于时间的变量,优选地,是与未解决的或未应答的数据单元的数目相联系。
按照本发明的第三方面,重发超时数值RTO的确定被加以修正,以使得RTO←(SRTT+w·RTTVAR)·Φ(SPTO) (11)其中Φ(SPTO)代表一个与寄生超时的数目SPTO有关的函数。虚假的超时是由沿着发送装置与接收机之间的链路的过量的延时造成的而不是由数据单元的损耗造成的超时,换句话说,如果RTO较长,则不出现超时,因为如果发送装置等待得足够长,则应答已被接收到。
例如,公式(11)中的函数Φ(SPTO)可被选择为Φ(SPTO)=1+f·(n(SPTO)/n)(12)其中n(SPTO)代表在预定的时间间隔期间由虚假的超时造成的寄生的数据单元的数目,n代表在所述预定的时间间隔期间数据单元的总的数目,以及f是相乘的参量。f可以被选择为具有任何适当的数值,但可以发现,一个等于50或更大的数值是特别有效的。
这个预定的时间间隔可以与任何想要的方式被设置为一个固定的数值(例如被规定为2分钟的最大段寿命(MSL))或被设置为一个取决于瞬时通信的数值(例如从所述通信的开始到现在为止的、用于瞬时通信的总的通信时间)。
可以指出,一个虚假的超时可以导致一个以上的虚假的重发。例如,如果发送100个数据单元,以及有两个虚假的超时,第一个虚假的超时导致一个重发,以及第二个虚假的超时导致两个重发,则SR采取数值3/100。
按照一个优选实施例,Φ(SPTO)被选择为按以下的方式被规定的平滑值SR(再次地,为了简明起见,选择伪代码)<pre listing-type="program-listing"><![CDATA[IF″spurious time-out″THEN SR←MIN{NC,SR+0.5·(1-SR)}ELSE SR←SR·(1-(K/M))(13)]]></pre>其中MIN(x,y)等于x和y的最小值,NC是大于0的整数,即,N=1,2,3...,K是速率值,0<K<1,以及M是表示在一个周期内发送的数据单元的数目的变量。一个周期是对应于如图所示的RTT的一组上升步级(例如见在图1的约69s和92s之间的上升步级或图3的3.9s和7.15s之间的、或7.15s和10.6s之间的上升步级)。优选地,人们可再次使用这个数目的平滑平均,或可以根据慢启动门限值sstresh来把M确定为M=(ssthresh), (14)φ代表一个任意函数,优选地是
M=1.5·ssthresh2(15)NC优选地被选择为1或2,以及K优选地处在0.01与0.1之间,更优选地约为0.05。
换句话说,每次接收到应答时,确定这个应答是否表示虚假的超时,如果是这种情形,平滑的平均SR被更新为如第一替换例中表示的,以及如果不是的话,则SR被更新为如第二替换例中表示的。
正如从方程(11)看到的,当虚假的超时在一段时间内未出现时与因子Φ(SPTO)相乘逐渐使得RTO(预测值)更为有利,反之,在出现虚假的超时以后使得RTO更保守。
虚假的超时的确定可以以任何想要的方式来完成,例如像在共同待决的欧洲专利申请99100274.2中说明的那样,该专利申请在此引用,以供参考。
更具体地,虚假的超时是通过确定以下事实而进行识别的,即在给定的数据单元由于超时而被重发以后,所接收的应答不是响应于重发的数据单元而是响应于那个导致产生超时的数据单元。
确定虚假的超时的一个方法可以是使得发送装置保持一个与发送方和接收方之间的连接有关的往返行程时间RTT的记录(无论如何,这一般是已经完成了的),以及特别是使得发送装置保持一个在直到所考虑的时间点为止的通信期间(也称为对话)所找到的最短的RTT的记录。然后,如果用于重发的数据单元的应答数据单元在小于所述最短RTT的一个预定部分的时间间隔内被接收到,则发送装置确定这个应答属于原先的发送而不属于重发。这个部分可被设置为一个固定的数值,或其本身可以是自适应的参量。自然地,并不需要使与所述部分相乘的比较值是最短的测量的RTT,更有可能是发送装置保持一个平均的RTT值(例如上述的SRTT),以及这个平均值被用作为用于确定虚假的超时的基础。在这个意义上,要乘以所述部分的这个比较值通常是在连接过程中(即,在对话期间)测量的一个或多个RTT数值的函数。
确定虚假的超时的另一个可能性是使得发送装置将一个标记附加到它发送的数据单元上,其中所述标记被这样地规定,以使得它能够区分原先的发送和重发。然后,接收机因此可对应答的数据单元进行标记,这样,发送装置能够识别该应答究竟是指原先的发送还是重发。数据单元的这种标记操作可以以任何想要的方式完成。例如,理论上有可能在数据单元中仅仅指派一个单个比特,其中数值0表示原先的发送,以及数值1表示重发,或反之亦然。在通常的意义上,传输更多信息的比特串也可被选择。然而,对于提供这样的任选项的协议而言,最好使用时间印记任选项。这个任选项例如对于TCP是熟知的,可以参见上述的W.R.Stevens的著作。换句话说,最好把时间印记包括在发送的数据单元内,它表示数据单元被发送的时间。接收机然后可以在各应答消息中仅仅包括同一个时间印记,这样,发送装置具有识别该应答所指明的数据单元的独特的方法。
回到方程(11),可以指出因子Φ是用于自适应地控制RTO(预测值)的保守性的手段。换句话说,虚假的超时出现越多,RTO越保守,反之亦然。
另外,公式(11)上所示的参量w可以是固定的数值或时间变量值,就像在前面的实施例中那样,以及它优选地等于上述的函数F(例如,F=ssthresh+1),这函数F取决于表示未解决的数据单元的数目的适当的参量。自然地,结合方程(11)描述的以上的实施例可以以任何想要的方式与一个或多个方程(5)、(6)、(8.1)到(8.4)或(9)相组合。
优选地,按照方程(11)确定RTO是通过设置最大极限值和最小极限值而完成的,如以下的方程(16)所示RTO←(SRTT+w·RTTVAR)·Φ(SPTO)RTO=MAX{RTO,RTT+n·TICK}RTO=MIN{RTO,Tconst)(16)其中MAX(x,y)给出x和y的最大值,以及MIN(x,y)给出x和y的最小值。TICK代表定时器细化度(即,系统可分辨的最小的时间量),n是正整数,以及Tconst是一个用以使得RTO不会成为过大的时间上限。例如,Tconst可被选择为64秒。整数n优选地是1,这样,(16)的第二方程意味着RTO总是被确定为至少比RTT大一个时间片刻(tick)。
RTO的上限和下限的设置也可以在以上任何的其它实施例方面被利用。
下面,将描述本发明人当前认为的最好的模式的一个实施例,它是以上的方面的优选的组合。它也被称为Eifel重发定时器。更具体地,这个最佳的模式包含如下地确定RTO<pre listing-type="program-listing"><![CDATA[ Δ=RTT-SRTT (17) g=h=1/w=1/(ssthresh+1) (18)   SRTT←SRTT+g·Δ (19)   IFΔ≥0 THEN   IFΔ-RTTVAR<0 THEN   RTTVAR←RTTVAR+h2·(Δ-RTTVAR)   ELSE   RTTVAR←RTTVAR+h·(Δ-RTTVAR)   ELSE   RTTVAR←RTTVAR(20)  IF″spurious time-out″THEN   SR←MIN{NC,SR+0.5·(1-SR)}  ELSE   SR←SR·(1-(K/M)) (21)  RTO←(SRTT+w·RTTVAR)·Φ(SPTO)  RTO=MAX{RTO,RTT+n·TICK)  RTO=MIN{RTO,Tconst)(22)]]></pre>以上的参量和数值都在前面的实施例中被定义,因此不必重复这些定义和优选的数值。
这一系列的计算(17)到(22)在每次测量RTT数值时被执行。换句话说,RTO的数值对于每次RTT的测量被更新。
在以上所有的实施例中,各个计算是建立在往返行程时间值RTT的测量结果的基础上的。优选地,这些测量是对于被发送的每个数据单元进行的,这不同于已知的TCP实施方案,它一次只对一个数据单元定时,这样,平均起来每个RTT只有一个RTT测量值。被发送的每个数据单元的定时优选地是通过利用时间印记任选项完成的,正如在RFC 1323中对于TCP规定的那样。
正如一开始已提到的那样,本发明可应用于任何可提供重发和超时的数据单元通信系统,诸如TCP或类似的协议。本发明的优选的应用是无线数据单元交换通信系统,其中可供使用的带宽可以有显著的改变,这接下来又导致RTT有很强的变化。这样的系统的例子是GPRS(通用分组交换无线系统)和UMTS(通用移动电信系统)。
虽然本发明是结合具体的实施例描述的,但这些仅仅是为了向本领域技术人员解释本发明用的,而不打算是限制性的。因此,本发明的范围应该由附属权利要求来规定。
权利要求
1.在实施一个协议(TCP)的数据单元发射机中,用于确定与重新发送超时特性有关的参量(RTO)的方法,该协议(TCP)提供在数据单元被正确接收时从接收机向通信的发送装置发送应答消息的应答特性,并且在超时的时间间隔内应答没有到达发送装置时提供重新发送数据单元的所述重新发送超时特性,所述方法包括以下步骤测量往返行程时间值(RTT),该往返行程时间表示在给定的数据单元的发送与对应于所述给定的数据单元的应答的接收之间经过的时间;至少根据所存储的平滑的往返行程时间值(SRTT(old))和所述测量的往返行程时间值(RTT)来计算新的平滑的往返行程时间值(SRTT(new));至少根据所存储的平均偏差值(RTTVAR(old))、所述测量的往返行程时间值(RTT)和所述存储的平滑的往返行程时间值(SRTT(old))来计算新的平均偏差值(RTTVAR(new)),该值表示所述往返行程时间值(RTT)随时间的平均偏差;以及至少根据所述新的平滑的往返行程时间值(SRTT(new))和所述新的平均偏差值(RTTVAR(new))来计算所述参量(RTO),其特征在于,如果所述测量的往返行程时间值(RTT)小于根据所述存储的平滑的往返行程时间值(SRTT(old))确定的、预定的门限值(TH(SRTT(old))),则与如果所述测量的往返行程时间值(RTT)大于所述预定的门限值(TH(SRTT(old)))时相比较,所述测量的往返行程时间值(RTT)对于所述新的平均偏差值(RTTVAR(new))的贡献是不同的。
2.权利要求1的方法,其特征在于,所述预定的门限值(TH(SRTT(old)))等于所述存储的平滑的往返行程时间值(SRTT(old))。
3.权利要求1或2的方法,其特征在于,如果所述测量的往返行程时间值(RTT)小于所述预定的门限值(TH(SRTT(old))),则所述新的平均偏差值(RTTVAR(new))被计算为等于或小于所述存储的平均偏差值(RTTVAR(old))。
4.权利要求1到3的任一项的方法,其特征在于,如果所述测量的往返行程时间值(RTT)大于所述预定的门限值(TH(SRTT(old))),则所述新的平均偏差值(RTTVAR(new))被计算为所述存储的平均偏差值(RTTVAR(old))、所述存储的平滑往返行程时间值(SRTT(old))、所述测量的往返行程时间值(RTT)、和加权因子(h)的函数。
5.权利要求4的方法,其特征在于,所述加权因子(h)是随时间变化的。
6.权利要求5的方法,其特征在于,如果所述测量的往返行程时间值(RTT)大于或等于所述预定的门限值(TH(SRTT(old))),则所述新的平均偏差值(RTTVAR(new))被计算为RTTVAR(new)=RTTVAR(old)+h·((RTT-SRTT(old))-RTTVAR(old))其中RTTVAR(new)代表新的平均偏差值,RTTVAR(old)代表存储的平均偏差值,SRTT(old)代表存储的往返行程时间值,RTT代表测量的往返行程时间值,以及h代表所述加权因子。
7.权利要求5的方法,其特征在于,如果所述测量的往返行程时间值(RTT)大于或等于所述预定的门限值(TH(SRTT(old)))和(RTT-SRTT(old))-RTTVAR(old)≥0,则所述新的平均偏差值(RTTVAR(new))被计算为RTTVAR(new)=RTTVAR(old)+h·((RTT-SRTT(old))-RTTVAR(old))以及如果所述测量的往返行程时间值(RTT)大于或等于所述预定的门限值(TH(SRTT(old)))和(RTT-SRTT(old))-RTTVAR(old)<0,则所述新的平均偏差值(RTTVAR(new))被计算为RTTVAR(new)=RTTVAR(old)+h2·((RTT-SRTT(old))-RTTVAR(old))其中RTTVAR(new)代表新的平均偏差值,RTTVAR(old)代表存储的平均偏差值,SRTT(old)代表存储的往返行程时间值,RTT代表测量的往返行程时间值,以及h代表所述加权因子。
8.权利要求4到7的任一项的方法,其特征在于,在给定的时间的所述加权因子(h)的数值是与一个表示直到所述给定的时间为止已被发送的、但直到所述给定的时间为止还未应答的数据单元的数目(N)的数值(N,SN,sstresh)有关的。
9.权利要求8的方法,其特征在于,表示直到所述给定的时间为止已被发送的、但直到所述给定的时间为止还未应答的数据单元的数目(N)的所述数值(N,SN,sstresh)是以下的数值之一-直到所述给定的时间为止已被发送的、但直到所述给定的时间为止还未应答的数据单元的数目(N),-直到所述给定的时间为止已被发送的、但直到所述给定的时间为止还未应答的数据单元的所述数目(N)的平滑平均值(SN),以及-慢启动门限值(ssthresh)。
10.权利要求8或9的方法,其特征在于,所述加权因子(h)等于表示直到所述给定的时间为止已发送的、但直到所述给定的时间为止未应答的数据单元的数目(N)的所述数值(N,SN,sstresh)与1的和值的倒数。
11.在实施一个协议(TCP)的数据单元发射机中,确定与重新发送超时特性有关的参量(RTO)的方法,该协议(TCP)提供在数据单元被正确接收时从接收机向通信的发送装置发送应答消息的应答特性,并且在超时的时间间隔内应答没有到达发送装置时提供重新发送数据单元的所述重新发送超时特性,所述方法包括以下步骤测量往返行程时间值(RTT),该往返行程时间表示在给定的数据单元的发送与对应于所述给定的数据单元的应答的接收之间经过的时间;至少根据所存储的平滑的往返行程时间值(SRTT(old))、所述测量的往返行程时间值(RTT)、和第一加权因子(g)来计算新的平滑的往返行程时间值(SRTT(new));至少根据所存储的平均偏差值(RTTVAR(old))、所述测量的往返行程时间值(RTT)、所述存储的平滑的往返行程时间值(SRTT(old))、和第二加权因子(h)来计算新的平均偏差值(RTTVAR(new)),该值表示所述往返行程时间值(RTT)随时间的平均偏差;以及至少根据所述新的平滑的往返行程时间值(SRTT(new))、所述新的平均偏差值(RTTVAR(new))、和第三加权因子(w)来计算所述参量(RTO),其特征在于,所述第一、第二、和第三加权因子(g,h,w)中的至少一个加权因子是随时间变化的。
12.权利要求11的方法,其特征在于,在给定的时间的所述至少一个加权因子的数值是与一个表示直到所述给定的时间为止已被发送的、但直到所述给定的时间为止还未应答的数据单元的数目(N)的数值(N,SN,sstresh)有关的。
13.权利要求11或12的方法,其特征在于,所述第一(g)、第二(h)和第三(w)加权因子是依赖于时间的,以及所述第一(g)和第二(h)加权因子是相同的,以及所述第三(w)加权因子等于所述所述第一加权因子(g)的倒数。
14.权利要求12和13的方法,其特征在于,所述第一加权因子(g)和所述第二加权因子(h)等于一个表示直到所述给定的时间为止已发送的、但直到所述给定的时间为止未应答的数据单元的数目(N)的所述数值(N,SN,sstresh)的预定的函数(F)的倒数(1/F),以及所述第三加权因子(w)等于所述函数(F)。
15.权利要求14的方法,其特征在于,所述预定的函数(F)是表示直到所述给定的时间为止已发送的、但直到所述给定的时间为止未应答的数据单元的数目(N)的所述数值(N,SN,sstresh)与1的和值。
16.权利要求12到15的任一项的方法,其特征在于,表示直到所述给定的时间为止已被发送的、但直到所述给定的时间为止还未应答的数据单元的数目(N)的所述数值(N,SN,sstresh)是以下的数值之一-直到所述给定的时间为止已被发送的、但直到所述给定的时间为止还未应答的数据单元的数目(N);-直到所述给定的时间为止已被发送的、但直到所述给定的时间为止还未应答的数据单元的所述数目(N)的平滑平均值(SN);以及-慢启动门限值(ssthresh)。
17.在实施一个协议(TCP)的数据单元发射机中,用于确定与重新发送超时特性有关的参量(RTO)的方法,该协议(TCP)提供在数据单元正确接收时从接收机向通信的发送装置发送应答消息的应答特性,并且在超时的时间间隔内应答没有到达发送装置时提供重新发送数据单元的所述重新发送超时特性,所述方法包括以下步骤测量往返行程时间值(RTT),该往返行程时间表示在给定的数据单元的发送与对应于所述给定的数据单元的应答的接收之间经过的时间;至少根据所存储的平滑的往返行程时间值(SRTT(old))和所述测量的往返行程时间值(RTT)来计算新的平滑的往返行程时间值(SRTT(new));至少根据所存储的平均偏差值(RTTVAR(old)),所述测量的往返行程时间值(RTT)和所述存储的平滑的往返行程时间值(SRTT(old))来计算新的平均偏差值(RTTVAR(new)),该值表示所述往返行程时间值(RTT)随时间的平均偏差;以及至少根据所述新的平滑的往返行程时间值(SRTT(new))和所述新的平均偏差值(RTTVAR(new))来计算所述参量(RTO),其特征在于,所述参量(RTO)还根据一个表示在所述发送装置与所述接收机之间的所述通信中出现的虚假的超时的数目(SPTO)的数值(Φ(SPTO))来进行计算的。
18.权利要求17的方法,其特征在于,所述参量(RTO)是作为取决于所述新的平滑的往返行程时间值(SRTT(new))和所述新的平均偏差值(RTTVAR(new))的第一因子与取决于表示虚假的超时的数目的所述数值(Φ(SPTO))的第二因子的乘积来进行计算的。
19.权利要求17或18的方法,其特征在于,表示虚假的超时的数目的所述数值(Φ(SPTO))是1与由虚假的超时造成的数据单元重发的数目(n(SPTO))被在预定的时间间隔内重发的数据单元的总共的数目相除所得的份额和一个相乘因子(f)的乘积的和值。
20.权利要求19的方法,其特征在于,所述相乘因子(f)大于或等于50。
21.权利要求17或18的方法,其特征在于,表示虚假的超时的数目的所述数值(Φ(SPTO))是根据虚假的超时的数目而确定的一个平滑的平均值(SR)。
22.权利要求21的方法,其特征在于,这样来确定所述平滑的平均值(SR),以使得当接收到应答时,确定所述应答是否表示虚假的超时,如果是这种情形,则所述平滑的平均值(SR)的存储值被更新为整数常数(N)和SR+wsr·(1-SR),的最小值,其中SR代表所述平滑的平均值的存储值,以及wsr代表加权因子,如果所述超时不是虚假的超时,则所述平滑的平均值被更新为所述平滑的平均值的所述存储值和一个预定的因子的乘积。
23.权利要求22的方法,其特征在于,所述加权因子(wsr)等于0.5。
24.权利要求22或23的方法,其特征在于,所述预定的因子是与一个表示每个周期发送的数据单元的数目的数值(M)有关的。
25.权利要求24的方法,其特征在于,表示每个周期发送的数据单元的数目的所述数值是根据慢启动门限值(sstresh)而被确定的。
26.权利要求25的方法,其特征在于,所述数值(M)被确定为M=1.5·sstresh2其中M代表所述数值和sstresh代表慢启动门限值。
27.权利要求24到26的任一项的方法,其特征在于,所述预定的因子等于(1-(K/M)),其中M代表表示每个周期发送的数据单元的数目的所述数值(M),并K是一个满足以下关系的数值0≤K<1。
28.权利要求1到27的任一项的方法,其特征在于,对所述参量(RTO)设置所述上限和下限值。
29.权利要求28的方法,其特征在于,所述下限值至少是测量的往返行程时间值(RTT)与时间片断大小(TICK)的和值,其中所述时间片断大小是所述数据单元发射机中的定时系统能分辨的最小的时间间隔。
30.权利要求1到29的任一项的方法,其特征在于,往返行程时间(RTT)是为所述发送装置所发送的每个数据单元而测量的。
31.权利要求30的方法,其特征在于,所述参量(RTO)在每次测量往返行程时间值(RTT)时被计算。
32.可直接装载到数字计算机的内部存储器中的计算机程序产品,包括当所述产品在数字计算机上运行时用于执行权利要求1到31的任一项的方法的软件代码部分。
33.用来实施一个协议(TCP)的数据单元发射机,该协议(TCP)提供在数据单元被正确接收时从接收机向通信的发送装置发送应答消息的应答特性,并且在一个超时的时间间隔内应答没有到达发送装置时提供重新发送数据单元的所述重新发送超时特性,以及用来确定一个与所述重发超时特性有关的参量(RTO),包括测量装置,用于测量往返行程时间值(RTT),该往返行程时间表示在给定的数据单元的发送与对应于所述给定的数据单元的应答的接收之间经历的时间;以及计算装置,用于-至少根据所存储的平滑的往返行程时间值(SRTT(old))和所述测量的往返行程时间值(RTT)来计算新的平滑的往返行程时间值(SRTT(new));-至少根据所存储的平均偏差值(RTTVAR(old))、所述测量的往返行程时间值(RTT)、和所述存储的平滑的往返行程时间值(SRTT(old))来计算新的平均偏差值(RTTVAR(new)),该值表示所述往返行程时间值(RTT)随时间的平均偏差;以及-至少根据所述新的平滑的往返行程时间值(SRTT(new))和所述新的平均偏差值(RTTVAR(new))来计算所述参量(RTO),其特征在于,所述计算装置还被安排成使得如果所述测量的往返行程时间值(RTT)小于根据所述存储的平滑的往返行程时间值(SRTT(old))确定的、预定的门限值(TH(SRTT(old))),则与如果所述测量的往返行程时间值(RTT)大于所述预定的门限值(TH(SRTT(old)))时相比较,所述测量的往返行程时间值(RTT)对于所述新的平均偏差值(RTTVAR(new))的贡献是不同的。
34.用来实施一个协议(TCP)的数据单元发射机,该协议(TCP)提供在数据单元被正确接收时从接收机向通信的发送装置发送应答消息的应答特性,并且在一个超时的时间间隔内应答没有到达发送装置时提供重新发送数据单元的所述重新发送超时特性,以及用来确定一个与所述重发超时特性有关的参量(RTO),包括测量装置,用于测量往返行程时间值(RTT),该往返行程时间表示在给定的数据单元的发送与对应于所述给定的数据单元的应答的接收之间经历的时间;以及计算装置,用于-至少根据所存储的平滑的往返行程时间值(SRTT(old))、所述测量的往返行程时间值(RTT)、和第一加权因子(g)来计算新的平滑的往返行程时间值(SRTT(new));-至少根据所存储的平均偏差值(RTTVAR(old))、所述测量的往返行程时间值(RTT)、所述存储的平滑的往返行程时间值(SRTT(old))、和第二加权因子(h)来计算新的平均偏差值(RTTVAR(new)),该值表示所述往返行程时间值(RTT)随时间的平均偏差;以及-至少根据所述新的平滑的往返行程时间值(SRTT(new))、所述新的平均偏差值(RTTVAR(new))、和第三加权因子(w)来计算所述参量(RTO),其特征在于,所述计算装置还被安排成使得所述第一、第二、和第三加权因子(g,h,w)中的至少一个加权因子是随时间变化的。
35.用来实施一个协议(TCP)的数据单元发射机,该协议(TCP)提供在数据单元被正确接收时从接收机向通信的发送装置发送应答消息的应答特性,并且在一个超时的时间间隔内应答没有到达发送装置时提供重新发送数据单元的所述重新发送超时特性,以及用来确定与所述重发超时特性有关的参量(RTO),包括测量装置,用于测量往返行程时间值(RTT),该往返行程时间表示在给定的数据单元的发送与对应于所述给定的数据单元的应答的接收之间经历的时间,以及计算装置,用于-至少根据所存储的平滑的往返行程时间值(SRTT(old))和所述测量的往返行程时间值(RTT)来计算新的平滑的往返行程时间值(SRTT(new));-至少根据所存储的平均偏差值(RTTVAR(old))、所述测量的往返行程时间值(RTT)、和所述存储的平滑的往返行程时间值(SRTT(old))来计算新的平均偏差值(RTTVAR(new)),该值表示所述往返行程时间值(RTT)随时间的平均偏差;以及-至少根据所述新的平滑的往返行程时间值(SRTT(new))和所述新的平均偏差值(RTTVAR(new))来计算所述参量(RTO),其特征在于,所述计算装置还被安排成使得所述参量(RTO)也是根据表示在所述发送装置与所述接收机之间的所述通信中出现的虚假的超时的数目的数值(SR)而被计算的。
全文摘要
在实施能提供应答特性和重发超时特性的协议(TCP)的数据单元发射机中,用于确定与重新发送超时特性有关的参量(RTO)的方法和设备,其中按照一个方面,往返行程时间值(RTT)的减小的数值,比起往返行程时间值的增加的数值来说,相对于它们对平均偏差参量(RTTVAR)的影响不同地被处理;其中按照另一个方面,在确定参量(RTO)时所使用的加权值(g,h,w)被选择为使得它们中的至少一个是随时间变化的;以及其中按照再一个方面,参量(RTO)也根据表示在通信中的虚假的超时的数目的数值(SR)来进行计算。
文档编号H04L12/56GK1370361SQ00811703
公开日2002年9月18日 申请日期2000年8月3日 优先权日1999年8月17日
发明者R·路德维希 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1