CN114389758A - Data transmission method and device - Google Patents

Data transmission method and device Download PDF

Info

Publication number
CN114389758A
CN114389758A CN202011119358.8A CN202011119358A CN114389758A CN 114389758 A CN114389758 A CN 114389758A CN 202011119358 A CN202011119358 A CN 202011119358A CN 114389758 A CN114389758 A CN 114389758A
Authority
CN
China
Prior art keywords
data
tail
backup
information
length
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
Application number
CN202011119358.8A
Other languages
Chinese (zh)
Inventor
徐安民
于德雷
王闯
李金龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011119358.8A priority Critical patent/CN114389758A/en
Priority to PCT/CN2021/118934 priority patent/WO2022083371A1/en
Publication of CN114389758A publication Critical patent/CN114389758A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0053Allocation of signaling, i.e. of overhead other than pilot signals
    • H04L5/0055Physical resource allocation for ACK/NACK
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • H04W28/065Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

A data transmission method and device relate to the technical field of communication. The method comprises the following steps: the data sending end obtains tail data of the target data and encodes the tail data to obtain backup data; the backup data is used for recovering the lost partial tail data; and the data sending end sends the tail data and the backup data to the data receiving end. And the data receiving end receives the tail data and the backup data, and restores the lost tail data according to the backup data when the tail data is determined to have data loss. According to the method, the tail data of the target data is coded and protected, and the backup data of the tail data is obtained at the same time, so that in the data transmission process, when the tail data is lost, the data can be recovered through the backup data, a data receiving end can receive enough ACK information, the time delay of tail data retransmission caused by the loss of the tail data is reduced, and the transmission efficiency of the whole data can be improved.

Description

