数据流控制方法

文档序号:7728352阅读:241来源:国知局
专利名称:数据流控制方法
技术领域
本发明涉及控制一定量数据的流从给定的通信协议的发送同级(peer)到接收同级的方法。
背景技术
在通信领域中,数据传输技术被公知为将要发送的一定量的数据分成多个数据段,将这些数据段按顺序排成一个序列。然后以所述序列的顺序发送这些数据段。
这个过程发生在由包含用于处理这种数据段的规则的预定协议管理的通信的所谓发送同级上。与该预定协议相关的接收实体被称作接收同级。协议、协议分级、分层和协议同级的概念是本领域公知的,例如参见《TCP/IP Illustrated Volumel,The Protocols(TCP/IP说明第一卷,协议)》,作者W.Richard Stevens和Addison Wesley,1994。在TCP/IP协议组中众所周知的传输控制协议(TCP)是将要发送的数据排列成段序列的这种协议的一个例子。
典型地,为了发送单独的段,将该单独段放入具有由给定协议定义的结构的数据单元中。这些数据单元可能在不同的协议环境中有不同的名字,例如分组、帧、协议数据单元、信元等。在本说明书中,将使用术语“数据单元”来从总体上覆盖这样定义的任何数据结构。本说明将可互换地使用术语“段”和“数据单元”。
该发送同级将把数据单元向下交给较低的层,例如,TCP发送同级将把一个TCP帧向下交给链路层,并且在接收端,该接收同级将从该较低的层接收数据单元。定义数据单元(例如,定义开始和结束)的预定结构使接收同级能够识别个体段。
需要指出,按照OSI分层概念,如何对传递到较低层的数据单元进行处理、以及如何将其传输到那里这两个问题都是无关紧要的。即,给定的发送同级向下传递比特流,接收同级接收比特流,其中这个比特流包含某种标识元素,例如帧分界标识符,接收同级可以借助于该帧分界标识符来识别个体数据单元和个体段。
为了确保数据的可靠传输,很多协议提供了数据单元重传的特征,该数据单元的重传特征意味着如果需要,就可以对来自该序列的段进行重传。典型地,这可以借助于确认技术而得以实现,该确认技术意味着通过由接收同级向发送同级发回一个适当的确认消息,来确认该接收同级对数据单元的正确接收。一旦该发送同级已经接收到这样的确认消息,它就可以适当地继续发送其它数据单元,或者,如果没有接收到确认消息或接收到一条非确认消息,则该发送同级可对接收同级没有正确接收到的数据单元进行重传。
已知几种机制,借助于这些机制,可以设想由发送同级获得一条“已经发生了数据单元或段的丢失”的指示,使得可以执行适当的重传。一个这种已知特性是重传超时(retransmission time-out),重传超时意味着在发送数据单元之后,对定时器进行监视,如果经过了预定量的时间而没有接收到对于该给定数据单元的确认,则假定该数据单元已被丢失,并因此对它进行重传。
另一个这样的机制是对重复确认进行计数。重复确认是这样的一种确认,它将之前已经确认的一个数据段标识为最后正确接收的数据段。即,很多协议(例如TCP)包含一个用于接收同级的确认生成机制,该确认生成机制可操作成为该序列中的每一个正确接收的段发出一条确认消息,其中该确认标识按照该序列顺序最后正确接收的数据段。换句话说,例如,如果已经接收并确认了第一到第四个数据段,然后有第五个数据段到达,则该接收同级将发出对于那个第五个段的确认。如果之后有第七和第八个段正确地到达,则该接收同级将再次发出一个或两个确认消息,但是这些确认消息将仅标识第五个段,因为该第五个是按照该序列顺序最后正确接收的段。即,该接收同级期待第六个段,即使它正确地接收到高于第六个段的段,它也会继续确认第五个段。由此,发送同级接收的重复确认为该发送同级给出一个指示已经丢失了一个数据单元。
作为结果,在使用上述确认机制的协议中(根据该确认机制,确认消息只确认按照该序列正确接收的最后一个数据单元),即使接收到位于所述序列中更远位置的数据单元,也可以实现这样一种重传机制,以便在发送同级接收到预定数目个重复确认时执行重传。在TCP中,该相应的机制被已知为“快速重传”,其中在接收到三个重复确认之后启动重传。TCP中的快速重传机制的详细说明可以在例如上面提到的由Stevens所著的书中的第21章第7节中找到。
本发明所基于的问题所有如上所述用于接收一个“已经丢失一个数据单元”的指示的这种机制都受到一个问题的影响,这个问题就是发送同级仅接收到一个间接的“已经丢失一个数据单元”的指示,而事实上,预定触发事件的发生(超时或预定数目个重复确认)不必然意味着真的丢失了数据单元。这些触发事件还可能是欺骗性引起的,例如如果数据单元在传输网络中被延迟;当由网络传递与该序列中更远的段相关的数据单元时。这种现象还被称为重新排序。
在由Yosuke Tamura、Yoshito Tobe和Hideyuki Tokuda撰写的“EFRA Retransmit Scheme for TCP in Wireless LANs(EFR用于无线局域网中的TCP的重传方案)”(XP-002115028)中,提出了一种新的重传方案。这篇论文解决了在发送窗口较小时出现的问题,即在丢失一个段时,该接收者不会发送触发快速重传所需的三个重复的确认,因为正在发送的段太少。在这种情况中,快速重传是不可能的,而且发送者将会等待,直到发生重传超时。作为这种情况的解决方案,建议在接收到第一个重复确认时,该发送者根据发送窗口的尺寸来计算重复确认阈值。该算法首先通过用窗口尺寸除以最大段尺寸来将以字节给出的该发送窗口的值转换为反映段数的值。然后从该结果中减去2,以便确定重复确认阈值。如果所计算的阈值大于3,则该阈值被自动设为3。因此,重复确认阈值的值被设为1、2或最多为3。
本发明的目的本发明的目的是从总体上提高对于处理发送同级中的段重传的可能性。
发明概要通过具有权利要求1的特征的方法、以及权利要求22的通信设备达到了这个目的。在独立权利要求中描述了有利的实施例。
根据本发明,在对预定数目的重复确认消息的接收触发对该重复确认中标识的数据段之后跟随的数据段的重传的系统中,建议将这个预定数目设置成一个能取大于3的值的自适应参数。这意味着该重复确认阈值是这样一个参数,该参数能适应在该数据段的发送周围的一般条件,例如发送同级的条件、传输条件(例如,由其上发送该段的链路确定的、或统一由其上发送该段的传输网络确定的)、或接收同级的条件。
需要指出的是,本发明可以与任何类型的流控制结合实施,只要用于发送该段的通信协议提供上述的确认机制,根据该确认机制,一条确认消息指示数据段的正确接收并标识按照该序列的正确顺序接收的序列的最后正确接收的数据段;以及如果由发送同级接收到阈值数目个标识相同数据段的确认消息,则对一个段进行重传的机制。
使重复确认阈值自适应并能取大于3的值大大增加了发送段的发送同级的灵活性和可控性。即,重复确认阈值给出了一个指示以指明该发送同级将在多长时间内把重复确认消息看作是仅由数据单元的重新排序所引起的;以及发送同级在何时假定数据单元已经丢失。即,一直到重复确认阈值,不发生重传,这样,假定第一个重复确认消息是由重新排序引起的,而在达到重复确认阈值时,假定已经发生数据单元的丢失。
因此,该重复确认阈值是与发送同级对于在假定为其接收到重复确认的给定段已经丢失之前等待多久的决定相关的一个参数。按照本发明的解决方案,阈值是自适应的,并可以取大于3的值,由于这一解决方案,可以使这个决定本身自适应,并因此更加灵活,即使正在发送很多的段。
以这种方式,本发明的方法更适于处理段的重新排列,即使可能同时发送大量的段。由于这一事实,本发明有利地应用于运行在较低层上的协议实施,同时允许不按顺序地向上发送数据单元到所述协议实施,因为之后可能要进行重新排列。
可以以任何合适或希望的方式将阈值数目修改到一般条件。例如,可以测量在发送同级与接收同级之间的连接特性,并且可以将该阈值数目修改到这样测量的特性。优选的方案是由发送同级执行这种测量。可以确定任何希望的、可测量的连接特性中的一个或多个特性,例如扰动量(例如,按照误差率)、平均传输时间、延迟等等。作为一个例子,可以将重复确认阈值以这样一种方式修改到传输误差率,即如果误差率增加,则重复确认阈值降低,反之亦然。更具体地说,从为初始误差率值确定的预定初始阈值开始,误差率增加预定的增量可以使该阈值相应地下降预定增量。自然,这些特定值将取决于个体应用和要求。
根据一个优选实施例,根据属于与流控制相关的预定组的数据段的可变数目来修改该重复确认阈值。
按照一个优选实施例,根据未完成的(outstanding)数据单元的数目来修改该重复确认阈值。未完成的数据单元是这样的数据单元它们由发送同级发出,但没有被确认为是正在发送的序列的最后正确接收的数据单元(数据段)。根据未完成的数据单元的数目来修改重复确认阈值是有利的,因为该未完成的数据单元的数目是对于重新排列能进行到什么程度(例如,由于较低层的影响)的指示。
按照另一个优选实施例,对于这种采用基于窗口的流控制的系统,还可根据一个或多个控制窗口来修改该重复确认阈值。在使用一种拥塞窗口(例如从TCP中已知)的系统中,优选的方案是根据该拥塞窗口来推导重复确认阈值(例如作为它的一个预定分数)。该拥塞窗口还是一个对于未完成数据单元的数目的指示符。然而,需要指出,还可以根据未完成数据单元的数目来直接修改重复确认阈值,即使是在使用基于窗口的流控制的系统中。
此外,还应该指出,可以根据一个或多个参数来修改重复确认阈值,这样,可以单独地或以任意组合方式来使用任何上面提到的参数的类型和示例,以便修改该重复确认阈值。
该重复确认阈值的修改或更新可以按照任何合适或希望的方式来执行,还将取决于是哪个参数或哪些参数被用作修改的基础。例如,可以按照规律的间隔来更新该重复确认阈值。换句话说,规律地测量用作修改该重复确认阈值的基础的一个或多个参数,并且根据这些测量结果来规律地更新该阈值。另一方面,还可以仅在发生预定的触发事件的时候才更新该重复确认阈值。可以选择合适的或希望的触发事件,还可以将触发事件选成是例如在第一次接收到重复确认时,或选成是当该重复确认阈值的修改所基于的相关参数(或多个相关参数)发生改变的时候。
作为另一种可能的情况,还可以在接收到每个确认时(即,不只是在接收到重复确认时),或者在与未完成数据单元或段相关的每次确认时修改该重复确认阈值。
附图简述通过研究在下面结合附图描述的本发明具体实施例,可以使本发明的其它方面和优点变得更清楚,在附图中

