Tcp中基于接收器的rtt测量的制作方法

文档序号:7632449阅读:769来源:国知局
专利名称:Tcp中基于接收器的rtt测量的制作方法
技术领域
本发明涉及包数据传输,特别涉及在互联协议(IP)网络上使用传输控制协议(TCP)的数据传输。TCP通过其综合拥塞(congestion)和流控制机制来使网络稳定。此外,比如,从US 6,298,041 B1可获得TCP和IP网络的信息。
背景技术
通常TCP发送速率由发送器控制,但在接收器知道所用链路和位速率的场景和环境中,值得让接收器在某种程度上控制发送器的数据传输速率。要应用本机制,接收器需要知道往返时间(Round Trip Time(RTT))的值来控制或限制发送器的位速率。于是,发送器不再需要自己来探查可用的位速率,这通常会导致包丢失的代价而且不如接收器的信息准确。
TCP发送器的发送位速率是由称为拥塞窗口的滑动窗口控制的。发送器发送数据和接收累积应答。未完成(outstanding)数据是发送器已经发送、但还没有收到其应答的数据。发送器允许未完成数据总量等于拥塞窗口的当前值。因为通常是在数据被发送的一个RTT后得到应答,允许的发送位速率B_send可从RTT和拥塞窗口大小cwnd计算而得,即B_send=cwnd/RTT。这些典型值的一个例子是RTT=100ms和B_send=64Kbit/s。
服务器的拥塞窗口根据收集的网络信息进行动态调整,例如,在有包丢失的情况下,TCP发送器认为网络中存在拥塞,则缩小窗口。在无包丢失的情况下,窗口稍微和有规律地增大。然而,TCP用来控制数据包发送的窗口,是拥塞窗口和另一个接收器所告知(signal)的称为通告(advertised)窗口awnd的窗口大小的最小值。这通常用作TCP的流控制特性,也就是确保快速的TCP发送器不会发送多于接收器所能接收的数据。
总之,接收器可以通过使用综合流控制和发送带有从RTT和最大发送位速率计算而得的值的通告窗口,限制TCP连接的发送器的发送速率上限。
如果只有一个连接者有数据要发送,在TCP连接中接收器的RTT测量只可能在连接初期进行(TCP以3路握手开始)。接收器在连接建立时可进行的测量并不准确,因为它是基于小控制包(通常大约40字节)的。数据包在尺寸上要大很多,例如1500字节,因此RTT通常比就小控制包而言要高得多。
考虑这种情况,接收器在连接建立时可进行粗略的RTT测量,但此后不再有更多的RTT信息。因为在IP网络中RTT通常是动态和可变的,接收器应该更频繁地收集RTT信息,以对发送器的发送位速率进行可靠控制。
如上所述,TCP连接的接收器可通过以通告窗口的形式来告知上限,来控制发送器的发送位速率。但是,为了计算要告知的通告窗口,接收器需要测量RTT。测量值越好并且越准确,则窗口计算也越好并且在发送器采用窗口尺寸后链路使用越好。

发明内容
本发明提供了一种数据包接收器以快速和可靠方式来进行往返时间(RTT)测量的方法,如权利要求1所述。方法的优选实施例服从各个附带的权利要求。根据本发明的方法,接收器确定在触发新数据包传输的发送应答和接收到所触发数据包的时刻之间的时间间隔。若本测量机制在正常基础上完成,它为接收器提供了相当好的RTT估计。