Data transmission method and device
Technical Field
The present application relates to the field of communications technologies, and in particular, to a data transmission method and apparatus.
Background
In a communication network, a sending end sends data to be sent to a receiving end, and the receiving end returns corresponding Acknowledgement (ACK) information to the sending end after receiving the data. In the data transmission process, in order to ensure that the receiving end can receive the complete data, the data can be transmitted in a reliable manner, for example, Transmission Control Protocol (TCP). However, the problem that the original tail data is lost is also often caused by the reliable transmission, and therefore, the transmitting end needs to retransmit the lost tail data to the receiving end by using the technology of retransmitting data.
The existing technologies for retransmitting data mainly include a conventional TCP scheme and a Probe Timeout (PTO) scheme. The TCP scheme mainly uses Fast Recovery (FR) or Retransmission Timeout (RTO) to retransmit data. When the sending end receives enough ACK information, the FR is adopted to retransmit data; and when the transmitting end does not receive any repeated acknowledgement (DUP ACK) information, retransmitting the data by adopting the RTO. Due to the loss of the tail data, the sending end cannot receive enough ACKs returned by the receiving end, which results in that FR and Early Retransmission (ER) cannot be triggered for retransmission, and only RTO can be used for retransmission, that is, the retransmission of the original tail data is triggered by the timeout of the timer, thereby causing the timeout transmission delay of the original tail data and causing the delay of the whole data transmission to be longer.
Disclosure of Invention
The application provides a data transmission method and device, which are used for reducing time delay of tail data retransmission caused by tail data loss so as to improve the transmission efficiency of the whole data.
In a first aspect, an embodiment of the present invention provides a data transmission method, where the method is applicable to a data sending end. The method comprises the following steps: acquiring tail data of target data; coding the tail data to obtain backup data, wherein the backup data is used for recovering the lost partial tail data; and sending the tail data and the backup data.
By the design, the data sending end carries out coding protection on the tail data aiming at the tail data of the acquired target data, and obtains backup data of the tail data. Therefore, the method can avoid the loss of tail data of the target data in the transmission process, and if the target data is lost, the lost data can be obtained again through the backup data.
In one possible design, backup data indication information is generated, the backup indication information indicating at least one of: the position of the backup data in the tail data, the coding mode of the codes, the length information of the tail data and the starting position of the tail data in which the tail data is coded.
Through the design, the data sending end also generates backup data indication information, so that a data receiving end can know the position of the tail data in the target data, the data coding mode of the data end, the length of the tail data and the initial position of the tail data in a coded mode through the backup data indication information, and further recovery of the lost tail data through the backup data is achieved.
In one possible design, the method further includes: and transmitting the backup data indication information, the tail data and the backup data in the same transmission period.
Through the design, the tail data, the backup data and the backup data indication information are sent to the data receiving end in the same sending period, and the method can avoid the problem that the data receiving end cannot accurately determine the backup data and the backup data indication information corresponding to the received tail data due to different sending period times of all data, so that the lost tail data cannot be effectively recovered.
In one possible design, the obtaining tail data of the target data includes: acquiring tail data of the target data according to a tail identification carried in the target data, wherein the tail identification is used for identifying the tail data; or acquiring tail data of the target data according to the initial position of the tail data obtained by calculation; or acquiring the tail data of the target data according to the preset length information of the tail data.
Through the design, the data sending end can flexibly determine the position and the length information of the tail data of the target data in different modes, and then accurately obtain the tail data of the target data.
In a possible design, the obtaining tail data of the target data according to the tail identifier carried in the target data includes: when the bit in the target data is the start bit indicated by the tail identification, acquiring the tail data according to the start bit indicated by the tail identification; wherein the length of the tail data is from the start bit indicated by the tail identifier to the end bit of the target data.
Through the design, the data sending end can directly determine the tail data in the target data according to the tail identification carried in the target data, and then quickly and accurately obtain the tail data of the target data.
In a possible design, the obtaining tail data of the target data according to the calculated start position of the tail data includes: determining the length of tail data in the target data according to the congestion window and/or the link state information; and acquiring the initial position of the tail data according to the length of the tail data and the tail position of the target data.
Through the design, the data sending end determines the length of tail data transmission according to the actual network congestion window and/or link state, and further avoids data loss caused by network congestion when transmitting data, so that the data transmission efficiency can be improved.
In one possible design, the obtaining tail data of the target data according to predetermined length information of the tail data includes: when the bit in the target data is the start bit indicated by the length information, acquiring the tail data according to the start bit indicated by the length information; wherein the length of the tail data is from a start bit indicated by the length information to an end bit of the target data.
Through the design, the data sending end can quickly and accurately obtain the tail data in the target data according to the preset tail data length information.
In one possible design, after sending the tail data and the backup data, the method further includes: and receiving Acknowledgement (ACK) information fed back by the data receiving end, wherein the ACK information is that the data receiving end determines that the tail data is completely and successfully received, or the ACK information is that the data receiving end determines that the tail data is successfully recovered based on the backup data.
Through the design, the data sending end can know that the data receiving end has received complete tail data by receiving the ACK information fed back by the data receiving end, so that the additional overhead caused by retransmitting data to the data receiving end again by the data sending end is avoided.
In one possible design, after sending the tail data and the backup data, the method further includes: and receiving selective acknowledgement SACK information fed back by the data receiving terminal, wherein the SACK information is used for indicating that the data receiving terminal receives the backup data and that the tail data is lost and the lost tail data cannot be recovered by the backup data.
Through the design, the data sending end can know that the data receiving end does not receive complete tail data by receiving SACK information fed back by the data receiving end, and the data sending end needs to retransmit lost data to the data receiving end again, so that the receiving end can receive all target data.
In a second aspect, an embodiment of the present invention provides a data transmission method, where the method is applicable to a data receiving end. The method comprises the following steps: receiving tail data and backup data; the backup data is obtained by encoding tail data and is used for recovering the lost partial tail data; and when the tail data are determined to have data loss, recovering the lost tail data according to the backup data.
Through the design, when the data receiving end determines that the tail data of the target data is lost, the lost tail data can be directly recovered through the backup data, and the data sending end does not need to retransmit the lost tail data to the data receiving end again, so that the additional transmission delay and the overhead caused by retransmission are reduced.
In one possible design, the method further includes: receiving the tail data, the backup data and the indication information of the backup data in the same receiving period; the backup data indication information is used for indicating the position of the backup data in the tail data and the coding mode of the codes.
Through the design, the data receiving end receives the tail data, the backup data and the backup data indication information in the same receiving period, and the method can avoid that the data receiving end cannot accurately determine the backup data and the backup data indication information corresponding to the received tail data due to different receiving period time of each data, so that the lost tail data cannot be effectively recovered.
In one possible design, the determining that there is data loss in the tail data includes: when the length of the received tail data is smaller than the length of the tail data agreed in advance, determining that the received tail data has data loss; or the backup data indication information further includes length information for indicating the length of the original tail data, and when the length of the received tail data is smaller than the length indicated by the length information, it is determined that data loss exists in the received tail data.
Through the design, the data receiving end can determine whether the tail data sent by the data receiving end is lost or not, so that the situation that the tail data of the target data is lost but unknown can be avoided.
In one possible design, the recovering the lost tail data according to the backup data includes: determining the position of the backup data according to the received tail data and the position of the backup data in the tail data indicated by the backup data indication information; acquiring the backup data at the determined location; and decoding the acquired backup data according to a decoding mode corresponding to the coding mode of the code contained in the backup data indication information to obtain the lost tail data.
Through the design, the data receiving end determines the backup data corresponding to the lost data and the coding mode of the data sending end according to the indication information of the backup data, further determines the corresponding decoding mode, and effectively decodes the backup data, so that the accurate lost tail data is obtained.
In one possible design, after receiving the tail data and the backup data, the method further includes: when determining that the tail data are all successfully received or determining that part of the tail data are lost but the recovery based on the backup data is successful, sending Acknowledgement (ACK) information to a data sending end; or when the backup data is successfully received and tail data is lost and the lost data cannot be recovered by the backup data, sending selective acknowledgement SACK information to a data sending end.
Through the design, the data receiving end returns corresponding information to the data sending end according to the condition of receiving the tail data, so that the data sending end knows the condition of receiving the tail data by the data receiving end, and the data transmission is stopped or the operation of retransmitting the lost data is executed.
In a third aspect, the present application provides a data transmission apparatus having the functionality of implementing the method as described in the first aspect or any one of the possible designs of the first aspect, or having the functionality of implementing the method as described in the second aspect or any one of the possible designs of the second aspect. The function can be realized by hardware, and can also be realized by executing corresponding software by hardware. The hardware or software includes one or more modules corresponding to the functions described above. For example comprising a communication unit and a processing unit.
In a fourth aspect, this embodiment of the present application further provides a computer storage medium, in which a software program is stored, and the software program can implement the method provided by the first aspect or any one of the designs described above, or implement the method provided by the second aspect or any one of the designs described above, when the software program is read and executed by one or more processors.
In a fifth aspect, embodiments of the present application further provide a computer program product containing instructions, which when run on a computer, cause the computer to perform the method provided by the first aspect or any one of the designs described above, or perform the method provided by the second aspect or any one of the designs described above.
In a sixth aspect, an embodiment of the present application provides a chip system, where the chip system includes a processor, configured to support a device to implement the functions recited in the first aspect, or to support a device to implement the functions recited in the second aspect. In one possible design, the system-on-chip further includes a memory for storing necessary program instructions and data. The chip system may be constituted by a chip, or may include a chip and other discrete devices.
In a seventh aspect, the present application provides a chip system, where the chip system includes a processor and an interface, where the interface is configured to obtain a program or an instruction, and the processor is configured to call the program or the instruction to implement or support a device to implement a function related to the first aspect or the second aspect, for example, to determine or process at least one of data and information related to the foregoing method.
In one possible design, the system-on-chip further includes a memory for storing program instructions and data necessary for the terminal device. The chip system may be formed by a chip, or may include a chip and other discrete devices.
Technical effects that can be achieved in the third to seventh aspects may be described with reference to technical effects that can be achieved by any one of the designs in the first or second aspect, and will not be described repeatedly herein.
Drawings
Fig. 1 is a schematic diagram of tail data provided in an embodiment of the present application;
fig. 2A is a schematic diagram of a communication system architecture according to an embodiment of the present application;
fig. 2B is a schematic diagram of an architecture of a communication system in a multicast scenario according to an embodiment of the present application;
fig. 2C is a schematic diagram of an architecture of a communication system in a multicast scenario according to an embodiment of the present application;
fig. 3 is a schematic flowchart of a data transmission method according to an embodiment of the present application;
fig. 4 is a schematic diagram of an original TCP packet format according to an embodiment of the present application;
fig. 5 is a schematic diagram of an encoded protected TCP packet format according to an embodiment of the present application;
fig. 6 is a schematic diagram of a backup message format according to an embodiment of the present application;
fig. 7 is a schematic diagram of tail data and backup data provided in an embodiment of the present application;
fig. 8 is a schematic structural diagram of a data transmission device according to an embodiment of the present application;
fig. 9 is a schematic structural diagram of a data transmission device according to an embodiment of the present application;
fig. 10 is a schematic structural diagram of a data transmission device according to an embodiment of the present application;
fig. 11 is a schematic structural diagram of a data transmission device according to an embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application.
Hereinafter, some terms in the embodiments of the present application are explained to facilitate understanding by those skilled in the art.
1) As shown in fig. 1, a data transmitting end needs to transmit a section of transmission data to a data receiving end, specifically, all data between a starting position and an ending position of the section of data to be transmitted is represented as the data to be transmitted, where the tail data of the data to be transmitted refers to data between the ending position of the section of data and any one position a in the section of data. The position of the position a on the data to be transmitted may depend on tail data length information, or tail data length information may be determined according to the position a, and the tail data length may also be determined according to an actual network congestion window and/or link state information of the transmission data.
2) The backup data related to the embodiment of the present application refers to repeated storage of the same data, and when data loss occurs in the data transmission process in the embodiment of the present application, the backup data can be used for recovering the lost data. E.g., redundant data, with the network coding used to generate extra data for recovering the lost protected data. The backup data generation mode or the backup data format may be set according to an actual situation, and the present application is not particularly limited.
3) The data coding method and the data coding device can process data in a coding mode, so that the coded data are not easy to be damaged or lost in the transmission process, and the transmission efficiency of the data is improved. The encoding method refers to a method of converting a file in a certain video format into a file in another video format by using a specific compression technology, and the encoding method in this embodiment of the present application is not particularly limited.
4) The congestion window related to the embodiment of the application specifically refers to that a window structure is arranged at a sending end, the size of the window is dynamically adjusted according to the congestion condition of a network, the sending end can only send data with the size smaller than that of a sliding window and that of the congestion window, and the window arranged at the sending end is the congestion window. The network congestion window is set to avoid data loss and data receiving disorder at the receiving end caused by network congestion in the data transmission process.
5) The plurality of the embodiments of the present application means two or more. "and/or" describes the association relationship of the associated objects, meaning that there may be three relationships, e.g., a and/or B, which may mean: a exists alone, A and B exist simultaneously, and B exists alone. The character "/" generally indicates that the former and latter associated objects are in an "or" relationship.
In addition, it is to be understood that the terms first, second, etc. in the description of the present application are used for distinguishing between the descriptions and not necessarily for describing a sequential or chronological order.
In order to make the objects, technical solutions and advantages of the embodiments of the present application clearer, the embodiments of the present application will be described in further detail with reference to the accompanying drawings.
The communication system applied in the embodiment of the present application may include one or more data transmitting ends and one or more data receiving ends. Wherein, one transmitting end can transmit data to one or more receiving ends. Multiple transmitting ends may also transmit data for one receiving end at the same time. One transmitting end can also transmit data for a plurality of receiving ends at the same time. For example, the data transmission method provided by the present application may be applied to various communication systems, for example, the data transmission method may be an internet of things (IoT), a narrowband band internet of things (NB-IoT), a Long Term Evolution (LTE), a fifth generation (5G) communication system, a hybrid architecture of LTE and 5G, a 5G New Radio (NR) system, a new communication system appearing in future communication development, and the like. The 5G communication system described herein may include at least one of a non-standalone (NSA) 5G communication system and a Standalone (SA) 5G communication system. The communication system may also be a Public Land Mobile Network (PLMN) network, a device-to-device (D2D) network, a machine-to-machine (M2M) network, or other networks.
In the case of short-distance transmission, the data sending end may directly transmit data to the data receiving end through a network transmission link, for example, fig. 2A; in the case of long-distance transmission, the communication system may further include one or more intermediate nodes, and the data transmitting end may transmit data to the data receiving end through the one or more intermediate nodes. For example, the architecture of the communication system in the unicast scenario is shown in fig. 2B, and the architecture of the communication system in the multicast scenario is shown in fig. 2C. It should be understood that fig. 2B and fig. 2C are only exemplary illustrations, and do not specifically limit the number of transmitting ends, intermediate nodes, receiving ends, and the connection relationship in the communication system. For example, the data sending end may be a network device, a terminal device, another device for sending data, or an encoder. The data receiving end may be a terminal device, or may also be other devices for receiving data, or may also be a decoder. The intermediate node may be a routing node, a forwarding node, a relay node, or other transmission device, or may also be an encoder.
The sending end and the receiving end related in the embodiment of the present application may be terminal devices or network devices, which is not limited in the present application.
The terminal device is an entity for receiving or transmitting signals at the user side. The terminal device may be a device providing voice, data connectivity to a user, e.g. a handheld device with wireless connectivity, a car mounted device, etc. The terminal device may also be other processing devices connected to the wireless modem. A terminal device may communicate with one or more core networks through a Radio Access Network (RAN). The terminal device may also be referred to as a wireless terminal, a subscriber unit (subscriber unit), a subscriber station (subscriber station), a mobile station (mobile), a remote station (remote station), an access point (access point), a remote terminal (remote terminal), an access terminal (access terminal), a user terminal (user terminal), a user agent (user agent), a user device (user device), or a user equipment (user equipment), etc. The terminal equipment may be mobile terminals such as mobile telephones (or so-called "cellular" telephones) and computers with mobile terminals, e.g. portable, pocket, hand-held, computer-included or car-mounted mobile devices, which exchange language, data with the radio access network. For example, the terminal device may be a Personal Communication Service (PCS) phone, a cordless phone, a Session Initiation Protocol (SIP) phone, a Wireless Local Loop (WLL) station, a Personal Digital Assistant (PDA), or the like. Common terminal devices include, for example: the mobile terminal includes a mobile phone, a tablet computer, a notebook computer, a handheld computer, a Mobile Internet Device (MID), and a wearable device, such as a smart watch, a smart bracelet, a pedometer, and the like, but the embodiment of the present application is not limited thereto. The terminal device related in the embodiment of the present application may also be a terminal device appearing in a PLMN that is evolved in the future, and the embodiment of the present application is not limited to this.
In addition, in the embodiment of the application, the terminal device may also be a terminal device in an IoT system, where IoT is an important component of future information technology development, and the main technical feature of the IoT system is to connect an article with a network through a communication technology, so as to implement an intelligent network with interconnected human-computer and interconnected articles. In the embodiment of the present application, the IoT technology may achieve massive connection, deep coverage, and power saving for the terminal through, for example, a Narrowband (NB) technology.
In addition, in this embodiment of the application, the terminal device may further include sensors such as an intelligent printer, a train detector, and a gas station, and the main functions include collecting data (part of the terminal device), receiving control information and downlink data of the network device, and sending electromagnetic waves to transmit uplink data to the network device.
The network device referred to in the embodiments of the present application is an entity for transmitting or receiving signals on the network side. The network device in the embodiment of the present application may be a device in a wireless network, for example, a RAN node that accesses a terminal to the wireless network. For example, the network device may be an evolved Node B (eNB or e-NodeB) in LTE, a new radio controller (NR controller), a enode B (gNB) in 5G system, a centralized network element (CU), a new radio base station, a radio remote module, a micro base station, a relay (relay), a distributed network element (DU), a home base station, a Transmission Reception Point (TRP), a Transmission Point (TP), or any other radio access device, but the embodiment of the present invention is not limited thereto. The network device may cover 1 or more cells.
The network architecture and the service scenario described in the embodiment of the present application are for more clearly illustrating the technical solution of the embodiment of the present application, and do not form a limitation on the technical solution provided in the embodiment of the present application, and as a person of ordinary skill in the art knows that along with the evolution of the network architecture and the appearance of a new service scenario, the technical solution provided in the embodiment of the present application is also applicable to similar technical problems.
In the existing reliable data transmission (such as TCP), the problem of tail data loss often exists, and transmission delay is easily increased, so how to solve the problem of tail packet loss has great significance for improving the transmission efficiency of completing a streamlet and reducing the completion time of the whole task. In the existing technology for retransmitting tail data of data, the conventional TCP scheme and the probe timeout PTO scheme are mainly included. The TCP scheme mainly uses fast recovery FR or timeout retransmission RTO for data retransmission. When the sending end receives enough ACK information, the FR is adopted to retransmit data; when the transmitting end does not receive any duplicate acknowledgement DUP ACK information, the RTO is adopted to retransmit the data. Due to the loss of the tail data, the sending end cannot receive enough ACK returned by the receiving end, so that the FR and the early retransmission ER cannot be triggered for retransmission, and only RTO (remote terminal operation) is adopted for retransmission, namely, the tail data retransmission is triggered by the overtime of a timer, so that the overtime transmission delay of the tail data is caused, and the delay of the whole data transmission is longer.
The PTO scheme utilizes a tail detection timer PTO to avoid triggering an RTO, and adopts a tail packet loss detection TLP technique to set the PTO, so that the tail retransmission delay is stabilized within a range of max (2 × RTT, 10ms), however, when a sequence corresponding to a lost data packet is a non-highest sequence, the tail data transmission delay caused by the PTO scheme is relatively large.
In view of this, the data transmission method provided in the embodiment of the present application may be applied to the network architectures of fig. 2A to 2C, and the method may be used to reduce the time delay for retransmitting the tail data due to the loss of the tail data, so as to improve the transmission efficiency of the entire data. The method is used for transmitting the tail data so as to realize the efficient transmission of the tail data. In the method, a data sending end acquires tail data of target data, and then encodes the tail data to obtain backup data, wherein the backup data is used for recovering lost partial tail data; and the data sending end sends the tail data and the backup data to the data receiving end. The data receiving end receives tail data and backup data; and when the data receiving end determines that the tail data has data loss, restoring the lost tail data according to the backup data. Therefore, the method can be used for carrying out coding protection on the tail data of the data and simultaneously obtaining the backup data of the tail data, so that when the tail data is lost in the data transmission process, the backup data can be recovered, and a data receiving end can receive enough ACK information, therefore, the method can reduce the time delay of tail data retransmission caused by the tail data loss, and the transmission efficiency of the whole data is improved.
The method provided by the embodiment of the application is specifically described below with reference to the accompanying drawings.
Please refer to fig. 3, which is a flowchart illustrating an implementation of a data transmission method according to an embodiment of the present application. The method may be applied to the communication system architecture shown in fig. 2A, fig. 2B, or fig. 2C, and may of course be applied to other communication system architectures, which is not limited in this application. In the communication system, the data sending end may perform coding protection on the tail data to be sent, or an intermediate node may exist between the data sending end and the data receiving end to perform coding protection on the tail data sent by the data sending end, which is not specifically limited in the present application. Referring to fig. 3, the method may include the following process flow.
S301: the data sending end obtains tail data of the target data.
In an embodiment, the obtaining, by the data sending end, tail data of the target data includes the following three implementation manners, which are specifically described as follows:
in a first implementation manner, the data sending end obtains tail data of the target data according to a tail identifier carried in the target data, where the tail identifier is used to identify the tail data.
Specifically, the data sending end obtains tail data of the target data according to a tail identifier carried in the target data, and the method includes:
when the bit in the target data is the initial bit indicated by the tail identification, acquiring tail data according to the initial bit indicated by the tail identification; the length of the tail data is from the start bit indicated by the tail identification to the end bit of the target data. For example: the serial numbers corresponding to the bits of the target data are 1, 2, 3, 4 and 5, wherein "1" is the serial number corresponding to the tail bit of the target data, and "5" is the serial number corresponding to the start bit of the target data; if the data sending end determines that the start bit indicated by the tail identification is the bit corresponding to the sequence number '3', the data sending end determines that the tail data is the bits of the sequence numbers '1' to '3'.
In a second implementation manner, the data sending end obtains the tail data of the target data according to the calculated start position of the tail data. Specifically, the data sending end may determine the length of tail data in the target data according to the congestion window and/or the link status information; and acquiring the initial position of the tail data according to the length of the tail data and the tail position of the target data. For example: and the data sending end calculates the length of tail data to be transmitted according to the congestion window and/or the link state information through a congestion control algorithm carried by a transmission protocol. Then, the data sending end determines the initial position of the tail data in the target data according to the calculated length of the tail data and the tail position of the target data, and further obtains data between the initial position and the tail position of the target data.
In a third implementation manner, the data sending end obtains tail data of the target data according to the length information of the predetermined tail data. Specifically, the data sending end may obtain the tail data according to the start bit indicated by the length information when the bit in the target data is the start bit indicated by the length information; wherein, the length of the tail data is from the start bit indicated by the length information to the end bit of the target data. For example: the serial numbers corresponding to the bits of the target data are 1, 2, 3, 4 and 5, wherein "1" is the serial number corresponding to the tail bit of the target data, and "5" is the serial number corresponding to the start bit of the target data; if the preset length information of the tail data indicates that the initial bit of the tail data in the target data is the bit corresponding to the sequence number '3', the data sending end determines that the length of the tail data is the bit corresponding to the sequence numbers '1' to '3' according to the preset length information of the tail data.
It should be noted that, the data transmission in the embodiment of the present application relates to a set of general transmission protocols, and the method in the embodiment of the present application may be implemented on a modified TCP or other transmission protocol with a tail data boundary. After the connection between the data sending end and the data receiving end of the transmission protocol is established, the application can submit the target data to be transmitted to the data sending end through the interface.
S302: and the data sending end encodes the tail data to obtain backup data, and the backup data is used for recovering the lost partial tail data.
In one implementation mode, a data sending end acquires tail data of target data; and when the tail data is coded to obtain backup data, generating backup data indication information at the data sending end.
Optionally, the backup indication information is used to indicate at least one of the following: the position of the backup data in the tail data, the coding mode of the codes, the length information of the data and the starting position of the tail data.
Illustratively, the data sending end can select different bit groups from the effective tail data, and the bit positions included between any two bit groups are different; performing for any one bit group: and operating the data bit on at least one bit included in the bit group to obtain corresponding backup data.
S303: the data sending end sends tail data and backup data to the data receiving end; the data receiving end receives tail data and backup data; the backup data is obtained by encoding the tail data and is used for recovering the lost partial tail data.
It should be noted that the tail data sent by the data sending end to the data receiving end is actual tail data, and the tail data sent by the data receiving end receiving data sending end is effective tail data. The effective tail data volume received by the data receiving end is not necessarily equal to the actual tail data volume actually sent by the data sending end.
For example, the effective tail data amount received by the data receiving end is equal to the actual tail data amount sent by the data sending end, or the actual tail data sent by the data sending end is lost in the transmission process, so that the effective tail data amount received by the data receiving end is smaller than the actual tail data amount sent by the data sending end.
In one embodiment, the data sending end sends the backup data indication information, the tail data and the backup data to the data receiving end in the same sending period. The data receiving end receives the tail data, the backup data and the indication information of the backup data in the same receiving period; the backup data indication information is used for indicating the position of the backup data in the tail data and the coding mode of the coding.
In one embodiment, after the tail data received by the data receiving end is the encoded tail data, it is determined that the received tail data and the backup data are the encoded tail data and the backup data by the data receiving end.
In the embodiment of the present application, TCP is taken as an example, and tail data is taken as an example for specific description, but other protocol data are also applicable, and they only need to protect the same attribute, and the embodiment of the present application is not particularly limited.
For example, referring to fig. 4 to fig. 6, the data receiving end may determine that the received trailer data and backup data are encoded trailer data and backup data by:
and the end information of the target data can be obtained by modifying the interface of the TCP. The format of TCP is: vod send (int sock fd, char data, int size, int flags ═ msgeed), where data is data buffer, size is data length, and flags is transmitted id. We simply add flag to the msgned category to indicate that the end of the target data was submitted.
The original TCP message format is shown in fig. 4, where Reserved in fig. 4 represents three bits, and ns (none) represents an arbitrary or non-repetitive random number value that is used only once. Cwr (congestion Window reduce) indicates that the congestion Window reduction flag is set by the sending host to indicate that it received the TCP packet with the ECE flag set, and the sending end of the data reduces the sending rate by reducing the size of the sending Window. Ece (ECN echo) indicates that one TCP end is ECN-capable at the time of TCP3 handshake, and that ECN of the IP header of the received TCP packet is set to 11. URG (Urgent) indicates that The urgent pointer flag is valid. Ack (acknowledgement) indicates the determined TCP packet, if the value is 1, the acknowledgement Number field is valid, and if the value is 0, the TCP packet is not an acknowledgement packet. Psh (push) indicates that the data sending end cache does not have data to be sent. Rst (reset) is used to trigger resetting of the TCP connection, often in the event of an exception or error. SYN (SYNCHRONIZE) indicates that synchronization Sequence Numbers (SYNCHRONIZE SEQUENCE Numbers) are valid. The fin (finish) flag is used to end a TCP session, but the corresponding port is still open and ready to receive subsequent data.
It should be noted that Options in fig. 4 are optional, which is followed by payload. In general, TCP has no Options, and both the encoded protection packet (data) and the backup packet (data) in the embodiment of the present application have no Options.
In this embodiment of the present application, as shown in fig. 5, according to the description in fig. 5, compared with an original message, a message after being protected by coding specifically has two differences: 1. the last position of Reserved is changed from "0" to "1", which indicates that the message is an encoding-protected message. 2. After the header and before the Payload, a 16-bit packet length needs to be added, and the packet length is used to indicate the real effective data length of the message. Because the encoding requires equal length of the message, if the payload is not enough, the length needs to be complemented, and therefore, the Packet length can be used to distinguish the valid data from the complementary data.
In the embodiment of the present application, as shown in fig. 6, according to the description in fig. 5, the special format of the backup packet (e.g., a redundant packet) includes the following four points: 1. the Reserved is selected, and the first position (highest position) is 1, which indicates that the message is a backup message. 2. The Window Size is used to describe the coding method, because the backup packet does not involve congestion control, part of bits may be selected to describe the coding length, and the remaining part of bits may be used to describe the coding method. 3. The Sequence Number indicates the position where encoding starts. Since the backup message does not require ack, the Sequence Number may be used for other purposes. 4. The payload of the message is the calculation result of encoding the protected data, and the Packet length of the rest of messages also participates in the encoding calculation.
Therefore, the data receiving end receives the backup message (data), knows the encoding initial position and the encoding mode, and can decode the payload and the packet length of the lost message as long as the data receiving end receives enough protected message (data), so that the real effective information can be restored. The data receiving end can determine whether to receive the complete message sent by the data sending end according to the coded length information. The data receiving end can know the coding length and the coding mode according to the original window size. For example: the first 10 bits of the original window size may be used to indicate a coding length of 0-1024, leaving 6 bits to illustrate the way the coding is done.
Note that the role of the original window size here may be equivalent to that of the backup data indication information.
S304: and when the data receiving end determines that the tail data has data loss, restoring the lost tail data according to the backup data.
In an embodiment, the determining, by the data receiving end, that the tail data has data loss includes the following two implementation manners, which are specifically described as follows:
in a first implementation manner, when the length of the received tail data is smaller than the length of the pre-agreed tail data, the data receiving end determines that the received tail data has data loss.
In a second implementation manner, the backup data indication information further includes length information for indicating the length of the original tail data, and when the length of the tail data received by the data receiving end is smaller than the length indicated by the length information, it is determined that the received tail data has data loss.
In one embodiment, the recovering the lost tail data according to the backup data by the data receiving end includes: determining the position of the backup data according to the received tail data and the position of the backup data in the tail data indicated by the backup data indication information; acquiring backup data at the determined location; and decoding the acquired backup data according to a decoding mode corresponding to the coding mode of the code contained in the backup data indication information to obtain the lost tail data.
S305: and the data sending end sends response information to the data receiving end.
In an embodiment, the data receiving end returns a response message to the data sending end according to the situation of receiving the tail data and the situation of recovering the lost data. The method specifically comprises the following conditions:
in the first case: and after the data receiving end receives the tail data sent by the data sending end, the data receiving end sends Acknowledgement (ACK) information to the data sending end after determining that all the tail data sent by the data sending end are successfully received.
And the data sending end receives the ACK information fed back by the data receiving end, wherein the ACK information shows that the data receiving end successfully receives all tail data sent by the data sending end.
In the second case: and when the data receiving end determines that partial tail data is lost and the recovery is successful based on the backup data, the data receiving end sends ACK (acknowledgement character) information to the data sending end.
And the data sending end receives the ACK information fed back by the data receiving end, wherein the ACK information indicates that the data receiving end successfully recovers the lost tail data based on the backup data when the data receiving end determines that the tail data sent by the data sending end is lost.
In the third case: and the data receiving end determines that the backup data is successfully received and the tail data sent by the received data sending end is lost, and sends selective acknowledgement SACK information to the data sending end when the lost data cannot be recovered by the backup data.
The data sending end receives SACK information, the SACK information is used for indicating that the data receiving end receives backup data, and the tail data is lost and the lost tail data cannot be recovered by the backup data. And the data transmitting end retransmits the lost data to the data receiving end according to the SACK information. And when the data receiving end determines to receive all tail data, stopping transmission between the data sending end and the data receiving end.
It should be noted that, if the data receiving end determines that the backup data has been successfully received, and the tail data sent by the received data sending end is lost, but the lost data cannot be recovered by the backup data, the conventional FR, RTO, PTO methods are used, and details of this part are not described in detail herein.
Based on the data transmission method provided by the foregoing embodiments, the present application provides an embodiment of implementing tail data transmission by using interleaving coding, please refer to fig. 7:
a 701: if the data sending side sends a message of 150KB of target data to the data receiving side, the bandwidth is 100Mbps, and the transmission time of RTT is 10ms, for example, the minimum transmission completion time is (150KB × 8/100Mbps) +10ms, which is 22 ms.
a 702: as shown in fig. 7, assuming that there are 13 data at the end (13 is taken to illustrate asymmetric interleaving) to send (assuming bandwidth is fully utilized, the congestion window is 125KB and the remaining 25KB), 3 backup data are generated.
a 703: using interleaved exclusive ORCode, 3 backup data are
Figure BDA0002731478170000111
Figure BDA0002731478170000112
(they are asymmetrically interleaved, each code length being different).
a 704: when the data receiving end determines that the backup data is not lost, the lost packet of any continuous 3 (or less than 3) data can be recovered. With exclusive-or encoding, the decoding speed is negligible (less than 1 ms).
a 705: when the data receiving end determines that the tail data 11, 12, 13 of the target data are lost arbitrarily or completely, the method of the embodiment of the application can save 1 RTO or PTO +1 extra retransmission.
a 706: when the data receiving end determines that the backup data is received, but the tail data of the lost target data cannot be recovered, the method of the embodiment of the application can save 1 RTO or PTO retransmission.
As can be seen from the above description, in the embodiment of the present application, the data sending end performs coding protection on the tail data of the target data and generates backup data, so as to prevent the tail data from being lost in the transmission process, and if the tail data is lost in the transmission process, the data receiving end can recover the lost data according to the backup data.
In summary, the embodiments of the present application provide a data transmission method, which is used for transmitting tail data to implement efficient transmission of the tail data. In the method, a data sending end acquires tail data of target data, and then encodes the tail data to obtain backup data, wherein the backup data is used for recovering lost partial tail data; and the data sending end sends the tail data and the backup data to the data receiving end. The data receiving end receives tail data and backup data; and when the data receiving end determines that the tail data has data loss, restoring the lost tail data according to the backup data. Therefore, the method can be used for carrying out coding protection on the tail data of the data and simultaneously obtaining the backup data of the tail data, so that when the tail data is lost in the data transmission process, the backup data can be recovered, and a data receiving end can receive enough ACK information, therefore, the method can reduce the time delay of tail data retransmission caused by the tail data loss, and the transmission efficiency of the whole data is improved.
Based on the same technical concept, an embodiment of the present application further provides a data transmission apparatus, which may have a structure as shown in fig. 8 and has a behavior function of the data sending end in the foregoing method embodiment. As shown in fig. 8, the apparatus 800 may include a communication unit 801 and a processing unit 802, each of which is described in detail below.
A communication unit 801 configured to acquire tail data of target data; the processing unit 802 is configured to encode the tail data to obtain backup data, where the backup data is used to recover a part of the lost tail data; the communication unit 801 is also used to transmit trailer data and backup data.
In one possible design, the processing unit 802 is further configured to generate backup data indication information, where the backup indication information indicates at least one of the following: the position of the backup data in the tail data, the coding mode of the codes, the length information of the data and the starting position of the tail data.
In one possible design, the communication unit 801 transmits the backup data indication information, the trailer data, and the backup data in the same transmission cycle.
In one possible design, when acquiring tail data of target data, the communication unit 801 is specifically configured to acquire the tail data of the target data according to a tail identifier carried in the target data, where the tail identifier is used to identify the tail data; or acquiring tail data of the target data according to the initial position of the tail data obtained by calculation; or acquiring the tail data of the target data according to the length information of the preset tail data.
In one possible design, when acquiring tail data of target data according to a tail identifier carried in the target data, specifically, when a bit in the target data is a start bit indicated by the tail identifier, the communication unit 801 acquires the tail data according to the start bit indicated by the tail identifier; the length of the tail data is from the start bit indicated by the tail identification to the end bit of the target data.
In one possible design, when acquiring the tail data of the target data according to the calculated start position of the tail data, the communication unit 801 is specifically configured to determine the length of the tail data in the target data according to the congestion window and/or the link state information; and acquiring the initial position of the tail data according to the length of the tail data and the tail position of the target data.
In one possible design, the communication unit 801, when acquiring tail data of target data according to length information of predetermined tail data, is specifically configured to acquire tail data according to a start bit indicated by the length information when a bit in the target data is a start bit indicated by the length information; wherein, the length of the tail data is from the start bit indicated by the length information to the end bit of the target data.
In one possible design, the communication unit 801 is further configured to: after the tail data and the backup data are sent, receiving Acknowledgement Character (ACK) information fed back by a data receiving terminal, wherein the ACK information is that the data receiving terminal determines that the tail data are all successfully received, or the ACK information is that the data receiving terminal determines that the tail data are successfully recovered based on the backup data.
In one possible design, the communication unit 801 is further configured to: after the tail data and the backup data are sent, selective acknowledgement SACK information fed back by a data receiving terminal is received, the SACK information is used for indicating that the data receiving terminal receives the backup data, and the tail data are lost and the lost tail data cannot be recovered by the backup data.
Based on the same technical concept, the embodiment of the present application further provides a data transmission device, which may have a structure as shown in fig. 9 and has a behavior function of a data receiving end in the above method embodiment. As shown in fig. 9, the apparatus 900 may include a communication unit 901 and a processing unit 902, which are described in detail below.
A communication unit 901, configured to receive tail data and backup data; the backup data is obtained by encoding the tail data and is used for recovering the lost partial tail data; and the processing unit 902 is configured to, when it is determined that the tail data is lost, restore the lost tail data according to the backup data.
In one possible design, the communication unit 901 receives the trailer data and the backup data, and the backup data indication information in the same reception cycle; the backup data indication information is used for indicating the position of the backup data in the tail data and the coding mode of the coding.
In a possible design, the processing unit 902, when determining that there is data loss in the trailer data, is specifically configured to determine that there is data loss in the received trailer data when the length of the received trailer data is smaller than the length of the predefined trailer data; or the backup data indication information also contains length information used for indicating the length of the original tail data, and when the length of the received tail data is smaller than the length indicated by the length information, the received tail data is determined to have data loss.
In a possible design, when recovering the lost tail data according to the backup data, the processing unit 902 is specifically configured to determine the position of the backup data according to the received tail data and the position of the backup data in the tail data indicated by the backup data indication information; acquiring backup data at the determined location; and decoding the acquired backup data according to a decoding mode corresponding to the coding mode of the code contained in the backup data indication information to obtain the lost tail data.
In a possible design, the communication unit 901 is further configured to send an acknowledgement ACK message to the data sending end after receiving the tail data and the backup data and determining that all the tail data have been successfully received or determining that a part of the tail data is lost but the recovery based on the backup data has been successful; or when the backup data is successfully received and the tail data is lost and the lost data cannot be recovered by the backup data, sending selective acknowledgement SACK information to the data sending end.
In addition, an embodiment of the present application further provides a data transmission device, which may have a structure as shown in fig. 10, and the transmission device serves as a data sending end. The data transmission apparatus 1000 shown in fig. 10 may include at least one processor 1002, where the at least one processor 1002 is configured to couple with a memory, read and execute instructions in the memory to implement the steps involved by a data transmitting end in the method provided by the embodiment of the present application. Optionally, the apparatus 1000 may further include a transceiver 1001 for supporting the apparatus 1000 to receive or transmit signaling or data. The transceiver 1001 in the apparatus 1000 may be configured to implement the functions of the communication unit 801, for example, the transceiver 1001 may be configured to implement the apparatus 1000 to perform the steps S301, S303 and S305 in the data transmission method shown in fig. 3, and the processor 1002 may be configured to implement the functions of the processing unit 802, for example, the processor 1002 may be configured to implement the apparatus 1000 to perform the step S302 in the data transmission method shown in fig. 3. Optionally, the apparatus 1000 may further include a memory 1004, in which computer programs and instructions are stored, and the memory 1004 may be coupled with the processor 1002 and/or the transceiver 1001, and is configured to support the processor 1002 to call the computer programs and instructions in the memory 1004 to implement the steps involved by the data sending end in the method provided in the embodiment of the present application; in addition, the memory 1004 may also be used for storing data related to embodiments of the method of the present application, for example, for storing data, instructions necessary to support the transceiver 1001 to implement interaction, and/or for storing configuration information necessary for the apparatus 1000 to execute the method of the embodiments of the present application.
An embodiment of the present application further provides a data transmission device, which may have a structure as shown in fig. 11, and the transmission device serves as a data receiving end. The data transmission apparatus 1100 shown in fig. 11 may include at least one processor 1102, and the at least one processor 1102 may be configured to be coupled with a memory, read and execute instructions in the memory to implement the steps involved by the data receiving end in the method provided by the embodiment of the present application. Optionally, the apparatus 1100 may further include a transceiver 1101 for supporting the apparatus 1100 in receiving or transmitting signaling or data. The transceiver 1101 in the apparatus 1100 may be configured to implement the functions of the communication unit 901, for example, the transceiver 1101 may be configured to be used by the apparatus 1100 to execute the steps S301, S303 and S305 in the data transmission method shown in fig. 3, and the processor 1102 may be configured to implement the functions of the processing unit 902, for example, the processor 1102 may be configured to be used by the apparatus 1100 to execute the step S304 in the data transmission method shown in fig. 3. Optionally, the apparatus 1100 may further include a memory 1104, in which computer programs and instructions are stored, and the memory 1104 may be coupled with the processor 1102 and/or the transceiver 1101, and is used for enabling the processor 1102 to call the computer programs and instructions in the memory 1104 to implement the steps involved by the data receiving end in the method provided by the embodiment of the present application; in addition, the memory 1104 may be used for storing data related to embodiments of the method of the present application, for example, for storing data, instructions necessary to support the transceiver 1101 to perform the interaction, and/or for storing configuration information necessary for the apparatus 1100 to perform the method of the embodiments of the present application.
Based on the same concept as the method embodiment, the embodiment of the present application further provides a computer-readable storage medium, on which some instructions are stored, and when the instructions are called by a computer and executed, the instructions may cause the computer to perform the method involved in any one of the possible designs of the method embodiment and the method embodiment. In the embodiment of the present application, the computer-readable storage medium is not limited, and may be, for example, a RAM (random-access memory), a ROM (read-only memory), and the like.
Based on the same concept as the above method embodiments, the present application also provides a computer program product, which when called by a computer can perform the method as referred to in the method embodiments and any possible design of the above method embodiments.
Based on the same concept as the above method embodiments, the present application also provides a chip, which may include a processor and an interface circuit, for implementing the method as referred to in any one of the possible implementations of the above method embodiments, wherein "coupled" means that two components are directly or indirectly joined to each other, which may be fixed or movable, which may allow flowing liquid, electric, electrical or other types of signals to be communicated between the two components.
In summary, the embodiments of the present application provide a data transmission method, which is used for transmitting tail data to implement efficient transmission of the tail data. In the method, a data sending end acquires tail data of target data, and then encodes the tail data to obtain backup data, wherein the backup data is used for recovering lost partial tail data; and the data sending end sends the tail data and the backup data to the data receiving end. The data receiving end receives tail data and backup data; and when the data receiving end determines that the tail data has data loss, restoring the lost tail data according to the backup data. Therefore, the method can be used for carrying out coding protection on the tail data of the data and simultaneously obtaining the backup data of the tail data, so that when the tail data is lost in the data transmission process, the backup data can be recovered, and a data receiving end can receive enough ACK information, therefore, the method can reduce the time delay of tail data retransmission caused by the tail data loss, and the transmission efficiency of the whole data is improved.
Through the above description of the embodiments, those skilled in the art will clearly understand that the embodiments of the present application can be implemented by hardware, firmware, or a combination thereof. When implemented in software, the functions described above may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a computer. Taking this as an example but not limiting: the computer-readable medium may include RAM, ROM, an Electrically Erasable Programmable Read Only Memory (EEPROM), a compact disc read-Only memory (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Furthermore, the method is simple. Any connection is properly termed a computer-readable medium. For example, if software is transmitted from a website, a server, or other remote source using a coaxial cable, a fiber optic cable, a twisted pair, a Digital Subscriber Line (DSL), or wireless technologies such as infrared, radio, and microwave, the coaxial cable, the fiber optic cable, the twisted pair, the DSL, or the wireless technologies such as infrared, radio, and microwave are included in the fixation of the medium. Disk and disc, as used in accordance with embodiments of the present application, includes Compact Disc (CD), laser disc, optical disc, Digital Versatile Disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
In short, the above description is only an example of the present application, and is not intended to limit the scope of the present application. Any modifications, equivalents, improvements and the like made in accordance with the disclosure of the present application are intended to be included within the scope of the present application.

Claims (31)

1. A data transmission method is applied to a data sending end, and the method comprises the following steps:
acquiring tail data of target data;
coding the tail data to obtain backup data, wherein the backup data is used for recovering the lost partial tail data;
and sending the tail data and the backup data.
2. The method of claim 1, wherein the method further comprises:
generating backup data indication information, wherein the backup indication information is used for indicating at least one of the following items: the position of the backup data in the tail data, the coding mode of the codes, the length information of the data and the starting position of the tail data in which the codes are coded.
3. The method of claim 1 or 2, wherein the method further comprises:
and transmitting the backup data indication information, the tail data and the backup data in the same transmission period.
4. The method of claim 1, wherein the obtaining tail data of the target data comprises:
acquiring tail data of the target data according to a tail identification carried in the target data, wherein the tail identification is used for identifying the tail data; or the like, or, alternatively,
acquiring tail data of the target data according to the initial position of the tail data obtained by calculation; or the like, or, alternatively,
and acquiring the tail data of the target data according to the preset length information of the tail data.
5. The method of claim 4, wherein the obtaining of the tail data of the target data according to the tail identifier carried in the target data comprises:
when the bit in the target data is the start bit indicated by the tail identification, acquiring the tail data according to the start bit indicated by the tail identification;
wherein the length of the tail data is from the start bit indicated by the tail identifier to the end bit of the target data.
6. The method of claim 4, wherein the obtaining the tail data of the target data according to the calculated start position of the tail data comprises:
determining the length of tail data in the target data according to the congestion window and/or the link state information;
and acquiring the initial position of the tail data according to the length of the tail data and the tail position of the target data.
7. The method as claimed in claim 4, wherein said obtaining tail data of said target data according to predetermined length information of said tail data comprises:
when the bit in the target data is the start bit indicated by the length information, acquiring the tail data according to the start bit indicated by the length information;
wherein the length of the tail data is from a start bit indicated by the length information to an end bit of the target data.
8. The method of any of claims 1-7, wherein after the sending the tail data, the backup data, the method further comprises:
and receiving Acknowledgement (ACK) information fed back by the data receiving end, wherein the ACK information is that the data receiving end determines that the tail data is completely and successfully received, or the ACK information is that the data receiving end determines that the tail data is successfully recovered based on the backup data.
9. The method of any of claims 1-7, wherein after the sending the tail data, the backup data, the method further comprises:
and receiving selective acknowledgement SACK information fed back by the data receiving terminal, wherein the SACK information is used for indicating that the data receiving terminal receives the backup data and that the tail data is lost and the lost tail data cannot be recovered by the backup data.
10. A data transmission method, applied to a data receiving end, the method comprising:
receiving tail data and backup data; the backup data is obtained by encoding tail data and is used for recovering the lost partial tail data;
and when the tail data are determined to have data loss, recovering the lost tail data according to the backup data.
11. The method of claim 10, wherein the method further comprises:
receiving the tail data, the backup data and the indication information of the backup data in the same receiving period;
the backup data indication information is used for indicating the position of the backup data in the tail data and the coding mode of the codes.
12. The method of claim 10, wherein the determining that there is a data loss for the tail data comprises:
when the length of the received tail data is smaller than the length of the tail data agreed in advance, determining that the received tail data has data loss; or
The backup data indication information also comprises length information used for indicating the length of the original tail data, and when the length of the received tail data is smaller than the length indicated by the length information, the received tail data is determined to have data loss.
13. The method of any of claims 10-12, wherein the recovering the missing tail data from the backup data comprises:
determining the position of the backup data according to the received tail data and the position of the backup data in the tail data indicated by the backup data indication information;
acquiring the backup data at the determined location;
and decoding the acquired backup data according to a decoding mode corresponding to the coding mode of the code contained in the backup data indication information to obtain the lost tail data.
14. The method of any of claims 10-13, wherein after receiving the tail data, the backup data, the method further comprises:
when determining that the tail data are all successfully received or determining that part of the tail data are lost but the recovery based on the backup data is successful, sending Acknowledgement (ACK) information to a data sending end; or
And sending selective acknowledgement SACK information to a data sending end when the backup data is determined to be successfully received and tail data is lost and the lost data cannot be recovered by the backup data.
15. A data transmission apparatus, wherein the apparatus is applied to a data transmitting end, and comprises:
the communication unit is used for acquiring tail data of the target data;
the processing unit is used for encoding the tail data to obtain backup data, and the backup data is used for recovering the lost partial tail data;
the communication unit is further configured to send the tail data and the backup data.
16. The apparatus of claim 15,
the processing unit is further configured to generate backup data indication information, where the backup indication information is used to indicate at least one of the following: the position of the backup data in the tail data, the coding mode of the codes, the length information of the data and the starting position of the tail data in which the codes are coded.
17. The apparatus of claim 15 or 16, wherein the communication unit transmits the backup data indication information, the trailer data, and the backup data in a same transmission period.
18. The apparatus as claimed in claim 15, wherein the communication unit, when acquiring the tail data of the target data, is specifically configured to:
acquiring tail data of the target data according to a tail identification carried in the target data, wherein the tail identification is used for identifying the tail data; or the like, or, alternatively,
acquiring tail data of the target data according to the initial position of the tail data obtained by calculation; or the like, or, alternatively,
and acquiring the tail data of the target data according to the preset length information of the tail data.
19. The apparatus of claim 18, wherein, when acquiring the tail data of the target data according to the tail identifier carried in the target data, the communication unit is specifically configured to:
when the bit in the target data is the start bit indicated by the tail identification, acquiring the tail data according to the start bit indicated by the tail identification;
wherein the length of the tail data is from the start bit indicated by the tail identifier to the end bit of the target data.
20. The apparatus as claimed in claim 18, wherein the communication unit, when obtaining the tail data of the target data according to the calculated start position of the tail data, is specifically configured to:
determining the length of tail data in the target data according to the congestion window and/or the link state information;
and acquiring the initial position of the tail data according to the length of the tail data and the tail position of the target data.
21. The apparatus as claimed in claim 18, wherein the communication unit, when acquiring the trailer data of the target data according to the predetermined length information of the trailer data, is specifically configured to:
when the bit in the target data is the start bit indicated by the length information, acquiring the tail data according to the start bit indicated by the length information;
wherein the length of the tail data is from a start bit indicated by the length information to an end bit of the target data.
22. The apparatus of any of claims 15-21, wherein the communication unit is further configured to: and after the tail data and the backup data are sent, receiving ACK (acknowledgement character) information fed back by the data receiving end, wherein the ACK information is used by the data receiving end for determining that the tail data are all successfully received, or the ACK information is used by the data receiving end for determining that the tail data are successfully recovered based on the backup data.
23. The apparatus of any of claims 15-21, wherein the communication unit is further configured to: after the tail data and the backup data are sent, selective acknowledgement SACK information fed back by the data receiving end is received, wherein the SACK information is used for indicating that the data receiving end receives the backup data, and the tail data is lost and the lost tail data cannot be recovered by the backup data.
24. A data transmission apparatus, wherein the apparatus is applied to a data receiving end, and comprises:
the communication unit is used for receiving tail data and backup data; the backup data is obtained by encoding tail data and is used for recovering the lost partial tail data;
and the processing unit is used for recovering the lost tail data according to the backup data when the tail data is determined to have data loss.
25. The apparatus of claim 24, wherein the communication unit receives the trailer data and the backup data, and backup data indication information, in a same reception cycle;
the backup data indication information is used for indicating the position of the backup data in the tail data and the coding mode of the codes.
26. The apparatus as claimed in claim 24, wherein said processing unit, upon determining that there is a data loss in said tail data, is specifically configured to:
when the length of the received tail data is smaller than the length of the tail data agreed in advance, determining that the received tail data has data loss; or
The backup data indication information also comprises length information used for indicating the length of the original tail data, and when the length of the received tail data is smaller than the length indicated by the length information, the received tail data is determined to have data loss.
27. The apparatus according to any one of claims 24 to 26, wherein the processing unit, when recovering the missing tail data from the backup data, is specifically configured to:
determining the position of the backup data according to the received tail data and the position of the backup data in the tail data indicated by the backup data indication information;
acquiring the backup data at the determined location;
and decoding the acquired backup data according to a decoding mode corresponding to the coding mode of the code contained in the backup data indication information to obtain the lost tail data.
28. The apparatus of any of claims 24-27, wherein the communication unit is further configured to: after receiving the trailer data and the backup data,
when determining that the tail data are all successfully received or determining that part of the tail data are lost but the recovery based on the backup data is successful, sending Acknowledgement (ACK) information to a data sending end; or
And sending selective acknowledgement SACK information to a data sending end when the backup data is determined to be successfully received and tail data is lost and the lost data cannot be recovered by the backup data.
29. A computer-readable storage medium storing computer instructions which, when executed on a computer, cause the computer to perform the method of any one of claims 1 to 9 or perform the method of any one of claims 10 to 14.
30. A data transmission apparatus, comprising: a processor and a memory;
the memory is used for storing a computer program;
the processor is configured to execute the memory-stored computer program to cause the communication device to perform the method of any of claims 1 to 9 or to perform the method of any of claims 10 to 14.
31. A data transmission apparatus comprising at least one processor and an interface, the at least one processor being configured to execute a computer program to cause the communication apparatus to perform the method of any of claims 1 to 9 or to perform the method of any of claims 10 to 14.
CN202011119358.8A 2020-10-19 2020-10-19 Data transmission method and device Pending CN114389758A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011119358.8A CN114389758A (en) 2020-10-19 2020-10-19 Data transmission method and device
PCT/CN2021/118934 WO2022083371A1 (en) 2020-10-19 2021-09-17 Data transmission method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011119358.8A CN114389758A (en) 2020-10-19 2020-10-19 Data transmission method and device

Publications (1)

Publication Number Publication Date
CN114389758A true CN114389758A (en) 2022-04-22

Family

ID=81193451

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011119358.8A Pending CN114389758A (en) 2020-10-19 2020-10-19 Data transmission method and device

Country Status (2)

Country Link
CN (1) CN114389758A (en)
WO (1) WO2022083371A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579083A (en) * 2022-05-09 2022-06-03 上海擎昆信息科技有限公司 Data processing device and method based on vector processor
CN115085890A (en) * 2022-06-23 2022-09-20 杭州云合智网技术有限公司 Method for optimizing TCP RTO retransmission waiting time by data center network chip

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104410927A (en) * 2014-11-27 2015-03-11 江苏辰汉电子科技有限公司 Low-redundancy compensation method of video transmission packet loss in erasure channel
BR112017009940A2 (en) * 2014-12-12 2018-01-09 Hitachi Ltd communication device.
CN104580171B (en) * 2014-12-24 2018-01-12 北京高森明晨信息科技有限公司 The transmission method of Transmission Control Protocol, device and system
CN104967502B (en) * 2015-02-03 2017-06-27 深圳市腾讯计算机系统有限公司 Data transmission method for uplink and device, data receiver method and device
CN110855400B (en) * 2019-11-29 2022-02-25 江苏方天电力技术有限公司 Self-adaptive packet loss recovery method based on error correction code, computing device and storage medium
CN111414277B (en) * 2020-03-06 2023-10-20 网易(杭州)网络有限公司 Data recovery method and device, electronic equipment and medium

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579083A (en) * 2022-05-09 2022-06-03 上海擎昆信息科技有限公司 Data processing device and method based on vector processor
CN114579083B (en) * 2022-05-09 2022-08-05 上海擎昆信息科技有限公司 Data processing device and method based on vector processor
CN115085890A (en) * 2022-06-23 2022-09-20 杭州云合智网技术有限公司 Method for optimizing TCP RTO retransmission waiting time by data center network chip

Also Published As

Publication number Publication date
WO2022083371A1 (en) 2022-04-28

Similar Documents

Publication Publication Date Title
WO2018127228A1 (en) Random access feedback and processing methods, base station and terminal
EP1845694B1 (en) Communication device, communication method, and program
JP6522855B2 (en) Packet transmission method and user equipment
CN106559739B (en) Lightweight data transmission method suitable for Bluetooth low-power wireless communication system
WO2018000841A1 (en) Indication method for harq retransmission and related device
US8832515B2 (en) Block acknowledgement mechanism including sequence number acknowledgement and retry bit
CN112436994B (en) Data transmission method and electronic equipment
CN102217258B (en) Detection processing method, data sending terminal, data receiver and communication system
JP2020061749A (en) Systems and methods for signaling and generating variable length block acknowledgment fields in wireless network
CN107567107B (en) Data transmission method and device
CN111224999A (en) Transmission protocol switching method, device, equipment and storage medium
CN103841002A (en) Method and terminal for voice transmission, voice server and voice transmission system
TWI358922B (en) Method and apparatus of default timer configuratio
RU2009116675A (en) WIRELESS COMMUNICATION CODING
RU2701523C1 (en) System and method of providing synchronization in transmissions in a mode without connection
WO2022083371A1 (en) Data transmission method and device
WO2018228477A1 (en) Communication method, network device and terminal
CN111328104B (en) Data packet decompression method and device
CN108886713B (en) Data transmission method, data receiving equipment and data sending equipment
CN106537959B (en) Method for encoding and decoding frames in a telecommunication network
CN108540273B (en) Method and device for retransmitting data packet
WO2018094873A1 (en) Method and device for establishing multicast cluster
CN107431965B (en) Method and device for realizing Transmission Control Protocol (TCP) transmission
CN101114891B (en) Techniques to expedite retransmission of arq blocks using temporal relationships in wireless networks
CN106888072B (en) Data transmission method and device

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