使用多个传输控制协议确认的传输控制协议拥塞控制的制作方法

文档序号:7952365阅读:91来源:国知局
专利名称:使用多个传输控制协议确认的传输控制协议拥塞控制的制作方法
技术领域
本发明涉及使用多个传输控制协议(TCP)确认(Ack)的TCP拥塞控制。更具体地,在其中移动节点经由TCP连接执行与有线网络服务器的通信的有线-无线综合网络中,本发明涉及通过使用多个TCP确认来解决伴随传统TCP拥塞控制发生的问题,以便避免由于移动节点的运动引起的分组丢失所导致的TCP终端节点之间的性能降低。
背景技术
在无线-有线综合环境中,经由与有线对应节点(CN)或服务器的传输控制协议(TCP)连接,移动节点(MN)具有例如网络和电子邮件服务的因特网服务。移动IP协议用于避免TCP连接流由于MN的运动而导致中断。
随着当前MN的普及性增加,用户在任意位置经由MN要求因特网服务同样也增加。然而,只考虑了具有相对较低分组丢失率的有线网络或静止节点,来设计广泛地用于MN和CN之间的数据传输的TCP协议。因此,当用于性能较差的无线网络或有线-无线综合网络时,端到端等待时间很长,以及在切换期间,由于高分组丢失率而导致经常发生分组丢失,TCP协议包含多个问题,例如节点之间的性能降低。
考虑了有线或固定网络来设计传统的TCP协议。在现有有线网络中,分组丢失率较低并且不经常发生中断。因此,主要由由于例如网络的中间节点中的缓冲溢出而导致的拥塞引起有线网络中的分组丢失。因此,TCP协议执行拥塞控制算法,例如慢启动(slow start)和拥塞避免,来减少进入网络的数据量,从而避免进一步拥塞。
拥塞控制是一种用于解决由于输入流量超出网络设备容量或者集中在网络设备持续过载的特定端口而导致的拥塞的技术。
已经在例如1990年的TCP Reno的各种版本中实现了从1988年的TCP Tahoe到1995年的TCP Vegas的TCP拥塞控制机制。TCP拥塞控制机制具有基本算法,包括慢启动、拥塞避免和快速重发。
TCP拥塞控制的主要目的是直接控制发送节点的发送率,以便重发由于拥塞而毁坏的数据。TCP是一种属于OSI参考模型第四层的协议,并且在终端节点之间产生作用,而与发送和接收节点之间的节点数目无关。TCP形成具有发送和接收节点作为两端的环,并且通过对该环采用发送自发送侧的确认信息、窗口和超时功能,实现拥塞控制机制。
TCP Tahoe之前的TCP版本通过发送与接收节点所建议的窗口尺寸相对应的段,建立连接和开始发送。即,如果接收节点告知的窗口尺寸大于一个段的尺寸,可能发送多个段。然而,如果在两个终端节点之间发生拥塞或存在慢链路,中间节点或路由器必须缓存分组。然而,如果任何路由器具有不足的缓冲容量,在缓存期间发生分组丢失。因此,由于检测分组丢失的延迟和重发的延迟,分组丢失急剧地降低了TCP处理率。这被称为拥塞崩溃。
为了解决拥塞崩溃,引入“保留分组”的原则。该原则表示当前设置的连接处于平衡中,例如其中在完全发送一个分组之前不发送新的分组。尽管根据该陈述理论上不可能具有拥塞,实际上在因特网中发生拥塞。存在一些原因例如,当前设置的连接没有达到平衡,在完全发送一个分组之前发送节点发送了新的分组,或者在当前路径中由于有限的网络源而不可能达到平衡。
“慢启动”是一种算法,设计用于当前设置的连接没有达到平衡的情况。按照字面意义,这表示以低速率开始发送,以便当前设置的连接达到平衡。没有从接收节点接收“Ack”消息,则发送节点不能够发送新的段,并且在从发送节点接收到段之前,接收节点同样不能够发送“Ack”消息。因此,发送自接收节点的“Ack”消息用作为一种计时器。
在发送相等数据尺寸的段的情况下,当通过慢发送速率的链路时发送延迟很严重,并且在根据延迟的间隔处发生“Ack”。因此,即使发送节点可以以较快速率发送段,没有接收到“Ack”则不能够发送新的段。
慢启动给传统TCP添加了拥塞窗口(cwnd)。当由于拥塞或在初始连接设置处发生段丢失时,将cwnd初始化为1。发送节点根据接收节点和cwnd值所建议的较小一个窗口来确定发送窗口尺寸。
当接收节点发送“Ack”时,cwnd值增加一。即,当发送节点建立新的连接、发送一个段并接收到该段的“Ack”时,发送节点可以发送两个段。当接收到两个段的“Ack”时,发送节点可以发送4个段。段按照8、16等指数地增加,直到达到拥塞避免开始工作的慢启动阈值(Wt)。
在发送和接收节点之间发生的分组丢失是由物理错误或在由于拥塞引起的缓存期间缓存空间不足导致的。发送技术和媒体的近期发展显著地减少了物理丢失的部分。因此,多数分组丢失是由于拥塞引起的。当然,在具有相对较高发送错误概率的无线链路中,该假设无效。
拥塞避免进行告知拥塞的过程和减少在拥塞情况下使用的当前网络的过程。即使是不同的算法,慢启动和拥塞避免共同工作。
当设置新的连接时,初始拥塞窗口值被设置为1段。在拥塞的情况下,当前cwnd尺寸的1/2被设置为Wt值。如果由于超时导致拥塞,cwnd值再次变为1,即,慢启动模式。如果没有拥塞,cwnd值根据可以是慢启动cwnd或拥塞避免cwnd的当前状态,以不同模式继续增加。在慢启动模式中,当接收到“Ack”时,如上所述,cwnd值增加一,直到cwnd值等于当前设置的Wt值。如果cwnd值等于当前设置的Wt值,其后,进入拥塞避免模式。
在拥塞避免模式中,当接收到“Ack”时,cwnd值增加‘1/cwnd’。相比于慢启动模式值的指数cwnd增加,这被称为线性增加。
在以最小重发阈值接收复制的Ack时,TCP重发相应的段,而与重发定时器无关。这被称为快速重发。在这种情况下,例如,在超时之前Ack没有到达的情况下,由传输TCP产生复制Ack。
重发定时器是一种包含在TCP中以便处理由于丢失或毁坏而丢弃的段的定时器。重发定时器被定义为在已经发送段之后等待Ack的时间周期。当发送段时,TCP操作相应段的重发定时器。当在定时器过期之前接收到相应段的Ack时,定时器终止。当在接收到Ack之前定时器的时间周期已经过期时,重发相应段,并且初始化定时器。
例如,如果重发阈值是3,当接收到三个复制Ack时,发送节点认为相应段丢失,并且重发相应段。
与上述有线网络中的拥塞控制不同,在无线链路中,相比于有线链路,发现相对较高的误码率(BER)。此外,带宽是有限的,并且在无线链路中经常发生切换。因此,尽管有线网络中的分组丢失是中间路由器中的拥塞所导致的,在包括无线链路的环境中的分组丢失的发生归因于高的BER或切换。
因此,当在无线链路中发生分组丢失时,发送侧必须以更快的速率发送分组。然而,当前的TCP发送侧认为无线链路中的分组丢失同样是由网络拥塞导致的,并且执行拥塞控制算法来减慢TCP发送速率。这明显地降低TCP性能并降低了网络效率。
对于有线-无线综合网络,当应用在TCP协议中使用的拥塞控制算法时发生性能降低的原因如下。首先,从CN将数据发送到MN。响应来自CN的数据,MN发送相应的数据。然而,当无线链路中发生分组崩溃时,在超时时间段期间CN没有接收到“Ack”分组。则,CN误认为网络拥塞,并因此运行拥塞控制算法,以慢速率启动,并且调用拥塞避免算法将拥塞窗口的尺寸重新设置为1。
如上所述,拥塞窗口值是在TCP中不需要来自对应节点的任意响应而可以发送分组的最大数目。因此,当拥塞窗口值变小时,TCP发送速率同样减小,并且TCP性能与拥塞窗口值成比例地降低。在CN中,在无线链路期间,对发送数据的响应同样崩溃。如果在超时时间段内没有接收到“Ack”分组,拥塞控制算法进行操作,同样降低了MN的TCP性能。
因此,当现有技术共有的TCP拥塞控制算法被应用于有线-无线综合网络时,即使实际网络没有拥塞,由于无线网络的高分组丢失率,TCP性能变差。这使得在包括无线链路的网络中必须改进TCP拥塞控制算法。

