CN101114999B - 数据发送控制方法及数据传输设备 - Google Patents
数据发送控制方法及数据传输设备 Download PDFInfo
- Publication number
- CN101114999B CN101114999B CN2007100453389A CN200710045338A CN101114999B CN 101114999 B CN101114999 B CN 101114999B CN 2007100453389 A CN2007100453389 A CN 2007100453389A CN 200710045338 A CN200710045338 A CN 200710045338A CN 101114999 B CN101114999 B CN 101114999B
- Authority
- CN
- China
- Prior art keywords
- ack
- data
- terminal
- send
- receiving terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 54
- 108010001267 Protein Subunits Proteins 0.000 claims description 11
- 230000011664 signaling Effects 0.000 claims description 9
- 230000003247 decreasing effect Effects 0.000 claims description 8
- 238000004148 unit process Methods 0.000 claims description 5
- 241001269238 Data Species 0.000 claims 2
- 238000004891 communication Methods 0.000 abstract description 4
- 238000012546 transfer Methods 0.000 description 6
- 238000012913 prioritisation Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 235000021186 dishes Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
- H04L47/323—Discarding or blocking control packets, e.g. ACK packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/40—Flow control; Congestion control using split connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0231—Traffic management, e.g. flow control or congestion control based on communication conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/10—Flow control between communication endpoints
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/02—Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
- H04W8/04—Registration at HLR or HSS [Home Subscriber Server]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0289—Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
- H04W80/06—Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及无线通信领域,公开了一种数据发送控制方法及数据传输设备。本发明中,接收来自发送端的数据并进行缓存,将缓存的数据发送给接收端;接收接收端返回的表示收到数据的ACK;根据缓存中未发送的数据量对接收端返回的ACK进行增加或删减处理,将处理后的ACK发送给发送端,通过处理后的ACK控制发送端发送数据的速率,使得数据的传输可靠而高效。
Description
技术领域
本发明涉及无线通信领域,特别涉及数据发送控制技术。
背景技术
传输控制协议(Transmission Control Protocol,简称“TCP”)是因特网和互连网络使用的最基本的一种通信协议。现在已经成为网络通信的一种事实上的标准。TCP的主要内容是提供进程间的通信机制和保证数据传输的可靠性。可靠性包括确认信息数据分组的接收、标记分组的序列信息、保证分组的完整性等,还包括对差错的控制,例如,没有收到确认信息、分组没有按顺序到达、分组丢失或错投等情况时的处理规则等等。
根据TCP协议分析,TCP发送端能否发送新的数据包以及发送多少数据包,是由发送窗口控制的,也称拥塞窗口(Congestion Window,简称“cwnd”)。发送窗口的变化主要与发送端接收到的确认信令(Acknowledgement,简称“ACK”)有关。TCP发送端根据收到的ACK中包含的TCP包序号的大小来控制窗口的右移,根据收到的ACK的个数来控制窗口的增大。举例而言,如图1所示,TCP发送端收到一个新的ACK,该ACK中包含的TCP包序号为9,此时,TCP发送端根据收到的ACK中包含的TCP包序号的大小,将发送窗口右移一个数据包的位置,即右移到10号包的位置,并根据收到的ACK的个数,将发送窗口增大一个数据包的大小,增大到11号包的位置。
目前,为了能够更好地保证数据传输的可靠性,已经出现了多种TCP优化方案,如I-TCP算法,SNOOP和WTCP等,这些TCP优化方案都是通过在TCP发送端和TCP接收端中间设置一个TCP代理来适配有线链路和无线链路。如图2所示。
I-TCP算法通过TCP代理将TCP连接分成两段:一段为有线链接;一段为无线链接。所以,TCP代理能够事先通过有线链路把数据包从服务器(即TCP发送端)上取下来缓存在TCP代理中,在TCP代理收到数据包后,代替终端(即TCP接收端)提前回复ACK,再根据无线链路的变化更快速、灵活地控制发送速率,达到充分利用空口传输能力的目的。
SNOOP、WTCP等优化方案在TCP代理实现本地重传、超时重传和发送窗口机制,尽量避免和减少TCP发送端的重传,或者利用时间戳更准确地估算环路传输时延,或者以较高的优先级来重传丢失的包,或者通过在TCP代理实现更合理的控制前向速率算法,对TCP代理的功能进行增强和优化,以提高TCP性能。
然而,本发明的发明人发现,SNOOP、WTCP等TCP优化方案存在以下问题:当无线条件由好变差时,无线链路出现拥塞,由于TCP代理缓存有限,只能缓存部分发送的数据包,如果服务器发送过多的数据包,TCP代理就只能丢弃数据包,服务器在探知丢包后进入拥塞避免或者慢启动的状态,从而影响了性能;当无线条件由差变好时,无线链路的传输能力突然增大,TCP代理快速将缓存中数据发送下去,最终因缓存无数据可发,导致管道被清空而降低吞吐量。
I-TCP算法虽然可以提升TCP吞吐量,但是由于I-TCP算法提前把服务器上的数据发送到TCP代理,一旦切换发生,TCP代理数据来不及发送完全,会导致数据丢失,而这时服务器由于早就收到TCP代理回送的ACK而不会产生重传,这样TCP反而成了不可靠地传输;如果在切换时把旧TCP代理侧的数据同步到新的TCP代理侧,则使得切换操作复杂,切换时延大大增加,甚至会引起上层TCP的连接断开。
总而言之,TCP代理可以控制其下游的前向链路速率,但无法控制其上游的前向链路速率,即TCP代理无法控制服务器到TCP代理这一段的发送速率,因此也就无法保证缓存足够的数据包,在无线条件变好后,容易发生由于没有缓存数据包而不能有效利用无线带宽的情况,使得数据的传输缺乏效率。
发明内容
本发明实施方式要解决的主要技术问题是提供一种数据发送控制方法及数据传输设备,使得数据的传输可靠而高效。
为解决上述技术问题,本发明的实施方式提供了一种数据发送控制方法,包括以下步骤:
接收来自发送端的数据并进行缓存,将缓存的数据发送给接收端;
接收该接收端返回的表示收到数据的确认信令ACK;
根据缓存中未发送的数据量对接收端返回的ACK进行增加或删减处理,将处理后的ACK发送给发送端,通过处理后的ACK控制发送端发送数据的速率;
其中,根据缓存中未发送的数据量对接收端返回的ACK进行增加或删减处理包括:如果所述缓存中未发送的数据量小于第二门限,则将至少一个所述接收端返回的ACK分割为至少两个,分割得到的一个ACK对应的数据包的序号不变,其余ACK对应的数据包的序号递减。
本发明的实施方式还提供了另一种数据发送控制方法,包括以下步骤:
接收来自发送端的数据并进行缓存,将缓存的数据发送给接收端;
接收该接收端返回的表示收到数据的确认信令ACK;
根据缓存中未发送的数据量对接收端返回的ACK进行增加或删减处理,将处理后的ACK发送给发送端,通过处理后的ACK控制发送端发送数据的速率;
其中,所述根据缓存中未发送的数据量对所述接收端返回的ACK进行增加或删减处理包括:
如果连续地收到至少三个相同的ACK,且所述缓存中未发送的数据量小于第三门限,则对所述至少三个相同的ACK中的至少一个进行复制;或者
如果连续地收到至少三个相同的ACK,且所述缓存中未发送的数据量大于第四门限,则在之后再收到所述相同的ACK时,对所收到的ACK进行选择性抛弃;或者
如果连续地收到至少三个相同的ACK,且所述缓存中未发送的数据量小于第三门限,则对所述至少三个相同的ACK中的至少一个进行复制,以及如果连续地收到至少三个相同的ACK,且所述缓存中未发送的数据量大于第四门限,则在之后再收到所述相同的ACK时,对所收到的ACK进行选择性抛弃,其中第四门限大于第三门限。
本发明的实施方式还提供了一种数据传输设备,包括:
存储单元,用于缓存来自发送端的数据;
第一发送单元,用于将存储单元中缓存的数据发送给接收端;
接收单元,用于接收该接收端返回的表示收到数据的ACK;
处理单元,用于根据存储单元中未发送的数据量对接收单元收到的ACK进行增加或删减处理;
第二发送单元,用于将处理单元处理后的ACK发送给发送端;
其中,所述处理单元包括:
分割子单元,用于分割ACK;
第二判断子单元,用于判断所述存储单元中未发送的数据量是否小于第二门限,如果小于第二门限,则指示所述分割子单元将所述接收单元收到的至少一个ACK分割为至少两个,分割得到的一个ACK对应的数据包的序号不变,其余ACK对应的数据包的序号递减;
本发明的实施方式还提供了另一种数据传输设备,包括:
存储单元,用于缓存来自发送端的数据;
第一发送单元,用于将所述存储单元中缓存的数据发送给接收端;
接收单元,用于接收所述接收端返回的表示收到所述数据的ACK;
处理单元,用于根据所述存储单元中未发送的数据量对所述接收单元收到的ACK进行增加或删减处理;
第二发送单元,用于将所述处理单元处理后的ACK发送给所述发送端;
其中,所述处理单元包括:
复制子单元,用于对ACK进行复制;第三判断子单元,用于判断所述接收单元是否连续地收到至少三个相同的ACK,且所述存储单元中未发送的数据量小于第三门限,如果是则指示所述复制子单元对所述至少三个相同的ACK中的至少一个进行复制;和/或
抛弃子单元,用于抛弃ACK;第四判断子单元,用于判断所述接收单元是否连续地收到至少三个相同的ACK,且所述存储单元中未发送的数据量大于第四门限,如果是则指示所述抛弃子单元对所述接收单元之后再收到的所述相同的ACK进行选择性抛弃;
其中,在处理单元包括第三判断子单元和第四判断子单元时,该第四门限大于该第三门限。
本发明实施方式与现有技术相比,主要区别及其效果在于:
由于发送端是根据收到的ACK的数目来确定发送窗口的大小,因此根据缓存中未发送的数据量对接收端返回给发送端的ACK进行增加或删除处理,可以使得发送端的发送窗口大小与缓存的剩余空间大小相对应,使得在缓存的剩余空间较大时,发送端能够下发更多的数据,提高数据的传输效率。进一步,由于在本发明的实施方式中,无需代替接收端提前向发送端回复ACK,从而在接收端(如终端)发生切换时,不会导致数据丢失。
附图说明
图1是现有技术中发送窗口变化的示意图;
图2是现有技术中通过TCP代理来适配有线链路和无线链路的示意图;
图3是根据本发明第一实施方式的数据发送控制方法流程图;
图4是根据本发明第三实施方式的数据传输设备结构图;
图5是根据本发明第三实施方式的数据传输设备中处理单元的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明的第一实施方式涉及一种数据发送控制方法,在本实施方式中,TCP代理接收来自发送端的数据并进行缓存,将缓存的数据发送给接收端。在接收到接收端返回的ACK后,根据缓存中未发送的数据量对接收端返回的ACK进行增加或删减处理,将处理后的ACK发送给发送端,通过所发送的ACK数目控制发送端发送数据的速率。其具体流程如图3所示。
在步骤310中,TCP代理接收来自发送端的数据并将来自发送端的数据进行缓存,再将缓存的数据发送给接收端。
接着,进入步骤320,TCP代理接收来自接收端的确认信令ACK。也就是说,接收端收到由TCP代理转发的数据后,向TCP代理发送ACK,表示接收端已成功收到来自发送端的数据。
接着,进入步骤330,TCP代理根据缓存中未发送的数据量对接收端返回的确认信令ACK进行处理,并将经处理后的ACK发送给发送端。
具体地说,当TCP代理收到确认信令ACK后,根据缓存中未发送的数据量对收到的确认信令ACK进行处理。如果缓存中未发送的数据量大于第一门限,则抛弃接收端返回的至少一个ACK,将未抛弃的ACK发送给发送端;如果缓存中未发送的数据量小于第二门限,则将接收端返回的至少一个ACK分割为至少两个,分割得到的一个ACK对应的数据包的序号不变,其余ACK对应的数据包的序号递减,将分割后的ACK全部发送给发送端。其中,第二门限小于第一门限;如果TCP代理连续地收到至少三个相同的ACK,并且缓存中未发送的数据量小于第三门限,则对该ACK进行复制,可以对所收到的至少三个相同的ACK中的任意一个或多个进行复制,并将复制得到的ACK全部发送给发送端;如果TCP代理已连续地收到至少三个相同的ACK,并且缓存中未发送的数据量大于第四门限,则对之后收到的相同的ACK作选择性抛弃,比如,每收到两个或多个相同的ACK抛弃一个,并将未抛弃的ACK发送给发送端。其中,第四门限大于第三门限。需要说明的是,上述的第一门限、第二门限、第三门限和第四门限是TCP代理根据缓存的大小进行设置的。如果缓存中未发送的数据量不满足上述任一条件,则不对ACK进行处理,直接将收到的ACK发送给发送端。
比如说,如果缓存中未发送的数据量大于第一门限,即说明前向无线链路侧带宽相对较窄,则需要控制前向有线链路侧的数据速率。TCP代理可以对接收端返回的ACK进行有概率的丢弃,仅将未抛弃的ACK发送给发送端,以适当减少发送端接收到的ACK的数量,间接控制发送窗口的大小来达到减缓发送数据的速率,将发送端发送的数据量减少到接收端可以接受的范围内,避免缓存数据溢出。
如果缓存中未发送的数据量小于第二门限,即说明无线链路的传输能力较强,则需要发送端快速发送数据。TCP代理可以分割接收端返回的ACK,以适当增加发送端接收到的ACK的数量,并将分割得到的ACK全部发送给发送端。例如可以将一个ACK分割成三个ACK,其中一个ACK对应的数据包的序号与原来的一样大,另外两个ACK对应的数据包的序号依次递减,先将序号较小的ACK传送到发送端,再传送序号较大的ACK,最后传送序号最大的ACK。通过分割接收端返回的ACK,使得在增加ACK的个数的同时,不会错误引发快速重传,并且使得发送端的发送窗口快速增长,提高数据发送频率,提高缓存的数据量,避免因为缓存中没有数据而降低数据传输的速率。
如果TCP代理已连续地收到至少三个相同的ACK,表示发送端也将进入快速重传和拥塞避免阶段,发送端的发送窗口将会减小,可能会减小为原来的一半再加三个报文段。由于发送窗口变小,使得发送端无法发送新数据包,这样发送速率将会减小,有管道被清空的可能性。在这种情况下,TCP代理需要根据缓存区的情况进行分别处理,如果缓存中未发送的数据量小于第三门限,表明缓存区的剩余空间足够大,则TCP代理可以复制一定量的ACK,然后将所有的ACK全部发送给发送端,以便快速增大发送窗口,促使重传包和新包继续发送,保证数据传输速率,且不会导致其它数据包的快速重传,安全、有效地提高了传输效率。如果缓存中未发送的数据量大于第四门限,表明缓存区的剩余空间不够,则TCP代理选择性抛弃之后收到的部分或全部重复的ACK,从而减少发送端收到的ACK的数目,控制发送窗口的增长,避免缓存数据溢出。
由此可见,由于发送端是根据收到的ACK的数目来确定发送窗口的大小,因此根据缓存中未发送的数据量对接收端返回给发送端的ACK进行增加或删除处理,可以使得发送端的发送窗口大小与缓存的剩余空间大小相对应,使得在缓存的剩余空间较大时,发送端能够发送更多的数据,提高数据的传输效率。并且,由于在本发明的实施方式中,无需代替接收端提前向发送端回复ACK,从而在接收端(如终端)发生切换时,不会导致数据丢失。
需要说明的是,本实施方式中,根据缓存中未发送的数据量对接收端返回的ACK进行增加或删减处理的是TCP代理,发送端是网络侧的服务器,接收端是终端;或者,发送端是终端,接收端是网络侧的服务器。
本发明的第二实施方式同样涉及一种数据发送控制方法,本实施方式与第一实施方式大致相同,其区别在于,第一实施方式中,根据缓存中未发送的数据量对接收端返回的ACK进行增加或删减处理的是TCP代理;而在本实施方式中,发送端是网络侧的服务器,接收端、和根据缓存中未发送的数据量对接收端返回的ACK进行增加或删减处理的是终端中的不同模块;或者,发送端是终端,接收端、和根据缓存中未发送的数据量对接收端返回的ACK进行增加或删减处理的是网络服务器中的不同模块。
可见,以上处理ACK的实体并不局限于是TCP连接的中间节点(比如TCP代理),也可以是任何TCP接收端,只要能够控制和处理ACK即可。
由于发送端和接收端可以是不同的组合,并且根据缓存中未发送的数据量对接收端返回的ACK进行增加或删减处理的可以是任何TCP接收端和TCP中间的连接节点,从而使得本发明的实施方式可灵活实现。
本发明的第三实施方式涉及一种数据传输设备,如图4所示,包括:存储单元,用于缓存来自发送端的数据;第一发送单元,用于将存储单元中缓存的数据发送给接收端;接收单元,用于接收该接收端返回的表示收到数据的ACK;处理单元,用于根据存储单元中未发送的数据量对接收单元收到的ACK进行增加或删减处理;第二发送单元,用于将处理单元处理后的ACK发送给发送端,通过处理后的ACK,控制发送端发送数据的速率。
由此可见,根据缓存中未发送的数据量对接收端返回给发送端的ACK进行增加或删除处理,可以使得发送端的发送窗口大小与缓存的剩余空间大小相对应,使得在缓存的剩余空间较大时,发送端能够发送更多的数据,提高数据的传输效率。并且,由于在本发明的实施方式中,无需代替接收端提前向发送端回复ACK,从而在接收端(如终端)发生切换时,不会导致数据丢失。
该数据传输设备的处理单元,如图5所示,还可以包括以下子单元:抛弃子单元,用于抛弃ACK;第一判断子单元,用于判断存储单元中未发送的数据量是否大于第一门限,如果大于第一门限则指示抛弃子单元抛弃至少一个接收单元收到的ACK。通过适当减少发送端接收到的ACK的数量,间接控制发送窗口的大小来达到减缓发送数据速率的目的,将发送端发送的数据量减少到接收端可以接受的范围内,避免缓存数据溢出。第二发送单元将抛弃子单元未抛弃的ACK发送给发送端。
该数据传输设备的处理单元还可以包括以下子单元:分割子单元,用于分割ACK;第二判断子单元,用于判断存储单元中未发送的数据量是否小于第二门限,如果小于第二门限,则指示分割子单元将接收单元收到的至少一个ACK分割为至少两个,分割得到的一个ACK对应的数据包的序号不变,其余ACK对应的数据包的序号递减。通过分割接收端返回的ACK,在增加ACK的个数的同时,不会错误引发快速重传,并且使得发送端的发送窗口快速增长,提高数据发送频率,提高缓存的数据量,避免因为缓存中没有数据而降低数据传输的速率。分割子单元将分割得到的所有ACK输出到第二发送单元,由第二发送单元将这些ACK发送给发送端。
该数据传输设备的处理单元还可以包括以下子单元:复制子单元,用于对ACK进行复制;第三判断子单元,用于判断接收单元是否连续地收到至少三个相同的ACK,且存储单元中未发送的数据量小于第三门限,如果是则指示复制子单元对上述至少三个ACK中的至少一个进行复制。通过对ACK进行复制,可以增大发送窗口,加大数据传输的速率,且不会导致其它数据包的快速重传,安全、有效地提高了传输效率。复制子单元将复制得到的所有ACK输出到第二发送单元,由第二发送单元将这些ACK发送给发送端。
该数据传输设备的处理单元还包括以下子单元:第四判断子单元,用于判断接收单元是否已连续地收到至少三个相同的ACK,且存储单元中未发送的数据量大于第四门限,如果是则指示抛弃子单元对接收单元之后再收到的相同的ACK进行选择性抛弃,从而减少发送端收到的ACK的数目,控制发送窗口的增长,避免缓存数据溢出。第二发送单元将抛弃子单元未抛弃的ACK发送给发送端。
该数据传输设备可以是TCP代理或TCP代理中的单元,该数据传输设备也可以是网络侧服务器或网络侧服务器中的单元,该数据传输设备还可以是终端或终端中的单元,使得本发明的实施方式可灵活实现。
另外,值得一提的是,本实施方式中的各单元均为逻辑单元,在实际应用中,可以有各种不同的物理实现方式。
综上所述,在本发明的实施方式中,由于发送端是根据收到的ACK的数目来确定发送窗口的大小,因此根据缓存中未发送的数据量对接收端返回给发送端的ACK进行增加或删除处理,可以使得发送端的发送窗口大小与缓存的剩余空间大小相对应,使得在缓存的剩余空间较大时,发送端能够下发更多的数据,提高数据的传输效率。并且,由于在本发明的实施方式中,无需代替接收端提前向发送端回复ACK,从而在接收端(如终端)发生切换时,不会导致数据丢失。
如果缓存中未发送的数据量大于第一门限,则抛弃至少一个接收端返回的ACK,从而减少发送端收到的ACK的数目,控制发送窗口的增长,将发送端发送的数据量减少到可以接受的范围内,避免缓存数据溢出。
如果缓存中未发送的数据量小于第二门限,则将接收端返回的至少一个ACK分割为至少两个,从而使得发送端收到的ACK数目增多,增大发送端的发送窗口,提高数据发送频率,提高缓存的数据量,避免因为缓存中没有数据而降低数据传输的速率。
分割得到的各ACK中,一个ACK对应的数据包的序号不变,其余ACK对应的数据包的序号递减,从而在增加ACK数目的同时,不会错误引发快速重传。
如果连续地收到至少三个相同的ACK,即至少三个ACK对应的数据包相同,且该缓存中未发送的数据量小于第三门限,则对上述至少三个ACK中的至少一个进行复制。由于三个或三个以上相同的ACK会引发发送端进行快速重传,此时,发送窗口会大幅减小,将会导致数据传输的速率变小,有信道被清空的可能性。通过对ACK进行复制,可以增大发送窗口,加大数据传输的速率,且不会导致其它数据包的快速重传,安全、有效地提高了传输效率。
如果连续地收到至少三个相同的ACK,且缓存中未发送的数据量大于第四门限,则在之后再收到相同的ACK时,对所收到的ACK进行选择性抛弃。从而减少发送端收到的ACK的数目,控制发送窗口的增长,避免缓存数据溢出。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (8)
1.一种数据发送控制方法,其特征在于,包括以下步骤:
接收来自发送端的数据并进行缓存,将缓存的数据发送给接收端;
接收所述接收端返回的表示收到所述数据的确认信令ACK;
根据缓存中未发送的数据量对所述接收端返回的ACK进行增加或删减处理,将处理后的ACK发送给所述发送端,通过所述处理后的ACK控制所述发送端发送数据的速率;
其中,所述根据缓存中未发送的数据量对所述接收端返回的ACK进行增加或删减处理包括:如果所述缓存中未发送的数据量小于第二门限,则将至少一个所述接收端返回的ACK分割为至少两个,分割得到的一个ACK对应的数据包的序号不变,其余ACK对应的数据包的序号递减。
2.根据权利要求1所述的数据发送控制方法,其特征在于,所述数据是传输控制协议TCP数据;
所述发送端是网络侧的服务器,所述根据缓存中未发送的数据量对所述接收端返回的ACK进行增加或删减处理的是TCP代理,所述接收端是终端;或者
所述发送端是终端,所述根据缓存中未发送的数据量对所述接收端返回的ACK进行增加或删减处理的是TCP代理,所述接收端是网络侧的服务器;或者
所述发送端是网络侧的服务器,所述接收端、和所述根据缓存中未发送的数据量对所述接收端返回的ACK进行增加或删减处理的是终端中的不同模块;或者
所述发送端是终端,所述接收端、和所述根据缓存中未发送的数据量对所述接收端返回的ACK进行增加或删减处理的是网络侧服务器中的不同模块。
3.一种数据发送控制方法,其特征在于,包括以下步骤:
接收来自发送端的数据并进行缓存,将缓存的数据发送给接收端;
接收所述接收端返回的表示收到所述数据的确认信令ACK;
根据缓存中未发送的数据量对所述接收端返回的ACK进行增加或删减处理,将处理后的ACK发送给所述发送端,通过所述处理后的ACK控制所述发送端发送数据的速率;
其中,所述根据缓存中未发送的数据量对所述接收端返回的ACK进行增加或删减处理包括:
如果连续地收到至少三个相同的ACK,且所述缓存中未发送的数据量小于第三门限,则对所述至少三个相同的ACK中的至少一个进行复制;或者
如果连续地收到至少三个相同的ACK,且所述缓存中未发送的数据量大于第四门限,则在之后再收到所述相同的ACK时,对所收到的ACK进行选择性抛弃;或者
如果连续地收到至少三个相同的ACK,且所述缓存中未发送的数据量小于第三门限,则对所述至少三个相同的ACK中的至少一个进行复制,以及如果连续地收到至少三个相同的ACK,且所述缓存中未发送的数据量大于第四门限,则在之后再收到所述相同的ACK时,对所收到的ACK进行选择性抛弃,其中所述第四门限大于所述第三门限。
4.根据权利要求3所述的数据发送控制方法,其特征在于,所述数据是传输控制协议TCP数据;
所述发送端是网络侧的服务器,所述根据缓存中未发送的数据量对所述接收端返回的ACK进行增加或删减处理的是TCP代理,所述接收端是终端;或者
所述发送端是终端,所述根据缓存中未发送的数据量对所述接收端返回的ACK进行增加或删减处理的是TCP代理,所述接收端是网络侧的服务器;或者
所述发送端是网络侧的服务器,所述接收端和所述根据缓存中未发送的数据量对所述接收端返回的ACK进行增加或删减处理的是终端中的不同模块;或者
所述发送端是终端,所述接收端和所述根据缓存中未发送的数据量对所述接收端返回的ACK进行增加或删减处理的是网络侧服务器中的不同模块。
5.一种数据传输设备,其特征在于,包括:
存储单元,用于缓存来自发送端的数据;
第一发送单元,用于将所述存储单元中缓存的数据发送给接收端;
接收单元,用于接收所述接收端返回的表示收到所述数据的ACK;
处理单元,用于根据所述存储单元中未发送的数据量对所述接收单元收到的ACK进行增加或删减处理;
第二发送单元,用于将所述处理单元处理后的ACK发送给所述发送端;
其中,所述处理单元包括:分割子单元,用于分割ACK;第二判断子单元,用于判断所述存储单元中未发送的数据量是否小于第二门限,如果小于第二门限,则指示所述分割子单元将所述接收单元收到的至少一个ACK分割为至少两个,分割得到的一个ACK对应的数据包的序号不变,其余ACK对应的数据包的序号递减。
6.根据权利要求5所述的数据传输设备,其特征在于,所述数据传输设备为传输控制协议TCP代理或TCP代理中的单元;或者
所述数据传输设备为网络侧服务器或网络侧服务器中的单元;或者
所述数据传输设备为终端或终端中的单元。
7.一种数据传输设备,其特征在于,包括:
存储单元,用于缓存来自发送端的数据;
第一发送单元,用于将所述存储单元中缓存的数据发送给接收端;
接收单元,用于接收所述接收端返回的表示收到所述数据的ACK;
处理单元,用于根据所述存储单元中未发送的数据量对所述接收单元收到的ACK进行增加或删减处理;
第二发送单元,用于将所述处理单元处理后的ACK发送给所述发送端;
其中,所述处理单元包括:
复制子单元,用于对ACK进行复制;第三判断子单元,用于判断所述接收单元是否连续地收到至少三个相同的ACK,且所述存储单元中未发送的数据量小于第三门限,如果是则指示所述复制子单元对所述至少三个相同的ACK中的至少一个进行复制;和/或
抛弃子单元,用于抛弃ACK;第四判断子单元,用于判断所述接收单元是否连续地收到至少三个相同的ACK,且所述存储单元中未发送的数据量大于第四门限,如果是则指示所述抛弃子单元对所述接收单元之后再收到的所述相同的ACK进行选择性抛弃;
其中,在所述处理单元包括第三判断子单元和第四判断子单元时,所述第四门限大于所述第三门限。
8.根据权利要求7所述的数据传输设备,其特征在于,所述数据传输设备为传输控制协议TCP代理或TCP代理中的单元;或者
所述数据传输设备为网络侧服务器或网络侧服务器中的单元;或者所述数据传输设备为终端或终端中的单元。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100453389A CN101114999B (zh) | 2007-08-26 | 2007-08-26 | 数据发送控制方法及数据传输设备 |
EP08800678A EP2154857B1 (en) | 2007-08-26 | 2008-08-26 | Data sending control method and data transmission device |
ES08800678T ES2394388T3 (es) | 2007-08-26 | 2008-08-26 | Método para el control del envío de datos y dispositivo para transmitir datos |
PCT/CN2008/072143 WO2009026854A1 (fr) | 2007-08-26 | 2008-08-26 | Procédé de commande d'envoi de données et dispositif de transmission de données |
US12/649,616 US8432806B2 (en) | 2007-08-26 | 2009-12-30 | Data transmission control method and data transmission device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100453389A CN101114999B (zh) | 2007-08-26 | 2007-08-26 | 数据发送控制方法及数据传输设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101114999A CN101114999A (zh) | 2008-01-30 |
CN101114999B true CN101114999B (zh) | 2010-08-04 |
Family
ID=39023124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100453389A Active CN101114999B (zh) | 2007-08-26 | 2007-08-26 | 数据发送控制方法及数据传输设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8432806B2 (zh) |
EP (1) | EP2154857B1 (zh) |
CN (1) | CN101114999B (zh) |
ES (1) | ES2394388T3 (zh) |
WO (1) | WO2009026854A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114999B (zh) | 2007-08-26 | 2010-08-04 | 上海华为技术有限公司 | 数据发送控制方法及数据传输设备 |
CN102891883B (zh) * | 2007-12-27 | 2014-12-31 | 华为技术有限公司 | 无线传输控制协议处理方法和设备 |
CN101808080A (zh) * | 2009-12-30 | 2010-08-18 | 深圳市同洲电子股份有限公司 | 一种数据发送方法和相关设备 |
CN102195941B (zh) * | 2010-03-11 | 2014-03-12 | 鼎桥通信技术有限公司 | 一种改进的传输控制协议代理实现方法及装置 |
US8607279B2 (en) * | 2010-03-23 | 2013-12-10 | Qualcomm Incorporated | Induced sleep intervals for devices receiving bursty non-real time broadcast flows |
CN102263618B (zh) * | 2010-05-31 | 2014-10-08 | ***通信集团公司 | 无线网络拥塞控制方法、装置及*** |
CN102026281A (zh) * | 2010-12-21 | 2011-04-20 | 大唐移动通信设备有限公司 | 基于rnc实现tcp代理的方法及装置 |
CN102143078B (zh) * | 2011-03-29 | 2013-10-02 | 华为技术有限公司 | 一种报文处理方法、转发设备及*** |
CN103001727A (zh) * | 2011-09-09 | 2013-03-27 | 中兴通讯股份有限公司 | 一种无线网络的数据传输控制方法和*** |
WO2013077786A1 (en) * | 2011-11-23 | 2013-05-30 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and arrangements for improving transmission control protocol performance in a cellular network |
US9118594B2 (en) * | 2011-12-06 | 2015-08-25 | Brocade Communications Systems, Inc. | Lossless connection failover for single devices |
CN103200622A (zh) * | 2012-01-09 | 2013-07-10 | 株式会社Ntt都科摩 | 一种通信处理方法、装置及网关设备 |
EP2953310B1 (en) * | 2013-02-26 | 2018-09-05 | Huawei Technologies Co., Ltd. | Method, system, and proxy device for data transmission |
CN104782090B (zh) * | 2013-06-27 | 2017-12-08 | 华为技术有限公司 | 一种数据报文发送方法和装置 |
CN103685061B (zh) * | 2013-11-29 | 2017-06-06 | 华为技术有限公司 | 缓存数据控制方法和装置 |
CN104093170B (zh) * | 2014-06-10 | 2017-12-01 | 北京创毅视讯科技有限公司 | 基于tcp的数据传输方法和tcp代理装置 |
CN104202300B (zh) * | 2014-08-06 | 2018-01-30 | 广东电网公司电力科学研究院 | 基于网络隔离装置的数据通信方法和装置 |
KR102176653B1 (ko) | 2014-09-04 | 2020-11-09 | 삼성전자주식회사 | 무선 통신 시스템에서 전송 제어를 위한 방법 및 장치 |
CN104468061B (zh) * | 2014-11-25 | 2019-08-20 | 厦门雅迅网络股份有限公司 | 一种低速网络环境下的实时可靠数据传输的方法及*** |
CN106209325A (zh) * | 2015-04-30 | 2016-12-07 | 中兴通讯股份有限公司 | 一种tcp ack报文处理方法及装置 |
CN106686621A (zh) * | 2015-11-09 | 2017-05-17 | 中兴通讯股份有限公司 | 一种数据传输的方法及wap设备 |
JP6933207B2 (ja) * | 2016-05-18 | 2021-09-08 | 日本電気株式会社 | 送信装置、方法およびプログラム |
CN107465625A (zh) * | 2016-06-06 | 2017-12-12 | 普天信息技术有限公司 | 传输控制协议的传输方法和装置 |
US10594616B2 (en) * | 2016-09-30 | 2020-03-17 | Hughes Network Systems, LLC. | Data buffering control system and method for a communication network |
CN106789700B (zh) * | 2016-12-23 | 2020-11-03 | 京信通信***(中国)有限公司 | 一种流量整形方法及网络设备 |
KR20190105061A (ko) * | 2017-01-24 | 2019-09-11 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 데이터를 송신하는 방법과 데이터 송신 장치, 및 고객 댁내 장치 |
WO2019104725A1 (zh) * | 2017-12-01 | 2019-06-06 | 华为技术有限公司 | 报文传输方法、装置及*** |
CN109199354B (zh) * | 2018-09-17 | 2021-06-25 | 山东思迈教育科技有限公司 | 一种心率数据采集方法及心率测量设备 |
CN111225422B (zh) * | 2018-11-23 | 2021-05-07 | 大唐移动通信设备有限公司 | 一种代理数据的处理方法和装置 |
CN110011758B (zh) * | 2019-01-30 | 2021-12-31 | 国家广播电视总局广播电视科学研究院 | 一种多链路下tcp的ack传输优化方法、相关装置及*** |
CN111615148B (zh) * | 2020-05-18 | 2023-09-26 | 京信网络***股份有限公司 | 基站tcp数据传输处理方法、装置和基站 |
CN113301375B (zh) * | 2021-05-24 | 2022-10-14 | 上海绚显科技有限公司 | 一种数据发送方法及装置 |
CN114173428B (zh) * | 2021-10-21 | 2022-08-05 | 北京连山科技股份有限公司 | 一种提高多链路设备数据传输速度的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1267419A (zh) * | 1997-07-14 | 2000-09-20 | 诺基亚网络有限公司 | 电信网中的信息流控制 |
CN1469601A (zh) * | 2002-06-18 | 2004-01-21 | ���µ�����ҵ��ʽ���� | 使启动接收器发送速率增加最佳化 |
CN1910868A (zh) * | 2003-12-23 | 2007-02-07 | 艾利森电话股份有限公司 | 用于控制队列缓冲器的方法及装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI980825A (fi) * | 1998-04-09 | 1999-10-10 | Nokia Networks Oy | Ylikuormituksen hallinta tietoliikenneverkossa |
EP1045551A3 (en) * | 1999-04-15 | 2003-06-18 | Lucent Technologies Inc. | Method for transmission between data networks and wireless communication system |
FI20002320A (fi) * | 2000-10-20 | 2002-04-21 | Nokia Corp | Eston hallinta langattomissa tietoliikenneverkoissa |
WO2003088609A2 (en) * | 2002-04-12 | 2003-10-23 | Nokia Corporation | System, device and method for improving throughput in a communication network, preferably a mobile ipv6-based network |
US7286483B2 (en) * | 2002-11-14 | 2007-10-23 | Intel Corporation | Electronic data transfer based on selective storage of incoming packets |
EP1576775A2 (en) * | 2002-12-19 | 2005-09-21 | Koninklijke Philips Electronics N.V. | Protecting real-time data in wireless networks |
US7388836B2 (en) * | 2003-03-07 | 2008-06-17 | Cisco Technology, Inc. | System and method for communicating data in a network environment |
US8230106B2 (en) * | 2003-03-31 | 2012-07-24 | Alcatel Lucent | Methods and apparatus for improved transmission control protocol transmission over a wireless channel exhibiting rate and delay variations |
US7593338B2 (en) * | 2003-06-27 | 2009-09-22 | Samsung Electronics Co., Ltd. | Congestion control method and system for reducing a retransmission timeout count in a transmission control protocol |
WO2005013083A2 (en) * | 2003-07-29 | 2005-02-10 | Orbital Data Corporation | Flow control architecture |
US7680596B2 (en) * | 2004-04-06 | 2010-03-16 | Honda Motor Co., Ltd. | Route calculation method for a vehicle navigation system |
US7882237B2 (en) * | 2004-12-17 | 2011-02-01 | Ncipher Corporation Limited | TCP/IP proxy utilizing transparent acknowledgements |
US8238242B2 (en) * | 2006-02-27 | 2012-08-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Flow control mechanism using local and global acknowledgements |
US7801044B2 (en) * | 2006-05-04 | 2010-09-21 | Broadcom Corporation | TCP acknowledge for aggregated packet |
CN101114999B (zh) | 2007-08-26 | 2010-08-04 | 上海华为技术有限公司 | 数据发送控制方法及数据传输设备 |
-
2007
- 2007-08-26 CN CN2007100453389A patent/CN101114999B/zh active Active
-
2008
- 2008-08-26 WO PCT/CN2008/072143 patent/WO2009026854A1/zh active Application Filing
- 2008-08-26 EP EP08800678A patent/EP2154857B1/en active Active
- 2008-08-26 ES ES08800678T patent/ES2394388T3/es active Active
-
2009
- 2009-12-30 US US12/649,616 patent/US8432806B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1267419A (zh) * | 1997-07-14 | 2000-09-20 | 诺基亚网络有限公司 | 电信网中的信息流控制 |
CN1469601A (zh) * | 2002-06-18 | 2004-01-21 | ���µ�����ҵ��ʽ���� | 使启动接收器发送速率增加最佳化 |
CN1910868A (zh) * | 2003-12-23 | 2007-02-07 | 艾利森电话股份有限公司 | 用于控制队列缓冲器的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US8432806B2 (en) | 2013-04-30 |
ES2394388T3 (es) | 2013-01-31 |
EP2154857A1 (en) | 2010-02-17 |
EP2154857A4 (en) | 2011-04-13 |
US20100103880A1 (en) | 2010-04-29 |
CN101114999A (zh) | 2008-01-30 |
WO2009026854A1 (fr) | 2009-03-05 |
EP2154857B1 (en) | 2012-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101114999B (zh) | 数据发送控制方法及数据传输设备 | |
CN102355462B (zh) | 一种实现tcp传输的方法及装置 | |
JP5544430B2 (ja) | 通信装置および通信システム | |
KR100785293B1 (ko) | 다중 tcp확인응답을 이용한 tcp 혼잡 제어 시스템및 그 방법 | |
US6341129B1 (en) | TCP resegmentation | |
CN101189840B (zh) | 数据单元中继设备和控制该数据单元中继设备的方法 | |
CA2416897C (en) | Tcp flow control | |
JP5652388B2 (ja) | 通信レート制御方法、送信装置および通信システム | |
CN101119183A (zh) | 重传控制方法及传输设备 | |
JP2000115232A (ja) | デ―タ・パケット送信方法および装置 | |
CN101510816B (zh) | 基于路径关联化的多路径并行传输方法 | |
KR20050067339A (ko) | 유무선 통합 인터넷 프로토콜망에서 패킷 유실과 전송지연을 감소시키는 티씨피 프록시 설정 방법 및 시스템 | |
KR20050072005A (ko) | 실시간 트래픽 특성을 고려하여 큐를 관리하는 액세스네트워크 장치 및 그 큐 관리 방법 | |
EP1798913B1 (en) | Transport control method in wireless communication system | |
CN100505608C (zh) | 一种适合卫星网络的自适应拥塞控制方法及*** | |
US20030103458A1 (en) | Congestion avoidance apparatus and method for communication network | |
US7286546B2 (en) | Method and system for providing reliable and fast communications with mobile entities | |
US20070061478A1 (en) | Data relay apparatus and data relay method | |
KR100913897B1 (ko) | 재전송 타임아웃 수를 줄이기 위한 전송 제어 프로토콜혼잡제어방법 | |
Lien | Hop-by-hop tcp for sensor networks | |
Sarkar et al. | Modified TCP Peach Protocol for Satellite based Networks | |
CN115766747A (zh) | 一种适用于无线信道的可靠高效传输方法 | |
Zhang et al. | SNOOP-based TCP Enhancements with FDA in wireless cellular networks: A comparative study | |
JP2003198612A (ja) | パケット通信ネットワークにおけるファイル転送方法 | |
Thoppian et al. | TCP for Wireless Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |