WO2021212438A1 - 数据传输方法、装置、系统、终端设备和存储介质 - Google Patents

数据传输方法、装置、系统、终端设备和存储介质 Download PDF

Info

Publication number
WO2021212438A1
WO2021212438A1 PCT/CN2020/086513 CN2020086513W WO2021212438A1 WO 2021212438 A1 WO2021212438 A1 WO 2021212438A1 CN 2020086513 W CN2020086513 W CN 2020086513W WO 2021212438 A1 WO2021212438 A1 WO 2021212438A1
Authority
WO
WIPO (PCT)
Prior art keywords
sending
data
ack confirmation
channel
confirmation data
Prior art date
Application number
PCT/CN2020/086513
Other languages
English (en)
French (fr)
Inventor
于拾全
尹小俊
何忠平
Original Assignee
深圳市大疆创新科技有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 深圳市大疆创新科技有限公司 filed Critical 深圳市大疆创新科技有限公司
Priority to CN202080005060.6A priority Critical patent/CN112771821A/zh
Priority to PCT/CN2020/086513 priority patent/WO2021212438A1/zh
Publication of WO2021212438A1 publication Critical patent/WO2021212438A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/1607Details of the supervisory signal

Definitions

  • This specification relates to the field of communication technology, and in particular to a data transmission method, device, system, terminal device, and storage medium.
  • the TCP/IP protocol is currently the most commonly used protocol in communication networks. Its characteristic is that both parties need to perform a handshake confirmation to ensure the correct transmission of data packets. This requires the two-way channel to maintain continuous unobstructed, otherwise it will cause congestion and disconnection.
  • the sending data buffer is a dynamically managed window mechanism.
  • the sender manages its own sending buffer according to the receiver's ACK (Acknowledgement) information; when the receiver's ACK message transmission is blocked, the data transmission between the sender and the receiver is unstable and the transmission efficiency is low.
  • ACK Acknowledgement
  • this specification provides a data transmission method, device, system, terminal equipment, and storage medium, aiming to improve the stability and transmission efficiency of data transmission between the sender and the receiver.
  • this specification provides a data transmission method, which includes:
  • this specification provides a data transmission device, including a memory and a processor
  • the memory is used to store a computer program
  • the processor is configured to execute the computer program and, when executing the computer program, implement the following steps:
  • this specification provides a data transmission system, including the aforementioned data transmission device, and a sending device capable of communicating with the data transmission device.
  • this specification provides a terminal device, memory and processor
  • the memory is used to store a computer program
  • the processor is configured to execute the computer program and, when executing the computer program, implement the following steps:
  • this specification provides a data transmission system, including the aforementioned terminal device and a movable platform capable of communicating with the terminal device.
  • this specification provides a computer-readable storage medium, the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the processor implements the above-mentioned method.
  • the embodiments of this specification provide a data transmission method, device, system, terminal device and storage medium.
  • the receiving device generates ACK confirmation data according to the TCP data packet sent by the sending device, and stores the ACK confirmation data in the sending buffer for communication
  • the link sends the ACK confirmation data to the sending device; by sending the latest ACK confirmation data in the sending buffer to the sending device, the sending device can quickly update the sending window and send new TCP data packets to the receiving device, which improves the data Stability and efficiency of transmission.
  • FIG. 1 is a schematic flowchart of a data transmission method according to an embodiment of this specification
  • Figure 2 is a schematic diagram of data transmission between a receiving device and a sending device
  • Fig. 3 is a schematic diagram of the movement of the sending window in a normal state
  • FIG. 4 is a schematic diagram of the sending window of the sending device when the ACK confirms that the data is lost;
  • Figure 5 is a schematic diagram of the sending window updated according to the latest ACK confirmation data
  • Figure 6 is another schematic diagram of data transmission between a sending device and a receiving device
  • FIG. 7 is a schematic block diagram of a data transmission device according to an embodiment of the present specification.
  • Fig. 8 is a schematic block diagram of a data transmission system according to an embodiment of the present specification.
  • FIG. 9 is a schematic block diagram of a terminal device according to an embodiment of the present specification.
  • Fig. 10 is a schematic block diagram of a data transmission system according to another embodiment of the present specification.
  • FIG. 1 is a schematic flowchart of a data transmission method according to an embodiment of the present specification.
  • the data transmission method can be applied to a data transmission device, such as a terminal device or a server, to implement processes such as receiving data from a sending device.
  • the sending device may be, for example, a data transmission device such as a terminal device, a server, or a movable platform.
  • the sending device may be a mobile platform or server and the receiving device is a terminal device.
  • This scenario may correspond to a downlink data transmission process.
  • the sending device may be a terminal device and the receiving device may be a movable platform or a server.
  • This scenario corresponds to the uplink data transmission process.
  • This application can be applied to scenarios where the uplink and downlink communication bandwidths are symmetric (that is, the uplink and downlink bandwidths are equal) or asymmetric (the uplink and downlink bandwidths are unequal).
  • the following embodiments are described by taking the sending device as a movable platform and the receiving device as a terminal device as an example.
  • the terminal device may include at least one of a mobile phone, a tablet computer, a notebook computer, a desktop computer, a personal digital assistant, a wearable device, and a remote control;
  • the server may be an independent server or a server cluster.
  • the movable platform may be an unmanned aerial vehicle, a handheld pan/tilt, a pan/tilt cart, a robot, a robotic vehicle, and other movable platforms.
  • the unmanned aerial vehicle can be a rotary-wing drone, such as a four-rotor drone, a hexa-rotor drone, an eight-rotor drone, or a fixed-wing drone.
  • the data transmission system may include multiple data transmission devices.
  • one of the data transmission devices may be used as a sending device, and at least one other data transmission device may be used as a receiving device, and the receiving device is used to implement the data transmission method in the embodiment of this specification.
  • one of the data transmission devices serves as a sending device at some moments and as a receiving device at other moments
  • the other data transmission device serves as a receiving device at some moments and as a sending device at other moments.
  • the sending device and the receiving device may be communicatively connected in a wired or wireless manner.
  • the sending device and the receiving device perform data transmission according to the TCP/IP protocol.
  • data is transmitted between the receiving device and the sending device through a wireless channel.
  • the wireless channel from the sending device to the receiving device is called a downlink channel, which is used to transmit data collected by the sending device, such as videos, pictures, sensor data, and sending devices, such as unmanned Telemetry data such as the status information (OSD) of the machine.
  • data collected by the sending device such as videos, pictures, sensor data, and sending devices, such as unmanned Telemetry data such as the status information (OSD) of the machine.
  • OSD status information
  • the wireless channel from the receiving device to the sending device is called the uplink channel, which is used to transmit remote control data; for example, when the sending device is a drone, the uplink channel is used to transmit flight control instructions and take pictures. , Video recording, return to home and other control instructions.
  • the data transmission method of the embodiment of this specification includes step S110 to step S130.
  • the sending device sends TCP data packets to the receiving device according to the TCP/IP protocol.
  • each TCP data packet (each box in Figure 3) has its own SN sequence number (such as the number in the box), and every time the sending device sends 1 TCP data packet out, It needs to wait for the ACK confirmation data from the other party, that is, the receiving device.
  • the ACK confirmation data can include the data packet sequence number corresponding to the TCP data packet.
  • the sending data buffer of the sending device follows a window mechanism of dynamic management.
  • the sending device sends the TCP data packet in the current sending window. As shown in Figure 3, the TCP data packet No. 3 to No. 5 in the sending window has been sent, and then the TCP data packet No. 6 to No. 8 in the sending window can be sent.
  • the length of the sending window can be fixed or dynamically adjusted.
  • the length of the sending window is 10 TCP data packets at a certain moment, and the length of the sending window is 6 TCP data packets at another moment. Bag.
  • the sending device when the sending device sends the TCP data packets in the window, it can be sent in the order of the sequence numbers of the data packets, or it can also be sent out of order, such as sending the TCP data packet No. 8 first, and then sending the TCP data packet No. 6.
  • S120 Generate ACK confirmation data according to the TCP data packet, and store the ACK confirmation data in a sending buffer.
  • the ACK confirmation data can be generated by a high-level system (such as Linux, Android, etc.).
  • the receiving device may generate at least one ACK confirmation data every time it receives one or more TCP data packets.
  • the receiver may not immediately reply ACK to confirm the data, but delay for a certain period of time. For example, a timer is used to check whether ACK confirmation data needs to be sent every 200ms. For example, ACK acknowledgment data can be combined. If multiple TCP data packets are received continuously, it is not necessary to generate a corresponding number of ACK acknowledgment data, which can reduce network traffic.
  • delay ACK mechanism delay ACK mechanism
  • the receiving device can carry the ACK information in the TCP data packet of the other data.
  • the receiving device can carry the ACK information in the TCP data packet of the other data.
  • a large amount of ACK confirmation data can be prevented from being sent in a single TCP packet, and network traffic can be reduced.
  • TCP data packets are data packets that have been sent by the sending device and received ACK confirmation data from the receiving device.
  • TCP packets 3 to 5 are packets that have been sent but have not yet received ACK confirmation data.
  • TCP data packets No. 6 to No. 8 are the data packets to be sent in the window, which are data that the sending device can continue to send before receiving the ACK confirmation data corresponding to the No. 3 to No. 5 TCP data packets.
  • the other TCP packets 9 to 15 belong to unsent packets, that is, data that cannot be sent before the sending window moves to these areas.
  • the sending device when the data transmission between the sending device and the receiving device is in a normal state, if the sending device receives the ACK confirmation data corresponding to TCP data packet No. 3, the sending device can move the sending window backward by 1 Packet data to TCP data No. 9; the sending device can also send TCP data packet No. 6 to the receiving device at this time. If the normal state has been maintained, the same procedure is used to gradually move the window backward to perform normal transmission and reception.
  • the sending device can send TCP data packets No. 6 to No. 8 to the receiving device, but the sending window is not moved. If the ACK acknowledgment data corresponding to TCP data packets No. 4 to No. 8 are continuously lost in the following time, the sending window of the sending device will not be updated continuously, and the sending device will stop sending after sending the No. 8 TCP data packet. It causes data congestion. If it lasts longer and reaches the timeout threshold of high-level data (such as the FTP protocol), it will cause a disconnection between the sending device and the receiving device.
  • the timeout threshold of high-level data such as the FTP protocol
  • the sending device before the high-level link times out, as shown in Figure 5, if the sending device receives the ACK confirmation data corresponding to TCP data packet No. 6, even if there is no ACK confirmation data corresponding to TCP data packet Nos. 3 to 5 When received, the sending window can also be quickly moved to TCP data No. 12, so it can compensate for the impact of the window not moving caused by the loss of the previous ACK confirmation data, and the sending efficiency can be improved.
  • the latest ACK acknowledgement data implies historical ACK acknowledgement data, that is, as long as the sending device receives a latest ACK acknowledgement data, it can ignore the ACK acknowledgement data corresponding to the previous data packet.
  • the receiving device may store the ACK confirmation data in the sending buffer after generating the ACK confirmation data.
  • the receiving device when there is an error in the transmission data, the receiving device will generate a lot of ACK confirmation data. For example, due to the timeout retransmission mechanism, after the sending device sends a TCP data packet for a period of time, it is considered that there is a problem with the data without receiving the ACK confirmation data, and the TCP data packet will be sent again. As a result, the receiving device will generate a lot of ACK confirmations. data.
  • the sending window of the sending device cannot be updated, which will cause long-term data congestion.
  • the receiving device After the link is restored, it takes a long time for the receiving device to send out the ACK confirmation data accumulated in the sending buffer. During this period, the sending window of the sending device cannot be updated in time, which will also cause long-term data congestion.
  • the TCP data packet sent by the sending device includes the data packet sequence number
  • the ACK confirmation data generated by the receiving device includes the corresponding data packet sequence number
  • the newness of the ACK confirmation data is determined according to the sequence number of the data packet corresponding to the ACK confirmation data.
  • the newness of the ACK confirmation data can also be determined according to other methods, for example, according to the time when the ACK confirmation data is generated or stored in the sending buffer, but of course it is not limited to this.
  • the latest ACK confirmation data is the ACK confirmation data with the largest data packet sequence number.
  • the data packet sequence number of the ACK confirmation data can be determined by the receiving device according to the data packet sequence number of the TCP data packet.
  • the latest ACK confirmation data is the ACK confirmation data corresponding to the TCP data packet with the largest data packet sequence number newly received by the receiving device.
  • the TCP data packet sent by the sending device to the receiving device includes the data packet sequence number, and the receiving device may determine the data packet sequence number of the ACK confirmation data according to the data packet sequence number of the TCP data packet.
  • the sending window of the sending device is set to 4096, and 4096 TCP data packets are sent to the receiving device through the communication link.
  • the receiving device can normally receive these 4096 TCP data packets and generate 4096 ACK confirmation data; during this period, if abnormal interference occurs in the communication link, 4096 ACK confirmation data will accumulate in the sending buffer.
  • the receiving device may send one or more newly generated ACK confirmation data in the sending buffer to the sending device, for example, sending the 4096 ACK confirmation data to The sending device sends.
  • the receiving device can also send the next newest and second-newest ACK confirmation data to the sending device.
  • the receiving device can also send the ACK confirmation data from large to small according to the packet sequence number. Sorting, sending ACK confirmation data with a packet sequence number greater than a preset threshold to the sending device, instead of sending all the ACK confirmation data in the sending buffer to the sending device according to the size of the packet sequence number.
  • the ACK confirmation data that is not the latest in the sending buffer may be deleted from the sending buffer, and the latest ACK confirmation data may be sent to the sending device.
  • the latest ACK confirmation data is used by the sending device to move a sending data window according to the latest ACK confirmation data
  • the moved sending data window is after the TCP data packet corresponding to the ACK confirmation data.
  • the sending device receives the ACK confirmation data corresponding to TCP packet No. 6, even if the ACK confirmation data corresponding to TCP packet No. 3 to No. 5 is not received, the sending window can quickly move to 6 to 12. TCP data, so it can compensate for the impact of the window not moving caused by the loss of the previous ACK confirmation data, and can realize the improvement of sending efficiency.
  • the ACK confirmation data No. 1 to 4096 is accumulated in the sending buffer at the current moment. If the ACK confirmation data No. 1 to 4096 accumulated in the sending buffer is sent to the sending device, the sending device will receive the ACK confirmation data No. 1 After updating the sending window to TCP data packets from 2 to 4097, but the TCP data packets from 2 to 4096 have been successfully sent, so the sending device only has TCP data packet 4097 and one packet of new data, which makes the sending device unable to quickly transfer The new TCP data packet is sent to the receiving device.
  • the sending device will confirm the data according to the latest ACK confirmation data after receiving the ACK confirmation data No. 4096
  • the sending window can be updated immediately. For example, the sending window can be moved to TCP data packets 4097 to 8192.
  • the high-level data can fill in 4096 new data immediately, and the sending device will send the TCP data packets in the window in order or out of order.
  • the sending device can quickly update the sending window, and the sending device can more quickly restore the effective space of the sending window when the communication link is blocked, etc. ; So that the sending device can quickly send new TCP data packets to the receiving device, significantly improving the stability and efficiency of data transmission.
  • the receiving device receives the TCP data packet sent by the sending device through the first channel, and sends the ACK confirmation data to the sending device through the second channel.
  • the downlink channel is used as the first channel to transmit data collected by the sending device, such as video, pictures, sensor data, and sending device, such as drone status information (OSD) and other telemetry data.
  • the uplink channel is used as the second channel to transmit remote control data; for example, when the sending device is an unmanned aerial vehicle, the uplink channel is used to transmit flight control instructions and control instructions such as taking pictures, videos, and returning home.
  • the bandwidth of the first channel is greater than the bandwidth of the second channel. Therefore, asymmetric communication between the sending device and the receiving device can be applied to a scenario where the sending device sends more data to the receiving device.
  • the first channel is a wideband channel
  • the second channel is a narrowband channel.
  • the sending device is a movable platform such as an unmanned aerial vehicle.
  • the receiving device is a terminal device, by adopting a narrowband channel with a very small carrying capacity, the anti-interference ability and reliability of the second channel can be improved to ensure the accurate transmission of flight control commands and control commands such as photographing, video recording, and return to flight. Reliable control of the movable platform.
  • the second channel is a narrowband channel
  • data congestion and link disconnection are more likely to occur.
  • the latest ACK confirmation data in the send buffer is sent.
  • the sending device can more significantly improve the stability and efficiency of data transmission between the sending device and the receiving device, realize more stable and efficient data transmission from the sending device to the receiving device, increase the transmission rate, and reduce the probability of disconnection.
  • the amount of data for the second channel to transmit ACK acknowledgment data can be reduced, the bandwidth of the second channel can be saved, the smoothness of the second channel can be ensured, and congestion and disconnection can be reduced Case.
  • the receiving device may send other data to the sending device through the second channel, such as flight control instructions and control instructions such as taking photos, videos, and returning to home.
  • the priority of the other data is greater than the ACK confirmation. data.
  • the carrying capacity of the narrowband channel will drop sharply, and the saved bandwidth can better transmit higher priority data, such as control commands. .
  • the receiving device can also store some other data in the sending buffer. For example, it can store flight control instructions and control instructions such as taking photos, videos, and returning home to the sending buffer, and then send them to the sending device via the communication link. , For example, can realize the control of the sending device.
  • the priority of the data such as the control instruction can be set higher than that of the ACK confirmation data to ensure that the data such as the control instruction can be sent to the sending device in time.
  • the receiving device when the receiving device needs to send more high-priority data, it will also cause more ACK confirmation data to accumulate in the sending buffer.
  • the sending device can update the sending window in time and send new TCP data packets in time.
  • the sending the latest ACK confirmation data in the sending buffer to the sending device includes: reading buffered data from the sending buffer, and if the buffered data is ACK confirmation data, And the ACK confirmation data is not the latest in the sending buffer, and the buffered data is discarded.
  • the buffered data stored in the sending buffer includes TCP data packets.
  • the TCP data packet is read from the sending buffer, and it can be determined according to the header information whether the buffered data only includes ACK confirmation data, if the buffered data only includes ACK confirmation data, and the ACK confirmation data is not the latest in the sending buffer, discard the buffered data to identify and discard redundant historical ACK confirmation data to ensure that the latest ACK confirmation data can be sent to the sending device in time to achieve
  • the fast update of the sending window reduces the blocking time of the sending window, thereby improving the overall transmission efficiency and stability.
  • the buffer data is sent to the sending device to prevent important data from being discarded.
  • the sending the latest ACK confirmation data in the sending buffer to the sending device includes: according to the channel state of the second channel for sending the ACK confirmation data, sending the sending buffer to The latest ACK confirmation data in the ACK is sent to the sending device.
  • all ACK confirmation data in the sending buffer may be sent to the sending device in sequence.
  • High-priority data is data that has a higher priority than ACK confirmation data, such as control commands.
  • the latest ACK confirmation data in the sending buffer is sent to the sending device, and the sending buffer can be discarded.
  • ACK acknowledgment data other than the latest ACK acknowledgment data.
  • the latest ACK confirmation data may also be sent to the sending device by default, that is, regardless of whether the second channel is blocked or disconnected, the scheme of sending the latest ACK confirmation data to the sending device is adopted.
  • the sending the latest ACK confirmation data in the sending buffer to the sending device according to the channel status of the second channel for sending the ACK confirmation data includes: if the second channel Congestion, sending the latest ACK confirmation data in the sending buffer to the sending device.
  • the blockage of the second channel will cause the sending buffer to accumulate a large amount of ACK confirmation data.
  • the sending device can quickly update the sending window and send new TCP packets to the sending device. Sending by the receiving device improves the stability and efficiency of data transmission.
  • the second channel is blocked. For example, when it is detected that the second channel is occupied by other data with a higher priority than the ACK confirmation data, the latest ACK confirmation data in the sending buffer is sent to the sending device.
  • the second channel is blocked if the second channel is occupied by other data with a higher priority than the ACK acknowledgement data, and the occupied duration is not less than a preset duration.
  • the ACK confirmation data in the transmission buffer is sent in a storage order. It can prevent discarding more ACK data when the second channel is occupied for a short time.
  • the second channel is blocked. For example, when more data is stored in the sending buffer of the receiving device, such as 50% of the data, it can be determined that the second channel is blocked, because the ACK confirmation data will take a long time to be sent to the sending device. For example, if the water level of the sending buffer of the second channel is greater than or equal to the preset water level threshold, other ACK confirmation data except the latest ACK confirmation data in the sending buffer can be deleted, and the sending buffer The latest ACK confirmation data in the area is sent to the sending device.
  • idle data traffic is the bandwidth available for transmission of ACK confirmation data per unit time.
  • the method further includes: determining that the priority of sending the second channel per unit time is higher than the second data flow of the ACK confirmation data; and according to the sending capability of the second channel per unit time and the second data flow 2.
  • Data flow Determine the current idle data flow of the second channel per unit time.
  • the transmission capacity of the second channel per unit time is C ⁇ TBSize; if the second data flow is as The high-priority data flow is P1 (Bytes), and the idle data flow is C ⁇ TBSize-P1.
  • the ACK confirmation data will accumulate in the sending buffer, so the data in the sending buffer can be deleted.
  • Other ACK acknowledgment data except the latest ACK acknowledgment data, and the latest ACK acknowledgment data in the sending buffer is sent to the sending device.
  • the water level of the sending buffer of the second channel is less than the preset water level threshold, and the current idle data flow of the second channel per unit time is less than the first data flow of the ACK confirmation data per unit time, It is determined that the second channel is blocked.
  • the water level of the sending buffer of the second channel is less than the preset water level threshold. If the water level of the sending buffer is less than the preset water level threshold, it can be determined that the second channel is not blocked, and the sending can be performed in the order of storage.
  • the ACK confirmation data in the sending buffer if the water level of the sending buffer is less than the preset water level threshold, it can be further determined whether the idle data flow is less than the first data flow, and if the idle data flow is less than the first data flow, the The latest ACK confirmation data in the sending buffer is sent to the sending device; if the idle data flow is not less than the first data flow, the ACK confirmation data in the sending buffer can be sent according to the storage order.
  • the sending the latest ACK confirmation data in the sending buffer to the sending device according to the channel state of the second channel includes: reconnecting if the second channel is disconnected If successful, the latest ACK confirmation data in the sending buffer is sent to the sending device.
  • the sending window of the sending device is not continuously updated and the timeout threshold of high-level data (such as the FTP protocol) is reached, the link between the sending device and the receiving device will be broken.
  • the reconnection is successful after the link is broken, other ACK confirmation data except the latest ACK confirmation data in the sending buffer can be deleted, and the latest ACK confirmation data in the sending buffer can be sent to the sending device .
  • the receiving device may send the ACK confirmation data in the sending buffer in the storage order.
  • the sending the latest ACK confirmation data in the sending buffer to the sending device according to the channel status of the second channel includes: determining whether the second channel can support the Regular transmission of the ACK confirmation data; if it is determined that the second channel cannot support the regular transmission of the ACK confirmation data, the latest ACK confirmation data in the transmission buffer is sent to the sending device.
  • the second channel can support all ACK confirmation data in the sending buffer and the normal transmission of high-priority data, then all ACK confirmation data in the sending buffer can be sent to the sending device in turn, that is, regular transmission of ACK confirmation data.
  • the receiving device may send the ACK confirmation data in the transmission buffer in a storage order.
  • the sending the latest ACK confirmation data in the sending buffer to the sending device includes: according to the quantity of ACK confirmation data in the sending buffer, sending the latest ACK confirmation data in the sending buffer The ACK confirmation data is sent to the sending device.
  • the latest ACK confirmation data in the sending buffer is sent to the sending device.
  • the amount of ACK confirmation data in the sending buffer is not less than the preset buffer amount, delete other ACK confirmation data in the sending buffer except for the latest ACK confirmation data.
  • the ACK confirmation data in the sending buffer may be sent according to the storage order.
  • the sending window of the sending device cannot be updated in time; by sending the latest ACK confirmation data in the sending buffer to the sending device at this time, it is convenient for the sending device Update the sending window in time to improve sending efficiency.
  • the receiving device generates ACK confirmation data according to the TCP data packet sent by the sending device, and stores the ACK confirmation data in the sending buffer, so that the ACK confirmation data is sent to the sending device through the communication link;
  • the latest ACK confirmation data in the sending buffer is sent to the sending device, so that the sending device can quickly update the sending window and send new TCP data packets to the receiving device, which improves the stability and efficiency of data transmission.
  • FIG. 7 is a schematic block diagram of a data transmission apparatus 600 according to an embodiment of this specification.
  • the data transmission device 600 includes a processor 601 and a memory 602.
  • the processor 601 and the memory 602 are connected by a bus 603, and the bus 603 is, for example, an I2C (Inter-integrated Circuit) bus.
  • I2C Inter-integrated Circuit
  • the processor 601 may be a micro-controller unit (MCU), a central processing unit (Central Processing Unit, CPU), a digital signal processor (Digital Signal Processor, DSP), or the like.
  • MCU micro-controller unit
  • CPU Central Processing Unit
  • DSP Digital Signal Processor
  • the memory 602 may be a Flash chip, a read-only memory (ROM, Read-Only Memory) disk, an optical disk, a U disk, or a mobile hard disk.
  • the processor 601 is configured to run a computer program stored in the memory 602, and implement the aforementioned data transmission method when the computer program is executed.
  • the processor 601 is configured to run a computer program stored in the memory 602, and implement the following steps when the computer program is executed:
  • the embodiments of this specification also provide a computer-readable storage medium, the computer-readable storage medium stores a computer program, the computer program includes program instructions, and the processor executes the program instructions to implement the foregoing implementation The steps of the data transmission method provided in the example.
  • the computer-readable storage medium may be the internal storage unit of the data transmission device described in any of the foregoing embodiments, such as the hard disk or memory of the data transmission device.
  • the computer-readable storage medium may also be an external storage device of the data transmission device, such as a plug-in hard disk equipped on the data transmission device, a smart media card (SMC), and a secure digital (Secure Digital). , SD) card, flash card (Flash Card), etc.
  • FIG. 8 is a schematic block diagram of a data transmission system according to an embodiment of the present specification.
  • the data transmission system includes the aforementioned data transmission device 600 and a sending device 101 capable of communicating with the data transmission device 600.
  • the sending device 101 and the data transmission device 600 may be connected in a wired or wireless manner.
  • the sending device 101 and the data transmission device 600 perform data transmission according to the TCP/IP protocol.
  • the receiving device 101 and the data transmission apparatus 600 transmit data through a wireless channel.
  • FIG. 9 is a schematic block diagram of a terminal device 700 according to an embodiment of the present specification.
  • the terminal device 700 includes a processor 701 and a memory 702.
  • the processor 701 and the memory 702 are connected by a bus 703, and the bus 703 is, for example, an I2C (Inter-integrated Circuit) bus.
  • I2C Inter-integrated Circuit
  • the processor 701 may be a micro-controller unit (MCU), a central processing unit (Central Processing Unit, CPU), a digital signal processor (Digital Signal Processor, DSP), or the like.
  • MCU micro-controller unit
  • CPU Central Processing Unit
  • DSP Digital Signal Processor
  • the memory 702 may be a Flash chip, a read-only memory (ROM, Read-Only Memory) disk, an optical disk, a U disk, or a mobile hard disk.
  • the processor 701 is configured to run a computer program stored in the memory 702, and implement the aforementioned data transmission method when the computer program is executed.
  • the processor 701 is configured to run a computer program stored in the memory 702, and implement the following steps when the computer program is executed:
  • the embodiments of this specification also provide a computer-readable storage medium, the computer-readable storage medium stores a computer program, the computer program includes program instructions, the computer program is executed by a processor to cause the processing
  • the device implements the steps of the data transmission method provided in the foregoing embodiment.
  • the computer-readable storage medium may be the internal storage unit of the terminal device described in any of the foregoing embodiments, such as the hard disk or memory of the terminal device.
  • the computer-readable storage medium may also be an external storage device of the terminal device, for example, a plug-in hard disk equipped on the terminal device, a smart memory card (Smart Media Card, SMC), and a Secure Digital (SD) ) Card, Flash Card, etc.
  • a plug-in hard disk equipped on the terminal device for example, a smart memory card (Smart Media Card, SMC), and a Secure Digital (SD) ) Card, Flash Card, etc.
  • SD Secure Digital
  • FIG. 10 is a schematic block diagram of a data transmission system according to an embodiment of the present specification.
  • the data transmission system includes the aforementioned terminal device 700 and a movable platform 201 capable of communicating with the terminal device 700.
  • the terminal device 700 and the movable platform 201 may be connected in a wired or wireless manner.
  • the terminal device 700 and the mobile platform 201 perform data transmission according to the TCP/IP protocol.
  • data is transmitted between the terminal device 700 and the mobile platform 201 through a wireless channel.
  • the terminal device 700 includes at least one of the following: a mobile phone, a tablet computer, a notebook computer, a desktop computer, a personal digital assistant, a wearable device, and a remote control.
  • the movable platform 201 includes at least one of the following: an unmanned aerial vehicle, a handheld pan-tilt, and a pan-tilt cart.
  • the receiving end generates ACK confirmation data according to the TCP data packet sent by the sending end, and stores the ACK confirmation data in the sending buffer, so that the ACK is sent by the communication link.
  • the confirmation data is sent to the sender; by sending the latest ACK confirmation data in the send buffer to the sender, the sender can quickly update the sending window and send new TCP packets to the receiver, which improves the stability of data transmission And efficiency.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

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 Media Card,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中任一项所述的数 据传输方法。
PCT/CN2020/086513 2020-04-23 2020-04-23 数据传输方法、装置、系统、终端设备和存储介质 WO2021212438A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202080005060.6A CN112771821A (zh) 2020-04-23 2020-04-23 数据传输方法、装置、系统、终端设备和存储介质
PCT/CN2020/086513 WO2021212438A1 (zh) 2020-04-23 2020-04-23 数据传输方法、装置、系统、终端设备和存储介质

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
WO2021212438A1 true WO2021212438A1 (zh) 2021-10-28

