CN112771821A - 数据传输方法、装置、系统、终端设备和存储介质 - Google Patents
数据传输方法、装置、系统、终端设备和存储介质 Download PDFInfo
- Publication number
- CN112771821A CN112771821A CN202080005060.6A CN202080005060A CN112771821A CN 112771821 A CN112771821 A CN 112771821A CN 202080005060 A CN202080005060 A CN 202080005060A CN 112771821 A CN112771821 A CN 112771821A
- Authority
- CN
- China
- Prior art keywords
- data
- sending
- ack
- channel
- buffer
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 167
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012790 confirmation Methods 0.000 claims abstract description 133
- 238000004590 computer program Methods 0.000 claims description 27
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 20
- 230000003139 buffering effect Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 12
- 230000000903 blocking effect Effects 0.000 description 7
- RZVHIXYEVGDQDX-UHFFFAOYSA-N 9,10-anthraquinone Chemical compound C1=CC=C2C(=O)C3=CC=CC=C3C(=O)C2=C1 RZVHIXYEVGDQDX-UHFFFAOYSA-N 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002547 anomalous effect Effects 0.000 description 1
- 238000012668 chain scission Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000010006 flight Effects 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/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
Abstract
一种数据传输方法,包括:接收发送设备发送的TCP数据包(S110);根据TCP数据包生成ACK确认数据,将ACK确认数据存储至发送缓冲区(S120);将发送缓冲区中最新的ACK确认数据发送给发送设备(S130)。由此能够提高发送装置和接收装置之间据传输的稳定性和传输效率。还提供了装置、系统、终端设备和存储介质。
Description
技术领域
本说明书涉及通信技术领域,尤其涉及一种数据传输方法、装置、系统、终端设备和存储介质。
背景技术
TCP/IP协议是目前通信网络中最常用的协议,其特点就是需要通信双方进行握手确认,以确保数据包的正确传输。这就要求双向通道都保持持续的通畅,否则就会引起拥堵断链。
标准TCP协议中,发送数据缓冲区是一个动态管理的窗口机制。发送方根据接收方的ACK(Acknowledgement)信息,管理自己的发送缓冲区;当接收方的ACK信息发送受阻时,发送方和接收方之间的数据传输不稳定,传输效率较低。
发明内容
基于此,本说明书提供了一种数据传输方法、装置、系统、终端设备和存储介质,旨在提高发送方和接收方之间的数据传输的稳定性和传输效率。
第一方面,本说明书提供了一种数据传输方法,所述方法包括:
接收发送设备发送的TCP数据包;
根据所述TCP数据包生成ACK确认数据,将所述ACK确认数据存储至发送缓冲区;
将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
第二方面,本说明书提供了一种数据传输装置,包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时,实现如下步骤:
接收发送设备发送的TCP数据包;
根据所述TCP数据包生成ACK确认数据,将所述ACK确认数据存储至发送缓冲区;
将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
第三方面,本说明书提供了一种数据传输系统,包括前述的数据传输装置,以及能够与所述数据传输装置通信的发送设备。
第四方面,本说明书提供了一种终端设备,存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时,实现如下步骤:
接收可移动平台发送的TCP数据包;
根据所述TCP数据包生成ACK确认数据,将所述ACK确认数据存储至发送缓冲区;
将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台。
第五方面,本说明书提供了一种数据传输系统,包括前述的终端设备,以及能够与所述终端设备通信的可移动平台。
第六方面,本说明书提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现上述的方法。
本说明书实施例提供了一种数据传输方法、装置、系统、终端设备和存储介质,接收设备根据发送设备发送的TCP数据包生成ACK确认数据,将ACK确认数据存储至发送缓冲区,以由通信链路将ACK确认数据向发送设备发送;通过将发送缓冲区中最新的ACK确认数据发送给发送设备,使得发送设备可以快速更新发送窗口和将新的TCP数据包向接收设备发送,提高了数据传输的稳定性和效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书的公开内容。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书一实施例提供的一种数据传输方法的流程示意图;
图2是接收设备和发送设备之间进行数据传输的示意图;
图3是正常状态时发送窗口移动的示意图;
图4是ACK确认数据丢失时发送设备发送窗口的示意图;
图5是发送窗口根据最新的ACK确认数据更新的示意图;
图6是发送设备与接收设备之间进行数据传输的另一示意图;
图7是本说明书一实施例提供的一种数据传输装置的示意性框图;
图8是本说明书一实施例提供的一种数据传输系统的示意性框图;
图9是本说明书一实施例提供的一种终端设备的示意性框图;
图10是本说明书另一实施例提供的一种数据传输系统的示意性框图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
下面结合附图,对本说明书的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1是本说明书一实施例提供的一种数据传输方法的流程示意图。所述数据传输方法可以应用在数据传输装置,如终端设备或服务器中,以实现从发送设备接收数据等过程。发送设备例如可以是终端设备、服务器或可移动平台等数据传输装置。其中,发送设备可以为可移动平台或服务器且接收设备为终端设备,这种场景可以对应下行数据传输过程。或者,发送设备可以为终端设备且接收设备为可移动平台或服务器,这种场景对应上行数据传输过程。本申请可以应用于上下行通信带宽对称(即上下行带宽相等)或者非对称(上下行带宽不等)的场景。下述实施例在以发送设备为可移动平台且接收设备为终端设备为例进行说明。
其中,终端设备可以包括手机、平板电脑、笔记本电脑、台式电脑、个人数字助理、穿戴式设备、遥控器中的至少一项;服务器可以为独立的服务器,也可以为服务器集群。可移动平台可以为无人飞行器、手持云台、云台车、机器人、机器车等可移动平台。进一步而言,无人飞行器可以为旋翼型无人机,例如四旋翼无人机、六旋翼无人机、八旋翼无人机,也可以是固定翼无人机。
在一些实施方式中,数据传输系统可以包括多个数据传输装置。示例性的,其中一个数据传输装置可以作为发送设备,其他至少一个数据传输装置可以作为接收设备,接收设备用于实现本说明书实施例的数据传输方法。示例性的,其中一个数据传输装置在一些时刻作为发送设备,而在另一些时刻作为接收设备,另一个数据传输装置在一些时刻作为接收设备,而在另一些时刻作为发送设备。
在一些实施方式中,发送设备和接收设备可以以有线或者无线的方式通信连接。
示例性的,发送设备和接收设备根据TCP/IP协议进行数据传输。
示例性的,接收设备和发送设备之间通过无线信道传输数据。
示例性的,如图2所示,从发送设备到接收设备的无线信道,称为下行信道,用于传输发送设备采集到的数据,例如视频、图片、传感器数据、以及发送设备,如无人机的状态信息(OSD)等遥测数据。
示例性的,如图2所示,从接收设备到发送设备的无线信道,称为上行信道,用于传输遥控数据;例如发送设备为无人机时,上行信道用于传输飞控指令以及拍照、录像、返航等控制指令。
如图1所示,本说明书实施例的数据传输方法包括步骤S110至步骤S130。
S110、接收发送设备发送的TCP数据包。
在一些实施方式中,发送设备根据TCP/IP协议向接收设备发送TCP数据包。
示例性的,如图3所示,每个TCP数据包(如图3中的每个方块)都有自己的SN序号(如方块中的编号),发送设备每发送1个TCP数据包出去,需要等待对方,即接收设备的ACK确认数据,ACK确认数据中可以包括TCP数据包对应的数据包序号。
示例性的,发送设备的发送数据缓冲区是遵循动态管理的窗口机制。
发送设备发送当前发送窗口中的TCP数据包,如图3中已经发送了发送窗口中的3至5号TCP数据包,接下来可以发送发送窗口中的6至8号TCP数据包。
示例性的,发送窗口的长度可以是固定的,或者也可以是动态调整的,例如在某一个时刻发送窗口的长度为10个TCP数据包,在另一个时刻发送窗口的长度为6个TCP数据包。
示例性的,发送设备发送窗口中的TCP数据包时,可以按照数据包序号顺序发送,或者也可以乱序发送,如先发送8号TCP数据包,然后发送6号TCP数据包。
S120、根据所述TCP数据包生成ACK确认数据,将所述ACK确认数据存储至发送缓冲区。
示例性的,ACK确认数据可以由高层系统(如Linux,Android等)生成。
在一些实施方式中,接收设备每接收到一个或多个TCP数据包后,可以生成至少一个ACK确认数据。
示例性的,根据ACK延迟确认机制(delay ACK机制),接收方在收到数据后,可以不立即回复ACK确认数据,而是延迟一定时间。例如通过定时器每隔200ms检查是否需要发送ACK确认数据。例如ACK确认数据可以合并,如果连续收到多个TCP数据包,并不一定需要生成相应数目个ACK确认数据,可以降低网络流量。
示例性的,如果接收设备有其他数据要发送,那么可以在其他数据的TCP数据包里,带上ACK信息。以此可以避免大量的ACK确认数据以一个单独的TCP包发送,可以减少网络流量。
如图3所示,在第一时刻,发送窗口的长度为6。1号、2号TCP数据包是发送设备已经发送并得到接收设备的ACK确认数据的数据包。3至5号TCP数据包是已经发送但是还没有收到ACK确认数据的数据包。6至8号TCP数据包是窗口中待发送的数据包,是在未收到3至5号TCP数据包对应的ACK确认数据之前发送设备仍然可以继续发送的数据。其他的9至15号TCP数据包属于未发送的数据包,即在发送窗口未移动到这些区域前,不能发送的数据。
示例性的,如图3所示,发送设备和接收设备的数据传输为正常状态时,发送设备如果接收到3号TCP数据包对应的ACK确认数据,则发送设备可以将发送窗口向后移动1包数据到9号TCP数据;发送设备还可以在这个时候将6号TCP数据包发送给接收设备。如果正常状态一直保持,则以此类推,逐步向后移动窗口,进行正常收发。
示例性的,如图4所示,如果发送设备未接收到3号TCP数据包对应的ACK确认数据,例如接收设备未收到3号TCP数据包、未生成3号TCP数据包对应的ACK确认数据,或者未及时发送3号TCP数据包对应的ACK确认数据,则发送设备可以将6至8号TCP数据包发送给接收设备,但是不移动发送窗口。如果接下来的时间连续丢失4至8号TCP数据包对应的ACK确认数据,则发送设备的发送窗口持续得不到更新,发送设备发送完8号TCP数据包之后,会停止发送。造成数据阻塞,如果持续更长时间,达到高层数据(例如FTP协议)的超时门限,就会造成发送设备和接收设备之间的断链。
在一些实施方式中,在高层链路超时之前,如图5所示,如果发送设备收到了6号TCP数据包对应的ACK确认数据,即使3至5号TCP数据包对应的ACK确认数据都没有收到,发送窗口也可以快速移动到12号TCP数据,因此可以弥补前面几个ACK确认数据丢失造成的窗口不移动的影响,可以实现发送效率的提升。
可以理解的,最新的ACK确认数据,隐含了历史的ACK确认数据,即发送设备只要收到一个最新的ACK确认数据,就可以忽略前面数据包对应的ACK确认数据。
在一些实施方式中,如图6所示,接收设备生成ACK确认数据后可以将ACK确认数据存储至发送缓冲区。
示例性的,当传输数据出现错误时,接收设备会产生很多的ACK确认数据。例如由于超时重传机制,发送设备发送TCP数据包一段时间后,没有收到ACK确认数据就认为数据出问题了,就会再次发送该TCP数据包,由此,接收设备会产生很多的ACK确认数据。
例如,当数据传输系统出现阻塞时,在发送缓冲区会累积大量的ACK确认数据,期间发送设备的发送窗口一直无法更新,会造成数据的长时间阻塞。当链路恢复之后,接收设备也需要很长时间才能将发送缓冲区中累积的ACK确认数据发送出去,期间发送设备的发送窗口不能及时更新,也会造成数据的长时间阻塞。
S130、将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
在一些实施方式中,发送设备发送的TCP数据包包括数据包序号,接收设备生成的ACK确认数据包括对应的数据包序号。例如,
示例性的,ACK确认数据的新旧程度是根据所述ACK确认数据对应的数据包序号确定的。在其他一些实施方式中,当然也可以根据其他方式确定ACK确认数据的新旧程度,例如根据ACK确认数据生成或存储至发送缓冲区的时间,当然也不仅限于此。
例如,所述最新的ACK确认数据是数据包序号最大的ACK确认数据。ACK确认数据的数据包序号可以由接收设备根据TCP数据包的数据包序号确定。
例如,所述最新的ACK确认数据是接收设备最新接收到的数据包序号最大的TCP数据包对应的ACK确认数据。
例如,发送设备向接收设备发送的TCP数据包包括数据包序号,接收设备可以根据TCP数据包的数据包序号确定ACK确认数据的数据包序号。
示例性的,发送设备的发送窗口设定为4096,通过通信链路向接收设备发送4096个TCP数据包。接收设备可以正常确接收到这4096个TCP数据包,并生成4096个ACK确认数据;在此期间如果通信链路出现异常干扰,则发送缓冲区中会累积4096个ACK确认数据。
示例性的,当前时刻发送缓冲区中累积了4096个ACK确认数据,则接收设备可以将发送缓冲区中最新生成的一个或多个ACK确认数据向发送设备发送,例如将4096号ACK确认数据向发送设备发送。
不限于将最新的ACK确认数据发送给发送设备,接收设备还可以将次新、次次新的ACK确认数据发送给发送设备,例如接收设备还可以将ACK确认数据按照包序号从大到小进行排序,将包序号大于预设阈值的ACK确认数据发送给发送设备,而非按照包序号大小依次将发送缓冲区中的ACK确认数据都发送给发送设备。
示例性的,可以将所述发送缓冲区中不是最新的ACK确认数据从发送缓冲区中删除,而将最新的ACK确认数据发送所述发送设备。
示例性的,所述最新的ACK确认数据用于所述发送设备根据所述最新的ACK确认数据移动发送数据窗口,移动后的发送数据窗口在所述ACK确认数据对应的TCP数据包之后。如图5所示,如果发送设备收到了6号TCP数据包对应的ACK确认数据,即使3至5号TCP数据包对应的ACK确认数据都没有收到,发送窗口也可以快速移动到6至12号TCP数据,因此可以弥补前面几个ACK确认数据丢失造成的窗口不移动的影响,可以实现发送效率的提升。
例如,当前时刻发送缓冲区中累积了1至4096号ACK确认数据,如果将发送缓冲区中累积的1至4096号ACK确认数据均向发送设备发送,则发送设备在接收到1号ACK确认数据后更新发送窗口为2至4097号TCP数据包,但是其中2至4096号TCP数据包都是成功发送过的,因此发送设备只有4097号TCP数据包一包新的数据,导致发送设备无法快速将新的TCP数据包向接收设备发送。
但是如果接收设备可以将1至4095号ACK确认数据从发送缓冲区中删除,而向发送设备发送4096号ACK确认数据,则发送设备接收到4096号ACK确认数据后,根据该最新的ACK确认数据可以立即更新发送窗口,例如将发送窗口移动到4097至8192号TCP数据包,高层数据可以立即填充4096个新数据进来,发送设备并按序或乱序发送窗口中的TCP数据包。
通过将所述接收设备的发送缓冲区中最新的ACK确认数据发送给发送设备,使得发送设备可以快速更新发送窗口,发送设备可以在通信链路阻塞等情形时更加快捷的恢复发送窗口的有效空间;从而发送设备可以快速将新的TCP数据包向接收设备发送,显著提高了数据传输的稳定性和效率。
在一些实施方式中,如图6所示,接收设备通过第一信道接收发送设备发送的TCP数据包,通过第二信道将所述ACK确认数据发送给所述发送设备。
示例性的,如图2所示,下行信道作为第一信道用于传输发送设备采集到的数据,例如视频、图片、传感器数据、以及发送设备,如无人机的状态信息(OSD)等遥测数据。上行信道作为第二信道用于传输遥控数据;例如发送设备为无人机时,上行信道用于传输飞控指令以及拍照、录像、返航等控制指令。
示例性的,所述第一信道的带宽大于所述第二信道的带宽。因此发送设备和接收设备进行非对称的通信,可以应用于发送设备向接收设备发送更多数据的场景。
示例性的,所述第一信道为宽带信道,所述第二信道为窄带信道。例如,当发送设备为无人飞行器等可移动平台时。接收设备为终端设备时,通过采用承载能力非常小的窄带信道,可以提高第二信道的抗干扰能力和可靠性,以保证飞控指令以及拍照、录像、返航等控制指令的准确传输,实现对可移动平台的可靠控制。
示例性的,无线环境的波动会造成窄带信道传输能力的动态变化,因此第二信道为窄带信道时,更容易出现数据阻塞,断链的情况,通过将发送缓冲区中最新的ACK确认数据发送给发送设备可以更显著的提升发送设备和接收设备之间数据传输的稳定性和效率,实现发送设备向接收设备更加平稳高效的传输数据,提升传输速率,减少断链的概率。
通过将发送缓冲区中最新的ACK确认数据发送给发送设备,还可以减少第二信道传输ACK确认数据的数据量,可以节省第二信道的带宽,保证第二信道的通畅,减少堵塞和断链的情况。
在一些实施方式中,接收设备可以通过所述第二信道向所述发送设备发送其他数据,例如飞控指令以及拍照、录像、返航等控制指令,所述其他数据的优先级大于所述ACK确认数据。
示例性的,当发送设备和接收设备之间的距离太远或环境干扰严重时,窄带信道的承载能力会急剧下降,节省出的带宽可以更好的传输优先级更高的数据,例如控制指令。
在一些实施方式中,接收设备还可以将一些其他数据存储至发送缓冲区,例如可以将飞控指令以及拍照、录像、返航等控制指令存储至发送缓冲区,然后由通信链路发送给发送设备,例如可以实现对发送设备的控制。
示例性的,可以通过将控制指令等数据的优先级设定为高于ACK确认数据,以保证控制指令等数据可以及时发送至发送设备。
示例性的,当接收设备需要发送的高优先级数据较多时,也会引起发送缓冲区中累积较多的ACK确认数据。通过将最新的ACK确认数据发送给发送设备,可以使发送设备及时更新发送窗口,及时发送新的TCP数据包。
在一些实施方式中,所述将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:从所述发送缓冲区读取缓冲数据,若所述缓冲数据为ACK确认数据,且所述ACK确认数据不是所述发送缓冲区中最新的,丢弃所述缓冲数据。
示例性的,发送缓冲区存储的缓冲数据包括TCP数据包。当需要将缓冲区中最新的ACK确认数据发送给所述发送设备时,从发送缓冲区读取TCP数据包,可以根据包头信息确定该缓冲数据是否仅包括ACK确认数据,如果该缓冲数据仅包括ACK确认数据,且该ACK确认数据不是发送缓冲区中最新的,则丢弃该缓冲数据,以识别和丢弃冗余的历史ACK确认数据,确保最新的ACK确认数据可以及时发送到发送设备,以实现发送窗口的快速更新,减少发送窗口的阻塞时间,进而提高总体的传输效率和稳定性。
示例性的,如果读取的缓冲数据包括控制指令等信息,则将该缓冲数据发送给发送设备,以防止丢弃重要的数据。
在一些实施方式中,所述将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:根据发送所述ACK确认数据的第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
示例性的,如果第二信道足够支持发送缓冲区中所有ACK确认数据的正常发送,则可以依次将发送缓冲区中所有ACK确认数据发送给发送设备。
示例性的,如果第二信道足够支持发送缓冲区中所有ACK确认数据,以及高优先级数据的正常发送,则可以依次将发送缓冲区中所有ACK确认数据发送给发送设备。高优先级数据为优先级高于ACK确认数据的数据,如控制指令等。
示例性的,如果第二信道堵塞、断链或需要发送的高优先级数据较多,则将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,而可以丢弃发送缓冲区中除所述最新的ACK确认数据之外的其他ACK确认数据。在其他实现方式中,也可以默认将最新的ACK确认数据发送给发送设备,即不管第二信道是否堵塞或断链,都采用将最新的ACK确认数据发送给发送设备的方案。
在一些实施方式中,所述根据发送所述ACK确认数据的第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:若所述第二信道堵塞,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
第二信道的堵塞会引起发送缓冲区会累积大量的ACK确认数据,通过将发送缓冲区中最新的ACK确认数据发送给发送设备,可以使得发送设备快速更新发送窗口和将新的TCP数据包向接收设备发送,提高了数据传输的稳定性和效率。
示例性的,若所述第二信道被优先级高于所述ACK确认数据的其他数据占用,则所述第二信道堵塞。例如当检测到第二信道被优先级高于所述ACK确认数据的其他数据占用时,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
示例性的,若所述第二信道被优先级高于所述ACK确认数据的其他数据占用,且占用的时长不小于预设时长,则所述第二信道堵塞。
示例性的,若所述第二信道被优先级高于所述ACK确认数据的其他数据占用的时长小于所述预设时长,按照存储顺序发送所述发送缓冲区中的ACK确认数据。可以防止第二信道被短时间占用时,丢弃较多的ACK确认数据。
示例性的,若所述第二信道的发送缓冲区的水位大于等于预设的水位阈值,则所述第二信道堵塞。例如,当接收设备的发送缓冲区中存储了较多的数据时,如50%的数据时,则可以判定第二信道堵塞,因为此时ACK确认数据需要较长的时间才能发送至发送设备。例如若所述第二信道的发送缓冲区的水位大于等于预设的水位阈值,则可以删除发送缓冲区中除所述最新的ACK确认数据之外的其他ACK确认数据,而将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
示例性的,可以根据当前所述第二信道单位时间的空闲数据流量和单位时间所述ACK确认数据的第一数据流量,确定所述第二信道是否堵塞。
具体的,空闲数据流量为单位时间可供传输ACK确认数据的带宽。
示例性的,所述方法还包括:确定单位时间所述第二信道发送的优先级高于所述ACK确认数据的第二数据流量;根据所述第二信道单位时间的发送能力和所述第二数据流量确定当前所述第二信道单位时间的空闲数据流量。
例如,若第二信道单位时间内发送次数为C,每次发送的传输块大小为TBSize(Bytes),则所述第二信道单位时间的发送能力为C×TBSize;如果第二数据流量,如高优先级的数据流量为P1(Bytes),则空闲数据流量为C×TBSize-P1。
示例性的,若当前所述第二信道单位时间的空闲数据流量小于单位时间所述ACK确认数据的第一数据流量,则ACK确认数据会累积在发送缓冲区,因此可以删除发送缓冲区中除所述最新的ACK确认数据之外的其他ACK确认数据,而将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
示例性的,若所述第二信道的发送缓冲区的水位小于预设的水位阈值,且当前所述第二信道单位时间的空闲数据流量小于单位时间所述ACK确认数据的第一数据流量,确定所述第二信道堵塞。
例如,可以先确定第二信道的发送缓冲区的水位是否小于预设的水位阈值,如果发送缓冲区的水位小于预设的水位阈值,则可以确定第二信道未堵塞,则可以按照存储顺序发送所述发送缓冲区中的ACK确认数据;如果发送缓冲区的水位小于预设的水位阈值,则可以进一步确定空闲数据流量是否小于第一数据流量,如果空闲数据流量小于第一数据流量,则将发送缓冲区中最新的ACK确认数据发送给发送设备;如果空闲数据流量不小于第一数据流量,则可以按照存储顺序发送所述发送缓冲区中的ACK确认数据。
在一些实施方式中,所述根据所述第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:若所述第二信道断链后重连成功,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
示例性的,如果发送设备的发送窗口持续得不到更新,达到高层数据(例如FTP协议)的超时门限,就会造成发送设备和接收设备之间的断链。在断链后重连成功时,可以删除发送缓冲区中除所述最新的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确认数据发送给发送设备,便于发送设备及时更新发送窗口,提高发送效率。
本实施例提供的数据传输方法,接收设备根据发送设备发送的TCP数据包生成ACK确认数据,将ACK确认数据存储至发送缓冲区,以由通信链路将ACK确认数据向发送设备发送;通过将发送缓冲区中最新的ACK确认数据发送给发送设备,使得发送设备可以快速更新发送窗口和将新的TCP数据包向接收设备发送,提高了数据传输的稳定性和效率。
请结合上述实施例参阅图7,图7是本说明书一实施例提供的数据传输装置600的示意性框图。该数据传输装置600包括处理器601和存储器602。
示例性的,处理器601和存储器602通过总线603连接,该总线603比如为I2C(Inter-integrated Circuit)总线。
具体地,处理器601可以是微控制单元(Micro-controller Unit,MCU)、中央处理单元(Central Processing Unit,CPU)或数字信号处理器(Digital Signal Processor,DSP)等。
具体地,存储器602可以是Flash芯片、只读存储器(ROM,Read-Only Memory)磁盘、光盘、U盘或移动硬盘等。
其中,所述处理器601用于运行存储在存储器602中的计算机程序,并在执行所述计算机程序时实现前述的数据传输方法。
示例性的,所述处理器601用于运行存储在存储器602中的计算机程序,并在执行所述计算机程序时实现如下步骤:
接收发送设备发送的TCP数据包;
根据所述TCP数据包生成ACK确认数据,将所述ACK确认数据存储至发送缓冲区;
将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
本说明书实施例提供的数据传输装置的具体原理和实现方式均与前述实施例的数据传输方法类似,此处不再赘述。
本说明书的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现上述实施例提供的数据传输方法的步骤。
其中,所述计算机可读存储介质可以是前述任一实施例所述的数据传输装置的内部存储单元,例如所述数据传输装置的硬盘或内存。所述计算机可读存储介质也可以是所述数据传输装置的外部存储设备,例如所述数据传输装置上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
请参阅图8,图8是本说明书一实施例提供的数据传输系统的示意性框图。
具体的,如图8所示,数据传输系统包括前述的数据传输装置600,以及能够与所述数据传输装置600通信的发送设备101。
在一些实施方式中,发送设备101和数据传输装置600可以以有线或者无线的方式通信连接。
示例性的,发送设备101和数据传输装置600根据TCP/IP协议进行数据传输。
示例性的,接收设备101和数据传输装置600之间通过无线信道传输数据。
请参阅图9,图9是本说明书一实施例提供的终端设备700的示意性框图。该终端设备700包括处理器701和存储器702。
示例性的,处理器701和存储器702通过总线703连接,该总线703比如为I2C(Inter-integrated Circuit)总线。
具体地,处理器701可以是微控制单元(Micro-controller Unit,MCU)、中央处理单元(Central Processing Unit,CPU)或数字信号处理器(Digital Signal Processor,DSP)等。
具体地,存储器702可以是Flash芯片、只读存储器(ROM,Read-Only Memory)磁盘、光盘、U盘或移动硬盘等。
其中,所述处理器701用于运行存储在存储器702中的计算机程序,并在执行所述计算机程序时实现前述的数据传输方法。
示例性的,所述处理器701用于运行存储在存储器702中的计算机程序,并在执行所述计算机程序时实现如下步骤:
接收可移动平台发送的TCP数据包;
根据所述TCP数据包生成ACK确认数据,将所述ACK确认数据存储至发送缓冲区;
将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台。
本说明书实施例提供的终端设备的具体原理和实现方式均与前述实施例的数据传输方法类似,此处不再赘述。
本说明书的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述计算机程序被处理器执行时使所述处理器实现上述实施例提供的数据传输方法的步骤。
其中,所述计算机可读存储介质可以是前述任一实施例所述的终端设备的内部存储单元,例如所述终端设备的硬盘或内存。所述计算机可读存储介质也可以是所述终端设备的外部存储设备,例如所述终端设备上配备的插接式硬盘,智能存储卡(Smart MediaCard,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
请参阅图10,图10是本说明书一实施例提供的一种数据传输系统的示意性框图。
具体的,如图10所示,数据传输系统包括前述的终端设备700,以及能够与所述终端设备700通信的可移动平台201。
在一些实施方式中,终端设备700和可移动平台201可以以有线或者无线的方式通信连接。
示例性的,终端设备700和可移动平台201根据TCP/IP协议进行数据传输。
示例性的,终端设备700和可移动平台201之间通过无线信道传输数据。
示例性的,终端设备700包括如下至少一种:手机、平板电脑、笔记本电脑、台式电脑、个人数字助理、穿戴式设备、遥控器。
示例性的,可移动平台201包括如下至少一种:无人飞行器、手持云台、云台车。
本说明书上述实施例提供的数据传输装置、系统、终端和存储介质,接收端根据发送端发送的TCP数据包生成ACK确认数据,将ACK确认数据存储至发送缓冲区,以由通信链路将ACK确认数据向发送端发送;通过将发送缓冲区中最新的ACK确认数据发送给发送端,使得发送端可以快速更新发送窗口和将新的TCP数据包向接收端发送,提高了数据传输的稳定性和效率。
应当理解,在此本说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本说明书。
还应当理解,在本说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
以上所述,仅为本说明书的具体实施方式,但本说明书的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本说明书揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本说明书的保护范围之内。因此,本说明书的保护范围应以权利要求的保护范围为准。
Claims (89)
1.一种数据传输方法,其特征在于,所述方法包括:
接收发送设备发送的TCP数据包;
根据所述TCP数据包生成ACK确认数据,将所述ACK确认数据存储至发送缓冲区;
将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
2.根据权利要求1所述的方法,其特征在于,通过第一信道接收发送设备发送的TCP数据包,通过第二信道将所述ACK确认数据发送给所述发送设备。
3.根据权利要求2所述的方法,其特征在于,所述第一信道的带宽大于所述第二信道的带宽。
4.根据权利要求3所述的方法,其特征在于,所述第一信道为宽带信道,所述第二信道为窄带信道。
5.根据权利要求2-4中任一项所述的方法,其特征在于,所述方法还包括:
通过所述第二信道向所述发送设备发送其他数据,所述其他数据的优先级大于所述ACK确认数据。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
根据发送所述ACK确认数据的第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
若所述第二信道堵塞,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
8.根据权利要求7所述的方法,其特征在于,若所述第二信道被优先级高于所述ACK确认数据的其他数据占用,则所述第二信道堵塞。
9.根据权利要求7或8所述的方法,其特征在于,若所述第二信道被优先级高于所述ACK确认数据的其他数据占用,且占用的时长不小于预设时长,则所述第二信道堵塞。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:若所述第二信道被优先级高于所述ACK确认数据的其他数据占用的时长小于所述预设时长,按照存储顺序发送所述发送缓冲区中的ACK确认数据。
11.根据权利要求7所述的方法,其特征在于,若所述第二信道的发送缓冲区的水位大于等于预设的水位阈值,则所述第二信道堵塞。
12.根据权利要求7所述的方法,其特征在于,所述方法还包括:
根据当前所述第二信道单位时间的空闲数据流量和单位时间所述ACK确认数据的第一数据流量,确定所述第二信道是否堵塞。
13.根据权利要求12所述的方法,其特征在于,若当前所述第二信道单位时间的空闲数据流量小于单位时间所述ACK确认数据的第一数据流量,确定所述第二信道堵塞。
14.根据权利要求12所述的方法,其特征在于,若所述第二信道的发送缓冲区的水位小于预设的水位阈值,且当前所述第二信道单位时间的空闲数据流量小于单位时间所述ACK确认数据的第一数据流量,确定所述第二信道堵塞。
15.根据权利要求12所述的方法,其特征在于,所述方法还包括:
确定单位时间所述第二信道发送的优先级高于所述ACK确认数据的第二数据流量;
根据所述第二信道单位时间的发送能力和所述第二数据流量确定当前所述第二信道单位时间的空闲数据流量。
16.根据权利要求6所述的方法,其特征在于,所述根据所述第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
若所述第二信道断链后重连成功,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:若所述第二信道未断链,按照存储顺序发送所述发送缓冲区中的ACK确认数据。
18.根据权利要求6所述的方法,其特征在于,所述根据所述第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
确定所述第二信道是否能够支持所述ACK确认数据的常规传输;
若确定所述第二信道不能够支持所述ACK确认数据的常规传输,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
19.根据权利要求18所述的方法,其特征在于,所述方法还包括:若确定所述第二信道能够支持所述ACK确认数据的常规传输,按照存储顺序发送所述发送缓冲区中的ACK确认数据。
20.根据权利要求1-19中任一项所述的方法,其特征在于,所述将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
根据所述发送缓冲区中ACK确认数据的数量,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
21.根据权利要求20所述的方法,其特征在于,所述根据所述发送缓冲区中ACK确认数据的数量,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
若所述发送缓冲区中ACK确认数据的数量不小于预设缓存量,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
22.根据权利要求21所述的方法,其特征在于,所述方法包括:
若所述发送缓冲区中ACK确认数据的数量不小于预设缓存量,删除所述发送缓冲区中除所述最新的ACK确认数据之外的其他ACK确认数据。
23.根据权利要求20所述的方法,其特征在于,所述根据所述发送缓冲区中ACK确认数据的数量,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
若所述发送缓冲区中ACK确认数据的数量小于预设缓存量,按照存储顺序发送所述发送缓冲区中的ACK确认数据。
24.根据权利要求1-23中任一项所述的方法,其特征在于,所述将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
从所述发送缓冲区读取缓冲数据,若所述缓冲数据为ACK确认数据,且所述ACK确认数据不是所述发送缓冲区中最新的,丢弃所述缓冲数据。
25.根据权利要求1-24中任一项所述的方法,其特征在于,
所述TCP数据包包括数据包序号,所述ACK确认数据包括对应的数据包序号;
所述ACK确认数据的新旧程度是根据所述ACK确认数据对应的数据包序号确定的。
26.根据权利要求25所述的方法,其特征在于,所述最新的ACK确认数据是数据包序号最大的ACK确认数据。
27.根据权利要求25所述的方法,其特征在于,所述最新的ACK确认数据是接收设备最新接收到的数据包序号最大的TCP数据包对应的ACK确认数据。
28.根据权利要求1-27中任一项所述的方法,其特征在于,所述最新的ACK确认数据用于所述发送设备根据所述最新的ACK确认数据移动发送数据窗口,移动后的发送数据窗口在所述ACK确认数据对应的TCP数据包之后。
29.一种数据传输装置,其特征在于,包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时,实现如下步骤:
接收发送设备发送的TCP数据包;
根据所述TCP数据包生成ACK确认数据,将所述ACK确认数据存储至发送缓冲区;
将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
30.根据权利要求29所述的装置,其特征在于,所述装置通过第一信道接收发送设备发送的TCP数据包,通过第二信道将所述ACK确认数据发送给所述发送设备。
31.根据权利要求30所述的装置,其特征在于,所述第一信道的带宽大于所述第二信道的带宽。
32.根据权利要求31所述的装置,其特征在于,所述第一信道为宽带信道,所述第二信道为窄带信道。
33.根据权利要求30-32中任一项所述的装置,其特征在于,所述处理器还实现:
通过所述第二信道向所述发送设备发送其他数据,所述其他数据的优先级大于所述ACK确认数据。
34.根据权利要求29-33中任一项所述的装置,其特征在于,所述将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
根据发送所述ACK确认数据的第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
35.根据权利要求34所述的装置,其特征在于,所述根据所述第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
若所述第二信道堵塞,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
36.根据权利要求35所述的装置,其特征在于,若所述第二信道被优先级高于所述ACK确认数据的其他数据占用,则所述第二信道堵塞。
37.根据权利要求35或36所述的装置,其特征在于,若所述第二信道被优先级高于所述ACK确认数据的其他数据占用,且占用的时长不小于预设时长,则所述第二信道堵塞。
38.根据权利要求37所述的装置,其特征在于,所述处理器还实现:
若所述第二信道被优先级高于所述ACK确认数据的其他数据占用的时长小于所述预设时长,按照存储顺序发送所述发送缓冲区中的ACK确认数据。
39.根据权利要求35所述的装置,其特征在于,若所述第二信道的发送缓冲区的水位大于等于预设的水位阈值,则所述第二信道堵塞。
40.根据权利要求35所述的装置,其特征在于,所述处理器还实现:
根据当前所述第二信道单位时间的空闲数据流量和单位时间所述ACK确认数据的第一数据流量,确定所述第二信道是否堵塞。
41.根据权利要求40所述的装置,其特征在于,若当前所述第二信道单位时间的空闲数据流量小于单位时间所述ACK确认数据的第一数据流量,确定所述第二信道堵塞。
42.根据权利要求40所述的装置,其特征在于,若所述第二信道的发送缓冲区的水位小于预设的水位阈值,且当前所述第二信道单位时间的空闲数据流量小于单位时间所述ACK确认数据的第一数据流量,确定所述第二信道堵塞。
43.根据权利要求40所述的装置,其特征在于,所述处理器还实现:
确定单位时间所述第二信道发送的优先级高于所述ACK确认数据的第二数据流量;
根据所述第二信道单位时间的发送能力和所述第二数据流量确定当前所述第二信道单位时间的空闲数据流量。
44.根据权利要求34所述的装置,其特征在于,所述根据所述第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
若所述第二信道断链后重连成功,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
45.根据权利要求44所述的装置,其特征在于,所述处理器还实现:若所述第二信道未断链,按照存储顺序发送所述发送缓冲区中的ACK确认数据。
46.根据权利要求34所述的装置,其特征在于,所述根据所述第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
确定所述第二信道是否能够支持所述ACK确认数据的常规传输;
若确定所述第二信道不能够支持所述ACK确认数据的常规传输,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
47.根据权利要求46所述的装置,其特征在于,所述处理器还实现:若确定所述第二信道能够支持所述ACK确认数据的常规传输,按照存储顺序发送所述发送缓冲区中的ACK确认数据。
48.根据权利要求29-47中任一项所述的装置,其特征在于,所述将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
根据所述发送缓冲区中ACK确认数据的数量,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
49.根据权利要求48所述的装置,其特征在于,所述根据所述发送缓冲区中ACK确认数据的数量,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
若所述发送缓冲区中ACK确认数据的数量不小于预设缓存量,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备。
50.根据权利要求49所述的装置,其特征在于,所述处理器还实现:
若所述发送缓冲区中ACK确认数据的数量不小于预设缓存量,删除所述发送缓冲区中除所述最新的ACK确认数据之外的其他ACK确认数据。
51.根据权利要求48所述的装置,其特征在于,所述根据所述发送缓冲区中ACK确认数据的数量,将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
若所述发送缓冲区中ACK确认数据的数量小于预设缓存量,按照存储顺序发送所述发送缓冲区中的ACK确认数据。
52.根据权利要求29-51中任一项所述的装置,其特征在于,所述将所述发送缓冲区中最新的ACK确认数据发送给所述发送设备,包括:
从所述发送缓冲区读取缓冲数据,若所述缓冲数据为ACK确认数据,且所述ACK确认数据不是所述发送缓冲区中最新的,丢弃所述缓冲数据。
53.根据权利要求29-52中任一项所述的装置,其特征在于,
所述TCP数据包包括数据包序号,所述ACK确认数据包括对应的数据包序号;
所述ACK确认数据的新旧程度是根据所述ACK确认数据对应的数据包序号确定的。
54.根据权利要求53所述的装置,其特征在于,所述最新的ACK确认数据是数据包序号最大的ACK确认数据。
55.根据权利要求53所述的装置,其特征在于,所述最新的ACK确认数据是接收设备最新接收到的数据包序号最大的TCP数据包对应的ACK确认数据。
56.根据权利要求29-55中任一项所述的装置,其特征在于,所述最新的ACK确认数据用于所述发送设备根据所述最新的ACK确认数据移动发送数据窗口,移动后的发送数据窗口在所述ACK确认数据对应的TCP数据包之后。
57.一种数据传输系统,其特征在于,包括如权利要求29-56中任一项所述的数据传输装置,以及能够与所述数据传输装置通信的发送设备。
58.一种终端设备,其特征在于,存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时,实现如下步骤:
接收可移动平台发送的TCP数据包;
根据所述TCP数据包生成ACK确认数据,将所述ACK确认数据存储至发送缓冲区;
将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台。
59.根据权利要求58所述的终端设备,其特征在于,所述终端设备通过第一信道接收可移动平台发送的TCP数据包,通过第二信道将所述ACK确认数据发送给所述可移动平台。
60.根据权利要求59所述的终端设备,其特征在于,所述第一信道的带宽大于所述第二信道的带宽。
61.根据权利要求60所述的终端设备,其特征在于,所述第一信道为宽带信道,所述第二信道为窄带信道。
62.根据权利要求59-61中任一项所述的终端设备,其特征在于,所述处理器还实现:
通过所述第二信道向所述可移动平台发送其他数据,所述其他数据的优先级大于所述ACK确认数据。
63.根据权利要求58-62中任一项所述的终端设备,其特征在于,所述将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台,包括:
根据发送所述ACK确认数据的第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台。
64.根据权利要求63所述的终端设备,其特征在于,所述根据所述第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台,包括:
若所述第二信道堵塞,将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台。
65.根据权利要求64所述的终端设备,其特征在于,若所述第二信道被优先级高于所述ACK确认数据的其他数据占用,则所述第二信道堵塞。
66.根据权利要求64或65所述的终端设备,其特征在于,若所述第二信道被优先级高于所述ACK确认数据的其他数据占用,且占用的时长不小于预设时长,则所述第二信道堵塞。
67.根据权利要求66所述的终端设备,其特征在于,所述处理器还实现:
若所述第二信道被优先级高于所述ACK确认数据的其他数据占用的时长小于所述预设时长,按照存储顺序发送所述发送缓冲区中的ACK确认数据。
68.根据权利要求64所述的终端设备,其特征在于,若所述第二信道的发送缓冲区的水位大于等于预设的水位阈值,则所述第二信道堵塞。
69.根据权利要求64所述的终端设备,其特征在于,所述处理器还实现:
根据当前所述第二信道单位时间的空闲数据流量和单位时间所述ACK确认数据的第一数据流量,确定所述第二信道是否堵塞。
70.根据权利要求69所述的终端设备,其特征在于,若当前所述第二信道单位时间的空闲数据流量小于单位时间所述ACK确认数据的第一数据流量,确定所述第二信道堵塞。
71.根据权利要求69所述的终端设备,其特征在于,若所述第二信道的发送缓冲区的水位小于预设的水位阈值,且当前所述第二信道单位时间的空闲数据流量小于单位时间所述ACK确认数据的第一数据流量,确定所述第二信道堵塞。
72.根据权利要求69所述的终端设备,其特征在于,所述处理器还实现:
确定单位时间所述第二信道发送的优先级高于所述ACK确认数据的第二数据流量;
根据所述第二信道单位时间的发送能力和所述第二数据流量确定当前所述第二信道单位时间的空闲数据流量。
73.根据权利要求63所述的终端设备,其特征在于,所述根据所述第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台,包括:
若所述第二信道断链后重连成功,将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台。
74.根据权利要求73所述的终端设备,其特征在于,所述处理器还实现:若所述第二信道未断链,按照存储顺序发送所述发送缓冲区中的ACK确认数据。
75.根据权利要求63所述的终端设备,其特征在于,所述根据所述第二信道的信道状态,将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台,包括:
确定所述第二信道是否能够支持所述ACK确认数据的常规传输;
若确定所述第二信道不能够支持所述ACK确认数据的常规传输,将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台。
76.根据权利要求75所述的终端设备,其特征在于,所述处理器还实现:若确定所述第二信道能够支持所述ACK确认数据的常规传输,按照存储顺序发送所述发送缓冲区中的ACK确认数据。
77.根据权利要求58-76中任一项所述的终端设备,其特征在于,所述将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台,包括:
根据所述发送缓冲区中ACK确认数据的数量,将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台。
78.根据权利要求77所述的终端设备,其特征在于,所述根据所述发送缓冲区中ACK确认数据的数量,将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台,包括:
若所述发送缓冲区中ACK确认数据的数量不小于预设缓存量,将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台。
79.根据权利要求78所述的终端设备,其特征在于,所述处理器还实现:
若所述发送缓冲区中ACK确认数据的数量不小于预设缓存量,删除所述发送缓冲区中除所述最新的ACK确认数据之外的其他ACK确认数据。
80.根据权利要求77所述的终端设备,其特征在于,所述根据所述发送缓冲区中ACK确认数据的数量,将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台,包括:
若所述发送缓冲区中ACK确认数据的数量小于预设缓存量,按照存储顺序发送所述发送缓冲区中的ACK确认数据。
81.根据权利要求58-80中任一项所述的终端设备,其特征在于,所述将所述发送缓冲区中最新的ACK确认数据发送给所述可移动平台,包括:
从所述发送缓冲区读取缓冲数据,若所述缓冲数据为ACK确认数据,且所述ACK确认数据不是所述发送缓冲区中最新的,丢弃所述缓冲数据。
82.根据权利要求58-81中任一项所述的终端设备,其特征在于,
所述TCP数据包包括数据包序号,所述ACK确认数据包括对应的数据包序号;
所述ACK确认数据的新旧程度是根据所述ACK确认数据对应的数据包序号确定的。
83.根据权利要求82所述的终端设备,其特征在于,所述最新的ACK确认数据是数据包序号最大的ACK确认数据。
84.根据权利要求82所述的终端设备,其特征在于,所述最新的ACK确认数据是接收设备最新接收到的数据包序号最大的TCP数据包对应的ACK确认数据。
85.根据权利要求58-84中任一项所述的终端设备,其特征在于,所述最新的ACK确认数据用于所述可移动平台根据所述最新的ACK确认数据移动发送数据窗口,移动后的发送数据窗口在所述ACK确认数据对应的TCP数据包之后。
86.根据权利要求58-85中任一项所述的终端设备,其特征在于,所述终端设备包括如下至少一种:
手机、平板电脑、笔记本电脑、台式电脑、个人数字助理、穿戴式设备、遥控器。
87.根据权利要求58-86中任一项所述的终端设备,其特征在于,所述可移动平台包括如下至少一种:无人飞行器、手持云台、云台车。
88.一种数据传输系统,其特征在于,包括如权利要求58-87中任一项所述的终端设备,以及能够与所述终端设备通信的可移动平台。
89.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1-28中任一项所述的数据传输方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/086513 WO2021212438A1 (zh) | 2020-04-23 | 2020-04-23 | 数据传输方法、装置、系统、终端设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112771821A true CN112771821A (zh) | 2021-05-07 |
Family
ID=75699502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080005060.6A Pending CN112771821A (zh) | 2020-04-23 | 2020-04-23 | 数据传输方法、装置、系统、终端设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112771821A (zh) |
WO (1) | WO2021212438A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115499932B (zh) * | 2021-07-02 | 2023-07-18 | 华为技术有限公司 | 通信方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102006283A (zh) * | 2010-10-21 | 2011-04-06 | 意法·爱立信半导体(北京)有限公司 | 数据传输的方法和装置 |
CN108702379A (zh) * | 2016-02-22 | 2018-10-23 | 富士通株式会社 | 通信装置、中继装置以及通信系统 |
CN109889312A (zh) * | 2019-01-28 | 2019-06-14 | 深圳市比速智网技术有限公司 | 多链路数据传输方法、装置及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3371916A4 (en) * | 2015-11-04 | 2019-07-03 | LG Electronics Inc. | METHOD FOR TRANSMITTING A HARQ TRANSMISSION IN A WIRELESS COMMUNICATION SYSTEM AND DEVICE THEREFOR |
EP3447978B1 (en) * | 2016-05-24 | 2021-07-28 | Huawei Technologies Co., Ltd. | Data transmission method and device |
CN108243480A (zh) * | 2018-01-11 | 2018-07-03 | 南京华讯方舟通信设备有限公司 | 一种基于链路可用带宽预测和前进距离的无人机自组网机会路由算法 |
CN109495976B (zh) * | 2018-12-05 | 2020-05-19 | 浙江大学 | 一种船载无人机通信信道接入方法 |
-
2020
- 2020-04-23 WO PCT/CN2020/086513 patent/WO2021212438A1/zh active Application Filing
- 2020-04-23 CN CN202080005060.6A patent/CN112771821A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102006283A (zh) * | 2010-10-21 | 2011-04-06 | 意法·爱立信半导体(北京)有限公司 | 数据传输的方法和装置 |
CN108702379A (zh) * | 2016-02-22 | 2018-10-23 | 富士通株式会社 | 通信装置、中继装置以及通信系统 |
CN109889312A (zh) * | 2019-01-28 | 2019-06-14 | 深圳市比速智网技术有限公司 | 多链路数据传输方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021212438A1 (zh) | 2021-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111740808B (zh) | 一种数据传输方法及装置 | |
US11012367B2 (en) | Technologies for managing TCP/IP packet delivery | |
US7505412B2 (en) | Transmission control method and system | |
JP5816718B2 (ja) | 通信装置、通信システム、およびデータ通信の中継方法 | |
JP5059976B2 (ja) | 通信装置及び通信方法 | |
EP3557801B1 (en) | Segment retransmission method and device | |
EP2109954B1 (en) | Ack prioritization in wireless networks | |
JP5258938B2 (ja) | 通信装置 | |
KR101139996B1 (ko) | 중복 확인으로 데이터 흐름 제어 | |
EP2978171B1 (en) | Communication method, communication device, and communication program | |
CN109525376B (zh) | 快速重传方法、装置及终端设备 | |
US10560389B2 (en) | Method and apparatus for controlling send buffer of transmission control protocol in communication system | |
CN112771821A (zh) | 数据传输方法、装置、系统、终端设备和存储介质 | |
EP0162478A2 (en) | Method and apparatus for high speed satellite communication | |
US8769137B2 (en) | Systems and methods for negotiated accelerated block option for trivial file transfer protocol (TFTP) | |
CN115834002B (zh) | 高速传输系统及方法 | |
US20110158139A1 (en) | Signal transmission method and apparatus in wireless communication system | |
JP6805713B2 (ja) | 受信トラヒックの高速化装置、高速化方法、および高速化プログラム | |
JP3930842B2 (ja) | パケット送信装置 | |
JP6863274B2 (ja) | 送信装置およびその制御方法、通信システム、並びに通信制御プログラム | |
KR101494265B1 (ko) | Tcp 세션 스위칭 장치 및 방법 | |
EP1950928B1 (en) | Apparatus and method for real-time packet reception | |
CN116827853A (zh) | 一种路径处理方法、装置及电子设备 | |
CN114765593A (zh) | 数据传输方法、通信设备及系统 | |
WO2016193526A1 (en) | Methods and devices for managing data flows |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |