通信方法

文档序号:7615715阅读:494来源:国知局
专利名称:通信方法
技术领域
本发明涉及一种用于控制发送方和接收方之间的通信的方法,该发送方和接收方依照所谓的传输控制协议或TCP工作。
背景技术
面向数据单元的通信是众所周知的。在面向数据单元的通信中,许多数据被划分成一个或更多的数据单元,其中数据单元的结构是由通信协议定义的,通信中的发送方和接收方遵守该协议。协议还定义了特定信息是如何编码的以及发送方和/或接收方如何对特定信息作出反应。面向数据单元的通信也被认为是分组交换通信。应当指出连同特定协议被使用的数据单元有不同的名字,例如分组,帧,段等。出于本发明描述的目的,术语“数据单元”将一般地指在面向数据单元通信中使用的各种类型的单元。
许多通信协议使用来提高可靠性的一个特性是确认接收到的数据。更特别地,给定协议的发送方或发送对等体发送出数据单元,给定协议的接收方或接收对等体通过返回合适的确认数据单元确认正确接收。这样,发送对等体被通知发送的数据单元也被正确接收到,以及可以因此调整后续更多将被发送的数据单元的流量控制。使用确认数据单元的协议的一个例子是所谓的传输控制协议(TCP),其是TCP/IP协议簇中的一部分。
传输控制协议和TCP/IP协议簇在由W.Richard Stevens,AddisonWesley编写的“TCP/IP图解说明,卷1-协议”中得到了很好的说明。
为了应付数据单元或确认数据单元可能会丢失的情况,在许多协议中提供了超时特性,这样的超时特性意味着在数据被发送时设置一个超时时段,如果在超时时段已到时特定数据还没有被确认的话,则开始超时响应程序。在TCP中,超时响应包括重新传输没有得到确认的数据,以及重新设置一个或更多的流量控制参数。
举一个例子,TCP使用基于窗口的流量控制。TCP是面向字节的协议,将要发送的给定数目的字节划分为所谓的段,以及发送数据的记录按照字节被保存,即数据已发送多达哪个字节,以及接收数据的记录同样按照字节被保存,即数据接收到多达哪个字节。控制该段的流连同确认消息的最简单的方法是发送一个段且直到前一次发送的段被确认后才发送下一个段。不过,这样的流量控制的方式不会是非常高效的。已经提到的是,TCP使用基于窗口的流量控制,这也被称作为依据滑动窗的流量控制。这个概念同样已经在由W.Richard Stevens编写的前面提及的书中得以很好的描述。
图2说明滑动窗的概念。正如所看到的,在例子中共计8192字节的量将要被发送,其被划分为8个段。依照发送窗口控制段的发送,其中发送窗口的左端由已经被发送且已经确认的段中的数据来定义。在图2的例子中,是已达到2048字节的数据,即段1和2。发送窗口长度的调整,以及由此窗口右端的调整是控制过程的事,在这儿不必解释得太详尽。
发送窗口定义了允许其对应的确认未完成的数据的数量。在图2的例子中,该数据达到4096字节,即段3和4已经被发送但还没有被确认,这种已发送但未被确认的段和发送窗口右端间的差别定义了可用的窗口,即没有收到进一步确认依然可以发送的数据。其结果是,在图2的例子中,段5和6依然可以被发送,但段7和8只有在窗口向右移动时才能被发送,如果确认进一步的段使得左端向右移动以及/或发送窗口的长度增加的话,窗口右移的情况就会发生。
此外,应当指出的是TCP提供连续的确认,即在段和段的确认之间不是一一对应的,这是因为一个确认消息可以覆盖多个段。举个例子,用于接收图2所示数据量的接收对等体可以发送对长达4096个字节的一个确认,使得这个确认消息将覆盖段3和4。
由发送对等体使用的发送窗口典型地由所谓的提供窗口或通告窗口来确定,这是由接收对等体向发送对等体提供的一个数据长度。这样,接收对等体可以影响发送对等体一次发送多少段,以及典型地基于接收对等体的接收缓冲区计算出通告窗口。同样,通告窗口是一个动态参量,可以随着由接收对等体发送的每一个确认而发生变化。
除了通告窗口之外,同样知道定义了所谓的拥塞窗口,它结合几个拥塞控制例程例如慢启动,拥塞避免,快速重传和快速恢复一起使用,又一次见由W.Richard Stevens编写的前面提及的书。拥塞窗口是发送对等体保存的一个记录,它是用来考虑沿着发送对等体与接收对等体之间连接的拥塞的。作为典型的控制机制,发送窗口将被定义为通告窗口和拥塞窗口中较小的那个。
通告窗口是受接收对等体影响的流量控制,而拥塞窗口是受发送对等体影响的流量控制,它作为考虑拥塞的一种机制。
在一般意义上,拥塞窗口是自适应流量控制参数的一个实例。在TCP中,前面提及的超时响应在于将拥塞窗口重新设置为一个段并且然后只发送一个段,即重传没有得到确认的段并且因此引起超时。于是发送对等体等待该重传段的确认。
自适应流量控制参数的另外一个实例是超时时段本身,例如在TCP中,这被称作为RTO(重传超时),RTO作为对一个超时的响应而被加倍。
正如已经提及的,超时特性是一种对数据丢失的检测机制。也存在其他的数据丢失检测机制。另外一个实例是在TCP中响应接收到重复的确认而重传数据单元。这种机制将在下面加以简单解释。
正如已经提及的(见例如图2),要被发送的数据量被划分为一个序列。传统的TCP实现中,如果接收对等体已经接收并且确认直到给定字节数的一定数据量(一定数目连续的段),则期待序列中的下一个数据。例如,如果一直到段4为止的段已经被接收到,那么段4被确认并且接收对等体期待接收段5。如果接收对等体然后接收到另外不同于段5的数据单元(例如段6,7和8),则接收对等体为接收的每一个数据单元继续确认段4。其结果是,接收对等体接收了两份重复确认。通常TCP以这样一种模式实现接收对等体将计数重复确认的次数,并且如果达到一定的阈值(例如3),则重传序列中接收到重复确认的数据单元的下一个数据单元。
WO98/37670描述了一种用于在具有有损链路的网络中改进传输协议性能的方法。据说通信中的常规发送方通过重复确认的到达或者通过在一个超时间隔内无确认,来识别一个分组已经由于拥塞而丢失。在发送方中进行对拥塞做出反应的合适的控制方案,诸如慢启动、快速恢复和快速重传。WO98/37670进一步指出当被传送的分组由于拥塞以外的原因而未被接收到时,拥塞补偿措施可以是有害的。
WO98/37670建议使用选择性确认来指示哪些分组被成功接收而哪些分组是带有非拥塞比特错误被接收的,同时抑制重复确认以防止调用拥塞机制。
H.Balakrishnan等的文章“用于改进无线链路上的TCP性能的机制比较(A comparison of Mechanisms for Improving TCPPerformance over Wireless Links)”,IEEE/ACM Transactions onNetworking,Vol.5,No.6,1997年12月,XP-000734405,描述了一种与WO98/37670相似的方案。除了选择性确认外,此文章还提及了显式丢失通知(ELN)。本发明的目的是改善TCP发送方和TCP接收方之间的通信。