发明内容
因此,本发明的目的是提供一种使用多个TCP确认的TCP拥塞控制系统和方法,按照该系统和方法,修改TCP拥塞控制机制,从而当接收到毁坏的分组时,MN产生多个TCP确认并将其发送到发送节点,发送节点相应地执行TCP发送,以便迅速地减少TCP性能降低。
根据本发明用于实现上述目的的一个方案,提供了一种在包括无线链路的综合网络中使用多个传输控制协议(TCP)ACK的TCP拥塞控制方法,该方法包括当移动节点在接收到的分组中具有分组丢失时,接收从对应节点重发的分组;计算移动节点要发送的确认消息的数目;根据计算的数目产生多个确认消息,并且将多个确认消息发送到发送节点;以及增加与发送节点接收到的多个确认消息相对应的拥塞窗口值,并执行TCP发送。
优选地,实现接收、计算、发送、增加和执行,与网络层协议无关。
优选地,网络层协议包括从由以下协议组成的组中选出的至少一个协议因特网协议(IP)、因特网协议版本6(IPv6)、无线IP和移动IPv6(MIPv6)。
产生多个确认消息包括将包含在当前接收到的分组的TCP报头中的序号与当前最大序号进行比较,当前最大序号是已经接收到的分组的序号中的最大号码;以及当当前接收到的分组的序号大于当前最大序号时,更新当前接收到的分组的序号作为新的最大序号,以及当当前接收到的分组的序号等于或小于当前最大序号时,产生多个确认分组。
产生多个确认分组包括计算期望的序号,期望的序号是移动节点期望的下一个分组的序号;计算确认数据长度,确认数据长度是移动节点要发送的多个确认分组的整个长度;确定移动节点要产生并发送的确认分组的数目;将从最后的确认序列到期望序号的分组范围平均地划分为与确认分组数目相对应的分组部分,并且根据划分的确认分组部分来计算各个确认号码字段值;以及根据计算的各个确认号码字段值来产生各个确认分组,并且将各个确认分组发送到发送节点。
优选地,通过从期望序号中减去最后的确认序列,来确定确认数据长度。
优选地,使用接收到的TCP分组的序号、数据长度和TCP控制块的接收缓存信息,来计算期望的序号。
优选地,通过将广告窗口值除以最大段尺寸,来确定确认分组的数目,广告窗口值是移动节点当前可用的接收缓存尺寸,以及最大段尺寸是移动节点可以接收的最大数据尺寸。
优选地,各个确认号码字段值将最后的序号作为初始值,并且优选地,在增加预定尺寸的同时变化,直到确认号码字段值等于期望的序号。
优选地,通过将确认数据长度除以确认分组的数目,来确定所述预定尺寸。
根据本发明用于实现上述目的的另一方案,提供了一种在包括无线链路的综合网络中使用多个传输控制协议(TCP)ACK的TCP拥塞控制方法,该方法包括在移动节点,将包含在当前接收到的分组的TCP报头中的序号与已经接收到的当前最大序号进行比较,来确定在网络中是否存在TCP分组丢失,最大序号是分组的最大序号;以及当确定存在TCP分组丢失时,计算期望的序号,期望的序号是移动节点期望的下一个分组的序号;计算确认数据长度,确认数据长度是移动节点要发送的多个确认分组的整个长度;确定移动节点要产生和发送的确认分组的数目;将从最后的确认序列到期望序号的分组范围平均地划分为与确认分组数目相对应的分组部分,并且根据划分的确认分组部分来计算各个确认号码字段值;以及根据计算的各个确认号码字段值来产生各个确认分组,并且将各个确认分组发送到发送节点。
优选地,实现该方法,与网络层协议无关。
优选地,网络层协议包括从由以下协议组成的组中选出的至少一个协议因特网协议(IP)、因特网协议版本6(IPv6)、无线IP和移动IPv6(MIPv6)。
根据本发明用于实现上述目的的另一方案,提供了一种移动节点,位于包括无线链路并使用传输控制协议(TCP)实现通信的综合网络中,所述移动节点适合于执行TCP拥塞控制方法,该方法包括将包含在当前接收到的分组的TCP报头中的序号与已经接收到的当前最大序号进行比较,来确定在网络中是否存在TCP分组丢失,最大序号是分组的最大序号;当确定存在TCP分组丢失时,计算期望的序号,期望的序号是移动节点期望的下一个分组的序号,以及确认数据长度,确认数据长度是移动节点要发送的多个确认分组的整个长度和移动节点要产生和发送的确认分组的数目;将从最后的确认序列到期望序号的分组范围平均地划分为与确认分组数目相对应的分组部分,并且根据划分的确认分组部分来计算各个确认号码字段值;以及根据计算的各个确认号码字段值来产生各个确认分组,并且将各个确认分组发送到发送节点。
优选地,通过从期望序号中减去最后的确认序列,来确定确认数据长度。
优选地,通过将广告窗口值除以最大段尺寸,来确定确认分组的数目,广告窗口值是移动节点当前可用的接收缓存尺寸,以及最大段尺寸是移动节点可以接收的最大数据尺寸。
优选地,各个确认号码字段值将最后的序号作为初始值,并且优选地,在增加预定尺寸的同时变化,直到确认号码字段值等于期望的序号。
优选地,通过将确认数据长度除以确认分组的数目,来确定所述预定尺寸。
根据本发明用于实现上述目的的另一方案,提供了一种移动节点,位于包括无线链路并使用传输控制协议(TCP)实现通信的综合网络中,所述移动节点适合于执行TCP拥塞控制方法,该方法包括从响应分组丢失而产生并发送多个确认消息的相应移动节点接收多个确认消息;增加与移动节点接收到的多个确认消息相对应的拥塞窗口值;以及实现TCP发送。
根据本发明用于实现上述目的的另一方案,提供了一种系统,位于包括无线链路并且执行传输控制协议(TCP)拥塞控制的综合网络中,该系统包括接收节点,适用于当移动节点在接收到的分组中具有分组丢失时,接收从对应节点重发的分组,计算要发送的确认消息的数目,根据计算的数目产生多个确认消息,以及将多个确认消息发送到对应节点;以及发送节点,适用于从接收节点接收多个确认消息,增加与接收到的多个确认消息相对应的拥塞窗口值,以及实现TCP发送。
根据本发明的多个TCP ACK产生方法可以简单、有效地补偿由于切换而导致的TCP性能降低,并且可以容易地被应用于移动节点。


