在基于否定确认的协议中有效重发超时估计的方法 对照相关申请
本申请要求2001年1月18日提交的美国临时申请序号60/262,591的优先权,其教导合并在这里供参考。技术领域
本发明涉及重发超时(RTO)估算量,并且特别涉及用于估计支持相同分组的多个重发的基于否定确认(NACK)的实时流应用中的RTO的系统和方法。背景技术
通常,在数据通信网中有两种类型的支持丢失分组恢复的互联网传输协议。第一种方法是基于ACK的在传输控制协议(TCP)下提出的,其涉及响应每个接收分组发送肯定确认(ACK)的接收机。第二种方法是基于NACK在用户数据报协议(UDP)下的,其涉及响应每个丢失分组发送一个NACK的接收机。
参见图1(a),TCP对于到达接收端点的数据利用肯定确认(ACK)系统作为错误恢复机制。这个系统在仅有未确认帧应该重发的原则下运行。为确保分组被发送源安全地接收,TCP通过为每个连接管理重发定时器来使用重发超时(RTO)机制。也就是,TCP为连接设置重发定时器并且增加一个RTO值以及一个往返时间(RTT)。RTT是在TCP类型的数据段的传输开始和该段的确认的接收之间流逝的时间。如果到RTO1期满为止没有接收到确认,则TCP在下个RTO2中再次重发数据。
相反,UDP通过向发送源转发NACK分组响应丢失帧以便重发来利用否定确认(NACK)系统,如图1(b)所示。除此之外,NACK分组可以沿从接收机到发送器的路径丢失。为此,UDP利用与TCP用于重发连接类似的重发超时机制。
准确地执行RTO值估计很重要。通常地,通过基于RTT的前面的采样值预测RTT的下一个值来执行RTO估计。如果RTO估计过高,则将导致TCP中较低的吞吐量性能并且导致增加数量的实时应用中下溢出的事件。但是,如果RTO估计不足,则协议生成大量的重复分组,因更多的不必要的分组重发导致严重的网络拥塞。
下面描述基于TCP的重发超时估算量的当前标准的背景。标准由下述的两个算法组成。第一个算法,平滑RTT估算量(SRTT),是基于以前RTT采样的指数加权的移动平均数(EWMA): (1)其中RTTi表示在时间ti生成的往返延迟的第i个采样值并且α(缺省设置为1/8)表示平滑因数,可以变化以便对RTT采样的历史给出或多或少的权重。
第二种算法,平滑RTT方差估算量(SVAR),利用上述类似EWMA的公式计算RTT方差的近似值: (2)其中β(缺省设置为1/4)表示EWMA平滑因数并且VARi表示第i个RTT采样与平滑平均值的绝对偏差:VARi=|SRTTi-1-RTTi|。
最后,通过将平滑方差乘以四并且将其加到平滑往返延迟中得到RTO:RTO(t)=SRTTi+4·SVARi, (3)其中t表示RTO计算的时间,并且i=max:ti≤t。
在实时流应用,例如多媒体应用中,因为沿从接收机到发送器的路径的较低系统开销以及潜在的更快的丢失分组恢复,优选基于NACK的操作。但是,RTO估算量,如前面章节所述,典型地设计为仅适合于基于ACK的应用并且不适合于基于NACK的协议。其生成扩展数量的重复分组并且因下一个RTT值的拙劣预测导致实时流应用中后续NACK请求的生成中不必要的延迟。除此之外,基于NACK的协议没有在异构互联网情况下运行很好的通用RTO估计方案。尽管有这些缺点,许多基于NACK的协议仍应用已有的从TCP借来的RTO估计协议。
如上所述,由两个参数描述RTO估算量-重复分组数以及不必要的超时等待量。但是,这两个参数因为表示估算量的基本折衷(也就是减少一个参数将增加另一个)而不能同时最小化。因为TCP的RTO估算量被证明不适合于基于NACK的协议,所以这些协议需要采用在本发明的公开内容中描述的最佳类型的RTO估算量。发明内容
在优选实施方案中,本发明针对用于估计互联网上服务器和客户机之间的实时流应用中重发超时(RTO)的方法和系统。
根据优选实施方案,本发明提供在通信系统中用于估计重发超时(RTOj)的方法以便支持多个重发并且该方法包括步骤:从服务器向客户机发送多个数据分组;如果一个数据分组丢失,则由客户机发送一个否定确认(NACK)分组以便重发;计算对应于向服务器发送NACK分组以及从服务器接收丢失分组的对应重发之间的等待时间的往返延迟(RTTi);计算客户机的多个数据分组的临近分组接收之间的延迟(Δj)的多个采样;基于计算的延迟采样来确定平滑的分组间延迟方差(SVARΔj);以及,基于确定的RTTi以及确定的平滑分组间延迟方差来计算RTOj。
根据优选实施方案,本发明提供管理在服务器系统和客户机系统之间的通信链路上多个数据分组的传输的系统并且包括:用于接收以由分组构成的帧形式的数据分组的装置;确定在传输期间是否有任何帧分组丢失的装置;用于请求任何丢失的帧分组重发的装置;用于确定对应于请求丢失帧重发到服务器和从服务器接收到对应重发的丢失帧之间等待时间的往返延迟(RTTi)的装置;用于确定突发分组间延迟变化的装置;以及,用于基于确定的RTT以及确定的突发延迟间变化来确定重发超时(RTOj)的装置。
通过结合附图来阅读下列详细描述,这些以及其他优点对于本领域的技术人员是显而易见的。附图说明
图1(a)说明TCP通信环境中的典型的数据流;
图1(b)说明UDP通信环境中的典型的数据流;
图2说明根据本发明的系统的框图;
图3说明组成传输控制协议/互联网协议(TCP/IP)的各层;
图4(a)说明根据本发明在服务器端的用户数据报协议(UDP)的格式;
图4(b)说明根据本发明在客户机端的用户数据报协议(UDP)的格式;
图5是描述根据本发明的基于抖动的重发超时(RTO)估计的时间图;以及
图6是说明根据本发明的重发超时(RTO)估算量的操作的流程图。具体实施方式
在下面的描述中,为解释而不是限制的目的,为了提供对本发明的彻底理解提出了特定的细节,如特殊结构、接口、技术等。但是,对本领域的技术人员很显然可以在背离这些特定细节的其他实施方案中实现本发明。而且,为清楚起见,忽略了众所周知的设备、电路以及方法的详细描述以免不必要的细节影响本发明的描述。
根据本发明的实施方案,提供了用于控制在数字通信环境中数据分组的重发的机制。参见图2,使用本发明的系统10包括第一个系统12,如服务器设备,第二个系统14,如客户机设备,通过网络16的接入链路彼此通信。优选地,发明的重发机制放置在客户机系统。如图2所示,本发明可以在客户机-服务器环境中实现,但是客户机-服务器环境不是必需的。
在这个发明中,服务器系统12通过网络向客户机系统14发送至少一个源分组或突发分组。但是,在从服务器系统12到客户机系统14的源分组或突发分组传输错误或丢失的情况下,客户机系统14向服务器系统12发送一个否定确认(NACK)分组用于重发。然后,客户机系统14在定时器周期上建立限制并且如果在规定的时间周期内没有接收到请求的分组或突发分组,则向服务器系统12重发NACK分组。
应该指出,许多实时流服务器实现为在突发分组中发送其数据代替在每个规定周期内发送一个分组。这类突发传输典型地减少了与处理器之间频繁转换相关的系统开销。除此之外,突发的分组传输更适合于处理变化的分组大小并且允许每个服务器更多的同时流。但是,不需要这样。
根据本发明的实施方案,由客户机系统14通过NACK分组将接收错误或丢失的分组通知回服务器系统12。这里,利用用户数据报(UDP)。图3描述了组成传输控制协议/互联网协议(TCP/IP)组的各层。基本上,TCP提供多个异构网络上端到端的传输服务以及互联网上信息的后续分组的发送。UDP是非连接的传输协议设计利用IP服务运行并且提供信息流的最少的错误检测。在网络层,IP提供“数据报”发送服务。
图4(a)和图4(b)显示了根据本发明的UDP分组的格式。实时应用中的每个分组携带一个突发标识符,其使接收端能够从不同突发中区别出分组。参见图1(b),如果从中的源分组沿传输路径丢失,则NACK分组发送到服务器系统。系统14通过序号的间隔检测出分组的丢失。对于发送的每个NACK分组,发明的协议保持一个定时器。如果定时器期满,则重发NACK分组。为避免混淆哪个重发的相同分组实际返回客户机系统,每个NACK分组的头包含一个额外的域,它规定除了丢失分组的序号之外的重发序号计数,如图4(b)所示。因此,当对应NACK分组发送出并且正确地测量RTT时,客户机系统可以将每个重发分组与确切时间配对。
因为源分组在具有不可预测延迟的路径上发送,所以本发明不断地调整重发定时器期满的阈值。也就是,传输路径在连接存在期间改变,并且路由器(或交换机)的状态也随着网络传送的或多或少的业务量而改变。因此,本发明合并一种新的往返估计机制可用于在重发NACK分组中确定更准确的定时。与现有技术不同,到达分组之间延迟抖动的估计在本发明中用作设置重发定时器阈值的基础。
下面的描述是根据本发明的重发机制的特定算法的详细描述。在实时多媒体应用中,服务器系统12在Db期间典型地发送突发分组。这里Db基于流速率和平均分组大小。参见图5,对于每个突发j,突发的最后一个分组在时间tjlast到达客户机,并且突发的第一个分组在时间tjfirst到达。因此,对突发j的突发间延迟可以用下列等式4定义:Δf=tffirst-tklast, (4)其中突发k表示在突发j之前接收的最后一个突发(除非有分组丢失,k=j-1)。对于每个突发j,使用类似TCP中的EWMA公式,如下列等式(5)和(6)定义的计算平滑突发间延迟SΔj以及平滑突发间延迟方差SVARΔj: (5)以及 (6)其中α1和β1表示指数权重并且VARΔj表示对其平滑形式SΔj-1的绝对偏差Δj。这里,SΔj典型地正比于突发期间Db,并且因此其在具有不同突发期间的实时应用中不能以同样的方式使用。但是,平滑方差SVARΔj相当独立于突发期间并且反映沿从服务器到客户机的路径的路由器队列中交叉业务量的数量的变化。
通过传输延迟以及其来自等式(6)的延迟变化,如果Tj是当客户机生成突发间延迟Δj的第j个采样时的时间(理想地,Tj等于tjfirst),并且ti是当客户机计算第i个RTT采样RTTi的时间(后面解释),则根据本发明在时间t的有效的基于抖动的RTO是:RTOJ(t)=n*RTTi+m*SVARΔj, (7)其中i=max:ti≤t并且j=max:Tj≤t。
而且,在RTT测量值之间有更长延迟的情况下,可以提供等式(7)的稍微改变以便更好地估计RTO。这个更好的估算量,称为RTOJD,可以通过将最后的RTT采样(也就是ti)的时间与估计RTO的时间(也就是t)之间的持续时间合并到RTOJ估算量中来创建:RTOJD(t)=(n+k(t-ti)*RTTi+m*SVARΔj, (8)其中i=max:ti≤t,j=max:Tj≤t,并且t和ti的时间单位是秒。
应该指出,在前面章节描述的两个基于抖动的RTO估算量,当α1=0.5,β1=0.25,k=0.5,并且m=4.2792*n-2.6646时获得最优性。剩余的空闲参数n可用于在每个应用的基础上改变想要的重复分组数:较高值的n对应较少的重复分组。n的建议值在1和4之间。应该指出,频繁的延迟抖动采样被证明在基于NACK的RTO估计的微调中非常有用并且可用做未来RTT中变化的很好的预测器。
应该指出,用于确定重发超时(RTO)的本发明的估算量可利用处理器、微机、特定用途集成电路(ASIC)、可编程设备、或设计和运行以便提供这里所述功能的其他设备来实现。图6中显示了估算量的主要操作流程图,如下面解释的。
参见图6,每个分组插入估算量算法,跟踪两个量:往返延迟估计(RTT)以及突发间延迟抖动的方差(SVARΔ)。在步骤600,每个分组在客户机系统接收。如果有丢失的分组,则在步骤610每个分组的NACK分组就发送到服务器系统。在这种情况下,记录请求分组(i)重发的每个NACK分组的传输时间nacki,然后在步骤610设置发送后续NACK分组的定时器。同时,如果数据分组的重发从服务器到客户机系统可靠地完成了,则在步骤620计算往返延迟(RTT)。
根据本发明的实施方案,在实时会话中的接收机必须周期性地测量往返延迟。客户机系统通过利用分组丢失来测量往返延迟来获得RTT测量值-每个成功恢复的分组提供一个RTT采样。也就是,RTT是发送NACK和接收相应重发之间的持续时间。替代地,在网络分组丢失太慢的情况下由客户机通过获得往返延迟的额外采样测量RTT。为这个目的,如果分组丢失落到低于某个阈值,则客户机周期性地向服务器发送模拟重发请求。响应这些模拟NACK,服务器向客户机发送需要的分组。
在步骤630,确定接收的分组是否与前面接收的分组一样属于相同的突发。如果不同,则在步骤640,如等式4所述计算突发间延迟。在客户机端在突发的第一个分组和前一个突发的最后一个分组的接收之间测量突发间延迟。为了在不同突发之间区分并且利用等式(4),在步骤650,系统记录最后接收的分组的参数。
接着,突发间延迟采样被平均进平滑突发间延迟(SΔ)估计值,然后其用于控制重发超时参数(RTO)。利用步骤660,对于每个突发,在步骤670和680分别计算平滑的突发间延迟以及平滑的突发间延迟方差。执行步骤670来更新平滑的突发间延迟值,其用于在后续计算过程中确定方差。这些步骤根据等式5和6执行。因此,随着加入每个新的分组,平均值和方差改变。
最后,在步骤690计算重发超时机制(RTO),其是一个提示未恢复的数据重发的超时。因在基于NACK的应用中RTT采样之间的大间隔,最后的RTT采样与未来的往返延迟的值有最大的相关性。一旦分组(i)的定时器期满,客户机系统14就重发NACK分组,nacki,并且为分组(i)的另一个RTO时间单元设置定时器。n的建议值是在0和4之间,并且m的值设置为m=4.2792*n-2.6646。
总而言之,本发明提供了一种新的RTO估计机制,当在基于NACK的协议中使用时,其在已有的RTO估计算法上获得了显著的性能提高(也就是,更少的重复分组以及更少的不必要的等待时间)。如所描述的用于管理数字通信链路上重发的优选实施方案,对于本领域的技术人员显然系统的某些优点已经获得。前面的描述仅是要构建作为本发明的一个说明性实施方案。因此,本领域的技术人员可以很容易地想象在不违背本发明的基本原则和范围的情况下替代的方案可提供与本实施方案类似的功能。