WO2018171332A1 - Data transmission method and apparatus - Google Patents

Data transmission method and apparatus Download PDF

Info

Publication number
WO2018171332A1
WO2018171332A1 PCT/CN2018/074348 CN2018074348W WO2018171332A1 WO 2018171332 A1 WO2018171332 A1 WO 2018171332A1 CN 2018074348 W CN2018074348 W CN 2018074348W WO 2018171332 A1 WO2018171332 A1 WO 2018171332A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
status information
received
receiving end
sending
Prior art date
Application number
PCT/CN2018/074348
Other languages
French (fr)
Chinese (zh)
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 华为技术有限公司
Publication of WO2018171332A1 publication Critical patent/WO2018171332A1/en

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/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • 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

  • the present application relates to the field of information technology, and in particular, to a data transmission method and apparatus.
  • the fountain code can be divided into a random linear fountain code, a rupee (English: Luby Transform, LT) code and a Raptor code.
  • the principle of the fountain code is that the sender divides the original data file into multiple data, and then for a plurality of data, the random source is continuously encoded to generate an encoded data packet and sent to the receiving end until the receiving end receives all.
  • the fountain code encoding is selected in a random manner when the selected message is encoded, some of the messages are not encoded and transmitted for a long time, so that the data transmission delay is long. This problem can also be called the long tail of the LT code. Delay problem.
  • the present application provides a data transmission method and apparatus for improving the long tail delay problem of fountain code transmission.
  • the embodiment of the present application provides a data transmission method, where the method is applied to a data sending end, and includes:
  • a second group of data to be sent is re-determined from the N data, and the number of the second group of data is Nn.
  • the Nn data is data that is not received by the receiving end of the N data; and L coded messages are sent to the receiving end, where the L coded messages are the Nn data passing Fountain code technology coded.
  • the sending end receives the status information sent by the receiving end, and the status information indicates the data that the receiving end has not successfully received or the data that is successfully received, so that the sending end does not encode and transmit the data received by the receiving end, but
  • the range of the data to be sent is reduced, and the range of the data to be sent is reduced to the data that is not successfully received by the receiving end, so that the receiving end randomly selects the data and then performs the encoding and sending, because the receiving is performed.
  • the data successfully received by the terminal is not repeatedly coded and transmitted, thereby reducing the long tail delay effect and improving the transmission efficiency of the message.
  • the method may further include: when the sending end does not receive the status information within a set duration, sending, to the receiving end, the sending end to instruct the receiving end to feed back the status. Request information for information.
  • the request information is sent in time, so that the receiving end resends the status information after receiving the request information, and ensures that the sending end receives the status information, thereby focusing on transmitting and receiving.
  • the data that is not successfully received by the terminal improves the success rate of receiving packets at the receiving end, reduces the long tail time of decoding, and reduces the repetition rate of packets sent by the transmitting end.
  • the status information includes a sequence number or number of the Nn data that has not been successfully received, or the status information includes a sequence number or number of n data that has been successfully received, or The status information includes a maximum sequence number or a maximum number among consecutive n pieces of data that have been successfully received.
  • the embodiment of the present application provides a data transmission method, where the method is applied to a data receiving end, and the method includes: receiving, by the receiving end, m encoded messages sent by a sending end; The packet is decoded by the fountain code decoding technology, and n data of a set of data to be received is obtained.
  • the n is greater than or equal to the data reception threshold, the data reception threshold is less than N, and the N is the set of And receiving, according to the n data, status information to the sending end, where the status information is used to indicate that n data of the N data is successfully received, so that the sending end is configured according to the Status information, the set of data to be received is changed to Nn data, and the Nn data is data other than the n data among the N data.
  • the transmitting end randomly selects data from a set of data to be transmitted to obtain an encoded message when transmitting data, and sends the encoded message to the receiving end, and the data to be sent is the receiving end to be received.
  • the number of data to be received is the number of data to be transmitted in which the data corresponding to the m encoded messages is located, that is, N described in the second aspect.
  • N the number of data to be transmitted in which the data corresponding to the m encoded messages is located
  • N the number of data to be transmitted in which the data corresponding to the m encoded messages is located
  • N the number of data to be transmitted in which the data corresponding to the m encoded messages is located
  • the receiving end receives the encoded encoded message sent by the sending end, and decodes the encoded message to obtain n data packets, and determines that the number n of the decoded data packets is greater than or equal to the threshold number of packets.
  • Sending status information to the sending end where the status information is used to indicate that n data of the N data is successfully received, so that the sending end does not receive the receiving end after receiving the status information.
  • the received data is encoded and transmitted, but the range of the data to be sent is reduced, and the range of the data to be transmitted is reduced to the data that the receiving end has not successfully received, so that the receiving end randomly selects the data that has never been successfully received.
  • the data is further encoded and transmitted. Since the data successfully received by the receiving end is not repeatedly coded and transmitted, the long tail delay effect is reduced, and the transmission efficiency of the message is improved.
  • the data reception threshold is determined based on the number of data to be received, which ensures that the receiving end timely feedbacks the state information after receiving a certain amount of data in the data to be received, thereby improving the decoding success rate and reducing the decoding length. Tail time.
  • the method may further include: receiving request information sent by the sending end, where the request information is used to indicate that the receiving end feeds back the received data; and according to the n data, Transmitting the status information to the sending end, including: sending, according to the request information and the received n data, status information to the sending end, where the status information is used to indicate n of the N data The data has been successfully received, or the status information is used to indicate that Nn of the N data are not successfully received.
  • the transmitting end requests the receiving end to feed back the status information to ensure that the receiving end normally returns the status information, and the transmitting end successfully receives the status information, thereby improving the decoding success rate. Reduce decoding long tail time.
  • the status information includes a sequence number or number of Nn data that has not been successfully received, or the status information includes a sequence number or number of n data that has been successfully received, or The status information includes the largest sequence number or the largest number among consecutive n data that have been successfully received.
  • the sequence number or number of the message is used as the state information, so that the bit occupied by the state information is smaller, and the resource occupation is reduced.
  • the method further includes: the receiving end determines, according to any one of the received m encoded messages, that the number of the to-be-received data is N; After the status information is sent, the quantity of the set of data to be received is updated to Nn.
  • the receiving end updates the number of data to be received, so that the sending end does not need to obtain the quantity of data to be received from the m encoded messages.
  • the transmitting end receives the status information sent by the receiving end for the first time for a data block. Since the receiving end itself updates the quantity of data to be received, it is no longer necessary to carry the related information of the quantity of the data to be received in the coded report. In the text.
  • the method further includes: the receiving end determines that all data in the set of data to be received is successfully received, and sends notification information to the sending end, where the notification information is used. Instructing the receiving end to successfully receive all the numbers in the set of data to be received.
  • the embodiment of the present application provides a data transmission device, where the device is applied to a receiving end, and includes: a processing unit, configured to determine a first group of data to be sent, The number of the first group of data is N; the coding unit is configured to encode the N data into M coded messages by using a fountain code technology; and send a single source, and send the M codes to the receiving end.
  • a receiving unit configured to receive status information from the receiving end, where the status information is used to indicate that n of the N data has been successfully received, or the status information is used to indicate the
  • the processing unit is further configured to: re-determine the second group of data to be sent from the N data according to the state information, where Nn data is not successfully received, and n is smaller than N;
  • the number of the second group of data is Nn, and the Nn data is data that is not received by the receiving end of the N data;
  • the sending unit is further configured to send L to the receiving end.
  • Encoded message the L codes
  • the message is obtained by the coding unit by the fountain code technique for the N-n data.
  • the sending unit when determining that the receiving unit does not receive the status information within a set duration, sends request information to the receiving end, where the request information is used. Instructing the receiving end to feed back the status information.
  • the status information includes a sequence number or number of the Nn data that has not been successfully received, or the status information includes a sequence number or number of n data that has been successfully received, or The status information includes a maximum sequence number or a maximum number among consecutive n pieces of data that have been successfully received.
  • the embodiment of the present application provides a data transmission apparatus, where the apparatus is applied to a data receiving end, and includes: a receiving unit, configured to receive m encoded messages sent by a sending end; and a decoding unit, configured to: Decoding the m coded packets by the fountain code decoding technology to obtain n data in a set of data to be received, wherein the n is greater than or equal to a data reception threshold, and the data reception threshold is less than N, the N And a sending unit, configured to send, according to the n data, status information to the sending end, where the status information is used to indicate that n of the N data is successful. Receiving, so that the sending end changes the set of data to be received to Nn data according to the status information, where the Nn data is data other than the n data among the N data. .
  • the data reception threshold is equal to a product of the number of data to be received and a set value, the set value being greater than zero and the set value being less than one.
  • the receiving unit is further configured to receive the request information sent by the sending end, where the request information is used to indicate that the receiving end feeds back the received data; the sending unit, specifically And configured to send status information to the sending end according to the request information and the received n data, where the status information is used to indicate that n of the N data has been successfully received, or The status information is used to indicate that Nn of the N data are not successfully received.
  • the status information includes a sequence number or number of Nn data that has not been successfully received, or the status information includes a sequence number or number of n data that has been successfully received, or The status information includes the largest serial number or the largest number among consecutive n data that have been successfully received.
  • the method further includes: a processing unit, configured to determine, according to any one of the received m encoded messages, that the number of the to-be-received data is N; After the sending unit sends the status information to the sending end, the quantity of the set of data to be received is updated to Nn.
  • an embodiment of the present application provides a data transmission apparatus, where the apparatus is applied to a data sending end, and includes a communication interface, a processor, and a memory, where the memory is used to store a software program, and the processor is used to read And taking the software program stored in the memory, transmitting and receiving data through the communication interface, and implementing the method provided by any one of the first aspect or the first aspect.
  • an embodiment of the present application provides a data transmission apparatus, where the apparatus is applied to a receiving end of data, including a communication interface, a processor, and a memory, where the memory is used to store a software program, and the processor is used to read Taking the software program stored in the memory, transmitting and receiving data through the communication interface, and implementing the method provided by any one of the second aspect or the second aspect.
  • the embodiment of the present application further provides a computer storage medium, where the software program stores a software program, where the software program can implement the first aspect or the first one when being read and executed by one or more processors.
  • the software program stores a software program, where the software program can implement the first aspect or the first one when being read and executed by one or more processors.
  • FIG. 1 is a schematic diagram of an application architecture provided by an embodiment of the present application
  • FIG. 2 is a schematic diagram of a data transmission method of a fountain code technology according to an embodiment of the present application
  • FIG. 3 to FIG. 6 are schematic diagrams of data transmission methods according to an embodiment of the present application.
  • FIG. 7 to FIG. 8 are schematic diagrams of a data transmission apparatus applied to a receiving end according to an embodiment of the present application.
  • FIG. 9 to FIG. 10 are schematic diagrams of a data transmission apparatus applied to a transmitting end according to an embodiment of the present application.
  • the application can be applied to low-latency transmission between data centers, or real-time video communication, or satellite communication and other application scenarios.
  • the application architecture includes data center A, data center B, and multiple Internet service providers (English: Internet Service Provider, ISP for short). Internet service providers are used to provide Internet services to users. Users can access the data center closer to themselves through the ISP.
  • Data centers are connected by proprietary/public links. Data Center A can send data to Data Center B through a proprietary or public link. Data Center B can also send data to Data Center A through a proprietary or public link, so that Data Center A can act as both a receiving end and a transmitting end. Similarly, data center B can act as a sender or as a receiver. In Data Center A and Data Center B, data is transmitted by Fountain Codes.
  • the so-called fountain code means that the transmitting end divides the original data file into a plurality of data blocks, and each data block includes a plurality of data.
  • the transmitting end transmits separately for each data block, and after one data block transmission is completed, another data block is transmitted until the original data file transmission is completed.
  • data block A as shown in FIG. 2, data block A includes K data, which is a group of data to be sent, and each time a certain amount of data is randomly selected from K data, coded by fountain code technology to generate coding.
  • the message is sent to the receiving end, and after receiving the encoded message, the receiving end decodes the received encoded message by using the fountain code technology to obtain corresponding data, and all the k data are decoded.
  • the receiving end acquires the data block A, that is, the transmission of the data block A from the transmitting end to the transmitting end is completed.
  • Fountain code can be divided into random linear fountain code, LT (Luby Transform) code and Raptor code.
  • the LT code is the first fountain code scheme with practical performance.
  • the encoding and decoding method of the LT code is: randomly select d data from k data at a certain degree (d) distribution at the transmitting end, and then select the selected data.
  • the d data is XORed to obtain an encoded message, and the encoded message is sent to the receiving end.
  • the receiving end After receiving the L (L is greater than k) coded messages, the receiving end can recover k data with a probability of not less than (1-e), and e is the unrecoverable probability of the received message on the receiving end. e decreases as n increases.
  • n tends to infinity (ie, the receiving end receives an infinite number of encoded messages), e tends to zero.
  • a reasonable degree distribution is the key to the performance of the LT code. It should be understood that if the fountain code loses packets during transmission, it is not necessary to feed back the reception status to the transmitting end, that is, it is not necessary to notify the transmitting end to retransmit the discarded packet.
  • the fountain code technology is used for encoding and decoding.
  • the fountain code is a random source of the transmitting end. The source is continuously selected from the data to be transmitted for encoding, and the encoded message is sent to the receiving end until the receiving end receives all. Therefore, there will be more repeated data transmission between the two data centers. Due to the long transmission distance between the two data centers, a large delay will occur due to repeated transmission.
  • the present application provides a data transmission method and apparatus, wherein the method and apparatus are based on the same inventive concept. Since the principles of the method and the apparatus for solving the problem are similar, the implementation of the apparatus and the method can be referred to each other, and the repetition is performed. No longer.
  • the transmitting end performs data segmentation on the original data file to obtain a plurality of data blocks, and performs segmentation for each data block to obtain a set of data to be sent, and then
  • the segmented data to be sent is encoded by the fountain code technology to obtain an encoded message, and the transmitting end sends the encoded message to the receiving end.
  • the receiving end After receiving the encoded message sent by the transmitting end, the receiving end uses the fountain code technology to decode. After receiving all the data, the receiving end performs data reconstruction on the decoded data to obtain the original data file.
  • the status information is sent to the sending end, and the status information indicates that the receiving end does not successfully receive the data or successfully receives the data, so that the sending end receives the data.
  • the data received by the receiving end is no longer encoded and transmitted, but the range of the data to be sent is reduced, and the range of the data to be sent is reduced to the data that the receiving end does not successfully receive, thereby receiving
  • the data is randomly selected from the data that has never been successfully received, and then encoded and transmitted. Since the data successfully received by the receiving end is not repeatedly coded and transmitted, the long tail delay effect is reduced, and the transmission efficiency of the message is improved.
  • a data transmission method provided by an embodiment of the present application includes:
  • the transmitting end determines a first group of data to be sent.
  • the N data packets included in the first group of data to be sent may be all the data included in one data block divided by the original data file, or may be the last time the status information sent by the receiving end is received. , the data to be sent that has been re-determined.
  • the transmitting end encodes the N data into M encoded messages by using a fountain code technology.
  • the sending end sends the M encoded messages to the receiving end.
  • the sending end uses the fountain code technology to randomly select several data from the N data to encode the encoded message and send the encoded message, and in the process of sending the encoded message, Other data is encoded.
  • the receiving end receives the m encoded packets sent by the sending end.
  • m is equal to M, or in the case of sending a packet loss, m is smaller than M.
  • n is greater than or equal to the data receiving amount threshold, the data receiving amount threshold is less than N, and the N is the quantity of the set of data to be received; wherein, a set of data to be received is also the waiting in step S301.
  • the transmitting end randomly selects data from the N data for encoding, and continuously sends the encoded message to the transmitting end. Thereby the receiving end decodes the encoded message.
  • the transmitting end encodes the data of the quantity greater than n into the encoded message and sends the encoded message to the receiving end, the receiving end may be lost due to the packet loss during the transmission process.
  • n data is decoded. If the transmitting end encodes the n data into an encoded message and sends the encoded message to the receiving end, if the encoded message does not have a packet loss during the transmission, the receiving end is configured to receive the encoded code. After the message is decoded, n data is obtained.
  • the sender can carry the number of data to be received in any one of the encoded messages and send it to the receiving end. Specifically, the number of data to be received can occupy one bit in the data.
  • the status information is used to indicate that n data of the N data is successfully received, so that the sending end changes the set of data to be received to Nn data according to the status information,
  • the Nn data is data other than the n data among the N data.
  • M N-n.
  • the status information is used to indicate that n of the N data is successfully received or used to indicate that M data is not successfully received.
  • the transmitting end receives the status information from the receiving end.
  • the sending end re-determines the second group of data to be sent from the N data according to the state information, where the number of the second group of data is N-n.
  • the N-n data is data of the N data that is not successfully received by the receiving end.
  • the sending end reduces the range of the first group of data to be sent to N-n according to the state information, and the data after the reduced range constitutes the second group of data to be sent.
  • the sending end sends L coded messages to the receiving end.
  • the L coded messages are obtained by encoding the N-n data by a fountain code technique.
  • the receiving end when the receiving end determines that a group of data to be received is successfully received, the receiving end sends a notification to the sending end to indicate that all data has been successfully received, so that the sending end stops sending data in the data block.
  • the receiving end after receiving the n data sent by the sending end, the receiving end sends status information to the sending end, where the status information indicates that the receiving end does not successfully receive the data or indicates the successfully received data, thereby After receiving the status information, the transmitting end reduces the data to be sent, and selects data from the unsuccessfully received data of the receiving end to perform encoding and sending, thereby reducing the long tail delay effect and improving the transmission of the message. effectiveness.
  • the sending end may not have the receiving end to the status information.
  • the present application is implemented.
  • the sending end may send the request information for instructing the receiving end to feed back the status information to the receiving end when the status information is not received within the set time period. After receiving the request information sent by the sending end to instruct the receiving end to feed back the status information, the receiving end sends the status information to the sending end.
  • the transmitting end requests the receiving end to feed back the status information to ensure that the receiving end normally returns the status information, and the transmitting end successfully receives the status information, thereby improving the decoding success rate. Reduce long tail delays.
  • the transmitting end determines a first group of data to be sent.
  • the transmitting end encodes the N data into M encoded messages by using a fountain code technology.
  • the sending end sends the M encoded messages to the receiving end.
  • the receiving end receives the m encoded packets sent by the sending end.
  • S505 Decode the m coded messages by using a fountain code decoding technology to obtain n pieces of data in a group of to-be-received data.
  • the n is greater than or equal to the data receiving amount threshold, the data receiving amount threshold is less than N, and the N is the quantity of the set of data to be received.
  • m is equal to M, or in the case of sending a packet loss, m is smaller than M.
  • a set of data to be received is also the first set of data to be transmitted as described in step S501.
  • the status information is used to indicate that n data of the N data is successfully received, so that the sending end changes the set of data to be received to Nn data according to the status information,
  • the Nn data is data other than the n data among the N data.
  • M N-n.
  • the status information is used to indicate that n of the N data is successfully received or used to indicate that M data is not successfully received.
  • the status information may be lost, resulting in not reaching the transmitting end.
  • the sending end When the sending end does not receive the status information within a set duration, the sending end sends request information to the receiving end, where the request information is used to instruct the receiving end to feed back the status information.
  • the receiving end After receiving the request information sent by the sending end, the receiving end sends the status information to the sending end.
  • the sending end After receiving the status information from the receiving end, the sending end re-determines a second group of data to be sent from the N data according to the status information, where the second group of data is The number is Nn, and the Nn data is data that is not received by the receiving end among the N data.
  • the sending end reduces the range of the first group of data to be sent to N-n according to the state information, and the data after the reduced range constitutes the second group of data to be sent.
  • the sending end sends, to the receiving end, L coded messages, where the L coded messages are obtained by using the fountain code technology.
  • the sending end does not receive the status information within a set duration, and sends a request message for instructing the receiving end to feed back the status information to the receiving end, and timely informs the receiving end to retransmit the receiving information.
  • Status information thereby reducing the decoding long tail effect and redundancy.
  • the status information involved in all embodiments of the present application may include a sequence number or number of the n data, or the status information includes a sequence number or number of the Nn data, or the status information includes successful reception.
  • the largest serial number or maximum number of consecutive n data For example, if the number of data to be received is 100, and the receiving end receives 50, and the serial number or serial number of the received data is continuous, the serial number or number of the 50th message can be fed back.
  • the data receiving thresholds involved in all embodiments of the present application may be preset values, or may be determined according to a random distribution or determined according to certain rules.
  • the data reception threshold may be equal to a percentage of the current data to be received.
  • the data reception threshold may be equal to the product of the number of data currently to be received at the receiving end and the set value, the set value is greater than 0 and the set value is less than 1, for example, the set value is 0.4, 0.5. , or 0.6, etc.
  • the set value can also be configured according to the requirements of the transmission rate. The higher the transmission rate requirement, the smaller the value of the set value.
  • the receiving end may determine, according to any one of the received m encoded messages, that the number of data to be received is N; and then, after sending the status information to the sending end, And updating the number of data to be received by the receiving end to Nn.
  • the receiving end updates the number of data to be received, so that the sending end does not need to obtain the quantity of data to be received from the m encoded messages.
  • the transmitting end receives the status information sent by the receiving end for the first time, the receiving end does not need to carry the coded information about the quantity of the data to be received.
  • the receiving end updates the number of data currently to be received by the receiving end, so that the data receiving amount threshold is updated.
  • the data reception amount threshold is equal to the product of the current number of data to be received at the receiving end and the set value, the set value is equal to 1/S, and the N data feedback status information in one data block is taken as an example.
  • the data reception threshold update method is described, as shown in FIG. 6. Wherein, where the schemes described in FIG. 4 and FIG. 5 are repeated, no further details are provided herein.
  • the transmitting end divides the data block to be sent into N pieces of data, so as to determine that the number of the first group of data to be sent is N.
  • the transmitting end encodes the N data into M encoded messages by using a fountain code technology.
  • the sending end sends the M encoded messages to the receiving end.
  • the receiving end receives the m encoded packets sent by the sending end.
  • the transmitting end randomly and continuously transmits n data of the N data
  • the receiving end sends status information to the sending end.
  • the sending end After receiving the status information from the receiving end, the sending end re-determines the second group of data to be sent from the N data according to the status information.
  • the number of the second group of data is N-n, and the N-n data is data of the N data that is not received by the receiving end.
  • the sending end sends, to the receiving end, L coded messages, where the L coded messages are obtained by using the fountain code technology.
  • the receiving end determines that the number of data to be received is N-n, and after receiving the encoded message sent by the sending end, the receiving end uses the fountain code technology to decode to obtain (N-n)/m data in N-n.
  • the receiving end sends status information to the sending end.
  • the receiving end sends Nn data after receiving the transmitting end
  • the Nn data is successfully decoded by decoding, that is, the receiving end successfully receives the Nn data to be received this time, and the receiving end can send the successfully received to the transmitting end.
  • the notification information of the data to be received so that the sender no longer transmits the data in the data block.
  • the embodiment of the present application provides a data transmission apparatus, which can implement a data transmission method performed by a transmitting end as shown in FIG. 4, FIG. 5, and FIG.
  • the apparatus may include:
  • the processing unit 701 is configured to determine a first group of data to be sent, where the number of the first group of data is N;
  • the encoding unit 702 is configured to encode the N data into M encoded messages by using a fountain code technology
  • the sending unit 703 is configured to send the M encoded messages to the receiving end.
  • the receiving unit 704 is configured to receive status information from the receiving end, where the status information is used to indicate that n of the N data has been successfully received, or the status information is used to indicate the N There are also Nn data in the data that are not successfully received, n is less than N;
  • the processing unit 701 is further configured to: according to the state information, re-determine a second group of data to be sent from the N data, where the number of the second group of data is Nn, the Nn data Data that is not received by the receiving end of the N data;
  • the sending unit 703 is further configured to send, to the receiving end, L coded messages, where the L coded messages are obtained by the coding unit by using a fountain code technology for the N-n data.
  • the sending unit 703 after determining that the receiving unit 704 does not receive the status information within a set duration, sends request information to the receiving end, the request information. And configured to instruct the receiving end to feed back the status information.
  • the status information includes a sequence number or number of the Nn data that has not been successfully received, or the status information includes a sequence number or number of n data that has been successfully received, or The status information includes a maximum sequence number or a maximum number among consecutive n pieces of data that have been successfully received.
  • each functional module in each embodiment of the present application may be integrated into one processing. In the device, it can also be physically existed alone, or two or more modules can be integrated into one module.
  • the above integrated modules can be implemented in the form of hardware or in the form of software functional modules.
  • the data transmission device applied to the transmitting end may include a communication interface 810, a processor 820, and a memory 830.
  • the hardware of the entity corresponding to the unit shown in FIG. 7 above may be the processor 820.
  • the processor 820 transmits and receives data through the communication interface 810 and is used to implement the method performed by the transmitting end described in Figures 3-6.
  • each step of the processing flow may be completed by an integrated logic circuit of hardware in the processor 820 or an instruction in the form of software.
  • the processor 820 can be a general-purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or a transistor logic device, and a discrete hardware component, which can be implemented or executed in the embodiment of the present application.
  • a general purpose processor can be a microprocessor or any conventional processor or the like. The steps of the method disclosed in the embodiments of the present application may be directly implemented as a hardware processor, or may be performed by a combination of hardware and software modules in the processor.
  • Program code for processor 820 to implement the above methods may be stored in memory 830.
  • the memory 830 may be a non-volatile memory, such as a hard disk drive (HDD) or a solid state drive (SSD), or a volatile memory (English: volatile) Memory), such as random access memory (English: random-access memory, abbreviation: RAM).
  • Memory 830 is 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, but is not limited thereto.
  • connection medium between the communication interface 810, the processor 820, and the memory 830 is not limited in the embodiment of the present application.
  • the memory 830, the processor 820, and the communication interface 810 are connected by a bus 840 in FIG. 8.
  • the bus is indicated by a thick line in FIG. 8, and the connection manner between other components is only schematically illustrated. , not limited to.
  • the bus can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in Figure 8, but it does not mean that there is only one bus or one type of bus.
  • the embodiment of the present application provides a data transmission apparatus, which can implement a data transmission method performed by a receiving end as shown in FIG. 4, FIG. 5, and FIG.
  • the apparatus may include:
  • the receiving unit 901 is configured to receive the m encoded packets sent by the sending end.
  • the decoding unit 902 is configured to perform decoding on the m encoded messages by using a fountain code decoding technology to obtain n data in a group of to-be-received data, where the n is greater than or equal to a data receiving amount threshold, and the data receiving threshold is Less than N, the N is the quantity of the set of data to be received;
  • the sending unit 903 is configured to send status information to the sending end according to the n data, where the status information is used to indicate that n data of the N data is successfully received, so that the sending end is configured according to the State information, the set of data to be received is changed to Nn data, and the Nn data is data other than the n data among the N data.
  • the data reception threshold is equal to a product of the quantity of the to-be-received data and a set value, the set value is greater than 0 and the set value is less than 1.
  • the receiving unit 901 is further configured to receive the request information sent by the sending end, where the request information is used to indicate that the receiving end feeds back the received data.
  • the sending unit 903 is specifically configured to send, according to the request information and the received n data, status information to the sending end, where the status information is used to indicate n data of the N data.
  • the status information has been successfully received, or the status information is used to indicate that Nn of the N data are not successfully received.
  • the status information includes a sequence number or a number of Nn data that has not been successfully received, or the status information includes a sequence number or number of n data that has been successfully received, or The status information includes the largest sequence number or the largest number among consecutive n data that have been successfully received.
  • the device may further include:
  • the processing unit 904 is configured to determine, according to any one of the received m encoded messages, that the number of the to-be-received data is N; after the sending unit 903 sends the status information to the sending end, Update the quantity of the set of data to be received to Nn.
  • each functional module in each embodiment of the present application may be integrated into one processing. In the device, it can also be physically existed alone, or two or more modules can be integrated into one module.
  • the above integrated modules can be implemented in the form of hardware or in the form of software functional modules.
  • the data transmission device applied to the receiving end may include a communication interface 1010, a processor 1020, and a memory 1030.
  • the hardware of the entity corresponding to the module shown in FIG. 9 above may be the processor 1020.
  • the processor 1020 transmits and receives data through the communication interface 1010 and is used to implement the method performed by the receiving end described in FIGS. 3-6.
  • each step of the processing flow may be completed by an integrated logic circuit of hardware in the processor 1020 or an instruction in the form of software.
  • the processor 1020 can be a general-purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or a transistor logic device, and a discrete hardware component, which can be implemented or executed in the embodiment of the present application.
  • a general purpose processor can be a microprocessor or any conventional processor or the like. The steps of the method disclosed in the embodiments of the present application may be directly implemented as a hardware processor, or may be performed by a combination of hardware and software modules in the processor.
  • Program code for processor 1020 to implement the above methods may be stored in memory 1030.
  • the memory 1030 may be a non-volatile memory, such as a hard disk drive (HDD) or a solid state drive (SSD), or a volatile memory (English: volatile) Memory), such as random access memory (English: random-access memory, abbreviation: RAM).
  • Memory 1030 is 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, but is not limited thereto.
  • the specific connection medium between the communication interface 1010, the processor 1020, and the memory 1030 is not limited in the embodiment of the present application.
  • the memory 1030, the processor 1020, and the communication interface 1010 are connected by a bus 1040 in FIG. 10.
  • the bus is indicated by a thick line in FIG. 10, and the connection manner between other components is only schematically illustrated. , not limited to.
  • the bus can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in FIG. 10, but it does not mean that there is only one bus or one type of bus.
  • the sending end receives the sending status information, and the status information indicates that the receiving end does not successfully receive the data or the data that is successfully received, so that the sending end does not perform the data received by the receiving end.
  • the code transmits, but reduces the range of data to be sent, and reduces the range of data to be sent to the data that is not successfully received by the receiving end, so that the receiving end randomly selects the data and then encodes the data.
  • the transmission because the data successfully received by the receiving end is not repeatedly coded and transmitted, reduces the long tail delay effect and improves the transmission efficiency of the message.
  • embodiments of the present application can be provided as a method, system, or computer program product.
  • the present application can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment in combination of software and hardware.
  • the application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.

Landscapes

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

Abstract

A data transmission method and apparatus, wherein same are used for improving the long tail delay problem in fountain code transmission. The data transmission method comprises: determining a first group of data to be sent, with the amount of the first group of data being N; encoding the N pieces of data into M coded messages using fountain code technology; sending the M coded messages to a receiving end; receiving state information from the receiving end, wherein the state information is used for indicating that n pieces of data in the N data have been successfully received, or the state information is used for indicating that N-n pieces of data in the N data have not been successfully received, with n being less than N; redetermining, in the N pieces of data, a second group of data to be sent according to the state information, wherein the amount of the second group of data is N-n, the N-n pieces of data being the data that has not been successfully received by the receiving end in the N pieces of data; and sending L coded messages to the receiving end, wherein the L coded messages are obtained from the N-n pieces of data by the fountain code technology.

Description

一种数据传输方法及装置Data transmission method and device
本申请要求在2017年3月24日提交中国专利局、申请号为201710184930.0、发明名称为“一种数据传输方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。The present application claims the priority of the Chinese Patent Application, which is filed on March 24, 2017, the entire disclosure of which is hereby incorporated by reference. .
技术领域Technical field
本申请涉及信息技术领域,尤其涉及一种数据传输方法及装置。The present application relates to the field of information technology, and in particular, to a data transmission method and apparatus.
背景技术Background technique
喷泉码可以分为随机线性喷泉码、卢比(英文:Luby Transform,简称:LT)码和Raptor码。喷泉码的原理是发送端将原始数据文件分割为多个数据,然后针对多个数据,随机的源源不断进行编码产生编码数据包发送到接收端,直到接收端全部接收为止。The fountain code can be divided into a random linear fountain code, a rupee (English: Luby Transform, LT) code and a Raptor code. The principle of the fountain code is that the sender divides the original data file into multiple data, and then for a plurality of data, the random source is continuously encoded to generate an encoded data packet and sent to the receiving end until the receiving end receives all.
由于喷泉码编码在选择报文进行编码时通过随机的方式选择,因此导致部分报文在长时间未被编码发送,使得数据传输时延较长,这种问题也可以称为LT码的长尾时延问题。Since the fountain code encoding is selected in a random manner when the selected message is encoded, some of the messages are not encoded and transmitted for a long time, so that the data transmission delay is long. This problem can also be called the long tail of the LT code. Delay problem.
现有技术的方法,长尾时延问题都较为严重。In the prior art method, the long tail delay problem is more serious.
发明内容Summary of the invention
本申请提供一种数据传输方法及装置,用于改善喷泉码传输的长尾时延问题。The present application provides a data transmission method and apparatus for improving the long tail delay problem of fountain code transmission.
第一方面,本申请实施例提供了一种数据传输方法,所述方法应用于数据的发送端,包括:In a first aspect, the embodiment of the present application provides a data transmission method, where the method is applied to a data sending end, and includes:
所述发送端确定待发送的第一组数据,所述第一组数据的数量为N个;使用喷泉码技术将所述N个数据编码成M个编码报文;并向接收端发送所述M个编码报文;接收来自所述接收端的状态信息,所述状态信息用于指示所述N个数据中的n个数据已被成功接收,或者,所述状态信息用于指示所述N个数据中还有N-n个数据未被成功接收,n小于N;根据所述状态信息,从所述N个数据中,重新确定待发送的第二组数据,所述第二组数据的数量为N-n个,所述N-n个数据为所述N个数据中未被所述接收端接收的数据;向所述接收端发送L个编码报文,所述L个编码报文是所述N-n个数据通过喷泉码技术编码得到的。Determining, by the sending end, the first group of data to be sent, the number of the first group of data is N; encoding the N data into M coded messages by using a fountain code technology; and sending the M coding messages; receiving status information from the receiving end, the status information is used to indicate that n of the N data has been successfully received, or the status information is used to indicate the N In the data, Nn data is not successfully received, and n is less than N. According to the state information, a second group of data to be sent is re-determined from the N data, and the number of the second group of data is Nn. The Nn data is data that is not received by the receiving end of the N data; and L coded messages are sent to the receiving end, where the L coded messages are the Nn data passing Fountain code technology coded.
上述方案中,发送端接收接收端发送状态信息,状态信息表明接收端未成功接收到的数据或者成功接收的数据,从而所述发送端不再针对接收端接收到的数据进行编码发送,而是缩减待发送的一组数据的范围,将待发送的数据的范围缩减为接收端未成功接收到的数据,从而接收端从未成功接收到的数据中随机选择数据再进行编码发送,由于针对接收端成功接收到的数据不再重复编码发送,因此减少了长尾时延效应,并且提高了报文的传输效率。In the above solution, the sending end receives the status information sent by the receiving end, and the status information indicates the data that the receiving end has not successfully received or the data that is successfully received, so that the sending end does not encode and transmit the data received by the receiving end, but The range of the data to be sent is reduced, and the range of the data to be sent is reduced to the data that is not successfully received by the receiving end, so that the receiving end randomly selects the data and then performs the encoding and sending, because the receiving is performed. The data successfully received by the terminal is not repeatedly coded and transmitted, thereby reducing the long tail delay effect and improving the transmission efficiency of the message.
在一种可能的设计中,所述方法还可以包括:所述发送端在设定时长内未接收到所述状态信息时,向所述接收端发送用于指示所述接收端反馈所述状态信息的请求信息。In a possible design, the method may further include: when the sending end does not receive the status information within a set duration, sending, to the receiving end, the sending end to instruct the receiving end to feed back the status. Request information for information.
上述设计,发送端在设定时长内未收到状态信息时,及时发送请求信息,从而接收端 在接收到该请求信息后,重发状态信息,保证发送端接收到状态信息,从而着重发送接收端未成功接收的数据,提高接收端的接收报文的成功率,减少解码长尾时间,减少发送端发送报文的重复率。In the above design, when the transmitting end does not receive the status information within the set duration, the request information is sent in time, so that the receiving end resends the status information after receiving the request information, and ensures that the sending end receives the status information, thereby focusing on transmitting and receiving. The data that is not successfully received by the terminal improves the success rate of receiving packets at the receiving end, reduces the long tail time of decoding, and reduces the repetition rate of packets sent by the transmitting end.
在一种可能的设计中,所述状态信息包括未被成功接收的所述N-n个数据的序列号或者编号,或者所述状态信息包括已被成功接收的n个数据的序列号或者编号,或者所述状态信息中包括已被成功接收的连续的n个数据中的最大序列号或者最大编号。In one possible design, the status information includes a sequence number or number of the Nn data that has not been successfully received, or the status information includes a sequence number or number of n data that has been successfully received, or The status information includes a maximum sequence number or a maximum number among consecutive n pieces of data that have been successfully received.
第二方面,本申请实施例提供了一种数据传输方法,所述方法应用于数据的接收端,包括:所述接收端接收到发送端发送的m个编码报文;针对所述m个编码报文通过喷泉码解码技术进行解码,得到一组待接收数据中的n个数据,所述n大于等于数据接收量阈值,所述数据接收量阈值小于N,所述N为所述一组待接收数据的数量;根据所述n个数据,向所述发送端发送状态信息,所述状态信息用于指示所述N个数据中的n个数据成功接收,以便于所述发送端根据所述状态信息,将所述一组待接收数据更改为N-n个数据,所述N-n个数据为所述N个数据中除所述n个数据之外的数据。In a second aspect, the embodiment of the present application provides a data transmission method, where the method is applied to a data receiving end, and the method includes: receiving, by the receiving end, m encoded messages sent by a sending end; The packet is decoded by the fountain code decoding technology, and n data of a set of data to be received is obtained. The n is greater than or equal to the data reception threshold, the data reception threshold is less than N, and the N is the set of And receiving, according to the n data, status information to the sending end, where the status information is used to indicate that n data of the N data is successfully received, so that the sending end is configured according to the Status information, the set of data to be received is changed to Nn data, and the Nn data is data other than the n data among the N data.
其中,发送端在发送数据时,从一组待发送数据中随机选择数据进行编码得到编码报文,从将编码报文发送给接收端,该一组待发送的数据也就是接收端待接收的数据。因此,一组待接收数据的数量为所述m个编码报文对应的数据所在的这一组待发送的数据的数量,也就是第二方面中描述的N个。应理解,在喷泉码技术中,可以通过数据报文中的某个字段来携带该数据报文对应的数据组所包括的数据量(N),或者携带该数据报文所在的报文组的报文数量(M)。因此,第二方面中,虽然接收端已经接收了组数据中的n个数据,但接收端仍然认为,对这组数据,待接收数据的数量仍然为N个,而不是N-n个。The transmitting end randomly selects data from a set of data to be transmitted to obtain an encoded message when transmitting data, and sends the encoded message to the receiving end, and the data to be sent is the receiving end to be received. data. Therefore, the number of data to be received is the number of data to be transmitted in which the data corresponding to the m encoded messages is located, that is, N described in the second aspect. It should be understood that, in the fountain code technology, the data amount (N) included in the data group corresponding to the data packet may be carried by a certain field in the data packet, or the packet group in which the data packet is carried may be carried. Number of messages (M). Therefore, in the second aspect, although the receiving end has received n data in the group data, the receiving end still believes that for the set of data, the number of data to be received is still N instead of N-n.
具体的,接收端接收发送端发送的经过编码后的编码报文,并针对编码报文进行解码得到n个数据报文,确定解码得到的数据报文的数量n大于或者等于报文数量阈值时,向所述发送端发送状态信息,所述状态信息用于指示所述N个数据中的n个数据成功接收,从而所述发送端在接收到所述状态信息后,不再针对接收端接收到的数据进行编码发送,而是缩减待发送的一组数据的范围,将待发送的数据的范围缩减为接收端未成功接收到的数据,从而接收端从未成功接收到的数据中随机选择数据再进行编码发送,由于针对接收端成功接收到的数据不再重复编码发送,因此减少了长尾时延效应,并且提高了报文的传输效率。Specifically, the receiving end receives the encoded encoded message sent by the sending end, and decodes the encoded message to obtain n data packets, and determines that the number n of the decoded data packets is greater than or equal to the threshold number of packets. Sending status information to the sending end, where the status information is used to indicate that n data of the N data is successfully received, so that the sending end does not receive the receiving end after receiving the status information. The received data is encoded and transmitted, but the range of the data to be sent is reduced, and the range of the data to be transmitted is reduced to the data that the receiving end has not successfully received, so that the receiving end randomly selects the data that has never been successfully received. The data is further encoded and transmitted. Since the data successfully received by the receiving end is not repeatedly coded and transmitted, the long tail delay effect is reduced, and the transmission efficiency of the message is improved.
在一种可能的设计中,本申请实施例中数据接收量阈值基于一组待接收数据的数量来确定。具体的,数据接收量阈值可以等于一组待接收数据的数量乘上一个百分比。数据接收量阈值可以等于所述接收端一组待接收数据的数量与设定值的乘积,所述设定值大于0且所述设定值小于1。比如设定值等于1/S,其中m满足0<=S<=一组待接收数据的数量。In one possible design, the data reception threshold in the embodiment of the present application is determined based on the number of data to be received. Specifically, the data reception threshold may be equal to a number of data to be received multiplied by a percentage. The data reception threshold may be equal to a product of a quantity of data to be received at the receiving end and a set value, the set value being greater than 0 and the set value being less than 1. For example, the set value is equal to 1/S, where m satisfies 0<=S<= the number of data to be received.
上述设计,数据接收量阈值基于待接收的数据的数量来确定,保证了接收端在接收到待接收到数据中的一定数量的数据后,及时的反馈状态信息,提高解码成功率、减少解码长尾时间。In the above design, the data reception threshold is determined based on the number of data to be received, which ensures that the receiving end timely feedbacks the state information after receiving a certain amount of data in the data to be received, thereby improving the decoding success rate and reducing the decoding length. Tail time.
在一种可能的设计中,所述方法还可以包括:接收到所述发送端发送的请求信息,所述请求信息用于指示所述接收端反馈接收数据的情况;根据所述n个数据,向所述发送端发送状态信息,包括:根据所述请求信息以及接收到的所述n个数据,向所述发送端发送状态信息,所述状态信息用于指示所述N个数据中的n个数据已被成功接收,或者,所述状态信息用于指示所述N个数据中还有N-n个数据未被成功接收。In a possible design, the method may further include: receiving request information sent by the sending end, where the request information is used to indicate that the receiving end feeds back the received data; and according to the n data, Transmitting the status information to the sending end, including: sending, according to the request information and the received n data, status information to the sending end, where the status information is used to indicate n of the N data The data has been successfully received, or the status information is used to indicate that Nn of the N data are not successfully received.
通过上述设计,如果接收端发送状态信息后而发送端未接收到时,发送端请求接收端反馈状态信息,保证接收端正常反馈状态信息,而发送端成功接收到状态信息,提高解码成功率,减少解码长尾时间。Through the above design, if the receiving end sends the status information and the transmitting end does not receive the signal, the transmitting end requests the receiving end to feed back the status information to ensure that the receiving end normally returns the status information, and the transmitting end successfully receives the status information, thereby improving the decoding success rate. Reduce decoding long tail time.
在一种可能的设计中,,所述状态信息包括未被成功接收的N-n个数据的序列号或者编号,或者所述状态信息包括已被成功接收的n个数据的序列号或者编号,或者所述状态信息中包括已被成功接收的连续的n个数据中的最大序列号或者最大编号。In a possible design, the status information includes a sequence number or number of Nn data that has not been successfully received, or the status information includes a sequence number or number of n data that has been successfully received, or The status information includes the largest sequence number or the largest number among consecutive n data that have been successfully received.
通过上述设计,通过报文的序列号或者编号作为状态信息,从而使得状态信息占用的比特位较小,减少了资源占用。Through the above design, the sequence number or number of the message is used as the state information, so that the bit occupied by the state information is smaller, and the resource occupation is reduced.
在一种可能的设计中,所述方法还包括:接收端根据接收到的m个编码报文中的任意一个,确定所述一组待接收数据的数量为N个;在向所述发送端发送状态信息后,将所述一组待接收数据的数量更新为N-n。In a possible design, the method further includes: the receiving end determines, according to any one of the received m encoded messages, that the number of the to-be-received data is N; After the status information is sent, the quantity of the set of data to be received is updated to Nn.
通过上述设计,接收端更新当前待接收的数据的数量,从而发送端不需要再从m个编码报文中获取待接收的数据的数量。另外,发送端针对一个数据块接收到接收端第一次发送的状态信息,由于接收端自己更新了待接收的数据的数量,因此不再需要将待接收数据的数量的相关信息携带在编码报文中了。Through the above design, the receiving end updates the number of data to be received, so that the sending end does not need to obtain the quantity of data to be received from the m encoded messages. In addition, the transmitting end receives the status information sent by the receiving end for the first time for a data block. Since the receiving end itself updates the quantity of data to be received, it is no longer necessary to carry the related information of the quantity of the data to be received in the coded report. In the text.
在一种可能的设计中,所述方法还包括:所述接收端确定成功接收到所述一组待接收的数据中的所有数据,向所述发送端发送通知信息,所述通知信息用于指示所述接收端成功接收到所述一组待接收的数据中的所有数。In a possible design, the method further includes: the receiving end determines that all data in the set of data to be received is successfully received, and sends notification information to the sending end, where the notification information is used. Instructing the receiving end to successfully receive all the numbers in the set of data to be received.
基于与方法实施例同样的发明构思,第三方面,本申请实施例提供了一种数据传输装置,所述装置应用于接收端,包括:处理单元,用于确定待发送的第一组数据,所述第一组数据的数量为N个;编码单元,用于使用喷泉码技术将所述N个数据编码成M个编码报文;发送单源,用于向接收端发送所述M个编码报文;接收单元,用于接收来自所述接收端的状态信息,所述状态信息用于指示所述N个数据中的n个数据已被成功接收,或者,所述状态信息用于指示所述N个数据中还有N-n个数据未被成功接收,n小于N;所述处理单元,还用于根据所述状态信息,从所述N个数据中,重新确定待发送的第二组数据,所述第二组数据的数量为N-n个,所述N-n个数据为所述N个数据中未被所述接收端接收的数据;所述发送单元,还用于向所述接收端发送L个编码报文,所述L个编码报文是所述编码单元针对所述N-n个数据通过喷泉码技术编码得到的。Based on the same inventive concept as the method embodiment, in a third aspect, the embodiment of the present application provides a data transmission device, where the device is applied to a receiving end, and includes: a processing unit, configured to determine a first group of data to be sent, The number of the first group of data is N; the coding unit is configured to encode the N data into M coded messages by using a fountain code technology; and send a single source, and send the M codes to the receiving end. a receiving unit, configured to receive status information from the receiving end, where the status information is used to indicate that n of the N data has been successfully received, or the status information is used to indicate the The processing unit is further configured to: re-determine the second group of data to be sent from the N data according to the state information, where Nn data is not successfully received, and n is smaller than N; The number of the second group of data is Nn, and the Nn data is data that is not received by the receiving end of the N data; the sending unit is further configured to send L to the receiving end. Encoded message, the L codes The message is obtained by the coding unit by the fountain code technique for the N-n data.
在一种可能的设计中,所述发送单元,在确定所述接收单元在设定时长内未接收到所述状态信息的情况下,向所述接收端发送请求信息,所述请求信息用于指示所述接收端反馈所述状态信息。In a possible design, the sending unit, when determining that the receiving unit does not receive the status information within a set duration, sends request information to the receiving end, where the request information is used. Instructing the receiving end to feed back the status information.
在一种可能的设计中,所述状态信息包括未被成功接收的所述N-n个数据的序列号或者编号,或者所述状态信息包括已被成功接收的n个数据的序列号或者编号,或者所述状态信息中包括已被成功接收的连续的n个数据中的最大序列号或者最大编号。In one possible design, the status information includes a sequence number or number of the Nn data that has not been successfully received, or the status information includes a sequence number or number of n data that has been successfully received, or The status information includes a maximum sequence number or a maximum number among consecutive n pieces of data that have been successfully received.
第四方面,本申请实施例提供了一种数据传输装置,所述装置应用于数据的接收端,包括:接收单元,用于接收到发送端发送的m个编码报文;解码单元,用于针对所述m个编码报文通过喷泉码解码技术进行解码,得到一组待接收数据中的n个数据,所述n大于等于数据接收量阈值,所述数据接收量阈值小于N,所述N为所述一组待接收数据的数量;发送单元,用于根据所述n个数据,向所述发送端发送状态信息,所述状态信息用于指示所述N个数据中的n个数据成功接收,以便于所述发送端根据所述状态信息,将所述 一组待接收数据更改为N-n个数据,所述N-n个数据为所述N个数据中除所述n个数据之外的数据。In a fourth aspect, the embodiment of the present application provides a data transmission apparatus, where the apparatus is applied to a data receiving end, and includes: a receiving unit, configured to receive m encoded messages sent by a sending end; and a decoding unit, configured to: Decoding the m coded packets by the fountain code decoding technology to obtain n data in a set of data to be received, wherein the n is greater than or equal to a data reception threshold, and the data reception threshold is less than N, the N And a sending unit, configured to send, according to the n data, status information to the sending end, where the status information is used to indicate that n of the N data is successful. Receiving, so that the sending end changes the set of data to be received to Nn data according to the status information, where the Nn data is data other than the n data among the N data. .
在一种可能的设计中,所述数据接收量阈值等于所述一组待接收数据的数量与设定值的乘积,所述设定值大于0且所述设定值小于1。In one possible design, the data reception threshold is equal to a product of the number of data to be received and a set value, the set value being greater than zero and the set value being less than one.
在一种可能的设计中,所述接收单元,还用于接收到所述发送端发送的请求信息,所述请求信息用于指示所述接收端反馈接收数据的情况;所述发送单元,具体用于根据所述请求信息以及接收到的所述n个数据,向所述发送端发送状态信息,所述状态信息用于指示所述N个数据中的n个数据已被成功接收,或者,所述状态信息用于指示所述N个数据中还有N-n个数据未被成功接收。In a possible design, the receiving unit is further configured to receive the request information sent by the sending end, where the request information is used to indicate that the receiving end feeds back the received data; the sending unit, specifically And configured to send status information to the sending end according to the request information and the received n data, where the status information is used to indicate that n of the N data has been successfully received, or The status information is used to indicate that Nn of the N data are not successfully received.
在一种可能的设计中,所述状态信息包括未被成功接收的N-n个数据的序列号或者编号,或者所述状态信息包括已被成功接收的n个数据的序列号或者编号,或者所述状态信息中包括已被成功接收的连续的n个数据中的最大序列号或者最大编号。In one possible design, the status information includes a sequence number or number of Nn data that has not been successfully received, or the status information includes a sequence number or number of n data that has been successfully received, or The status information includes the largest serial number or the largest number among consecutive n data that have been successfully received.
在一种可能的设计中,所述方法还包括:处理单元,用于根据接收到的m个编码报文中的任意一个,确定所述一组待接收数据的数量为N个;在所述发送单元向所述发送端发送状态信息后,将所述一组待接收数据的数量更新为N-n。In a possible design, the method further includes: a processing unit, configured to determine, according to any one of the received m encoded messages, that the number of the to-be-received data is N; After the sending unit sends the status information to the sending end, the quantity of the set of data to be received is updated to Nn.
第五方面,本申请实施例提供了一种数据传输装置,所述装置应用于数据的发送端,包括通信接口、处理器和存储器,所述存储器用于存储软件程序,所述处理器用于读取所述存储器中存储的软件程序,通过所述通信接口收发数据,并实现第一方面或上述第一方面的任意一种设计提供的方法。In a fifth aspect, an embodiment of the present application provides a data transmission apparatus, where the apparatus is applied to a data sending end, and includes a communication interface, a processor, and a memory, where the memory is used to store a software program, and the processor is used to read And taking the software program stored in the memory, transmitting and receiving data through the communication interface, and implementing the method provided by any one of the first aspect or the first aspect.
第六方面,本申请实施例提供了一种数据传输装置,所述装置应用于数据的接收端,包括通信接口、处理器和存储器,所述存储器用于存储软件程序,所述处理器用于读取所述存储器中存储的软件程序,通过所述通信接口收发数据,并实现第二方面或上述第二方面的任意一种设计提供的方法。In a sixth aspect, an embodiment of the present application provides a data transmission apparatus, where the apparatus is applied to a receiving end of data, including a communication interface, a processor, and a memory, where the memory is used to store a software program, and the processor is used to read Taking the software program stored in the memory, transmitting and receiving data through the communication interface, and implementing the method provided by any one of the second aspect or the second aspect.
第七方面,本申请实施例中还提供一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现第一方面或上述第一方面的任意一种设计提供的方法,或者实现第二方面或者第二方面的任一种设计所提供的方法。In a seventh aspect, the embodiment of the present application further provides a computer storage medium, where the software program stores a software program, where the software program can implement the first aspect or the first one when being read and executed by one or more processors. A method provided by any one of the aspects, or a method provided by any one of the second aspect or the second aspect.
附图说明DRAWINGS
图1为本申请实施例提供的应用架构示意图;FIG. 1 is a schematic diagram of an application architecture provided by an embodiment of the present application;
图2为本申请实施例提供的喷泉码技术的数据传输方法示意图;2 is a schematic diagram of a data transmission method of a fountain code technology according to an embodiment of the present application;
图3至图6为本申请实施例提供的数据传输方法示意图;FIG. 3 to FIG. 6 are schematic diagrams of data transmission methods according to an embodiment of the present application;
图7至图8为本申请实施例提供的应用于接收端的数据传输装置示意图;7 to FIG. 8 are schematic diagrams of a data transmission apparatus applied to a receiving end according to an embodiment of the present application;
图9至图10为本申请实施例提供的应用于发送端的数据传输装置示意图。9 to FIG. 10 are schematic diagrams of a data transmission apparatus applied to a transmitting end according to an embodiment of the present application.
具体实施方式detailed description
本申请可以应用于数据中心间的低时延传输、或者实时视频通信、或者卫星通信等应用场景中。The application can be applied to low-latency transmission between data centers, or real-time video communication, or satellite communication and other application scenarios.
参见图1所示,以数据中心间的低时延传输场景为例,应用架构中包括数据中心A、数据中心B,多个互联网服务提供商(英文:Internet Service Provider,简称:ISP)。互联 网服务提供商用于为用户提供互联网服务。用户通过ISP可以接入距离自己较近的数据中心。数据中心之间通过专有/公有链路连接。数据中心A可以通过专有或者公有链路向数据中心B发送数据,数据中心B也可以通过专有或者公有链路向数据中心A发送数据,从而数据中心A可以作为接收端也可以作为发送端,同理,数据中心B可以作为发送端或者作为接收端。数据中心A与数据中心B中通过喷泉码(Fountain Codes)的方式传输数据。As shown in Figure 1, the low-latency transmission scenario between data centers is used as an example. The application architecture includes data center A, data center B, and multiple Internet service providers (English: Internet Service Provider, ISP for short). Internet service providers are used to provide Internet services to users. Users can access the data center closer to themselves through the ISP. Data centers are connected by proprietary/public links. Data Center A can send data to Data Center B through a proprietary or public link. Data Center B can also send data to Data Center A through a proprietary or public link, so that Data Center A can act as both a receiving end and a transmitting end. Similarly, data center B can act as a sender or as a receiver. In Data Center A and Data Center B, data is transmitted by Fountain Codes.
所谓喷泉码,是指发送端将原始数据文件分割为多个数据块,每个数据块中包括多个数据。发送端针对每个数据块分别进行传输,一个数据块传输完成后,传输另一个数据块,直到原始数据文件传输完成。比如针对数据块A,参见图2所示,数据块A包括K个数据,为待发送的一组数据,每次随机的从K个数据中选择一定数量的数据采用喷泉码技术进行编码产生编码报文,并将编码报文发送到接收端,接收端在接收到编码报文后,利用喷泉码技术对接收到的编码报文进行解码,得到对应的数据,当全部解码出该k个数据时,则接收端获取数据块A,即完成了数据块A从该发送端到该发送端的传输。The so-called fountain code means that the transmitting end divides the original data file into a plurality of data blocks, and each data block includes a plurality of data. The transmitting end transmits separately for each data block, and after one data block transmission is completed, another data block is transmitted until the original data file transmission is completed. For example, for data block A, as shown in FIG. 2, data block A includes K data, which is a group of data to be sent, and each time a certain amount of data is randomly selected from K data, coded by fountain code technology to generate coding. The message is sent to the receiving end, and after receiving the encoded message, the receiving end decodes the received encoded message by using the fountain code technology to obtain corresponding data, and all the k data are decoded. At the same time, the receiving end acquires the data block A, that is, the transmission of the data block A from the transmitting end to the transmitting end is completed.
喷泉码可以分为随机线性喷泉码、LT(Luby Transform)码和Raptor码。LT码是第一种具有实用性能的喷泉码方案,LT码的编译码方法为:在发送端每次按一定的度(d)分布从k个数据中随机选取d个数据,然后所选取的d个数据进行异或运算,得到编码报文,向接收端发送编码报文。接收端只需接收L(L大于k)个编码报文后,就能以不低于(1-e)的概率恢解码出k个数据,e为接收端对编码报文的不可恢复概率。e随着n的增大递减。当n趋于无穷时(即接收端收到无限多的编码报文),e趋于0。合理的度数分布是LT码性能的关键。应理解,喷泉码在发送期间若发生丢包时,无需向发送端反馈接收状态,即无需通知发送端重新传输丢弃的包。Fountain code can be divided into random linear fountain code, LT (Luby Transform) code and Raptor code. The LT code is the first fountain code scheme with practical performance. The encoding and decoding method of the LT code is: randomly select d data from k data at a certain degree (d) distribution at the transmitting end, and then select the selected data. The d data is XORed to obtain an encoded message, and the encoded message is sent to the receiving end. After receiving the L (L is greater than k) coded messages, the receiving end can recover k data with a probability of not less than (1-e), and e is the unrecoverable probability of the received message on the receiving end. e decreases as n increases. When n tends to infinity (ie, the receiving end receives an infinite number of encoded messages), e tends to zero. A reasonable degree distribution is the key to the performance of the LT code. It should be understood that if the fountain code loses packets during transmission, it is not necessary to feed back the reception status to the transmitting end, that is, it is not necessary to notify the transmitting end to retransmit the discarded packet.
在两个数据中心间,采用喷泉码技术进行编解码,喷泉码是发送端随机的源源不断从待发送的数据中选择数据进行编码产生编码报文发送到接收端,直到接收端全部接收为止。从而在两个数据中心间会有较多的数据的重复传输,由于两个数据中心之间的传输距离较长,因此会由于重复传输带来较大的时延。Between the two data centers, the fountain code technology is used for encoding and decoding. The fountain code is a random source of the transmitting end. The source is continuously selected from the data to be transmitted for encoding, and the encoded message is sent to the receiving end until the receiving end receives all. Therefore, there will be more repeated data transmission between the two data centers. Due to the long transmission distance between the two data centers, a large delay will occur due to repeated transmission.
基于此,本申请提供了一种数据传输方法及装置,其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。Based on this, the present application provides a data transmission method and apparatus, wherein the method and apparatus are based on the same inventive concept. Since the principles of the method and the apparatus for solving the problem are similar, the implementation of the apparatus and the method can be referred to each other, and the repetition is performed. No longer.
参见图3所示为本申请实施例中提供的数据传输原理示意图,发送端针对原始数据文件进行数据分块得到多个数据块,针对每个数据块进行分割得到待发送的一组数据,然后对分割后的待发送的一组数据采用喷泉码技术进行编码得到编码报文,发送端将编码报文发送给接收端。接收端接收到发送端发送的编码报文后,采用喷泉码技术进行解码,当接收端接收到所有的数据后,针对解码后的数据进行数据重构得到原始数据文件。本申请实施例中在接收端进行解码得到预设数量的数据后,会向所述发送端发送状态信息,状态信息表明接收端未成功接收到数据或者成功接收的数据,从而发送端在接收到该状态信息后,不再针对接收端接收到的数据进行编码发送,而是缩减待发送的一组数据的范围,将待发送的数据的范围缩减为接收端未成功接收到的数据,从而接收端从未成功接收到的数据中随机选择数据再进行编码发送,由于针对接收端成功接收到的数据不再重复编码发送,因此减少了长尾时延效应,并且提高了报文的传输效率。3 is a schematic diagram of the data transmission principle provided in the embodiment of the present application. The transmitting end performs data segmentation on the original data file to obtain a plurality of data blocks, and performs segmentation for each data block to obtain a set of data to be sent, and then The segmented data to be sent is encoded by the fountain code technology to obtain an encoded message, and the transmitting end sends the encoded message to the receiving end. After receiving the encoded message sent by the transmitting end, the receiving end uses the fountain code technology to decode. After receiving all the data, the receiving end performs data reconstruction on the decoded data to obtain the original data file. In the embodiment of the present application, after the receiving end decodes to obtain a preset amount of data, the status information is sent to the sending end, and the status information indicates that the receiving end does not successfully receive the data or successfully receives the data, so that the sending end receives the data. After the status information, the data received by the receiving end is no longer encoded and transmitted, but the range of the data to be sent is reduced, and the range of the data to be sent is reduced to the data that the receiving end does not successfully receive, thereby receiving The data is randomly selected from the data that has never been successfully received, and then encoded and transmitted. Since the data successfully received by the receiving end is not repeatedly coded and transmitted, the long tail delay effect is reduced, and the transmission efficiency of the message is improved.
另外,应当理解,尽管在本申请实施例中可能采用术语第一、第二等来描述各组数据、 但这些数据不应限于这些术语。这些术语仅用来将各组数据彼此区分开。In addition, it should be understood that although the terms first, second, etc. may be used to describe each set of data in the embodiments of the present application, such data should not be limited to these terms. These terms are only used to distinguish each group of data from each other.
下面对本申请实施例作进一步地详细描述。The embodiments of the present application are further described in detail below.
参见图4所示,为本申请实施例提供的一种数据传输方法,该方法包括:As shown in FIG. 4, a data transmission method provided by an embodiment of the present application includes:
S401,发送端确定待发送的第一组数据。S401. The transmitting end determines a first group of data to be sent.
其中,待发送的的第一组数据包括的N个数据报文可以是针对原始数据文件分割后的一个数据块中包括的所有的数据,还可以是上次接收到接收端发送的状态信息后,经过重新确定的待发送的数据。The N data packets included in the first group of data to be sent may be all the data included in one data block divided by the original data file, or may be the last time the status information sent by the receiving end is received. , the data to be sent that has been re-determined.
S402,所述发送端使用喷泉码技术将所述N个数据编码成M个编码报文。S402. The transmitting end encodes the N data into M encoded messages by using a fountain code technology.
S403,所述发送端向接收端发送所述M个编码报文。S403. The sending end sends the M encoded messages to the receiving end.
具体的,所述发送端使用喷泉码技术每次从所述N个数据随机选择几个数据进行编码得到编码报文并将编码报文发送,并且在发送编码报文的过程中,也在针对其他的数据进行编码。Specifically, the sending end uses the fountain code technology to randomly select several data from the N data to encode the encoded message and send the encoded message, and in the process of sending the encoded message, Other data is encoded.
S404,所述接收端接收到所述发送端发送的m个编码报文。其中,在数据传输的过程中,没有发生丢包的情况下,m等于M,或者在发送丢包的情况下,m小于M。S404. The receiving end receives the m encoded packets sent by the sending end. Wherein, in the process of data transmission, when no packet loss occurs, m is equal to M, or in the case of sending a packet loss, m is smaller than M.
S405,针对所述m个编码报文通过喷泉码解码技术进行解码,得到一组待接收数据中的n个数据。所述n大于等于数据接收量阈值,所述数据接收量阈值小于N,所述N为所述一组待接收数据的数量;其中,一组待接收的数据也就是步骤S301中所述的待发送的第一组数据。S405. Decode the m encoded messages by using a fountain code decoding technology to obtain n data in a set of data to be received. The n is greater than or equal to the data receiving amount threshold, the data receiving amount threshold is less than N, and the N is the quantity of the set of data to be received; wherein, a set of data to be received is also the waiting in step S301. The first set of data sent.
由于所述发送端随机的从N个数据中选择数据进行编码,并连续的向发送端发送编码报文。从而接收端针对编码报文进行解码。在所述发送端针对了大于n的数量的数据进行编码为编码报文,并向所述接收端发送的情况下,由于编码报文在传输过程中可能发生丢包,因此接收端在针对接收到的编码报文解码后,解码得到n个数据。如果所述发送端针对了n个数据进行编码为编码报文,并向所述接收端发送的情况下,编码报文在传输过程中未发生丢包的情况下,接收端针对接收到的编码报文解码后,得到n个数据。The transmitting end randomly selects data from the N data for encoding, and continuously sends the encoded message to the transmitting end. Thereby the receiving end decodes the encoded message. When the transmitting end encodes the data of the quantity greater than n into the encoded message and sends the encoded message to the receiving end, the receiving end may be lost due to the packet loss during the transmission process. After the encoded message is decoded, n data is decoded. If the transmitting end encodes the n data into an encoded message and sends the encoded message to the receiving end, if the encoded message does not have a packet loss during the transmission, the receiving end is configured to receive the encoded code. After the message is decoded, n data is obtained.
其中,发送端可以将待接收的数据的数量携带在任一个编码报文中发送给接收端,具体的,待接收的数据的数量可以占用数据中的一个比特位。The sender can carry the number of data to be received in any one of the encoded messages and send it to the receiving end. Specifically, the number of data to be received can occupy one bit in the data.
S406,根据所述n个数据,向所述发送端发送状态信息。S406. Send status information to the sending end according to the n data.
其中,所述状态信息用于指示所述N个数据中的n个数据成功接收,以便于所述发送端根据所述状态信息,将所述一组待接收数据更改为N-n个数据,所述N-n个数据为所述N个数据中除所述n个数据之外的数据。其中,M=N-n。The status information is used to indicate that n data of the N data is successfully received, so that the sending end changes the set of data to be received to Nn data according to the status information, The Nn data is data other than the n data among the N data. Where M=N-n.
所述状态信息用于指示所述N个数据中的n个数据成功接收或者用于指示M个数据未成功接收。The status information is used to indicate that n of the N data is successfully received or used to indicate that M data is not successfully received.
S407,所述发送端接收来自所述接收端的所述状态信息。S407. The transmitting end receives the status information from the receiving end.
S408,所述发送端根据所述状态信息,从所述N个数据中,重新确定待发送的第二组数据,所述第二组数据的数量为N-n个。所述N-n个数据为所述N个数据中未被所述接收端成功接收的数据。S408. The sending end re-determines the second group of data to be sent from the N data according to the state information, where the number of the second group of data is N-n. The N-n data is data of the N data that is not successfully received by the receiving end.
具体的,所述发送端根据所述状态信息,从将待发送的第一组数据的范围缩减为N-n,经过缩减范围后的数据构成待发送的第二组数据。Specifically, the sending end reduces the range of the first group of data to be sent to N-n according to the state information, and the data after the reduced range constitutes the second group of data to be sent.
S409,所述发送端向所述接收端发送L个编码报文。所述L个编码报文是所述N-n个数据通过喷泉码技术编码得到的。S409. The sending end sends L coded messages to the receiving end. The L coded messages are obtained by encoding the N-n data by a fountain code technique.
可选地,所述接收端在确定成功接收到一组待接收数据时,向发送端发送用于指示已成功接收所有数据的通知,以便于发送端停止发送该数据块中的数据。Optionally, when the receiving end determines that a group of data to be received is successfully received, the receiving end sends a notification to the sending end to indicate that all data has been successfully received, so that the sending end stops sending data in the data block.
通过本申请实施例提供的方式,接收端接收到发送端发送的n个数据后,向所述发送端发送状态信息,状态信息表明接收端未成功接收到数据或者表明成功接收到的数据,从而发送端在接收到该状态信息后,针对待发送的数据进行缩减,从接收端未成功接收到的数据中选择数据进行编码发送,从而减少了长尾时延效应,并且提高了报文的传输效率。In the manner provided by the embodiment of the present application, after receiving the n data sent by the sending end, the receiving end sends status information to the sending end, where the status information indicates that the receiving end does not successfully receive the data or indicates the successfully received data, thereby After receiving the status information, the transmitting end reduces the data to be sent, and selects data from the unsuccessfully received data of the receiving end to perform encoding and sending, thereby reducing the long tail delay effect and improving the transmission of the message. effectiveness.
基于图4所示的实施例,步骤403所述接收端向所述发送端发送状态信息后,发送端可能没有接收端到该状态信息,为了保证发送端可以接收到该状态信息,本申请实施例中可以通过如下设计实现:所述发送端在设定时长内未接收到所述状态信息时,向所述接收端发送用于指示所述接收端反馈所述状态信息的请求信息,从而所述接收端接收到所述发送端发送的用于指示所述接收端反馈所述状态信息的请求信息后,向所述发送端发送所述状态信息。通过上述设计,如果接收端发送状态信息后而发送端未接收到时,发送端请求接收端反馈状态信息,保证接收端正常反馈状态信息,而发送端成功接收到状态信息,提高解码成功率,减少长尾时延。Based on the embodiment shown in FIG. 4, after the receiving end sends the status information to the sending end, the sending end may not have the receiving end to the status information. To ensure that the sending end can receive the status information, the present application is implemented. In an example, the sending end may send the request information for instructing the receiving end to feed back the status information to the receiving end when the status information is not received within the set time period. After receiving the request information sent by the sending end to instruct the receiving end to feed back the status information, the receiving end sends the status information to the sending end. Through the above design, if the receiving end sends the status information and the transmitting end does not receive the signal, the transmitting end requests the receiving end to feed back the status information to ensure that the receiving end normally returns the status information, and the transmitting end successfully receives the status information, thereby improving the decoding success rate. Reduce long tail delays.
具体的,参见图5所示,其中与图4中描述的方案重复之处,此处不再赘述。Specifically, referring to FIG. 5, where the solution is repeated with the solution described in FIG. 4, details are not described herein again.
S501,发送端确定待发送的第一组数据。S501. The transmitting end determines a first group of data to be sent.
S502,所述发送端使用喷泉码技术将所述N个数据编码成M个编码报文。S502. The transmitting end encodes the N data into M encoded messages by using a fountain code technology.
S503,所述发送端向接收端发送所述M个编码报文。S503. The sending end sends the M encoded messages to the receiving end.
S504,所述接收端接收到所述发送端发送的m个编码报文。S504. The receiving end receives the m encoded packets sent by the sending end.
S505,针对所述m个编码报文通过喷泉码解码技术进行解码,得到一组待接收数据中的n个数据。S505: Decode the m coded messages by using a fountain code decoding technology to obtain n pieces of data in a group of to-be-received data.
所述n大于等于数据接收量阈值,所述数据接收量阈值小于N,所述N为所述一组待接收数据的数量。其中,在数据传输的过程中,没有发生丢包的情况下,m等于M,或者在发送丢包的情况下,m小于M。一组待接收的数据也就是步骤S501中所述的待发送的第一组数据。The n is greater than or equal to the data receiving amount threshold, the data receiving amount threshold is less than N, and the N is the quantity of the set of data to be received. Wherein, in the process of data transmission, when no packet loss occurs, m is equal to M, or in the case of sending a packet loss, m is smaller than M. A set of data to be received is also the first set of data to be transmitted as described in step S501.
S506,根据所述n个数据,向所述发送端发送状态信息。S506. Send status information to the sending end according to the n data.
其中,所述状态信息用于指示所述N个数据中的n个数据成功接收,以便于所述发送端根据所述状态信息,将所述一组待接收数据更改为N-n个数据,所述N-n个数据为所述N个数据中除所述n个数据之外的数据。其中,M=N-n。The status information is used to indicate that n data of the N data is successfully received, so that the sending end changes the set of data to be received to Nn data according to the status information, The Nn data is data other than the n data among the N data. Where M=N-n.
所述状态信息用于指示所述N个数据中的n个数据成功接收或者用于指示M个数据未成功接收。The status information is used to indicate that n of the N data is successfully received or used to indicate that M data is not successfully received.
在接收端向所述发送端发送状态信息后,状态信息可能会丢失,从而导致未到达发送端。After the receiving end sends the status information to the transmitting end, the status information may be lost, resulting in not reaching the transmitting end.
S507,所述发送端在设定时长内未接收到所述状态信息时,向所述接收端发送请求信息,所述请求信息用于指示所述接收端反馈所述状态信息。S507. When the sending end does not receive the status information within a set duration, the sending end sends request information to the receiving end, where the request information is used to instruct the receiving end to feed back the status information.
S508,所述接收端接收到所述发送端发送的请求信息后,向所述发送端发送所述状态信息。S508. After receiving the request information sent by the sending end, the receiving end sends the status information to the sending end.
S509,所述发送端接收到来自所述接收端的所述状态信息后,根据所述状态信息,从所述N个数据中,重新确定待发送的第二组数据,所述第二组数据的数量为N-n个,所述N-n个数据为所述N个数据中未被所述接收端接收的数据。S509. After receiving the status information from the receiving end, the sending end re-determines a second group of data to be sent from the N data according to the status information, where the second group of data is The number is Nn, and the Nn data is data that is not received by the receiving end among the N data.
具体的,所述发送端根据所述状态信息,从将待发送的第一组数据的范围缩减为N-n,经过缩减范围后的数据构成待发送的第二组数据。Specifically, the sending end reduces the range of the first group of data to be sent to N-n according to the state information, and the data after the reduced range constitutes the second group of data to be sent.
S510,所述发送端向所述接收端发送L个编码报文,所述L个编码报文是所述N-n个数据通过喷泉码技术编码得到的。S510. The sending end sends, to the receiving end, L coded messages, where the L coded messages are obtained by using the fountain code technology.
通过上述实现方式,发送端在设定时长内未收到所述状态信息,向所述接收端发送用于指示所述接收端反馈所述状态信息的请求信息,及时的告知接收端重传接收状态信息,从而减少解码长尾效应和冗余量。In the foregoing implementation manner, the sending end does not receive the status information within a set duration, and sends a request message for instructing the receiving end to feed back the status information to the receiving end, and timely informs the receiving end to retransmit the receiving information. Status information, thereby reducing the decoding long tail effect and redundancy.
本申请所有实施例中所涉及的状态信息可以包括所述n个数据的序列号或者编号,或者所述状态信息包括所述N-n个数据的序列号或者编号,或者所述状态信息中包括成功接收的连续的n个数据中的最大序列号或者最大编号。比如,待接收数据数为100个,接收端接收到50个,并且接收到的数据的序列号或者编号为连续的,则可以反馈第50个报文的序列号或者编号。The status information involved in all embodiments of the present application may include a sequence number or number of the n data, or the status information includes a sequence number or number of the Nn data, or the status information includes successful reception. The largest serial number or maximum number of consecutive n data. For example, if the number of data to be received is 100, and the receiving end receives 50, and the serial number or serial number of the received data is continuous, the serial number or number of the 50th message can be fed back.
可选地,本申请所有实施例中涉及的数据接收量阈值可以预设值,还可以是按照随机分布确定或者按照一定规则确定。具体的,数据接收量阈值可以等于当前待接收的数据的数量乘上一个百分比。数据接收量阈值可以等于所述接收端当前待接收的数据的数量与设定值的乘积,所述设定值大于0且所述设定值小于1,例如设定值取值为0.4、0.5、或者0.6等。比如设定值等于1/S,其中S满足0<=S<=接收端当前待接收的数据的数量。设定值还可以根据传输速率的需求进行配置,对传输速率要求越高,设定值的取值越小。Optionally, the data receiving thresholds involved in all embodiments of the present application may be preset values, or may be determined according to a random distribution or determined according to certain rules. Specifically, the data reception threshold may be equal to a percentage of the current data to be received. The data reception threshold may be equal to the product of the number of data currently to be received at the receiving end and the set value, the set value is greater than 0 and the set value is less than 1, for example, the set value is 0.4, 0.5. , or 0.6, etc. For example, the set value is equal to 1/S, where S satisfies 0<=S<= the number of data currently to be received by the receiving end. The set value can also be configured according to the requirements of the transmission rate. The higher the transmission rate requirement, the smaller the value of the set value.
可选地,本申请实施例中,所述接收端可以根据接收到的m个编码报文中的任意一个,确定待接收数据的数量为N个;然后在向所述发送端发送状态信息后,将所述接收端待接收数据的数量为更新为N-n。Optionally, in the embodiment of the present application, the receiving end may determine, according to any one of the received m encoded messages, that the number of data to be received is N; and then, after sending the status information to the sending end, And updating the number of data to be received by the receiving end to Nn.
通过上述设计,接收端更新当前待接收的数据的数量,从而发送端不需要再从m个编码报文中获取待接收的数据的数量。另外,发送端针对一个数据块接收到接收端第一次发送的状态信息后,由于接收端自己更新了待接收的数据的数量,因此不需要再将待接收数据的数量的相关信息携带编码报文中了。Through the above design, the receiving end updates the number of data to be received, so that the sending end does not need to obtain the quantity of data to be received from the m encoded messages. In addition, after the transmitting end receives the status information sent by the receiving end for the first time, the receiving end does not need to carry the coded information about the quantity of the data to be received. In the text.
可选地,接收端在更新所述接收端当前待接收的数据的数量后,从而数据接收量阈值随着更新。比如,下面以数据接收量阈值等于所述接收端当前待接收的数据的数量与设定值的乘积,设定值等于1/S,以及针对一个数据块中的N个数据反馈状态信息为例,具体说明数据接收量阈值更新方式,参见图6所示。其中,其中与图4以及图5中描述的方案重复之处,此处不再赘述。Optionally, the receiving end updates the number of data currently to be received by the receiving end, so that the data receiving amount threshold is updated. For example, the data reception amount threshold is equal to the product of the current number of data to be received at the receiving end and the set value, the set value is equal to 1/S, and the N data feedback status information in one data block is taken as an example. Specifically, the data reception threshold update method is described, as shown in FIG. 6. Wherein, where the schemes described in FIG. 4 and FIG. 5 are repeated, no further details are provided herein.
S601,发送端将待发送的数据块分割为N个数据,从而确定待发送的第一组数据的数量为N个。S601. The transmitting end divides the data block to be sent into N pieces of data, so as to determine that the number of the first group of data to be sent is N.
S602,所述发送端使用喷泉码技术将所述N个数据编码成M个编码报文。S602. The transmitting end encodes the N data into M encoded messages by using a fountain code technology.
S603,所述发送端向接收端发送所述M个编码报文。S603. The sending end sends the M encoded messages to the receiving end.
S604,所述接收端接收到所述发送端发送的m个编码报文。S604. The receiving end receives the m encoded packets sent by the sending end.
S605,针对所述m个编码报文通过喷泉码解码技术进行解码,得到一组待接收数据中的n个数据。S605. Decode the m coded messages by using a fountain code decoding technology to obtain n pieces of data in a set of data to be received.
在所述发送端随机且连续发送了所述N个数据中的n个数据情况下,所述接收端接收到发送端发送的n个数据,所述n大于或者等于N/S。具体的,可以是n=N/S,后续以此为例。In the case that the transmitting end randomly and continuously transmits n data of the N data, the receiving end receives n data sent by the transmitting end, and the n is greater than or equal to N/S. Specifically, it may be n=N/S, and this is taken as an example.
S606,所述接收端向所述发送端发送状态信息。S606. The receiving end sends status information to the sending end.
S607,所述发送端接收到来自所述接收端的所述状态信息后,根据所述状态信息,从所述N个数据中,重新确定待发送的第二组数据。S607. After receiving the status information from the receiving end, the sending end re-determines the second group of data to be sent from the N data according to the status information.
所述第二组数据的数量为N-n个,所述N-n个数据为所述N个数据中未被所述接收端接收的数据。The number of the second group of data is N-n, and the N-n data is data of the N data that is not received by the receiving end.
S608,所述发送端向所述接收端发送L个编码报文,所述L个编码报文是所述N-n个数据通过喷泉码技术编码得到的。S608. The sending end sends, to the receiving end, L coded messages, where the L coded messages are obtained by using the fountain code technology.
S609,所述接收端确定待接收的数据数量为N-n,所述接收端接收到发送端发送的编码报文后,采用喷泉码技术进行解码得到N-n中的(N-n)/m个数据。S609, the receiving end determines that the number of data to be received is N-n, and after receiving the encoded message sent by the sending end, the receiving end uses the fountain code technology to decode to obtain (N-n)/m data in N-n.
S610,所述接收端向所述发送端发送状态信息.其中,所述状态信息用于指示所述num个数据未成功接收。其中,num=N-n-(N-n)/S。后续,以此类推。S610. The receiving end sends status information to the sending end. The status information is used to indicate that the num data is not successfully received. Where num=N-n-(N-n)/S. Follow-up, and so on.
如果接收端在接收到发送端发送N-n个数据后,通过解码将N-n个数据全部成功解码,也就是接收端成功接收了本次待接收的N-n数据,则接收端可以向发送端发送已成功接收待接收的数据的通知信息,从而发送端不再发送该数据块中的数据。If the receiving end sends Nn data after receiving the transmitting end, the Nn data is successfully decoded by decoding, that is, the receiving end successfully receives the Nn data to be received this time, and the receiving end can send the successfully received to the transmitting end. The notification information of the data to be received, so that the sender no longer transmits the data in the data block.
基于以上实施例,本申请实施例提供了一种数据传输装置,该数据传输装置可以实现如图4、图5、图6所示的发送端所执行的数据传输方法。参见图7所示,所述装置可以包括:Based on the above embodiments, the embodiment of the present application provides a data transmission apparatus, which can implement a data transmission method performed by a transmitting end as shown in FIG. 4, FIG. 5, and FIG. Referring to FIG. 7, the apparatus may include:
处理单元701,用于确定待发送的第一组数据,所述第一组数据的数量为N个;The processing unit 701 is configured to determine a first group of data to be sent, where the number of the first group of data is N;
编码单元702,用于使用喷泉码技术将所述N个数据编码成M个编码报文;The encoding unit 702 is configured to encode the N data into M encoded messages by using a fountain code technology;
发送单元703,用于向接收端发送所述M个编码报文;The sending unit 703 is configured to send the M encoded messages to the receiving end.
接收单元704,用于接收来自所述接收端的状态信息,所述状态信息用于指示所述N个数据中的n个数据已被成功接收,或者,所述状态信息用于指示所述N个数据中还有N-n个数据未被成功接收,n小于N;The receiving unit 704 is configured to receive status information from the receiving end, where the status information is used to indicate that n of the N data has been successfully received, or the status information is used to indicate the N There are also Nn data in the data that are not successfully received, n is less than N;
所述处理单元701,还用于根据所述状态信息,从所述N个数据中,重新确定待发送的第二组数据,所述第二组数据的数量为N-n个,所述N-n个数据为所述N个数据中未被所述接收端接收的数据;The processing unit 701 is further configured to: according to the state information, re-determine a second group of data to be sent from the N data, where the number of the second group of data is Nn, the Nn data Data that is not received by the receiving end of the N data;
所述发送单元703,还用于向所述接收端发送L个编码报文,所述L个编码报文是所述编码单元针对所述N-n个数据通过喷泉码技术编码得到的。The sending unit 703 is further configured to send, to the receiving end, L coded messages, where the L coded messages are obtained by the coding unit by using a fountain code technology for the N-n data.
在一种可能的设计中,所述发送单元703,在确定所述接收单元704在设定时长内未接收到所述状态信息的情况下,向所述接收端发送请求信息,所述请求信息用于指示所述接收端反馈所述状态信息。In a possible design, the sending unit 703, after determining that the receiving unit 704 does not receive the status information within a set duration, sends request information to the receiving end, the request information. And configured to instruct the receiving end to feed back the status information.
在一种可能的设计中,所述状态信息包括未被成功接收的所述N-n个数据的序列号或者编号,或者所述状态信息包括已被成功接收的n个数据的序列号或者编号,或者所述状态信息中包括已被成功接收的连续的n个数据中的最大序列号或者最大编号。In one possible design, the status information includes a sequence number or number of the Nn data that has not been successfully received, or the status information includes a sequence number or number of n data that has been successfully received, or The status information includes a maximum sequence number or a maximum number among consecutive n pieces of data that have been successfully received.
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。The division of the modules in the embodiment of the present application is schematic, and is only a logical function division. In actual implementation, there may be another division manner. In addition, each functional module in each embodiment of the present application may be integrated into one processing. In the device, it can also be physically existed alone, or two or more modules can be integrated into one module. The above integrated modules can be implemented in the form of hardware or in the form of software functional modules.
如图8所示,应用于发送端的数据传输装置可以包括通信接口810、处理器820以及存储器830。上述图7所示的单元对应的实体的硬件可以为处理器820。处理器820通过 通信接口810收发数据,并用于实现图3~图6中所述的发送端所执行的方法。在实现过程中,处理流程的各步骤可以通过处理器820中的硬件的集成逻辑电路或者软件形式的指令完成。处理器820可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。处理器820用于实现上述方法所执行的程序代码可以存储在存储器830中。存储器830可以是非易失性存储器,比如硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD)等,还可以是易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM)。存储器830是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。As shown in FIG. 8, the data transmission device applied to the transmitting end may include a communication interface 810, a processor 820, and a memory 830. The hardware of the entity corresponding to the unit shown in FIG. 7 above may be the processor 820. The processor 820 transmits and receives data through the communication interface 810 and is used to implement the method performed by the transmitting end described in Figures 3-6. In the implementation process, each step of the processing flow may be completed by an integrated logic circuit of hardware in the processor 820 or an instruction in the form of software. The processor 820 can be a general-purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or a transistor logic device, and a discrete hardware component, which can be implemented or executed in the embodiment of the present application. Various methods, steps, and logic blocks of the disclosure. A general purpose processor can be a microprocessor or any conventional processor or the like. The steps of the method disclosed in the embodiments of the present application may be directly implemented as a hardware processor, or may be performed by a combination of hardware and software modules in the processor. Program code for processor 820 to implement the above methods may be stored in memory 830. The memory 830 may be a non-volatile memory, such as a hard disk drive (HDD) or a solid state drive (SSD), or a volatile memory (English: volatile) Memory), such as random access memory (English: random-access memory, abbreviation: RAM). Memory 830 is 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, but is not limited thereto.
本申请实施例中不限定上述通信接口810、处理器820以及存储器830之间的具体连接介质。本申请实施例在图8中以存储器830、处理器820以及通信接口810之间通过总线840连接,总线在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。The specific connection medium between the communication interface 810, the processor 820, and the memory 830 is not limited in the embodiment of the present application. In the embodiment of the present application, the memory 830, the processor 820, and the communication interface 810 are connected by a bus 840 in FIG. 8. The bus is indicated by a thick line in FIG. 8, and the connection manner between other components is only schematically illustrated. , not limited to. The bus can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in Figure 8, but it does not mean that there is only one bus or one type of bus.
基于以上实施例,本申请实施例提供了一种数据传输装置,该数据传输装置可以实现如图4、图5、图6所示的接收端所执行的数据传输方法。参见图9所示,所述装置可以包括:Based on the above embodiments, the embodiment of the present application provides a data transmission apparatus, which can implement a data transmission method performed by a receiving end as shown in FIG. 4, FIG. 5, and FIG. Referring to FIG. 9, the apparatus may include:
接收单元901,用于接收到发送端发送的m个编码报文;The receiving unit 901 is configured to receive the m encoded packets sent by the sending end.
解码单元902,用于针对所述m个编码报文通过喷泉码解码技术进行解码,得到一组待接收数据中的n个数据,所述n大于等于数据接收量阈值,所述数据接收量阈值小于N,所述N为所述一组待接收数据的数量;The decoding unit 902 is configured to perform decoding on the m encoded messages by using a fountain code decoding technology to obtain n data in a group of to-be-received data, where the n is greater than or equal to a data receiving amount threshold, and the data receiving threshold is Less than N, the N is the quantity of the set of data to be received;
发送单元903,用于根据所述n个数据,向所述发送端发送状态信息,所述状态信息用于指示所述N个数据中的n个数据成功接收,以便于所述发送端根据所述状态信息,将所述一组待接收数据更改为N-n个数据,所述N-n个数据为所述N个数据中除所述n个数据之外的数据。The sending unit 903 is configured to send status information to the sending end according to the n data, where the status information is used to indicate that n data of the N data is successfully received, so that the sending end is configured according to the State information, the set of data to be received is changed to Nn data, and the Nn data is data other than the n data among the N data.
可选地,所述数据接收量阈值等于所述一组待接收数据的数量与设定值的乘积,所述设定值大于0且所述设定值小于1。Optionally, the data reception threshold is equal to a product of the quantity of the to-be-received data and a set value, the set value is greater than 0 and the set value is less than 1.
在一种可能的实现方式中,所述接收单元901,还用于接收到所述发送端发送的请求信息,所述请求信息用于指示所述接收端反馈接收数据的情况;In a possible implementation, the receiving unit 901 is further configured to receive the request information sent by the sending end, where the request information is used to indicate that the receiving end feeds back the received data.
所述发送单元903,具体用于根据所述请求信息以及接收到的所述n个数据,向所述发送端发送状态信息,所述状态信息用于指示所述N个数据中的n个数据已被成功接收,或者,所述状态信息用于指示所述N个数据中还有N-n个数据未被成功接收。The sending unit 903 is specifically configured to send, according to the request information and the received n data, status information to the sending end, where the status information is used to indicate n data of the N data. The status information has been successfully received, or the status information is used to indicate that Nn of the N data are not successfully received.
在一种可能的实现方式中,所述状态信息包括未被成功接收的N-n个数据的序列号或者编号,或者所述状态信息包括已被成功接收的n个数据的序列号或者编号,或者所述状态信息中包括已被成功接收的连续的n个数据中的最大序列号或者最大编号。In a possible implementation manner, the status information includes a sequence number or a number of Nn data that has not been successfully received, or the status information includes a sequence number or number of n data that has been successfully received, or The status information includes the largest sequence number or the largest number among consecutive n data that have been successfully received.
在一种可能的实现方式中,所述装置还可以包括:In a possible implementation, the device may further include:
处理单元904,用于根据接收到的m个编码报文中的任意一个,确定所述一组待接收 数据的数量为N个;在所述发送单元903向所述发送端发送状态信息后,将所述一组待接收数据的数量更新为N-n。The processing unit 904 is configured to determine, according to any one of the received m encoded messages, that the number of the to-be-received data is N; after the sending unit 903 sends the status information to the sending end, Update the quantity of the set of data to be received to Nn.
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。The division of the modules in the embodiment of the present application is schematic, and is only a logical function division. In actual implementation, there may be another division manner. In addition, each functional module in each embodiment of the present application may be integrated into one processing. In the device, it can also be physically existed alone, or two or more modules can be integrated into one module. The above integrated modules can be implemented in the form of hardware or in the form of software functional modules.
如图10所示,应用于接收端的数据传输装置可以包括通信接口1010、处理器1020以及存储器1030。上述图9所示的模块对应的实体的硬件可以为处理器1020。处理器1020通过通信接口1010收发数据,并用于实现图3~图6中所述的接收端所执行的方法。在实现过程中,处理流程的各步骤可以通过处理器1020中的硬件的集成逻辑电路或者软件形式的指令完成。处理器1020可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。处理器1020用于实现上述方法所执行的程序代码可以存储在存储器1030中。存储器1030可以是非易失性存储器,比如硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD)等,还可以是易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM)。存储器1030是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。As shown in FIG. 10, the data transmission device applied to the receiving end may include a communication interface 1010, a processor 1020, and a memory 1030. The hardware of the entity corresponding to the module shown in FIG. 9 above may be the processor 1020. The processor 1020 transmits and receives data through the communication interface 1010 and is used to implement the method performed by the receiving end described in FIGS. 3-6. In the implementation process, each step of the processing flow may be completed by an integrated logic circuit of hardware in the processor 1020 or an instruction in the form of software. The processor 1020 can be a general-purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or a transistor logic device, and a discrete hardware component, which can be implemented or executed in the embodiment of the present application. Various methods, steps, and logic blocks of the disclosure. A general purpose processor can be a microprocessor or any conventional processor or the like. The steps of the method disclosed in the embodiments of the present application may be directly implemented as a hardware processor, or may be performed by a combination of hardware and software modules in the processor. Program code for processor 1020 to implement the above methods may be stored in memory 1030. The memory 1030 may be a non-volatile memory, such as a hard disk drive (HDD) or a solid state drive (SSD), or a volatile memory (English: volatile) Memory), such as random access memory (English: random-access memory, abbreviation: RAM). Memory 1030 is 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, but is not limited thereto.
本申请实施例中不限定上述通信接口1010、处理器1020以及存储器1030之间的具体连接介质。本申请实施例在图10中以存储器1030、处理器1020以及通信接口1010之间通过总线1040连接,总线在图10中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。The specific connection medium between the communication interface 1010, the processor 1020, and the memory 1030 is not limited in the embodiment of the present application. In the embodiment of the present application, the memory 1030, the processor 1020, and the communication interface 1010 are connected by a bus 1040 in FIG. 10. The bus is indicated by a thick line in FIG. 10, and the connection manner between other components is only schematically illustrated. , not limited to. The bus can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in FIG. 10, but it does not mean that there is only one bus or one type of bus.
通过本申请实施例提供的方式,发送端接收接收端发送状态信息,状态信息表明接收端未成功接收到的数据或者成功接收的数据,从而所述发送端不再针对接收端接收到的数据进行编码发送,而是缩减待发送的一组数据的范围,将待发送的数据的范围缩减为接收端未成功接收到的数据,从而接收端从未成功接收到的数据中随机选择数据再进行编码发送,由于针对接收端成功接收到的数据不再重复编码发送,因此减少了长尾时延效应,并且提高了报文的传输效率。In the manner provided by the embodiment of the present application, the sending end receives the sending status information, and the status information indicates that the receiving end does not successfully receive the data or the data that is successfully received, so that the sending end does not perform the data received by the receiving end. The code transmits, but reduces the range of data to be sent, and reduces the range of data to be sent to the data that is not successfully received by the receiving end, so that the receiving end randomly selects the data and then encodes the data. The transmission, because the data successfully received by the receiving end is not repeatedly coded and transmitted, reduces the long tail delay effect and improves the transmission efficiency of the message.
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。Those skilled in the art will appreciate that embodiments of the present application can be provided as a method, system, or computer program product. Thus, the present application can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment in combination of software and hardware. Moreover, the application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
本申请是参照根据本申请的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指 令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to the present application. It will be understood that each flow and/or block of the flowchart illustrations and/or FIG. These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing device to produce a machine for the execution of instructions for execution by a processor of a computer or other programmable data processing device. Means for implementing the functions specified in one or more of the flow or in a block or blocks of the flow chart.
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。The computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device. The apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device. The instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。It will be apparent to those skilled in the art that various modifications and changes can be made in the present application without departing from the spirit and scope of the application. Thus, it is intended that the present invention cover the modifications and variations of the present invention.

Claims (19)

  1. 一种数据传输方法,其特征在于,所述方法应用于数据的发送端,包括:A data transmission method, wherein the method is applied to a data sending end, and includes:
    确定待发送的第一组数据,所述第一组数据的数量为N个;Determining a first set of data to be sent, the number of the first set of data being N;
    使用喷泉码技术将所述N个数据编码成M个编码报文;Encoding the N data into M encoded messages using fountain code technology;
    向接收端发送所述M个编码报文;Sending the M coded messages to the receiving end;
    接收来自所述接收端的状态信息,所述状态信息用于指示所述N个数据中的n个数据已被成功接收,或者,所述状态信息用于指示所述N个数据中还有N-n个数据未被成功接收,n小于N;Receiving status information from the receiving end, the status information is used to indicate that n of the N data has been successfully received, or the status information is used to indicate that there are Nn of the N data The data was not successfully received, n is less than N;
    根据所述状态信息,从所述N个数据中,重新确定待发送的第二组数据,所述第二组数据的数量为N-n个,所述N-n个数据为所述N个数据中未被所述接收端接收的数据;And determining, according to the state information, a second group of data to be sent, where the number of the second group of data is Nn, and the Nn data is not among the N data. The data received by the receiving end;
    向所述接收端发送L个编码报文,所述L个编码报文是所述N-n个数据通过喷泉码技术编码得到的。Sending L coded messages to the receiving end, where the L coded messages are obtained by coding the N-n data by a fountain code technique.
  2. 如权利要求1所述的方法,其特征在于,所述方法还包括:The method of claim 1 wherein the method further comprises:
    所述发送端在设定时长内未接收到所述状态信息的情况下,向所述接收端发送请求信息,所述请求信息用于指示所述接收端反馈所述状态信息。And sending, by the sending end, the request information to the receiving end, where the sending end is used to instruct the receiving end to feed back the status information.
  3. 如权利要求1或2所述的方法,其特征在于,所述状态信息包括未被成功接收的所述N-n个数据的序列号或者编号,或者所述状态信息包括已被成功接收的n个数据的序列号或者编号,或者所述状态信息中包括已被成功接收的连续的n个数据中的最大序列号或者最大编号。The method according to claim 1 or 2, wherein said status information comprises a sequence number or number of said Nn data that has not been successfully received, or said status information includes n data that have been successfully received The serial number or number, or the status information includes the largest serial number or the largest number among consecutive n data that have been successfully received.
  4. 一种数据传输方法,其特征在于,所述方法应用于数据的接收端,包括:A data transmission method, wherein the method is applied to a receiving end of data, including:
    接收到发送端发送的m个编码报文;Receiving m encoded messages sent by the sending end;
    针对所述m个编码报文通过喷泉码解码技术进行解码,得到一组待接收数据中的n个数据,所述n大于等于数据接收量阈值,所述数据接收量阈值小于N,所述N为所述一组待接收数据的数量;Decoding the m coded packets by the fountain code decoding technology to obtain n data in a set of data to be received, wherein the n is greater than or equal to a data reception threshold, and the data reception threshold is less than N, the N The number of data to be received by the group;
    根据所述n个数据,向所述发送端发送状态信息,所述状态信息用于指示所述N个数据中的n个数据成功接收,以便于所述发送端根据所述状态信息,将所述一组待接收数据更改为N-n个数据,所述N-n个数据为所述N个数据中除所述n个数据之外的数据。Transmitting, according to the n data, status information to the sending end, where the status information is used to indicate that n data of the N data is successfully received, so that the sending end sends the location according to the status information. The set of data to be received is changed to Nn data, and the Nn data is data other than the n data among the N data.
  5. 如权利要求4所述的方法,其特征在于,所述数据接收量阈值等于所述一组待接收数据的数量与设定值的乘积,所述设定值大于0且所述设定值小于1。The method according to claim 4, wherein said data reception amount threshold is equal to a product of said set of data to be received and a set value, said set value being greater than 0 and said set value being less than 1.
  6. 如权利要求4或5所述的方法,其特征在于,还包括:The method of claim 4 or 5, further comprising:
    接收到所述发送端发送的请求信息,所述请求信息用于指示所述接收端反馈接收数据的情况;Receiving the request information sent by the sending end, where the request information is used to indicate that the receiving end feeds back the received data;
    根据所述n个数据,向所述发送端发送状态信息,包括:Sending status information to the sending end according to the n data, including:
    根据所述请求信息以及接收到的所述n个数据,向所述发送端发送状态信息,所述状态信息用于指示所述N个数据中的n个数据已被成功接收,或者,所述状态信息用于指示所述N个数据中还有N-n个数据未被成功接收。And sending, according to the request information and the received n data, status information to the sending end, where the status information is used to indicate that n of the N data has been successfully received, or The status information is used to indicate that Nn of the N data are not successfully received.
  7. 如权利要求4至6任一项所述的方法,其特征在于,所述状态信息包括已被成功接收的n个数据的序列号或者编号,或者所述状态信息包括未被成功接收的N-n个数据的序列号或者编号,或者所述状态信息中包括已被成功接收的连续的n个数据中的最大序列 号或者最大编号。The method according to any one of claims 4 to 6, wherein the status information includes a sequence number or number of n data that has been successfully received, or the status information includes Nn pieces that have not been successfully received. The serial number or number of the data, or the status information includes the largest serial number or the largest number among consecutive n data that have been successfully received.
  8. 如权利要求4至7任一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 4 to 7, wherein the method further comprises:
    根据接收到的m个编码报文中的任意一个,确定所述一组待接收数据的数量为N个;Determining, according to any one of the received m encoded messages, the number of the to-be-received data is N;
    在向所述发送端发送状态信息后,将所述一组待接收数据的数量更新为N-n。After transmitting the status information to the transmitting end, the quantity of the set of data to be received is updated to N-n.
  9. 一种数据传输装置,其特征在于,所述装置应用于数据的发送端,包括:A data transmission device, wherein the device is applied to a data transmitting end, and includes:
    处理单元,用于确定待发送的第一组数据,所述第一组数据的数量为N个;a processing unit, configured to determine a first group of data to be sent, where the number of the first group of data is N;
    编码单元,用于使用喷泉码技术将所述N个数据编码成M个编码报文;a coding unit, configured to encode the N data into M coded messages by using a fountain code technology;
    发送单元,用于向接收端发送所述M个编码报文;a sending unit, configured to send the M encoded messages to the receiving end;
    接收单元,用于接收来自所述接收端的状态信息,所述状态信息用于指示所述N个数据中的n个数据已被成功接收,或者,所述状态信息用于指示所述N个数据中还有N-n个数据未被成功接收,n小于N;a receiving unit, configured to receive status information from the receiving end, where the status information is used to indicate that n of the N data has been successfully received, or the status information is used to indicate the N data There are also Nn data not successfully received, n is less than N;
    所述处理单元,还用于根据所述状态信息,从所述N个数据中,重新确定待发送的第二组数据,所述第二组数据的数量为N-n个,所述N-n个数据为所述N个数据中未被所述接收端接收的数据;The processing unit is further configured to: according to the state information, re-determine a second group of data to be sent from the N data, where the number of the second group of data is Nn, and the Nn data is Data of the N data that is not received by the receiving end;
    所述发送单元,还用于向所述接收端发送L个编码报文,所述L个编码报文是所述编码单元针对所述N-n个数据通过喷泉码技术编码得到的。The sending unit is further configured to send, to the receiving end, L coded messages, where the L coded messages are obtained by the coding unit by using a fountain code technology for the N-n data.
  10. 如权利要求9所述的装置,其特征在于,所述发送单元,在确定所述接收单元在设定时长内未接收到所述状态信息的情况下,向所述接收端发送请求信息,所述请求信息用于指示所述接收端反馈所述状态信息。The device according to claim 9, wherein the transmitting unit sends the request information to the receiving end if it is determined that the receiving unit does not receive the status information within a set time period, The request information is used to instruct the receiving end to feed back the status information.
  11. 如权利要求9或10所述的装置,其特征在于,所述状态信息包括未被成功接收的所述N-n个数据的序列号或者编号,或者所述状态信息包括已被成功接收的n个数据的序列号或者编号,或者所述状态信息中包括已被成功接收的连续的n个数据中的最大序列号或者最大编号。The apparatus according to claim 9 or 10, wherein said status information comprises a sequence number or number of said Nn data that has not been successfully received, or said status information includes n data that have been successfully received The serial number or number, or the status information includes the largest serial number or the largest number among consecutive n data that have been successfully received.
  12. 一种数据传输装置,其特征在于,所述装置应用于数据的接收端,包括:A data transmission device, wherein the device is applied to a receiving end of data, and includes:
    接收单元,用于接收到发送端发送的m个编码报文;a receiving unit, configured to receive the m encoded messages sent by the sending end;
    解码单元,用于针对所述m个编码报文通过喷泉码解码技术进行解码,得到一组待接收数据中的n个数据,所述n大于等于数据接收量阈值,所述数据接收量阈值小于N,所述N为所述一组待接收数据的数量;a decoding unit, configured to decode, by using a fountain code decoding technology, the n coded packets to obtain n data in a set of data to be received, where n is greater than or equal to a data receiving amount threshold, and the data receiving amount threshold is less than N, the N is the quantity of the set of data to be received;
    发送单元,用于根据所述n个数据,向所述发送端发送状态信息,所述状态信息用于指示所述N个数据中的n个数据成功接收,以便于所述发送端根据所述状态信息,将所述一组待接收数据更改为N-n个数据,所述N-n个数据为所述N个数据中除所述n个数据之外的数据。a sending unit, configured to send, according to the n data, status information to the sending end, where the status information is used to indicate that n data of the N data is successfully received, so that the sending end is configured according to the Status information, the set of data to be received is changed to Nn data, and the Nn data is data other than the n data among the N data.
  13. 如权利要求12所述的装置,其特征在于,所述数据接收量阈值等于所述一组待接收数据的数量与设定值的乘积,所述设定值大于0且所述设定值小于1。The apparatus according to claim 12, wherein said data reception amount threshold is equal to a product of said set of data to be received and a set value, said set value being greater than 0 and said set value being less than 1.
  14. 如权利要求12或13所述的装置,其特征在于,所述接收单元,还用于接收到所述发送端发送的请求信息,所述请求信息用于指示所述接收端反馈接收数据的情况;The device according to claim 12 or 13, wherein the receiving unit is further configured to receive the request information sent by the sending end, where the request information is used to indicate that the receiving end feeds back the received data. ;
    所述发送单元,具体用于根据所述请求信息以及接收到的所述n个数据,向所述发送端发送状态信息,所述状态信息用于指示所述N个数据中的n个数据已被成功接收,或者,所述状态信息用于指示所述N个数据中还有N-n个数据未被成功接收。The sending unit is configured to send, according to the request information and the received n data, status information to the sending end, where the status information is used to indicate that n of the N data has been Successfully received, or the status information is used to indicate that Nn of the N data are not successfully received.
  15. 如权利要求12至14任一项所述的装置,其特征在于,所述状态信息包括未被成 功接收的N-n个数据的序列号或者编号,或者所述状态信息包括已被成功接收的n个数据的序列号或者编号,或者所述状态信息中包括已被成功接收的连续的n个数据中的最大序列号或者最大编号。The apparatus according to any one of claims 12 to 14, wherein said status information comprises a sequence number or number of Nn data that has not been successfully received, or said status information includes n that have been successfully received The serial number or number of the data, or the status information includes the largest serial number or the largest number among consecutive n data that have been successfully received.
  16. 如权利要求12至15任一项所述的装置,其特征在于,还包括:The device according to any one of claims 12 to 15, further comprising:
    处理单元,用于根据接收到的m个编码报文中的任意一个,确定所述一组待接收数据的数量为N个;在所述发送单元向所述发送端发送状态信息后,将所述一组待接收数据的数量更新为N-n。a processing unit, configured to determine, according to any one of the received m encoded messages, that the number of the to-be-received data is N; after the sending unit sends the status information to the sending end, The number of data to be received is updated to Nn.
  17. 一种数据传输装置,其特征在于,所述装置应用于数据的发送端,包括:A data transmission device, wherein the device is applied to a data transmitting end, and includes:
    通信接口、处理器和存储器;Communication interface, processor and memory;
    所述存储器用于存储软件程序,所述处理器用于读取所述存储器中存储的软件程序,通过所述通信接口收发数据,并实现权利要求1至3任一项所述的方法。The memory is for storing a software program, the processor is for reading a software program stored in the memory, transmitting and receiving data through the communication interface, and implementing the method of any one of claims 1 to 3.
  18. 一种数据传输装置,其特征在于,所述装置应用于数据的接收端,包括:A data transmission device, wherein the device is applied to a receiving end of data, and includes:
    通信接口、处理器和存储器;Communication interface, processor and memory;
    所述存储器用于存储软件程序,所述处理器用于读取所述存储器中存储的软件程序,通过所述通信接口收发数据,并实现权利要求4至8任一项所述的方法。The memory is for storing a software program, the processor is for reading a software program stored in the memory, transmitting and receiving data through the communication interface, and implementing the method of any one of claims 4 to 8.
  19. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储软件程序,所述软件程序在被一个或多个处理器读取并执行时可实现权利要求1~8任一项所述的方法。A computer readable storage medium, wherein the computer readable storage medium stores a software program that, when read and executed by one or more processors, implements any of claims 1-8 The method described in the item.
PCT/CN2018/074348 2017-03-24 2018-01-26 Data transmission method and apparatus WO2018171332A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710184930.0 2017-03-24
CN201710184930.0A CN108631933B (en) 2017-03-24 2017-03-24 Data transmission method and device

Publications (1)

Publication Number Publication Date
WO2018171332A1 true WO2018171332A1 (en) 2018-09-27

Family

ID=63584905

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/074348 WO2018171332A1 (en) 2017-03-24 2018-01-26 Data transmission method and apparatus

Country Status (2)

Country Link
CN (1) CN108631933B (en)
WO (1) WO2018171332A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4128591A4 (en) * 2020-03-24 2023-11-08 Qualcomm Incorporated Techniques for providing an adaptive coding rate in wireless communications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833051A (en) * 2012-08-24 2012-12-19 北京理工大学 Fountain coding broadcast method based on feedback
CN103716134A (en) * 2013-11-21 2014-04-09 浙江大学 Encoding method of fountain codes with gradually-increased degrees under condition of one-time feedback
CN103973402A (en) * 2013-02-06 2014-08-06 华为技术有限公司 Data transmitting method, data receiving method and equipment
CN105790899A (en) * 2016-02-17 2016-07-20 北京理工大学 Fountain code based one-time feedback retransmission method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102625250B (en) * 2012-03-09 2014-08-06 西安交通大学 Fountain code-based collaboration multicast method
CN102694636B (en) * 2012-06-15 2015-07-29 北京交大微联科技有限公司 Adopt sending, receiving method and the system of the HARQ technology of fountain codes
CN104243096B (en) * 2014-09-15 2017-10-27 重庆邮电大学 A kind of deep space multifile transmission method based on fountain codes
CN105490771B (en) * 2014-09-17 2019-04-09 重庆邮电大学 A kind of building method of LT fountain codes coding degree distribution
US10412151B2 (en) * 2015-01-26 2019-09-10 Huawei Technologies Co., Ltd. Method and system for on-demand file repair

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833051A (en) * 2012-08-24 2012-12-19 北京理工大学 Fountain coding broadcast method based on feedback
CN103973402A (en) * 2013-02-06 2014-08-06 华为技术有限公司 Data transmitting method, data receiving method and equipment
CN103716134A (en) * 2013-11-21 2014-04-09 浙江大学 Encoding method of fountain codes with gradually-increased degrees under condition of one-time feedback
CN105790899A (en) * 2016-02-17 2016-07-20 北京理工大学 Fountain code based one-time feedback retransmission method