结合附图,通过参考下面详细的说明,可以更好地理解本发明,并且显而易见其伴随的多个优点,附图中类似的参考符号表示相同或类似的组件,其中图1是将普通TCP拥塞控制算法应用于有线-无线综合网络的分组丢失过程的视图;图2是应用本发明的有线-无线综合网络的通用结构的视图;图3是根据本发明实施例的多个TCP确认方法中的操作协议栈的视图;图4是根据本发明实施例的多媒体服务控制流的视图;图5是根据本发明实施例的MN的MTAG模块中的详细处理流的视图;以及图6是根据本发明实施例的MTAG模块处理的视图。
具体实施例方式
图1是将普通TCP拥塞控制算法应用于有线-无线综合网络的分组丢失过程的视图。
即,图1是对于有线-无线综合网络,应用TCP协议中使用的拥塞控制算法时发生性能降低的原因的视图。首先,从CN将数据发送到MN。响应来自CN的数据,MN发送相应的数据。然而,当无线链路中发生分组崩溃(毁坏1)时,在超时时间段期间CN没有接收到“Ack”分组。则,CN误认为网络拥塞,并且调用拥塞控制算法,以慢速率启动,并调用拥塞避免算法将拥塞窗口的尺寸重新设置为1。
如上所述,拥塞窗口值是在TCP中不需要来自对应节点的任意响应而可以发送分组的最大数目。因此,当拥塞窗口值变小时,TCP发送速率同样减小,并且TCP性能与拥塞窗口值成比例地降低。在CN中,在无线链路期间,对发送数据的响应同样崩溃(毁坏2)。如果在超时时间段内没有接收到“Ack”分组,拥塞控制算法进行操作,同样降低了MN的TCP性能。
下面结合附图来详细说明本发明的优选实施例。
图2是应用本发明的有线-无线综合网络的通用结构的视图。
如图2所示,有线-无线综合网络在左侧经由因特网与有线链路相连,在右侧与移动通信网络所代表的无线链路相连。
MN 200代表位于图2的有线-无线综合网络的无线网络中的移动节点,并且其范例包括图2所示的移动主机或移动笔记本计算机。MN200经由基站120与因特网相连。
对应节点(CN)100表示对应的TCP对等节点。尽管CN 100可以是MN或固定节点,在图2网络中只由固定节点表示。图2中的CN可以是从由以下设备组成的组中选出的任何单元与有线链路相连的电子邮件服务器、网络服务器和固定主机。
假设应用本发明的图2网络的MN 200和CN 100被用于执行TCP通信,并且后面将说明的本发明典型实施例假设CN 100作为发送侧将TCP分组发送到作为接收侧的MN 200。
图3是根据本发明实施例的多个TCP确认方法中的操作协议栈的视图。
换句话说,图3是用于提供根据本发明实施例的多个确认方法的多个TCP ACK产生(MTAG)模块210在TCP/IP层模型中的位置的视图。
TCP/IP层模型具有在最低层物理地发送数据的硬件,和位于比硬件更高的层中的网络接口(数据链路)层。网络接口层用作通过例如以太网等数据链路进行通信的接口。
在高于网络接口层的层中,网络层(因特网层)使用IP协议。IP协议根据IP地址来发送分组。因为假设CN 100与固定网络相连,在CN 100中可以使用IP、IPv6等。MN 200可以使用IP/IPv6以及针对无线环境的移动IP(MIP)/MIPv6。
传输层存在于高于网络层的层中。传输层最重要的功能是能够在应用程序之间进行通信。MTAG模块210位于传输层中。因为在本发明典型实施例中假设MN 200作为接收侧,在MN 200的传输层中存在MTAG模块210。在CN 100和MN 200中,应用层存在于高于传输层的层中。
如图3所示,在MN 200的TCP层中,多个TCP ACK产生方法被应用于处理接收分组。MN 200包括用于实施多个TCP ACK产生方法的MTAG模块210。MTAG模块210修正并补充TCP拥塞控制协议,以便可以快速恢复由于切换导致的TCP性能下降。
从图3中可见,多个TCP ACK产生方法可以应用于所有的IPv4/IPv6环境,即,网络层中使用的协议。换句话说,根据本发明实施例的多个TCP ACK产生方法工作在MN的TCP层中,并因此独立于网络层协议。
图4是根据多个TCP ACK产生方法的MN的接收分组处理的视图。
为了存储迄今已经接收到的最大的分组序号,在MN 200的TCP层中设置最大序号变量(max_seq_no)。当在S401中MN 200从CN 100接收到TCP分组时,在S402中,MN 200将接收分组的TCP报头的序号字段(seq_no)值与最大序号进行比较。如果接收分组的序号大于最大序号,MN 200认为已经接收到正常分组,并在S403中将当前接收到的分组的序号重新设置为最大序号。即,MN 200将最大序号更新为正常接收到的分组的序号,并且在S405中将正常接收到的分组提供给接收数据处理步骤。
在此,TCP段序号表示分配给包含在相应TCP段中的数据的第一字节的序号。为了确保可靠连接,TCP给每一个转发字节分配序号,序号告知目的TCP段第一字节与该序号相对应。
如果接收分组的序号等于或小于最大序号,这表示接收到重发分组。因为无线链路错误导致分组丢失,并因此发送TCP中的重发定时器超时,发生分组重发。在CN的TCP层中进行重发的情况下,拥塞窗口值减为1或1/2,以及TCP发送速率同样减小。在S404中,由MN侧中的TCP层的MTAG处理模块来处理来自CN的分组重发。
在S405中,MTAG模块产生并将多个ACK分组发送到CN,并随后将接收分组提供给接收数据处理步骤。即,MTAG模块产生多个TCP ACK分组,来响应作为将由MN的TCP层发送的ACK分组的新数据。并将TCP ACK分组发送到CN,以便CN的拥塞窗口值迅速恢复到切换前的值。
图5是根据本发明实施例的MN的MTAG模块中详细的处理流的视图。
因为上面已经详细说明了MTAG模块210的基本操作,下面结合图5进一步说明MTAG模块210的详细和具体的操作。
首先,MTAG模块使用如下的变量期望序号(ack_seq_no)MN期望的下一个分组的序号;最后确认序列(last_ack_seq)MN最后发送的TCP ACK分组的确认号码字段值;确认数据长度(ack_data_len)要由MN发送到CN的ACK分组的整个长度;多确认序列(multi_ack_seq)要由MN发送到CN的ACK分组的确认号码字段值;N要由MN产生并发送的ACK分组的数目。
通过使用上面的变量,MTAG模块210如图5所示进行操作。
为了产生多个有效ACK分组来代替发送ACK分组,在S501中,使用优先接收到的TCP分组的序号以及TCP控制块的数据长度和接收缓存信息,来计算下一个期望的序号。在此,根据传统TCP方法执行期望序号计算。然而,本发明没有提出具体的计算方法。
当产生ack_seq_no时,在S502中,可以通过从ack_seq_no中减去last_ack_seq产生ack_data_len。即,可以表达为“ack_data_len=ack_seq_no-last_ack_seq。”确定ack_data_len,即要由接收TCP发送的ACK分组的整个数据长度,是确定为了发送要将ACK分组划分为的组数目。N是该过程所必需的。如上所定义,N表示要由MN 200产生并发送的ACK分组的数目。
不是随机地确定N,而是在S503中,通过将广告窗口(awnd)除以最大段尺寸(MSS)来确定N。即,根据MN 200可用的接收缓存尺寸,确定N,因为如果随机地发送和接收,多个ACK分组会引起网络拥塞。
作为由接收TCP转发到发送TCP的值,awnd指定MN 200当前可用的接收缓存尺寸。MMS是定义目的地可以接收的数据最大尺寸的TCP报头选项。在发送和接收侧之间建立连接期间确定MMS。由接收侧而不是发送侧确定最大数据尺寸。
当确定了要由MN 200发送的ACK分组的数目N时,必须确定要包含在所发送的每一个ACK分组中的字段内容。
首先,将从last_ack_seq到ack_data_len的范围[last_ack_seq,ack_data_len]划分为总共N个部分。然后,在S504中,将multi_ack_seq设置为last_ack_seq,并且在S505中,将变量n设置为“1”,作为初始化。在这种情况下,在下面的过程中,将multi_ack_seq插入到确认数目字段中,并且通过使用last_ack_seq和变量n和N来产生。
在multi_ack_seq和变量n的初始化之后,在S506中,在n等于或小于N(n=N)以及multi_ack_seq等于或小于ack_seq_no(multi_ack_seq=ack_seq_no)的条件下,通过使用multi_ack_seq,来计算要发送的各个ACK分组的确认号码,并相应地发送ACK分组。
在S507中,可以由下面的方程1来表达该过程中所需的multi_ack_seq值。
multi_ack_seq=last_ack_seq+n×ack_data_len/N…方程(1)在此,如上所述,n具有初始值“1”,以及N是要由MN 200发送的ACK分组的数目。
当产生multi_ack_seq时,在S508中,用multi_ack_seq代替ACK分组的确认号码字段,并且将相应的ACK分组发送到TCP发送CN。在已经发送一个ACK分组之后,在S509中,将n增加1,并且重复上面的S506到S509的步骤。
即,在使multi_ack_seq增加ack_data_len/N,直到multi_ack_seq等于ack_data_no的同时,MN 200将从last_ack_seq到ack_data_len的范围划分为N个部分,将multi_ack_seq设置为ACK分组的确认号码,并随后产生总共N个ACK分组,并将其发送到CN 100。
当MN 200已经发送所有要发送的ACK分组时,在S506中,不满足n=N和multi_ack_seq=ack_seq_no的条件。则,在S510中,将last_ack_seq更新为ack_seq_no,并且在S511中,开始接收分组处理例程。
在此,确认号码定义了TCP段的发送节点将要从对应节点接收的字节号码。当接收段时,如果接收节点成功地接收字节号码x,接收器定义确认号码为x+1。
图6是根据本发明的MTAG模块处理的典型实施例的视图。
在图6中,假设由于切换或无线链路特性而导致发生分组丢失,并且CN 100的TCP重复定时器过期,从而CN 100重发分组来应对分组丢失。
假设尽管CN 100将TCP分组发送到MN 200,由于无线链路部分中从基站120到MN 200的切换,丢失了序号1000之后的分组。由于重发定时器过期,CN 100再次将拥塞窗口重新设置为1,并且从序号1000开始重发分组。MN 200从CN 100接收到重发分组,并分析接收分组的序号。因为已经接收到序号1500和2000的分组,ack_seq_no为2500,以及last_ack_seq为1000。
在图6的实施例中,如果awnd是5000字节,以及MSS是定义目的地可以接收的最大数据尺寸是500的TCP报头选项,如下来计算要发送的确认分组的数目NN=awnd/MSS=5000/50=10因此,MN 200利用N来划分序号[1000,2500]中的分组,并且将具有ACK号码为1150、1300、1450、…和2500的分组发送到CN100。当CN 100接收到新的ACK,在早期阶段,根据慢启动,cwnd值增加一。当cwnd值超出慢启动阈值时,应用拥塞避免算法来增加cwnd值。
如上所述,本发明允许接收侧MN发送多个确认分组,以便迅速地恢复由于无线环境中的TCP分组丢失而导致的TCP发送降低,不需要必须改变固定节点的TCP层,也与节点的网络层无关。
尽管结合典型实施例示出并说明了本发明,对于本领域的技术人员显而易见的是,可以做出修改和变化,而不脱离所附权利要求所定义的本发明的精神和范围。
权利要求
1.一种在包括无线链路的综合网络中使用多个传输控制协议(TCP)ACK的TCP拥塞控制方法,该方法包括当移动节点在接收到的分组中具有分组丢失时,接收从对应节点重发的分组;计算移动节点要发送的确认消息的数目;根据计算的数目产生多个确认消息,并且将多个确认消息发送到发送节点;以及增加与发送节点接收到的多个确认消息相对应的拥塞窗口值,并执行TCP发送。
2.根据权利要求1所述的方法,其中,实现接收、计算、发送、增加和执行,与网络层协议无关。
3.根据权利要求2所述的方法,其中,网络层协议包括从由以下协议组成的组中选出的至少一个协议因特网协议(IP)、因特网协议版本6(IPv6)、无线IP和移动IPv6(MIPv6)。
4.根据权利要求1所述的方法,其中,产生多个确认消息包括将包含在当前接收到的分组的TCP报头中的序号与当前最大序号进行比较,当前最大序号是已经接收到的分组的序号中的最大号码;以及当当前接收到的分组的序号大于当前最大序号时,更新当前接收到的分组的序号作为新的最大序号;以及当当前接收到的分组的序号等于或小于当前最大序号时,产生多个确认分组。
5.根据权利要求4所述的方法,其中,产生多个确认分组包括计算期望的序号,期望的序号是移动节点期望的下一个分组的序号;计算确认数据长度,确认数据长度是移动节点要发送的多个确认分组的整个长度;确定移动节点要产生并发送的确认分组的数目;将从最后的确认序列到期望序号的分组范围平均地划分为与确认分组数目相对应的分组部分,并且根据划分的确认分组部分来计算各个确认号码字段值;以及根据计算的各个确认号码字段值来产生各个确认分组,并且将各个确认分组发送到发送节点。
6.根据权利要求5所述的方法,其中,通过从期望序号中减去最后的确认序列,来确定确认数据长度。
7.根据权利要求6所述的方法,其中,使用接收到的TCP分组的序号、数据长度和TCP控制块的接收缓存信息,来计算期望的序号。
8.根据权利要求5所述的方法,其中,通过将广告窗口值除以最大段尺寸,来确定确认分组的数目,广告窗口值是移动节点当前可用的接收缓存尺寸,以及最大段尺寸是移动节点可以接收的最大数据尺寸。
9.根据权利要求5所述的方法,其中,各个确认号码字段值将最后的序号作为初始值,并且在增加预定尺寸的同时变化,直到确认号码字段值等于期望的序号。
10.根据权利要求9所述的方法,其中,通过将确认数据长度除以确认分组的数目,来确定所述预定尺寸。
11.一种在包括无线链路的综合网络中使用多个传输控制协议(TCP)ACK的TCP拥塞控制方法,该方法包括在移动节点,将包含在当前接收到的分组的TCP报头中的序号与已经接收到的当前最大序号进行比较,来确定在网络中是否存在TCP分组丢失,最大序号是分组的最大序号;以及当确定存在TCP分组丢失时,计算期望的序号,期望的序号是移动节点期望的下一个分组的序号;计算确认数据长度,确认数据长度是移动节点要发送的多个确认分组的整个长度;确定移动节点要产生和发送的确认分组的数目;将从最后的确认序列到期望序号的分组范围平均地划分为与确认分组数目相对应的分组部分,并且根据划分的确认分组部分来计算各个确认号码字段值;以及根据计算的各个确认号码字段值来产生各个确认分组,并且将各个确认分组发送到发送节点。
12.根据权利要求11所述的方法,其中,实现该方法,与网络层协议无关。
13.根据权利要求11所述的方法,其中,网络层协议包括从由以下协议组成的组中选出的至少一个协议因特网协议(IP)、因特网协议版本6(IPv6)、无线IP和移动IPv6(MIPv6)。
14.一种移动节点,位于包括无线链路并使用传输控制协议(TCP)实现通信的综合网络中,所述移动节点适合于执行TCP拥塞控制方法,该方法包括将包含在当前接收到的分组的TCP报头中的序号与已经接收到的当前最大序号进行比较,来确定在网络中是否存在TCP分组丢失,最大序号是分组的最大序号;当确定存在TCP分组丢失时,计算期望的序号,期望的序号是移动节点期望的下一个分组的序号;确认数据长度,确认数据长度是移动节点要发送的多个确认分组的整个长度和移动节点要产生和发送的确认分组的数目;将从最后的确认序列到期望序号的分组范围平均地划分为与确认分组数目相对应的分组部分,并且根据划分的确认分组部分来计算各个确认号码字段值;以及根据计算的各个确认号码字段值来产生各个确认分组,并且将各个确认分组发送到发送节点。
15.根据权利要求14所述的方法,其中,通过从期望序号中减去最后的确认序列,来确定确认数据长度。
16.根据权利要求14所述的方法,其中,通过将广告窗口值除以最大段尺寸,来确定确认分组的数目,广告窗口值是移动节点当前可用的接收缓存尺寸,以及最大段尺寸是移动节点可以接收的最大数据尺寸。
17.根据权利要求14所述的方法,其中,各个确认号码字段值将最后的序号作为初始值,并且在增加预定尺寸的同时变化,直到确认号码字段值等于期望的序号。
18.根据权利要求17所述的方法,其中,通过将确认数据长度除以确认分组的数目,来确定所述预定尺寸。
19.一种移动节点,位于包括无线链路并使用传输控制协议(TCP)实现通信的综合网络中,所述移动节点适合于执行TCP拥塞控制方法,该方法包括从响应分组丢失而产生并发送多个确认消息的相应移动节点接收多个确认消息;增加与移动节点接收到的多个确认消息相对应的拥塞窗口值;以及实现TCP发送。
20.一种系统,位于包括无线链路并且执行传输控制协议(TCP)拥塞控制的综合网络中,所述系统包括接收节点,适用于当移动节点在接收到的分组中具有分组丢失时,接收从对应节点重发的分组,计算要发送的确认消息的数目,根据计算的数目产生多个确认消息,以及将多个确认消息发送到对应节点;以及发送节点,适用于从接收节点接收多个确认消息,增加与接收到的多个确认消息相对应的拥塞窗口值,以及实现TCP发送。
全文摘要
一种在包括无线链路的综合网络中使用多个TCP ACK的传输控制协议(TCP)拥塞控制方法,该方法包括当移动节点在接收到的分组中具有分组丢失时,接收从对应节点重发的分组;计算移动节点要发送的确认消息的数目;根据计算的数目产生多个确认消息,并且将多个确认消息发送到发送节点;以及增加与发送节点接收到的多个确认消息相对应的拥塞窗口值,并执行TCP发送。
文档编号H04L1/16GK1819553SQ200610005010
公开日2006年8月16日 申请日期2006年1月18日 优先权日2005年2月11日
发明者金吉莲, 姜秉昌 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1