移动自组织网中发送数据的方法及利用该方法的网络设备的制作方法

文档序号:7618368阅读:112来源:国知局
专利名称:移动自组织网中发送数据的方法及利用该方法的网络设备的制作方法
技术领域
本发明涉及一种用于在移动自组织网络(mobile ad hoc network)中发送数据的方法以及利用该方法的网络设备,尤其涉及一种其中当重复ACK包被接收时通过调整拥塞窗口大小以调整被发送数据的数量的在自组织网络中发送数据的方法,以及利用该方法的网络设备。
背景技术
传输控制协议(TCP)是用作在以IP(互联网协议)一起连接到网络的节点间的数据传输的协议。TCP的一个主要功能是在网络上以安全的方式传输数据。为此,TCP采用拥塞控制机制。在TCP拥塞控制机制中,发生在数据传输期间的拥塞被从数据包丢失中检测到以在发送方直接控制数据吞吐量并重传丢失的数据包。
图1示出根据传统的慢启动/拥塞避免算法的吞吐量的变化。
当发送网络设备的TCP初始化数据包传输时,拥塞窗口(简称为“CWND”)大小被初始化为一个TCP段。每从接收网络设备接收到确认(ACK)包,TCP段被增加一(1)。因此,如图1中标记110,CWND大小呈指数增加,这被称为慢启动算法。
然而,如果没有接收到已发送数据包的ACK包,则TCP等待重传超时,如标记170。如果直到出现重传超时170也没有接收到ACK包,则TCP认为网络中发生拥塞。在这种情况下,TCP设置慢启动阈值(SSTHRESH)为值SSTHRESH1,如标记150,该值为在重传超时前立即被设置的CWND大小的一半。另外,TCP设置CWND大小为一(1)个TCP段并随即利用慢启动算法发送在丢失的数据包之后被发送的数据包,如标记120。
如果在利用慢启动算法的传输期间,CWND大小到达SSTHRESH1150,则TCP利用拥塞避免算法执行传输,如标记130,其中,考虑到网络拥塞,CWND呈线形增加。此后,如果没有ACK包被再次接收并且出现重传超时,如标记180,则TCP设置慢启动阈值(SSTHRESH)为值SSTHRESH2,如标记160,该值为在重传超时发生前被立即设置的CWND大小的一半,设置CWND大小为1TCP段,并且慢启动算法,如标记140,被再次启动。
在慢启动/拥塞避免算法中,重传定时器被用于检查重传超时。从而,当当前正被发送的数据包丢失时,TCP在重传丢失的数据包之前必须等待重传超时,这导致了网络资源的浪费。
为了陈述这个问题,提出了快速重传/快速恢复算法。在慢启动/拥塞避免算法中,数据包丢失的原因被确定为仅是发生重传超时的结果。然而,在快速重传算法中,当重传超时发生或即使在重传超时发生之前收到特定数目的重复ACK包时,即确定存在数据包丢失。
当由发送网络设备发送的数据包序列与由接收网络设备接收的数据包序列不同时,由接收网络设备的TCP产生重复ACK包。该数据包序列可由数据包头中设置的序列号来校验。
图2是示出根据利用快速重传/快速恢复算法的传统拥塞控制算法的吞吐量的变化示图。
如果在重传超时发生之前接收到的相同重复ACK包的数目大于或等于预定的数目,则基于快速重传算法的TCP认为数据包被丢失并且利用快速重传算法重传被认为丢失的数据包,标记210。当应用快速重传算法时,当接收到预定数目的重复ACK包时,CWND大小被设置为值(CWND1/2)+3,如标记240,该值比CWND大小,即CWND1,如标记230,的一半大3。
对于快速重传的接收到的重复ACK包的数目典型地为3。这样做的理由解释如下在一个或两个重复ACK包被接收到的情况下,可确定为这一个或两个重复ACK包的接收是由于由网络中不同延时产生的接收端的数据包接收序列与发送端的数据包发送序列之间的不同引起,而不是由于数据包丢失引起。
当执行快速恢复算法220时,丢失的数据包被重传并且无需经过慢启动处理而直接进入拥塞避免处理。为此,当接收到预定数目的重复ACK包时,SSTHRESH值和CWND大小被设置为值CWND1/2,如标记250,该值为CWND大小,即CWND1,如标记230,的一半。
TCP算法是针对其中路由器具有相当长的队列并且链路层有较少误差的有线网络提出的。然而,移动自组织网络相较于有线网络在链路层具有相当慢的数据传输速率以及非常短的队列。因此,在移动自组织网络中发生数据包丢失的情况下,如果CWND大小锐降,则网络资源的不必要消耗不可避免。
例如,当实施快速恢复算法时,当接收到3个重复ACK包时,重置的CWND值大约为CWND值的一半。然而,重复ACK包可被不断接收,其意味着即使一个或两个数据包丢失,其它的数据包也不断被发送。也就是说,即使当前的CWND大小被保持,传输仍在最大允许带宽内被执行。因此,将CWND大小减至当接收到3个重复ACK包时被设置的CWND大小的一半,可导致最大允许带宽的浪费。因此,不断需要网络资源有效利用的改进的数据传输方法。