Also Published As

Publication number Publication date
CN108631933A (en) 2018-10-09
CN108631933B (en) 2021-05-18

Similar Documents

Publication Publication Date Title
US9998406B2 (en) Method and apparatus for performing finite memory network coding in an arbitrary network
CN108141320B (en) Random linear network coded data transmission
US20170324428A1 (en) Data Packet Processing Method and Device
WO2014134974A1 (en) Polar code decoding method and decoder
KR20010113762A (en) Group chain reaction encoder with variable number of associated input data for each output group code
WO2014173133A1 (en) Decoding method and decoding apparatus for polar code
US20200028624A1 (en) System and technique for sliding window network coding-based packet generation
EP2782281A1 (en) Data transmission using rateless coding
JP7408152B2 (en) Self-adaptive system code FEC encoding and decoding method, apparatus, system and medium based on media content
US20170118674A1 (en) Random Linear Network Encoded Data Transmission From User Equipment
CN102648584A (en) Systems, methods, and media for checking available bandwidth using forward error correction
WO2020210779A2 (en) Coded data chunks for network qualitative services
MX2014013560A (en) Apparatus and method of transmitting and receiving packet in a broadcasting and communication system.
JP2019525657A (en) Method and apparatus for encoding and decoding polar codes
JP7282895B2 (en) Data retransmission decoding method, device, system and communication device
WO2018171332A1 (en) Data transmission method and apparatus
CN108702245B (en) Adaptive application layer forward error correction for MPEG media transport
CN113037437A (en) Data transmission method and device
US20190089785A1 (en) Identification encoding device and identification decoding device for data distribution and networks, and network elements comprising such devices
CN116319828A (en) Remote disaster recovery backup data transmission method, system, device and medium
CN111385069A (en) Data transmission method and computer equipment
CN102594535A (en) Adaptive weighted HARQ (hybrid automatic repeat request) combination method and device
US20190098652A1 (en) Timing method for time division duplex communication, base station, and user equipment
US20180034588A1 (en) Apparatus and method for data transmission using coded-combining or hybrid-coding
CN113228595A (en) Method and apparatus for transferring records

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: 18771284

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: 18771284

Country of ref document: EP

Kind code of ref document: A1