下面,将参照所示附图更详细地描述本发明图1是展示在开始RTT测量之前的若干个示例性要求的流程图。
图2-4 从发送器到接收器的示例性数据包传输,展示了在开始RTT测量之前的若干个示例性要求,和图5根据本发明的RTT测量的流程图。
具体实施例方式
与发送器通过网络有TCP连接的接收器可通过发送应答给发送器和等待接收此应答触发的数据包来开始RTT测量。但是,接收器在开始RTT测量之前应确保若干个要求得到满足。下面,将描述若干个示例性要求。
为了进行下列描述,数据包由典型长度为40字节的头部组成,这个头部含有表示此段中第一个数据字节的序号域。这个值可作为其数据包的标识符。含有头部和数据的TCP包的典型长度是1500字节。通常,本领域的技术人员都知道应答中含有awnd值和应答的发送器希望收到的数据包的序号,称为应答号。
之后的图1A中展示了一般要求和图1B显示了一个实例。对于相关的要求,选择了其后带有单独标识A或B的相同标号,以帮助理解。
作为开始之后的第一个要求R1(图1的步骤100),接收器要确保发送器是流控制(通过通告窗口awnd,见步骤200A)且它不再处于TCP缓慢开始阶段。在TCP缓慢开始阶段,会出现数据包的突发(burst),因此RTT测量受到干扰。确保这个要求的简单和稳妥办法是一直等到接收到若干个数据包为止。在发送了总量为2*awnd-1的数据包(见图1B的200B)之后,或者是发送器的窗口达到awnd,或者是发送器已经到达了之前的拥塞避免阶段。对于这里和以后说明来讲要注意的是,变量awnd是以段(segment)为单位,而在实际的TCP中,变量awnd和cwnd是以字节为单位。
如果,例如,在接收了10个包之后,考虑到awnd的值是10个数据段,可认为发送器已经不再处于缓慢开始阶段了。
在图2中,此要求以示例性方式进行了展示。这里awnd=5段,从左到右的线代表从发送器到接收器的数据包,中间的数字是序在号(这只是例子,因为在实际中SN是以字节表示的)。右边轴上的数字是SN_ack的值。
图中显示出等待2*awnd-1=2*5-1=9个包(直到SN=10的包到达)与发送器处于流控制是同时的。这意味着每个ACK包只在发送器处触发了一个数据包。这里使用的例子中的第一个包是编号为10的包。
第二个要求R2是接收器必须能够估计出当前应答将在发送器处触发的数据包的序号。也就是说,接收器能够计算SN_exoect的值(步骤300A)。若通告窗口awnd没有因为预定的包数量而增大的话,此检查(check)完成,增大通告窗口值的副作用是可能在发送器处出现包突发。这也会干扰RTT测量和错误地增大其值。
在图3中,awnd值从5变到7,并且根据此要求不能对后续的7个包开始RTT测量。右边轴上的数字现在代表以包的数目表示的awnd值。原因是接收器无法确定SN_expect的值。图中也显示了发送器所传输的包的突发,因为更高的处理次数,它会干扰本测量。这些影响不一定会持续x=awnd数量的包,但是该数量是安全限值。
代表第三个要求R3的进一步查询400A是进行检查ACK是否在TCP发送器处触发了新数据包(步骤400A)。这意味着执行查询看awnd值是否已经减小(步骤400B)。若是,则不能对预定数量的后续数据包进行RTT测量。若存在另一个减小,则决定等待额外数量(awnd_old-awnd_new)的包(步骤450B)。
在图4所示的例子中,右边轴上的数字再次代表awnd的值。在某个时刻,该值从5变到3。这意味着不能对5-3=2个包开始RTT测量。图中清楚地显示出原因,因为更小的窗口尺寸,直到在发送器方收到2个新ACK,才触发新的TCP包。要注意的是,当要求没有满足时,不能依据ACK开始RTT测量。尽管,到来的数据包可用于先前已开始的RTT测量。
只有当上述所有要求R1-R3都满足时,如步骤500A、B所示,接收器依据当前应答开始RTT测量。对于进行RTT测量,要执行图5中所示的步骤。
在步骤510中,将当前接收的数据包的应答从接收器发送到发送器。此外,如步骤520所示,存储应答发送的时刻T_ack。在步骤530中,确定了预期数据包的序号SN_expect,它表示当前应答所触发TCP数据包的第一个字节的序号。预期序号的计算如下SN_expect=SN_ack+(awnd-1)*MSS其中,SN_ack是当前应答的应答号,MSS表示以字节为单位的最大段长度。
在接收器方,步骤540中,在T_ack后所接收的所有数据包的序号SN_data根据这样的条件进行比较SN_data SN_expect。
若此条件为假,接收器等待下一个接收的数据包。若此条件为真,执行下一步骤550,存储实际时刻T_now。在下一个步骤560中,可进行这样的RTT计算RTT=T_now-T_ack。
一般而言,只要满足图1所示的要求,在图5流程图中描述的RTT测量可根据所需频度反复进行。
权利要求
1.一种在数据包接收器中进行往返时间(RTT)测量的方法,该数据包接收器通过网络使用传输控制协议(TCP)来与发送器通信,所述方法包括下列步骤发送当前所接收数据包的应答到发送器,当发送应答时测量第一时刻,在发送器方触发预期数据包的传输,当接收预期数据包时测量第二时刻,和根据所测量的第一和第二时刻计算RTT测量值。
2.如权利要求1所述的方法,其中,RTT测量只有当发送器未处于缓慢开始阶段时才进行。
3.如权利要求1所述的方法,其中,RTT测量只有当从接收器告知发送器的流控制变量以预定数量的接收数据包保持恒定时才进行。
4.如权利要求1所述的方法,其中,接收器向发送器指出发送速率的上限。
5.如权利要求1所述的方法,其中,发送速率由作为流控制命令的通告窗口大小来控制。
6.如权利要求5所述的方法,其中,发送位速率由动态变化拥塞窗口来控制。
7.如权利要求5和6所述的方法,其中,控制发送位速率与拥塞窗口和接收器告知的通告窗口的最小值保持一致。
8.如权利要求1所述的方法,其中,根据当前应答数据包的序号SN_ack、通告窗口awnd和最大段长度MSS,按照下面的公式计算预期数据包的序号SN_expect=SN_ack+(awnd-l)*MSS。
9.如权利要求4所述的方法,其中,当通告窗口awnd已减小时,阻塞RTT测量,直至收到额外数量(awnd_old-awnd_new)的包为止。
全文摘要
一种在通过网络使用传输控制协议(TCP)与发送器通信的数据包接收器中进行往返时间(RTT)测量的方法,所述方法包括发送当前所接收数据包的应答到发送器、当发送应答时测量第一个时刻、在发送器方触发预期数据包的传输、当接收预期数据包时测量第二个时刻、和根据所测量的第一和第二个时刻计算往返时间这些步骤。
文档编号H04L29/06GK1467953SQ03141189
公开日2004年1月14日 申请日期2003年6月6日 优先权日2002年6月18日
发明者费尔南多·伯佐萨, 费尔南多 伯佐萨, 黑肯伯格, 罗尔夫·黑肯伯格, 克林纳, 托马斯·克林纳, 伯迈斯特, 卡斯滕·伯迈斯特 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1