图1显示了本发明的一个实施例的流程图;图2a显示了与用于重复确认阈值的可能更新程序有关的流程图;图2b显示了用于重复确认阈值的更新程序的另一种可能性的流程图;图3a显示了数据单元和确认消息在按照现有技术操作的发送同级和接收同级之间的互换;图3b显示了按照本发明实施例互换数据单元和确认的发送同级和接收同级的例子;图4a显示了在使用基于窗口的流控制、并按照现有技术操作的系统中的传输窗口尺寸与ACK到达时间之间的关系;图4b显示了在使用基于窗口的流控制、并按照本发明的一个例子操作的系统中的传输窗口尺寸与ACK到达时间之间的关系;图4c显示了在使用基于窗口的流控制、并按照本发明的另一个例子操作的系统中的传输窗口尺寸与ACK到达时间之间的关系。
优选实施例的具体说明本发明可应用于给定通信协议的任意实施,对于该通信协议的任意实施,将要发送的一定量数据分成多个数据段,并将所述的数据段按顺序排成序列,其中按照所述序列的顺序将该数据段从发送同级发送到接收同级,其中接收同级发送确认到发送同级,所述的确认指示按照该序列的正确顺序进行的正确接收,这样,确认消息指示按照该序列的正确顺序接收的所述序列的最后正确接收的数据段,并且,其中如果发送同级接收到阈值数目个确认消息,且这些确认消息中的每一个都将相同的数据段标识为按照正确顺序接收的段的最后正确接收的数据段,则对所接收的重复确认的段之后紧接的段进行重传。
这种协议的一个例子是TCP。然而,需要指出,本发明还可应用于具有上述特性的任何其它通信协议。
根据本发明,确认消息的阈值数目,即重复确认阈值,是一个自适应参数,它可以取大于3的值。
如前面已经提到的,因此,该重复确认阈值是与发送同级对于在假定为其接收到重复确认的给定段已经丢失之前等待多久的决定相关的一个参数。由于本发明的解决方案(按照该解决方案修改阈值),可以使得这个决定本身自适应,并由此更为灵活。
图1显示了描述本发明的一个实施例的流程图。该流程图的左手侧涉及一般流控制,由于本发明不关注一般类型的流控制,所以只用一条虚线对这一部分进行示意性地显示。该图的右手侧公开了用于处理重复确认的程序。即,如果在一般流控制的过程中接收到一个确认(ACK),见步骤S1,则触发用于处理重复确认的程序。
在步骤S2中,确定该确认是否是重复的确认。即,确认特定确认的次数N,其中该特定确认标识按照该序列的正确顺序接收的序列的最后正确接收的数据段,并且判断这个数目N是否大于1。如果不大于1,则该ACK不是一个重复ACK,并且该程序返回到一般流控制。
如果步骤S2的结果指示该确认是一个重复确认,则该程序前进到步骤S3,在步骤S3,确定N(ACK)是否大于重复确认阈值Th。
可以以任何合适的方法来实施这个步骤,例如,通过简单地保存对于最后确认的段的记录并设置一个相关的计数器,这样,如果新接收的确认与之前确认相同(即重复确认),则该计数器增加1;如果新确认标识一个在最后接收的确认中标识的段之后的段,则将该计数器重置为1。
在图1的例子中,N(ACK)指示该发送同级已经接收到给定确认ACK的次数。换句话说,N=1意味着对于给定段的确认已被第一次接收,而N>1指示该确认是一个重复确认。
如果步骤3确定该确认数目还未达到该阈值,则该程序回到一般流控制。然而,如果达到或超过阈值,则该程序前进到步骤S4,在步骤S4,确定所接收的重复确认的数目是否等于当前设置的重复确认阈值Th。如果等于,则在步骤S5中对最早的未确认段进行重传。该最早的未确认段然后直接跟随该重复确认中标识的段。另一方面,如果步骤S4的结果是否定的,这意味着N(ACK)<Th,则发送在该序列中的重复确认中的标识段之后紧接的段的下一个段。
在步骤S5或S6之后,该程序重新返回到一般流控制。
需要指出,图1中的实施例只是一个例子,这个例子可以以不同方式变化。技术人员将会理解可以对这些步骤进行不同地排列。此外,步骤S6只是一个例子,因为本发明不特别关注在超过重复确认阈值以后的程序。换句话说,可以以任何合适或适当的方式来选择在超过重复确认阈值之后的程序,其中可以进一步讨论关于与TCP相似的协议的不同可能性。
相同的,在一般流控制中对于重复确认的响应对于本发明来说不是重要的。例如,在步骤S3中得出否定结果之后(该否定结果意味着已经接收到重复的确认,而重复确认的数目还未达到该阈值),则一般流控制可以停止发送任何其它的段,或者也可以相同地继续发送其它的段。
可以以任何适合或希望的方式来更新该重复确认阈值。例如,可以按照规律的间隔、根据用于修改阈值的一个或多个值来进行更新。换句话说,对所述的一个或多个值进行规律地测量或确定,并由此更新阈值Th。这个过程是在图1所示的内容之外、在一个独立的程序中进行的。作为结果,这个独立的程序规律地更新适当存储的Th值,并且步骤S3和S4只是访问或调用Th的当前值。另一方面,还可以在发生预定触发事件时更新Th。一种可能性是仅在用于修改Th的所述一个或多个值中的一个或多个发生变化时更新Th。这样的程序也将独立于图1所示的内容,并且步骤S3和S4将只是访问或调用Th的当前值。
然而,特定的触发事件也可以是图1所示程序的一部分。即,可以在发生与确认的接收相关的触发事件时执行Th的更新。例如,可以每当第一次接收重复ACK时更新Th。这在图2a中进行了显示,其中与图1中所用相同的附图标记涉及相同的步骤。换句话说,图2a中所示的步骤S21和S22是在图1所示的步骤S2和S3之间执行的。当在步骤S2中确定已经接收到重复确认之后,步骤S21确定该重复确认是否是第一个重复确认,即是否N(ACK)=2,并且如果是这种情况,则在步骤S22中更新Th。在步骤S21或S22之后,执行步骤S3,所有的步骤已经结合图1进行了讨论,因此不需要进一步进行讨论。
还可以在每次重复确认时执行Th的更新。这在图2b中进行了显示。即,在步骤S2之后跟随更新步骤S22,使得每次重复确认引起Th的更新。
作为另一种替换方案(在图中未示出),还可以在每次确认时更新阈值Th。换句话说,可以在图1的步骤S1和S2之间执行更新步骤S22。另一种变化可以是在与未完成数据段相关的每次ACK时(即,只在N(ACK)=1的这种确认时)更新该阈值Th。因此,可以在图1的步骤S2的否定输出时执行更新步骤。
如上所述,可以在任何合适或希望的时候执行重复确认阈值Th的更新。相同地,可以在任何恰当或合适的基础上执行所述更新。优选的方案是,可以根据对于发送同级与接收同级之间的连接特性的测量结果来确定重复确认阈值的当前值。虽然可以在任何点上执行这种测量,即在发送同级上和/或在发送同级与接收同级之间的网络中和/或在接收同级上执行,但是优选的方案是在发送同级上执行所述测量。
尽管可以根据任何合适的可变特性或参数来修改该重复确认阈值的值,但优选的方案是根据与正在发送的数据段的流控制有关的可变参数来进行修改。与正在发送的数据段的流控制相关的这种参数可以是预定种类或组中的数据段的数目,例如,在使用基于窗口的流控制的系统的情况中的给定传输窗口中的数据单元数目,或者还可以是未完成数据单元的数目。未完成的数据单元是这样一种数据单元或段,它们由发送同级发送,但是对于它们,该发送同级还未接收到将所述数据单元或段标识为按照该序列的正确顺序接收的序列的最后正确接收的段的确认消息。
如果重复确认阈值是根据段的数目而确定的,是未完成段的数目或预定组(例如传输窗口)中的段的数目,则优选的方案是该重复确认阈值被确定为所述数据单元数目的一个预定分数。例如,这个分数可以是二分之一。换句话说,将该组中段的数目除以一个预定的因数,例如2。
这与Tamura等人提出的算法截然不同,在Tamura等人提出的算法中是通过从发送窗口中的段数目减去一个常数来确定该阈值。
如果本发明应用于的协议是传输控制协议(TCP),则该重复确认阈值可被确定为该拥塞窗口的一个预定分数,例如二分之一。任何在三分之一和三分之二之间的分数都是适合的。需要指出使用了传输窗口(更具体地说是拥塞相关窗口)的一个预定分数的本发明的这种实施例不限于TCP,同样,在基于窗口并使用拥塞相关传输窗口的任何协议的环境中,都可能进行应用。更具体地说,拥塞相关传输窗口是这样一种窗口发送同级初始化到一个预定的初始尺寸,然后根据从接收同级接收的确认消息,以及拥塞指示事件的发生来控制该尺寸,所述的拥塞指示事件例如是重复确认、重传超时、非确认消息、以及来自网络的直接拥塞指示消息等等。即,当接收确认时,该拥塞窗口的尺寸将会增加,而当发生拥塞指示事件时,该拥塞窗口的尺寸将会减小。
对于重复确认阈值(是一个整数值)是根据窗口尺寸(或更通常是根据属于预定种类的数据单元数目)确定的上面的实施例中,对于该重复确认阈值的计算将取决于(1)特定协议或协议实施跟踪数据段所按照的机制;(2)表现多少个窗口或组。即,如果该协议是面向段的,这意味着这些段包含连续的数字并由这些连续的数字标识,使得也可将窗口直接确定为这种段数,那么分数的计算就是简单地将给定的数字除以一个预定的分母或因数,例如,如果上面提到的预定分数是二分之一,则该分母或因数为2。然而,很多协议(例如TCP)是面向字节的,这意味着这些段不是直接编号的,而只是通过一个字节计数来指代。更具体地说,如果要发送的数据量包含K个字节,那么就用字节计数ki来对每个段进行标识,其中ki<K,并且ki<ki+1。例如,如果要发送的数据量包含10240个字节,则可将这个量分成10个段,每个段包含1024个字节。那么,用1024描述第一个段,用2048描述第二个段,用3072描述第三个段,等等。作为结果,该确认消息之后通过发送这样的字节计数来对段进行标识。此外,在使用基于窗口的流控制的面向字节的协议中,还用字节来表示窗口的尺寸。由于这种面向字节的协议是本领域公知的,所以不需要在这里进一步进行解释。
对于这种面向字节的协议,对于该重复确认阈值(是一个整数值)的确定可以通过将修改阈值所基于的相关字节值(例如,一个传输窗口尺寸或数据单元的数目,例如未完成数据单元的数目)除以一个预定的分母或因数(例如,如果预定分数是二分之一,则预定的分母或因数为2),以及一个应用将字节值转换为段数的合适的段转换尺寸来进行。典型的情况是,这个段转换尺寸将会是最大段尺寸(例如,段可取的最大的、以字节体现的值)。为所述的过程对该最大段尺寸进行特殊地限定,例如将其与初始重复确认阈值一起进行初始设置,或者如果本发明应用于的协议已经包含这样的最大段尺寸作为一个参数,如在TCP的情况中,那么就可以直接使用这个可用的参数。
需要指出,在上面的两种情况中,即,或者直接分割段的整数,或者分割字节的数目并使用一个段转换参数,其结果可能不是整数值。在这种情况中,可以通过到下一个最高或下一个最低整数的适当的舍入操作来确定该重复确认阈值。
图4a-4c的图中显示了窗口尺寸与确认到达之间的关系,其中用黑点标记确认的到达。该纵坐标是按照最大段尺寸的倍数表示的。
现在将描述本发明在与TCP操作类似的协议实施中的应用实例。图4a显示了如TCP中指定的、对于窗口尺寸调整的传统重复确认管理。更具体地说,如在上面提到的作者为Stevens的书的第21章第7节中描述的,将TCP设置成在接收到第三个重复确认之后,并且在将拥塞窗口cwnd的重传设为所谓的慢启动阈值尺寸ssthresh(该慢启动阈值尺寸ssthresh在图4中被确定为在接收第三个重复确认时的窗口尺寸的二分之一)之后执行重传,然后将该段尺寸的三倍添加到该结果。然后,该拥塞窗口cnwd响应于其它确认的到达而线性增加。作为结果,可以看出如果在接收第三个重复确认时的窗口尺寸很大,则将该窗口减小一半和向得到的窗口添加3个段尺寸将使窗口尺寸大幅减小。因此,在该窗口达到它在重传以前拥有的尺寸之前将花费一定时间。
图4b显示了其中应用了本发明的一个例子。即,该重复确认阈值不像传统TCP情况中一样固定为值3(见图4a),并且也不像前面讨论的作者为Tamura等人的文章中一样限制于最大值3,而是根据当前的拥塞窗口而确定的,所述的当前拥塞窗口在图4b的例子中是最大段尺寸的11倍。更具体地说,将其确定为这个拥塞窗口尺寸的二分之一,如果得到的不是整数,则进行下舍入。如窗口尺寸为11,取二分之一得到一个非整数的结果5.5,则将重复确认阈值设为5。就像可以看到的,这个结果超过了3。因此,在接收到第五个重复确认之后,执行重传。根据图4b的例子,之后像传统情况中一样减小该拥塞窗口,即减小到ssthresh,也就是在重传时的拥塞窗口的二分之一。然而,之后将重复确认阈值的值添加到该结果,即图4b中的5。如果在重传时的拥塞窗口尺寸是一个偶数值,那么这个程序意味着该拥塞窗口将保持相同尺寸。由于在所示的例子中,该拥塞窗口具有对应于最大段尺寸的非偶数倍的尺寸,所以该拥塞窗口尺寸返回到一个比重传之前的值稍小的值,即在图4b的例子中的10.5。
优选的方案是,将对拥塞窗口尺寸的控制从重传程序中去除,而使该过程如图4c所示地进行。即,在接收阈值数目个重复确认之后(在图4c的例子中,Th值等于5,与图4b中相同),该拥塞窗口尺寸保持不变,并且在接收其它确认之后,该拥塞窗口尺寸线性增加,例如,按照从TCP中众所周知的拥塞避免算法。
如果该拥塞窗口能达到远大于3的尺寸,那么图4b和4c所示的实施例相对于图4a所示情况和Tamura等人的现有技术的优势就变得更为明显。如果在其上发送数据单元的传输网络具有大容量,例如是按照通用移动电话系统(UMTS)标准运行的系统,就可以期待这一点。因此,本发明优选地应用于工作在提供这种高数据率链路的链路层协议上的协议环境中。换句话说,当在其上实现L4层的链路层L2是与高带宽传输网络(例如UMTS网络)有关的层时,优选的方案是将本发明的方法应用到在OSI标准中被称作L4的传输层。由于本发明的方法能够处理重新排列,所以本发明在下面的情况中尤其有利如果以一种方式来实施低于L4的较低协议层,使得它们可以将L4数据单元释出该顺序,在这种情况中可能会发生重新排列。
现在,将通过参考图3a和3b来描述对于现有技术和在应用本发明时的、在发送同级与接收同级之间互换段和相应确认的实例。更具体地说,图3a显示了发送者将由整数变量n指代的段发送到接收者的情况。在图3a的例子中,段n被发送并确认,而段n+1在传输中丢失。作为结果,尽管该接收者已经正确接收了段n+2、n+3等等,但该接收者只将段n确认为按照该序列的正确顺序接收的序列的最后正确接收的数据段。就像已经提到的,图3a显示了标准TCP现有技术情况,其中在接收到第三重复确认之后执行重传。该段n+1的重传用粗体箭头显示。在已经正确地接收到重传的段n+1之后,该接收者将段N+11确认为按照该序列的正确顺序接收的序列的最后正确接收的数据段。
图3b显示了与图3a中相同的初始情况,但是应用了本发明,并且重复确认阈值是根据拥塞窗口尺寸确定的,即确定为这个拥塞窗口尺寸的二分之一(以最大段尺寸的倍数确定)。该重复确认阈值因此不限于一个特定值(像在标准TCP情况中一样),并且也不限于特定的最大值(像在Tamura的文章中一样)。在图3b的例子中,假定拥塞窗口尺寸为10或11,使得重复确认阈值为5。作为结果,如果该情况如图3b所示,即第五个重复确认到达发送者端,则该发送者等待一个更长的时间段ΔT,直到对段n+1进行重传。另一方面,如果段n+1实际上未丢失,而只是被延迟,并且将在图3b中指示的时间ΔT期间到达的话,则可能在发送者端进行重传之前对段n+1的正确接收进行确认,因为在那种情况中,不会有阈值数目个重复确认到达。
本发明的方法可以通过任何合适或恰当的方法来实施,并且尤其可以表现为计算机程序的形式,也因此可以表现为携带这样的计算机程序的存储介质。相同的,本发明还可表现为一种被设置成按照本发明的方法操作的通信设备的形式。
尽管已经通过具体实施例对本发明进行了描述,但不希望将本发明限制于这些实施例,本发明是由附带的权利要求书限制的。同样,在权利要求书中的附图标记不应被理解为限制性的,因为它们的作用只是使权利要求书易于阅读。
权利要求
1.一种控制一定量数据的流从预定通信协议的发送同级到接收同级的的方法,包含-将所述量的数据分为多个数据段,将所述的数据段按顺序排成一个序列,-按照所述序列的顺序将所述数据段从所述发送同级发送到所述接收同级,-在所述接收同级上确定数据段是否被正确接收,以及正确接收的数据段是否是按照所述序列的正确顺序,-从所述接收同级向所述发送同级发送确认消息,其中确认消息指示数据段的正确接收,并标识按照所述序列的正确顺序接收的所述序列的最后正确接收的数据段,以及-如果发送同级接收到阈值数目个重复的确认消息,其中这些重复确认消息中的每一个都将同一个数据段标识为按照所述序列的正确顺序接收的所述序列的最后正确接收的数据段,重新发送所述一个数据段之后紧接的段,其中所述方法包含一个阈值数目修改程序,以便对所述的阈值数目进行动态修改,其特征在于将所述阈值数目修改程序设置成所述阈值数目可以取大于3的值。
2.根据权利要求1所述的方法,其中所述阈值数目修改程序包含-执行一个数据段数目确定程序,所述数据段数目是一个标识属于与流控制相关的预定组的数据段的数目的整数,-将所述数据段数目除以一个预定因数,以及-根据所述数据段数目除以一个预定因数的结果来修改所述的阈值数目。
3.根据权利要求2所述的方法,其中所述的预定因数是一个整数。
4.根据权利要求3所述的方法,其中所述的预定因数是2。
5.根据权利要求2-4中任一项所述的方法,其中所述根据所述数据段数目除以一个预定因数的结果来修改所述阈值数目的步骤包含如果所述结果是整数,则将所述阈值数目设为等于所述结果;否则,对所述的结果执行一个预定的舍入操作,然后将该阈值数目设为等于所述舍入操作的结果。
6.根据权利要求2-5中任一项所述的方法,其中对数据段的流的控制包含一种使用一个或多个窗口的滑动窗口技术,并且所述的预定组与所述一个或多个窗口中给定一个相关。
7.根据权利要求6所述的方法,其中所述的预定组与一个由所述发送同级计算的窗口相关。
8.根据权利要求6或7所述的方法,其中所述的给定窗口是拥塞窗口,拥塞窗口与流控制子程序有关,按照该流控制子程序,在发送所述多个数据段的开始时,所述发送同级将所述拥塞窗口的尺寸初始化到一个预定的初始值,然后根据所述确认消息、以及根据拥塞指示事件的发生来控制该尺寸。
9.根据权利要求8所述的方法,其中所述预定通信协议是传输控制协议(TCP),并且所述拥塞窗口是TCP拥塞窗口(cwnd)。
10.根据权利要求6-9中任一项所述的方法,其中所述的数据段数目确定程序包含将所述给定窗口的尺寸除以一个数据段尺寸指示符。
11.根据权利要求10所述的方法,其中所述数据段尺寸指示符是最大段尺寸。
12.根据权利要求2-5中任一项所述的方法,其中所述预定的组是未完成数据段的集合,使得所述的数据段数目等于未完成数据段的数目,未完成数据段是这样一种数据段它们由所述发送同级发送,但对于该数据段,所述发送同级没有接收到将所述数据段标识为按照所述序列的正确顺序接收的所述序列的最后正确接收的数据段的确认消息。
13.根据权利要求1-12中任一项所述的方法,其中每当所述预定组改变时,对所述的阈值数目进行修改。
14.根据权利要求1-13中任一项所述的方法,其中至少每当第一次接收到对于所述数据段之一的重复确认消息时,对所述的阈值数目进行更新。
15.根据权利要求14所述的方法,其中每当接收到重复确认消息时,对所述的阈值数目进行更新。
16.根据权利要求1-12中任一项所述的方法,其中每当接收到确认消息时,对所述的阈值数目进行更新。
17.根据权利要求1-16中任一项所述的方法,其中每当接收到标识未完成数据段的确认消息时,对所述阈值数目进行更新,未完成的段是这样一种段它们由所述发送同级发出,但对于该段,所述发送同级没有接收到将所述段标识为按照所述序列的正确顺序接收的所述序列的最后正确接收的数据段的确认消息。
18.根据权利要求1-17中的一项所述的方法,其中所述预定通信协议位于第一协议层(L4)上,并且,包含一个预定协议实施的第二协议层(L2)被提供于所述第一协议层(L4)之下,以便从所述预定通信协议的发送同级接收所述数据段,并向所述预定通信协议的接收同级释放所述数据段,其中所述的预定协议实施可操作为将所述的数据段释放出所述序列的顺序。
19.根据权利要求18所述的方法,其中所述第一协议层(L4)是传输层,并且所述的第二协议层(L2)是链路层。
20.一种计算机程序,该计算机程序被设置成当在计算机上执行时,该计算机程序实施权利要求1-19中的一项的方法。
21.一种存储权利要求20的计算机程序的计算机可读存储设备。
22.一种被设置成发送和接收数据的通信设备,所述的通信设备被设置成像按照权利要求1-19中的一项的方法中的发送和/或接收同级一样工作。
全文摘要
描述了一种控制从预定通信协议的发送同级到接收同级的一定量数据的流的方法。该方法包含将所述量的数据分为多个数据段,其中将这些数据段按顺序排成一个序列。按照所述序列的顺序将这些段发送到接收同级。该接收同级确定数据段的正确接收,并标识按照该序列的正确顺序接收的序列的最后正确接收的数据段。将发送同级设置成如果接收到阈值数目个重复的确认消息,它就执行重传。触发重传的阈值数目是一个自适应参数,并可取大于3的值。
文档编号H04L1/16GK1511396SQ02807874
公开日2004年7月7日 申请日期2002年3月25日 优先权日2001年4月4日
发明者M·迈尔, M 迈尔, R·路德维希, 挛 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1