发明内容
这个目的通过所要求的方法得以解决。
依照本发明,通信中发送方将执行响应程序来响应触发数据丢失检测机制的事件,其中响应程序包括至少两个不同的模式用于调整流量控制中使用的自适应参数。这样本发明的方法和设备在管理触发事件上具有很高的灵活性,以及特别是可以以依靠触发事件的各种潜在的原因而选择响应程序的方式来实现,以致于可以调用针对特定态势的正确响应策略并因此避免实际上有可能在触发数据丢失检测机制后造成恶化态势的策略。
数据丢失检测机制是一种能够检测到数据丢失的机制。实例是超时机制或重复确认机制。
依照当前描述的实例,响应程序包括至少两种不同的模式用于调整流量控制中使用的自适应参数。举个例子,有两种模式,各自与超时的不同原因或预定的重复确认次数(例如前面提及的3)有关。更特别地,第一种模式与数据单元的丢失有关,以及第二种模式与沿着连接的过度延迟有关。由于使用了两种不同的模式,所以可能调整参数,使该参数对超时或重复确认的原因是适合的。因此,流量控制程序将包括一个或更多的评估和判断步骤,触发事件将在其中得以鉴定,例如对关于引起事件的原因进行分类。然后,依赖这个特征的结果,会激活一个合适的响应程序。在上述例子的情况下,如果确定超时或重复确认是由于数据单元丢失而引起的,那么已知的对数据单元丢失的响应程序可能会运行,例如从传统TCP就已知道,该协议假定任何超时或接收到几个重复确认是由于数据单元丢失而引起的。然而还有第二种模式,以及如果确定超时或重复确认是由于沿着连接的过度延迟而引起,那么运行过度延迟响应程序,这将典型地不同于针对数据单元丢失的响应程序。
更特别地,将在下面更为详细介绍的是,可通过降低传输速率因而避免进一步拥塞来对数据单元已经丢失的判定进行回答。另一方面,如果沿着连接发生过度延迟,那么为响应假定的数据单元丢失而采取的策略将毫无作用,相反这些策略可能会实际上加剧过度延迟引起的问题。因此,过度延迟的响应程序将典型的不同,以及例如包括将传输速率保持在早先的级别上,但另一方面增加超时时段,从而避免了更多的不必要的重传。
自然地,系统可以实现为提供任意数目的模式或针对各种触发事件原因的响应程序。模式的数目和各种模式所采取的特定的策略自然地依赖于特定的态势,即所选择的协议,给定的通信状况等。
上述实例的一个重要方面是虽然数据丢失检测机制能够检测到数据丢失,对数据丢失检测机制触发的反应不会假定数据丢失必然会发生,相反的是可能有灵活的响应,它可以考虑触发事件的各种原因。