Family

ID=75699502

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/086513 WO2021212438A1 (zh) 2020-04-23 2020-04-23 数据传输方法、装置、系统、终端设备和存储介质

Country Status (2)

Country Link
CN (1) CN112771821A (zh)
WO (1) WO2021212438A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115499932A (zh) * 2021-07-02 2022-12-20 华为技术有限公司 通信方法及装置
CN118199826A (zh) * 2022-12-13 2024-06-14 苹果公司 用于管理传输控制协议(tcp)确认的系统和方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017201677A1 (zh) * 2016-05-24 2017-11-30 华为技术有限公司 数据传输的方法及装置
CN108243480A (zh) * 2018-01-11 2018-07-03 南京华讯方舟通信设备有限公司 一种基于链路可用带宽预测和前进距离的无人机自组网机会路由算法
CN108702379A (zh) * 2016-02-22 2018-10-23 富士通株式会社 通信装置、中继装置以及通信系统
US20180310201A1 (en) * 2015-11-04 2018-10-25 Lg Electronics Inc. Method for transmitting a harq transmission in a wireless communication system and a device therefor
CN109495976A (zh) * 2018-12-05 2019-03-19 浙江大学 一种船载无人机通信信道接入方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102006283B (zh) * 2010-10-21 2013-07-17 意法·爱立信半导体(北京)有限公司 数据传输的方法和装置
CN109889312A (zh) * 2019-01-28 2019-06-14 深圳市比速智网技术有限公司 多链路数据传输方法、装置及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180310201A1 (en) * 2015-11-04 2018-10-25 Lg Electronics Inc. Method for transmitting a harq transmission in a wireless communication system and a device therefor
CN108702379A (zh) * 2016-02-22 2018-10-23 富士通株式会社 通信装置、中继装置以及通信系统
WO2017201677A1 (zh) * 2016-05-24 2017-11-30 华为技术有限公司 数据传输的方法及装置
CN108243480A (zh) * 2018-01-11 2018-07-03 南京华讯方舟通信设备有限公司 一种基于链路可用带宽预测和前进距离的无人机自组网机会路由算法
CN109495976A (zh) * 2018-12-05 2019-03-19 浙江大学 一种船载无人机通信信道接入方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115499932A (zh) * 2021-07-02 2022-12-20 华为技术有限公司 通信方法及装置
CN118199826A (zh) * 2022-12-13 2024-06-14 苹果公司 用于管理传输控制协议(tcp)确认的系统和方法