发明内容
本发明提供一种改进的数据传输方法,其中,在数据包丢失被从接收到的重复ACK包来确定的情况下,可以通过将重传丢失的数据包之后被设置的CWND大小调整为当该丢失的数据包被第一次发送时设置的CWND大小来增加数据传输吞吐量。
参照下面的描述、附图和所附权利要求,本领域的技术人员会更加清楚本发明的上述及其它目的、特征和优点。
根据本发明的一方面,提供一种用于发送数据的方法,包括在数据包传输期间,将被发送的数据包的序列号映射为拥塞窗口大小,确定在被发送的数据包中是否有丢失的数据包,以及如果确定有丢失的数据包,则重传该丢失的数据包并且将拥塞窗口大小调整为被映射到该丢失的数据包的序列号的拥塞窗口大小。
根据本发明的另一方面,提供一种网络设备,包括映射单元,用于在数据包传输期间,将被发送的数据包的序列号映射为拥塞窗口大小;控制器,如果确定有丢失的数据包,则重传该丢失的数据包并且将拥塞窗口大小调整为被映射到该丢失的数据包的序列号的拥塞窗口大小;以及收发器,用于发送数据包并接收与该数据包相应的确认(ACK)包。


通过下面结合附图进行的对示例性实施例的详细描述,本发明的上述和/或其它方面将会变得更加清楚,其中图1是示出根据传统的慢启动/拥塞避免算法的吞吐量的变化的示图;
图2是示出根据利用快速重传和快速恢复算法的传统拥塞控制算法的吞吐量的变化的示图;图3是示出根据本发明的示例性实施例,用于在移动自组织网络中发送数据的方法的流程图;图4示出数据包的发送以及ACK包的接收;图5是示出根据本发明的示例性实施例的吞吐量的变化的示图;图6是根据本发明的示例性实施例的网络设备的方框图;以及图7是示出在根据本发明的示例性实施例的数据传输方法和传统数据传输方法中吞吐量的仿真结果的曲线图。
具体实施例方式
参照示例性实施例的详细描述以及附图,本发明的多方面和实现其的方法将更易于理解。然而,本发明可以多种不同的形式实施,并不应被解释为受限于其中阐述的示例性实施例。而是,提供这些示例性实施例以便公开是彻底和完全的,并能够向本领域技术人员充分传达本发明的思想,并且本发明仅由所附的权利要求限定。说明书中,相同的标号始终表示相同的部件。
参照附图,更充分地描述本发明,其中示出本发明的示例性实施例。
图3是示出根据本发明的示例性实施例,在移动自组织网络中发送数据的方法的流程图。
在操作S110,想要发送数据的网络设备将数据包的序列号映射为当前的CWND大小。
然后,在操作S120,该网络设备发送各个数据包。
为了控制数据包的传输,TCP使用被称为是“窗口”的概念。如果将被发送的数据包被存储在缓冲器中,则窗口大小内的数据包被同时发送。通过改变拥塞窗口大小可调整窗口的大小。可使用滑动窗口方法。在滑动窗口方法中,每当接收到ACK包时,窗口沿包的序列滑动。
如上所述,数据包的传输以窗口内的数据包为单位进行。因此,在接收ACK包之前,窗口内所有的数据包可被不断发送。
在由网络设备发送的数据包安全到达目的地的情况下,该网络设备可接收到发送的数据包的ACK包。然而,如果该网络设备处于拥塞状态下,则在接收ACK包之前,网络设备可发生传输超时。从而,在操作S130,网络设备确定重传超时是否发生。如果重传超时发生,则在操作S195,可利用传统的慢启动/拥塞避免算法来调整数据传输的吞吐量。
然而,如果在重传超时发生前接收到ACK包,则在操作S140,网络设备确定接收到的ACK包是否是重复ACK包。
如果接收到的ACK包不是重复ACK包,则在操作S190,可以与传统方法同样的方式增加CWND大小。例如,当实施慢启动算法来调整当前的CWND大小时,CWND大小呈指数增加。当目前运行拥塞避免算法时,CWND大小呈线性增加。
在操作S180,确定在增加CWND大小之后是否还有要被发送的数据包。如果由更多将被发送的数据包,则窗口移动以发送接下来的数据包。在这种情况下,当将被接下来发送的数据包的序列号映射为当前的CWND大小时,网络设备可重复操作S110和下面的操作,同时,将被接下来发送的数据包的序列号映射成当前的CWND大小(在操作S190增加的CWND大小)。
同时,在操作S140,如果接收到的ACK包被确定为重复ACK包,则在操作S150,网络设备确定接收到的相同的重复ACK包的数目是否大于或等于阈值数目。与现有技术中的快速重传算法一致,为了确定是否有数据包丢失,相同的重复ACK包被接收3次。这样,操作S150中的阈值数目优选为三(3)。
如果接收到的重复ACK包的数目小于阈值数目,则重复ACK包的发生被确定为由网络中的不同延时产生的接收端的数据包接收序列与发送端的数据包发送序列的不同引起的,而不是由于数据包丢失引起。在这种情况下,网络设备确定无数据包丢失。从而,CWND大小以与无重复ACK包被接收到的情况相同的情况下在步骤S190被增加。
另一方面,如果重复ACK包的数目大于或等于阈值数目,则重复ACK包的发生可被确定为由数据包丢失引起。在这种情况下,在操作S160,网络设备重传从重复ACK包估计到的丢失的数据包。
当重传数据包时,在操作S170,网络设备可将CWND大小重置为映射到丢失的数据包的序列号的CWND大小。
此后,在操作S180,确定是否有更多将被发送的数据包。如果有,则窗口移动以发送接下来的数据包。可重复执行跟在操作S110之后的操作。
如上所述,数据包丢失从重复ACK包被检测到以随后重传该丢失的数据包并且在操作S170重置CWND大小。此后,在发送剩余的数据包时,网络设备可以与使用拥塞避免算法的情况下相同的方式来线性地增加CWND大小。为此,当在操作S170CWND大小被重置时,SSTHRESH值可被设置为不小于重置的CWND大小的级别。
图4示出数据包的发送和ACK包的接收。
如图4所示,当发送网络设备310发送数据包时,接收网络设备320发送对于从发送网络设备310发送的数据包的ACK包。根据本发明的示例性实施例,每当每一数据包被发送时,发送网络设备310将数据包的序列号映射为当发送数据包时设置的CWND大小。
在示出的示例性实施例中,包6和包7被正常地发送至接收网络设备320。因此,接收网络设备320分别发送包6和包7的ACK包321和322。每当从接收网络设备320接收到每一ACK包时,发送网络设备310可增加CWND大小。
同时,如果在发送的数据包中的包8丢失,如图4所示,则未接收到包8的接收网络设备320不发送包8的ACK包。在这种情况下,即使包9-11随后被接收到,接收网络设备320也复制包7的ACK包以随后将该包7的ACK包发送至发送网络设备310,如标记323至325。如果在操作S150中阈值数目被设为3,则当接收到包7的第三个重复ACK包325时,如标记311,发送网络设备310确定包8丢失。
如果包8被确定为丢失的包,则发送网络设备310重传包8并将CWND大小重置为与被映射为包8序列号的CWND大小相同的CWND大小。
图5是示出根据本发明的数据传输的吞吐量变化示图。
每当每一数据包被发送时,发送网络设备将数据包的序列号映射为当发送该数据包时设置的CWND大小。在接收到发送数据包的ACK包时,发送网络设备可增加CWND大小。
如果图4中所示的数据包8在时间t1被发送,并且包7的第三个重复ACK包在时间t2被接收,如标记311,则发送网络装置可在时间t2确定包8丢失。由于包8丢失,发送网络设备重传包8。另外,发送网络设备可将CWND大小设置为在发送包8时映射为包8的序列号相同的410标记的CWND大小。
其后,每当每一ACK包被接收时,CWND大小可被再次增加。为了线性地增加CWND大小,SSTHRESH值可被设置为映射为包8的序列号的CWND大小410。另外,SSTHRESH值被设置为小于被映射为包8的序列号的CWND大小410的值。因此,每当接收到每一ACK时,在时间t2之后设置的CWND大小呈线性增加。
图6是根据本发明的网络设备500的方框图。
参照图6,网络设备500包括收发器510、控制器530、以及映射单元520。收发器510发送数据包并且接收被发送数据包的ACK包。控制器530确定是否有丢失的数据包,重传该丢失的数据包并且相应地调整CWND大小。映射单元520将数据包的序列号映射为当发送给数据包时被设置的相应的CWND大小。
更详细地,除了将数据包发送至目的地并接收发送的数据包的ACK包,收发器510可具有接收从另一网络设备发送的数据包的功能。收发器510能够在无线网络环境中实现数据发送和接收并且可根据每一网络配置的相应的无线网络标准被配置为可工作在IEEE 802.11、蓝牙、或IEEE 1394网络中。
每当数据包被发送时,映射单元520将每一数据包的序列号映射为当发送该数据包时被设置的相应的CWND大小。
控制器530确定发送的数据是否丢失。实行此确定以便每当每一数据包被发送时,重传定时器被起动,并且当直到定时器期满数据包的ACK包未被接收到时相应的数据包被确定为丢失的数据包。
另外,即使重传定时器未期满,可从接收到的相同的重复ACK包数目检测出数据包丢失。即,如果相同的重复ACK包被接收到预定的阈值数目次,则控制器530从接收到的重复ACK包确定数据包丢失。这里,预定的阈值数目优选为3。
同时,如果发送的数据包被确定为丢失的数据包,则控制器530减小CWND大小以使被发送的数据数量不超过当前的无线网络中的最大允许带宽。
在这种情况下,如果数据包丢失确定基于重传定时器的期满,则控制器530可使用传统的慢启动/拥塞避免算法来调整CWND大小。即,在未接收到ACK包,重传定时器期满,或重传超时发生的状态下,CWND大小可被设置为1TCP段。
然而,如果数据包丢失的确定基于相同的重复ACK包接收了预定的阈值数目次,则控制器530重传被认为丢失的数据包并且将CWND大小减小为被映射到该丢失数据包的序列号的CWND大小。
此后,当基于减小的CWND大小发送数据包时,CWND大小可被逐渐增加。这里,为了线性增加CWND大小,控制器530可将SSTHRESH值设置为被映射为丢失数据包的序列号的CWND大小。另外,SSTHRESH可被设置为小于被映射为丢失数据包的序列号的CWND大小的值。
多个重复ACK包被不断接收到的事实意味着在丢失的数据包之后发送的数据包被正常地发送至接收网络设备,表明当前的数据传输量没有超过最大允许带宽。因此,通过将新的CWND大小调整为相应的丢失数据包的CWND大小以减少网络资源的浪费。
图7是示出在根据本发明的示例性实施例的数据传输方法中和传统传输方法中吞吐量的仿真结果的曲线图。
在图7中,x轴表示用于发送和接收数据的移动装置的移动速度,y轴表示吞吐量。
为了比较本发明的网络性能参数,利用网络仿真器版本2(NS2)进行TCP Reno版本、TCP Vegas版本和TCP SACK版本的仿真。
如图7中所示的仿真结果显示出本发明大大提高了TCP数据率吞吐量。即,根据本发明的数据传输方法的吞吐量大约好于TCP Reno版本11%并好于TCP SACK版本大约5%。
根据本发明的发送数据的方法以及使用该方法的设备,无线自组织网络的吞吐量得到增加。
结束详细描述,本领域技术人员将理解在基本上不脱离本发明的原理的情况下,可对示例性实施例进行多种变化和修改。因此,本发明的公开的示例性实施例只具有一般的和描述性的意义,不具限制目的。
权利要求
1.一种用于发送数据的方法,包括在数据包传输期间,将待被发送的数据包的序列号映射为拥塞窗口大小;确定在发送的数据包中是否有丢失的数据包;以及如果有丢失的数据包,则重传该丢失的数据包并且将拥塞窗口大小调整为被映射为该丢失的数据包的序列号的拥塞窗口大小。
2.如权利要求1所述的方法,其中,确定步骤包括确定接收到的重复ACK包的数目是否大于或等于预定的阈值数目。
3.如权利要求2所述的方法,还包括将慢启动阈值设置为等于被映射为丢失的数据包的序列号的拥塞窗口大小。
4.一种网络设备,包括映射单元,用于在数据包传输期间,将待被发送的数据包的序列号映射为拥塞窗口大小;控制器,如果确定有丢失的数据包,则其重传该丢失的数据包并且将拥塞窗口大小调整为被映射为该丢失的数据包的序列号的拥塞窗口大小;以及收发器,用于发送数据包并接收与该数据包相应的确认(ACK)包。
5.如权利要求4所述的网络设备,其中,如果接收到的重复ACK包的数目大于或等于预定的阈值数目,则控制器确定有丢失的数据包。
6.如权利要求5所述的网络设备,其中,控制器将慢启动阈值设置为等于被映射为丢失的数据包的序列号的拥塞窗口大小。
全文摘要
提供一种其中当重复ACK包被接收时通过调整拥塞窗口大小来调整被发送数据的数量的在自组织网络中发送数据的方法,以及利用该方法的网络设备。该方法包括在数据包的传输期间,将待被发送的数据包的序列号映射为拥塞窗口大小,确定是否有丢失的数据包,以及如果有丢失的数据包,则重传该丢失的数据包并且将拥塞窗口大小调整为被映射为该丢失的数据包的序列号的拥塞窗口大小。因此,在无线自组织网络中的数据率吞吐量被增加。
文档编号H04L12/26GK1700629SQ20051007089
公开日2005年11月23日 申请日期2005年5月20日 优先权日2004年5月21日
发明者辛镇炫 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1