本发明的各方面和优点从下面的详图描述应得到更好的理解,参照图表,其中图1示出了一个控制程序;图2是用于描述基于窗口流量控制概念的说明图;图3是用于解释所描述实例优点的图表;以及图4是解释可能在两台主机之间的连接中引起过度延迟的态势的说明图。
具体实施例方式
虽然下面的描述一般针对使用数据确认以及同时提供超时特性的任何通信协议,通常还将给出涉及来自TCP/IP协议簇的传输控制协议TCP的例子。本发明是针对一种应用于TCP发送方和TCP接收方的方法。为了避免任何不必要的重复,该应用介绍中的公开内容被引入到本发明的公开内容。
图1显示的是传输控制方法的实例的部分流图。正如可以看见的,步骤S1表明进入响应程序。图1没有显示作为此点先导的流量控制程序,因为它并不重要。举个例子,它或许是结合图2加以解释并且例如从TCP已知的基于窗口的流量控制程序。只有具有数据确认和数据丢失检测特性是重要的,因此协议的发送对等体具有检测可能的或潜在的数据丢失的能力,以及可以实施相应的响应程序。正如已经提及的,数据丢失检测特性或许例如是超时特性或重复确认检测特性。
在图1的例子中,在响应程序被进入后,在步骤S2中存储用于流量控制的所选自适应参数以及重新设置到预定值。举个例子,超时时段和/或前面所述的拥塞窗口都是这样的自适应流量控制参数。在传统的TCP中,拥塞窗口典型地被重新设置为一个段的值以及同时RTO加倍。应该指出不是所有在流量控制程序中使用的自适应参数事实上都需要被改变,相反只是其中经过选择的数目需要。
同样,显然本实例自然并不局限于基于窗口的流量控制以及相关的自适应参数,相反本实例适用于任何流量控制原理以及相关的自适应参数。
回到图1,在步骤S3中触发事件(例如引起超时)的数据单元被重传。换句话说,当继续超时的例子时,在超时时段过程中没有接收到确认的数据单元被重传。然后,在随后时刻在步骤S4中确定和被重传数据单元相关的确认是否已经被接收到。这或许是累积确认或也可能是单个确认。应该指出图1中虚线显示的是其他或许会插入的步骤,但这些对本发明来说并不重要。然后,依据图1中的例子,步骤S5确定和被重传的数据单元有关的确认事实上是否确认了数据单元的初始传输或重传。应该指出“初始传输”可能已经是一个重传,这样重传可能是重传的重传等。实现步骤S5有各种可能,这将再深入解释。
如果步骤S5确定事实上确认消息确认了数据单元的重传,那么程序继续到步骤S7,在这一步骤中运行数据单元丢失响应程序,这是因为判定步骤S5的输出值为否表明丢失了数据单元的初始传输。在TCP的例子中,步骤S7将在于针对数据单元丢失的传统策略中。
相反,如果判定步骤S5回答为肯定,那么程序继续到步骤S6,在这一步骤中运行确认过度延迟的响应程序。换句话说,因为步骤S5表明事实上数据单元的初始传输没有丢失,但只是过度延迟了,必须采取相应的策略。举个例子,当把TCP作为协议实例时,在于将拥塞窗口返回到在步骤S2中存储的值以及另一方面使超时时段适应于延迟。换句话说,和初始传输有关的往返行程时间RTT以及对初始传输的确认可以用作调整超时时段的基础。因此,由于过度延迟引起的更多的不必要的重传和超时或重复确认可以避免。
拥塞窗口不是被简单地重置成先前的值,而是相反如果响应程序还没有发生的话,即还没有触发数据丢失检测机制,则该值被设置为已假定的值。
正如可以看到的,图1的例子说明包括步骤S2,S3,S4,S5和S7的第一模式,以及包括步骤S2,S3,S4,S5和S6的第二模式。
现在将参照图3,该图说明了一个流量控制过程的例子,该过程连同传统的TCP一起实施。图表说明了以字节为单位随着时间过去而传送的数据的数量。正如可以看到的,头两个段在时间t=4s时被发送。然后由于接收确认数据单元和没有显示的自适应参数的调整的相互作用,段被发送。
出于解释的目的,应该指出菱形符号指段,以及方形符号指确认数据单元。菱形符号指出段的第一个字节,而方形符号指出最小的没有确认的字节。在某个段水平上指示的确认数据单元总是确认直到该段水平的已发送段。换句话说,在6400(t=12s)字节段水平的确认是对低于6400字节的段的确认,但不包括6400字节。恰恰相反,正如图中明确指出的,位于字节6400的段(t=10s)是引起超时的数据单元或分组。其结果是,执行了在6400字节水平的数据单元的重传。
现在,如果假定图3所示的超时是由过度延迟引起的而不是由所示丢失的第一分组所引起的,那么重传具有以下负面的影响。
首先,它将导致降低的吞吐量性能,这是由于同样的数据必须穿过连接或连接路径两次,这将浪费那些否则已经用于有用数据的带宽。这个负面的影响将在任何通过重传数据单元而错误响应超时的协议中产生。
如果,正如图3所示,使用了TCP协议,则发送对等体对不是由于数据单元丢失引起的超时的反应是特别不利的发送方将重传所有未完成确认的分组,这会降低其传输速率。在图3中已清楚地对其加以说明。
应当指出上述不是由于数据单元丢失引起的超时也被称作为假超时。
同样正如图3所示,在传统的TCP中发送方将所有和重传数据单元相关的确认误释为对重传的确认,即便这些确认(ACK)实际上是延迟的初始传输确认。
图3没有说明的是,由发送对等体发送的重复数据单元附带地将触发接收对等体的重复确认,这将导致传统TCP发送方传输速率的另一种降低,即拥塞窗口被设置为其先前值的一半。
超出TCP超时时段可以解决的范围之外的过度延迟的出现,或许特别地出现在无线网络中或这种其至少一部分运行在无线链路上的协议连接中。本申请的发明人认识到假超时在这样的网络中通常会很经常地发生,以致于产生性能严重降低的结果。现在将简要地论及这样的实例。
图4说明了一种情况,在这种情况中两台主机计算机充当TCP(由在该图底部和顶部的主机到主机的长箭头来指出)的对等体。较低的协议层包括无线接入网络到互联网的无线链路。没有显示互联网和右边主机之间的连接。用于无线链路的协议的一个实例是所谓的无线链路控制协议RLC。正如图4所表明的,传输层协议(例如TCP)和链路层协议(例如RLC)均具有ARQ(自动重传请求)功能。这意味着这些协议都能实现超时和重传功能。在图4的情况中,由于ARQ正在链路层被使用,所以在链路层和传输层之间产生了竞态情况当链路层重传数据时,传输层重传计时器或许会到时,从而导致假超时。在链路层上的重传可以是由于例如传输错误或切换导致的数据丢失。
应当指出无线网络上的传输延迟通常是传输层协议中的发送和接收对等体之间端对端延迟中的相当大的一部分。如果在这种情形下,在无线网络中传输层连接的可用带宽在一段短时间上显著降低,则所引起的传输层发送方和接收方之间端对端延迟的增加会导致假超时。带宽降低的实例包括移动主机执行切换到一个小区,该小区提供的带宽小于旧小区带宽。
正如前面已经指出的,当使用本发明时,可以避免结合图3所描述的问题。更特别地是,将结合图1所描述的方法应用到图3所描述的问题时,则发送对等体能够区分对数据单元初始传输的确认数据单元和对数据单元重传的确认数据单元。从这一信息,发送方能够确定是否发生了假超时,或是否真正地存在数据单元丢失。该发送方然后可以相应作出反应。
更特别地,在图3的实例中,使用本发明的发送方将能够把在已重传所示的第一分组之后接收到的确认数据单元识别为初始传输(t=10s)的确认而不是重传(t=15s)的确认。由于这个原因,发送方将对过度延迟执行一个合适的响应程序,即不重传第一个重传数据单元之后的那个数据单元,以及同样不会降低传输速率,相反发送方将提高以数据单元初始发送和该初始发送的相应确认数据单元接收之间测量的延迟为基础的流量控制中所使用的超时时段。这样,可以避免另外的假重传和超时。
正如可以看到的,所述实例能够提供一种机制,在使用提供数据确认和超时功能或重复确认检测功能的一种协议时允许更为灵活的通信系统。在刚刚描述的实例中,本发明能够鉴定触发事件,即区分至少两种不同的原因,以及然后能够调用合适的响应程序。应该指出在上述实例中,用于调整自适应参数的模式一方面与数据单元丢失有关,另一方面与过度延迟有关。用于调整自适应参数的模式可与任何可能引起超时事件或重复确认事件的原因有关。
在图1所描述的实例中,在步骤S5中确定和给定数据单元有关的确认数据单元是否确认了初始传输或该给定数据单元的重传。依据实现这一步骤的第一可能性,发送方保存了与发送和接收对等体之间的连接有关的往返行程时间RTT的记录,以及特别地保存了在一直到考虑下的时间点的连接或会话过程中找到的最短RTT的记录。然后,如果在小于该最小RTT预定部分的时段内接收到对重传数据单元的确认数据单元,那么发送方确定这个确认属于初始传输而不是属于重传。这个部分可以被设置为固定值,或其本身是一个自适应参数。自然,是与该部分相乘的比较值不必要是最短测试的RTT,相反发送方保持平均的RTT值也是有可能的。在这个意义上,与该部分相乘的比较值通常是在连接过程(在会话过程)中测量的一个或更多RTT值的一个函数。
依据本发明,为实现步骤S5,发送方将一个标志加入到它发送的数据单元中,在其中以允许区分初始传输和重传的方式定义该标志。然后,接收方可以因此标记确认数据单元,以致于发送方能够识别一个确认对应的是初始传输还是重传。
依据本发明,数据单元中的一个单比特位被指定,其中值0表明是初始传输而值1表明是重传,或反之亦然。
权利要求
1.一种用于控制在按照TCP操作的发送方和接收方之间的通信的方法,其中所述发送方将要发送的数据量划分到一个或者更多具有由TCP所确定的结构的段中,所述接收方通过向所述发送方返回确认段而确认段的正确接收,其特征在于,所述发送方通过在每个被发送段中包括指定的单个比特来标记被发送的段,使得一个初始传输可与一个重传相区分,以及所述接收方通过在一个被接收段的确认段中包括所述被接收段中包含的单个比特来标记所述被接收段的确认段,使得对一个初始被发送段的确认可与所述段的重传的确认相区分。
全文摘要
一种用于控制在按照TCP操作的发送方和接收方之间的通信的方法,其中所述发送方通过在每个被发送段中包括一个指定的单个比特来标记被发送的段,使得一个初始传输可与一个重传相区分,以及所述接收方通过在一个被接收段的确认段中包括所述被接收段中包含的单个比特来标记所述被接收段的确认段,使得对一个初始被发送段的确认可与所述段的重传的确认相区分。
文档编号H04Q11/04GK1645784SQ20051005174
公开日2005年7月27日 申请日期1999年12月31日 优先权日1999年1月8日
发明者M·梅耶尔, R·卢德维格 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1