Also Published As

Publication number Publication date
CN112771821A (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
JP5059976B2 (ja) 通信装置及び通信方法
US7477675B2 (en) Data communication apparatus
US11012367B2 (en) Technologies for managing TCP/IP packet delivery
US7296206B2 (en) Communication device, transmission control method, and program product
EP3337072A1 (en) Packet transmission method and user equipment
US7277390B2 (en) TCP processing apparatus of base transceiver subsystem in wired/wireless integrated network and method thereof
EP1575204A2 (en) Mobile communication system, mobile station device, and network-side device
EP2369794A1 (en) Wireless network control device, wireless network control method, and wireless network control system
US7593338B2 (en) Congestion control method and system for reducing a retransmission timeout count in a transmission control protocol
JPWO2012066824A1 (ja) 通信装置および通信システム
WO2021212438A1 (zh) 数据传输方法、装置、系统、终端设备和存储介质
RU2728803C1 (ru) Устройство и способ передачи данных и оборудование, размещенное у клиента
CN109729551B (zh) 通信方法、基站和具有储存功能的装置
CN111654355B (zh) 数据传输方法、系统、电子设备及存储介质
JP2006191368A (ja) ネットワーク伝送装置
US7490160B2 (en) Method of efficiently transmitting/receiving data using transport layer in a mobile ad hoc network, and network device using the method
CN115834002B (zh) 高速传输系统及方法
KR101511225B1 (ko) 패킷 송수신을 제어하는 망연동장치 및 방법
US20230224084A1 (en) Packet Retransmission Method and Apparatus
JP7286513B2 (ja) 通信装置、通信装置の制御方法、及びプログラム
WO2021203227A1 (zh) 基于内部集成电路协议的数据传输方法和传输装置
JP2008099139A (ja) 通信方法
JP4503408B2 (ja) データ通信装置
US9894552B2 (en) Regulating data communication between a mobile data client and a remote server
CN114765593A (zh) 数据传输方法、通信设备及系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20931819

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20931819

Country of ref document: EP

Kind code of ref document: A1