Packet loss data recovery method, device, equipment and storage medium

By using network coding and D2D collaborative communication between user terminals, the problem of low data transmission efficiency caused by feedback retransmission in existing technologies is solved, and more efficient packet loss data recovery is achieved.

CN116743318BActive Publication Date: 2026-06-12CHINA MOBILE GROUP JIANGSU +1

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
CHINA MOBILE GROUP JIANGSU
Filing Date
2023-07-07
Publication Date
2026-06-12

AI Technical Summary

Technical Problem

Existing packet loss recovery schemes increase the latency of data packet reception at the user end by retransmitting data packets, resulting in low data transmission efficiency.

Method used

By transmitting data between user terminals, using network coding technology and D2D collaborative communication, the first terminal encodes the received lost packet data and sends it to the second terminal. The second terminal then decodes the data and transmits it back to the first terminal to recover the lost data, thus avoiding the need to report information to the base station.

🎯Benefits of technology

It reduces the transmission latency between the base station and the user terminal, and improves data transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116743318B_ABST
    Figure CN116743318B_ABST
Patent Text Reader

Abstract

The application discloses a kind of packet loss data recovery method, device, equipment and storage medium, the method includes the following steps: step S1: the first terminal is received to the first packet loss data and is encoded, and the first encoding data is sent to second terminal;Step S2: the second terminal is received to the first encoding data and is decoded, and the lost source data packet is obtained, and the second packet loss data is encoded and transmitted to the first terminal after receiving, so that the first terminal recovers lost data according to the second packet loss data after encoding;Wherein, the first packet loss data and the second packet loss data are sent by the base station end, and the lost data in the first packet loss data is different from the lost data in the second packet loss data.The application improves the data transmission efficiency between base station and user end.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data processing technology, and in particular to a method, apparatus, device and storage medium for recovering lost data. Background Technology

[0002] When communication infrastructure is damaged and communication is interrupted due to natural disasters, it is necessary to quickly, effectively and reliably transmit and report disaster information through emergency communication systems. However, during data transmission, wireless channels are affected by signal attenuation, shadowing and multipath effects, resulting in data packet loss.

[0003] Most existing packet loss recovery solutions are based on feedback-based packet loss retransmission schemes. That is, users need to provide feedback on the reception status to the broadcast source (such as a vehicle-mounted base station). After receiving the feedback information, the broadcast source dynamically adjusts its own broadcast content and then retransmits the data packets to users within the broadcast range. Due to the poor wireless channel conditions in emergency communication scenarios, when the channel contains a large amount of feedback information and the broadcast source continuously retransmits data packets to users, it will increase the data packet reception latency and lead to low data transmission efficiency. Summary of the Invention

[0004] The main objective of this application is to provide a method, apparatus, device, and storage medium for recovering lost data, aiming to solve the technical problem in related technologies where retransmitting data packets to users through a feedback-based packet loss retransmission scheme increases the data packet reception latency at the user end, resulting in low data transmission efficiency.

[0005] To achieve the above objectives, this application provides a packet loss data recovery method applied to a user terminal in a packet loss data recovery system. The packet loss data recovery system further includes a base station. The user terminal includes multiple first terminals and multiple second terminals. The method includes the following steps:

[0006] Step S1: The first terminal encodes the received first lost packet data to obtain first encoded data, and sends the first encoded data to the second terminal;

[0007] Step S2: The second terminal decodes the received first encoded data to obtain the lost source data packet, and encodes the received second lost data packet and transmits it to the first terminal so that the first terminal can recover the lost data based on the encoded second lost data packet.

[0008] The first packet loss data and the second packet loss data are sent by the base station, and the data lost in the first packet loss data is different from the data lost in the second packet loss data.

[0009] In one possible implementation of this application, step S2 includes:

[0010] If the second terminal does not receive the first encoded data, then the second lost packet data is encoded to generate the second encoded data;

[0011] The second encoded data, the virtual queue data of the second terminal, and the undecoded queue data are sent to the first terminal;

[0012] If the second terminal receives the first encoded data, it generates the second encoded data based on the comparison result between the first number of data packets in the preset encoding window and the preset buffer threshold, and updates the virtual queue data and the undecoded queue data.

[0013] The second encoded data, the updated virtual queue data, and the undecoded queue data are sent to the first terminal, wherein the preset cache threshold is associated with the maximum value of the preset encoding window.

[0014] In one possible implementation of this application, the step of generating second encoded data and updating the virtual queue data and the undecoded queue data based on a comparison between the first number of data packets in a preset encoding window and a preset buffer threshold, if the second terminal receives the first encoded data, includes:

[0015] When the first quantity is greater than or equal to the preset cache threshold, the data packets that have not been encoded in the encoding window are encoded to obtain the second encoded data;

[0016] When the first quantity is less than the preset cache threshold, the unencoded data in the preset encoding window is deleted according to the data information of the unencoded queue, and the remaining data packets in the preset encoding window are encoded to obtain the second encoded data.

[0017] The first encoded data is decoded, and the virtual queue data and the undecoded queue data are updated based on the decoded first encoded data.

[0018] In one possible implementation of this application, step S1 includes:

[0019] The first terminal performs network encoding on the received data packets according to the encoding coefficients generated by the preset encoding window to generate first encoded data;

[0020] The first encoded data and the corresponding serial number information are sent to the second terminal.

[0021] In one possible implementation of this application, after step S2, the following is included:

[0022] If the first terminal and the second terminal recover the lost data, the original data packet sent by the base station is added to the encoding window;

[0023] If the first terminal and the second terminal fail to recover the lost data, the sequence number corresponding to the original data packet sent by the base station is added to the virtual queue data and the undecoded queue data.

[0024] In one possible implementation of this application, the user terminal recovers the lost data within a preset time period, wherein the preset time period is less than or equal to the data transmission time between the base station and the user terminal.

[0025] In one possible implementation of this application, the number of data transmissions between the first terminal and the second terminal is associated with the broadcast channel bandwidth between the base station and the user terminal and the cooperative channel bandwidth between the user terminals.

[0026] This application also provides a packet loss data recovery device, which further includes:

[0027] The encoding module is used to encode the received first lost packet data to obtain first encoded data, and then send the first encoded data to the second terminal.

[0028] The decoding module is used to decode the received first encoded data to obtain the lost source data packet, and to encode the received second lost data packet and transmit it to the first terminal so that the first terminal can recover the lost data based on the encoded second lost data packet.

[0029] The first packet loss data and the second packet loss data are sent by the base station, and the data lost in the first packet loss data is different from the data lost in the second packet loss data.

[0030] This application also provides a packet loss data recovery device, which is a physical node device. The packet loss data recovery device includes: a memory, a processor, and a program for the packet loss data recovery method stored in the memory and executable on the processor. When the program for the packet loss data recovery method is executed by the processor, it can implement the steps of the packet loss data recovery method as described above.

[0031] To achieve the above objectives, a storage medium is also provided, wherein a packet loss data recovery program is stored on the storage medium, and when the packet loss data recovery program is executed by a processor, it implements the steps of any of the packet loss data recovery methods described above.

[0032] This application provides a method, apparatus, device, and storage medium for recovering lost data. Compared with related technologies that retransmit data packets to users through feedback-based packet loss retransmission schemes, which increases the data packet reception latency at the user end and leads to low data transmission efficiency, in this application, the first terminal encodes the received first lost data to obtain first encoded data and sends the first encoded data to the second terminal; the second terminal decodes the received first encoded data to obtain the lost source data packet, and encodes the received second lost data before transmitting it to the first terminal, so that the first terminal can recover the lost data based on the encoded second lost data; wherein, the first lost data and the second lost data are sent by the base station, and the data lost in the first lost data is different from the data lost in the second lost data. In this application, the base station sends data packets to the user terminal, and the user terminals transmit the received data to each other. By decoding the received data, since the data lost in the first packet loss is different from the data lost in the second packet loss, the source data packet of the lost packet can be obtained from other user terminals. The lost packet data can be recovered without feeding back user information to the base station, thereby reducing the transmission latency between the base station and the user terminal and improving the data transmission efficiency. Attached Figure Description

[0033] Figure 1 This is a flowchart illustrating the first embodiment of the packet loss data recovery method of this application;

[0034] Figure 2 This is a schematic diagram illustrating the application scenarios involved in the packet loss data recovery method of this application;

[0035] Figure 3 This is a schematic diagram of the device structure of the hardware operating environment involved in the embodiments of this application;

[0036] Figure 4 This is a schematic diagram of the packet loss recovery time slot between the first terminal and the second terminal involved in the packet loss data recovery method of this application;

[0037] Figure 5 This is a schematic diagram of the overall processing flow involved in the packet loss data recovery method of this application. Detailed Implementation

[0038] It should be understood that the specific embodiments described herein are merely illustrative of this application and are not intended to limit this application.

[0039] This application provides a method for recovering lost packet data. In the first embodiment of this method, refer to... Figure 1The method is applied to a user terminal in a packet loss data recovery system, wherein the packet loss data recovery system also includes a base station terminal, and the user terminal includes multiple first terminals and multiple second terminals. The method includes the following steps:

[0040] Step S1: The first terminal encodes the received first lost packet data to obtain first encoded data, and sends the first encoded data to the second terminal.

[0041] In step S2, the second terminal decodes the received first encoded data to obtain the lost source data packet, and encodes the received second lost data packet and transmits it to the first terminal so that the first terminal can recover the lost data based on the encoded second lost data packet.

[0042] The first packet loss data and the second packet loss data are sent by the base station, and the data lost in the first packet loss data is different from the data lost in the second packet loss data.

[0043] This embodiment aims to reduce the transmission latency between the base station and the user terminal and improve data transmission efficiency by transmitting data between user terminals. Since the data lost in the first packet loss is different from the data lost in the second packet loss, the source data packet of the lost packet can be obtained from other user terminals. The lost packet data can be recovered without feeding back user information to the base station.

[0044] In this embodiment, the research and development background is as follows:

[0045] Currently, emergency communication primarily employs two methods: wired and wireless. Wireless communication utilizes the characteristic that electromagnetic waves can propagate in free space for information exchange. It does not require dedicated wiring, can be easily accessed within its signal coverage area, and allows for communication while on the move. Therefore, compared to wired communication, wireless communication is characterized by strong resilience, simple networking, and flexibility, making it the most commonly used communication method for handling various emergency situations.

[0046] In emergency communication systems, wireless communication is typically achieved by broadcasting data packets to user terminals from vehicle-mounted base stations or drones. However, wireless channels are susceptible to signal attenuation, shadowing, and multipath effects, leading to random failures in receiving data packets from different user terminals.

[0047] In this embodiment, the application scenario is as follows:

[0048] In emergency communication systems, wireless communication is typically achieved by broadcasting data packets from vehicle-mounted base stations or drones to user terminals. However, wireless channels are susceptible to signal attenuation, shadowing, and multipath effects, leading to random failures in data packet reception by different user terminals. To improve the transmission reliability of the broadcast system, this scheme combines random linear network coding technology with D2D cooperative communication to ensure the reliability of data transmission in emergency communication systems, improve bandwidth efficiency, and increase network throughput.

[0049] The specific steps are as follows:

[0050] Step S1: The first terminal encodes the received first lost packet data to obtain first encoded data, and sends the first encoded data to the second terminal;

[0051] As an example, the packet loss data recovery method can be applied to a packet loss data recovery device, which belongs to a packet loss data recovery system, and the packet loss data recovery system belongs to a packet loss data recovery equipment.

[0052] As an example, terminal-to-terminal communication is called D2D communication. D2D communication recovers lost data packets in lossy environments through cooperation between neighboring devices. This function can reduce the number of retransmissions at the base station, significantly improve resource utilization, and reduce transmission completion time. D2D communication can support a large number of device connections and can improve data rates in multi-user scenarios. Numerous empirical results show that the D2D cooperative recovery mechanism can effectively enhance system reliability, increase network throughput, and may play an important role in many emerging emergency communication application scenarios such as vehicle-to-everything (V2X) and shore power.

[0053] As an example, the base station acts as the data sender in a packet loss recovery system. By sending data to various user terminals, it establishes network connections for multiple users within a given area. Specifically, for example... Figure 2 As shown, Figure 2 In this context, the broadcast source S is the base station, and each user has a corresponding user terminal. A vehicle-mounted base station S broadcasts data packets sequentially to its coverage area through a broadcast channel (also known as a lossy channel). Any two broadcast receivers U1 and U2 (forming a D2D cooperative pair) receive broadcast information from S through a long-distance antenna while cooperating to recover lost data packets through a short-distance antenna. Each user establishes a network connection with the base station through the broadcast channel and transmits data to each other through the assistance channel.

[0054] As an example, the first terminal and the second terminal can be any one of the user terminals in the user terminal. There can be multiple first terminals and second terminals. During the data transmission process, the number of first terminals and second terminals is the same. Data is transmitted between the first terminals and the second terminals to achieve the purpose of recovering lost data.

[0055] As an example, the first packet loss data is the data sent by the receiving base station that has been lost during transmission. Packet loss is very likely to occur when the channel is unstable or the wireless transmission environment is complex.

[0056] As an example, the encoding process can be network coding, which is an information exchange technology that integrates routing and coding. Its core idea is to process the information received on each channel at each node in the network in a linear or nonlinear manner, and then forward it to the downstream node. Intermediate nodes play the role of encoders or signal processors. When data packets are transmitted through lossy relay links, if intermediate nodes can re-encode and forward the received data packets, the overall transmission completion time and throughput can be reduced.

[0057] As an example, the encoding process is specifically Randomized Linear Network Coding (RLNC). RLNC randomly generates coding coefficients in the codeword construction, so it is a rateless code, which is suitable for network scenarios where the network topology is unknown or changes frequently.

[0058] As an example, the first encoded data is the data obtained by encoding the received data packet. By encoding the data, the overall transmission completion time and throughput are reduced.

[0059] Step S1 includes:

[0060] Step A1: The first terminal performs network encoding on the received data packet according to the encoding coefficients generated by the preset encoding window to generate the first encoded data;

[0061] As an example, the preset encoding window is a virtual window used to encode data. It can also store unencoded data packets. The received data packets can be encoded through the preset encoding window to generate the first encoded data.

[0062] As an example, the coding coefficients are randomly generated coefficients from a preset coding window. For example, if the coding window of a user terminal contains data packets X1, X3, and X5, and the coding coefficients randomly generated by the user terminal are (1,2,4), then the generated random linear network coding packet is: Y = X1 + 2X3 + 4X5.

[0063] Step A2: Send the first encoded data and the corresponding serial number information to the second terminal.

[0064] As an example, after encoding the data, the user terminal then encodes the encoding vectors g1, g2, ... g of each data packet. m This information is added as header information to the data header, generating an encoded data packet. The user terminal then sends the encoded data packet to the other user terminal via the D2D channel.

[0065] As an example, the sequence number information is the sequence number corresponding to each data packet. After the terminal encodes the data, it generates multiple data packets, and each data packet corresponds to a sequence number.

[0066] Step S2: The second terminal decodes the received first encoded data to obtain the lost source data packet, and encodes the received second lost data packet and transmits it to the first terminal so that the first terminal can recover the lost data based on the encoded second lost data packet.

[0067] The first packet loss data and the second packet loss data are sent by the base station, and the data lost in the first packet loss data is different from the data lost in the second packet loss data.

[0068] As an example, the first terminal and the second terminal are not strictly distinguished. They transmit data to each other and then recover the lost data from the received encoded data.

[0069] As an example, the decoding process can begin by judging the received n encoded data packets to obtain the linear correlation of the encoding coefficients carried in these n encoded data packets. Let the encoded data in the n data packets received by the user terminal be Y1, Y2, ..., Y... n The i-th data packet carries an encoded vector g. i,1 ,g i,2 ......g i, If the coding coefficient matrix consisting of all the coding vectors is of full rank, then the original n data packets can be recovered using the following formula.

[0070]

[0071] As an example, since the data lost in the first packet loss is different from the data lost in the second packet loss, the second terminal can obtain the lost source data packet from the received first encoded data after decoding is completed.

[0072] As an example, the second lost data is the data sent by the base station to the second terminal after loss during transmission. By sending the second lost data to the first terminal, the first terminal can also recover the lost data.

[0073] After step S2, the following is included:

[0074] Step B1: If the first terminal and the second terminal recover the lost data, then the original data packet sent by the base station is added to the encoding window;

[0075] As an example, after the first terminal and the second terminal have completed multiple rounds of data collaboration, it can be determined that the lost data recovery is complete. At this time, the base station completes the transmission of broadcast data packets.

[0076] As an example, if the user terminal successfully receives or saves the original data packet sent by the base station, the original data packet is added to the preset encoding window.

[0077] Step B2: If the first terminal and the second terminal fail to recover the lost data, then the sequence number corresponding to the original data packet sent by the base station is added to the virtual queue data and the undecoded queue data.

[0078] As an example, when the user terminal fails to recover the lost data, the sequence number corresponding to the original data packet sent by the base station is added to the virtual queue data and the undecoded queue data to facilitate the subsequent packet loss data recovery process.

[0079] This application provides a method, apparatus, device, and storage medium for recovering lost data. Compared with related technologies that retransmit data packets to users through feedback-based packet loss retransmission schemes, which increases the data packet reception latency at the user end and leads to low data transmission efficiency, in this application, the first terminal encodes the received first lost data to obtain first encoded data and sends the first encoded data to the second terminal; the second terminal decodes the received first encoded data to obtain the lost source data packet, and encodes the received second lost data before transmitting it to the first terminal, so that the first terminal can recover the lost data based on the encoded second lost data; wherein, the first lost data and the second lost data are sent by the base station, and the data lost in the first lost data is different from the data lost in the second lost data. In this application, the base station sends data packets to the user terminal, and the user terminals transmit the received data to each other. By decoding the received data, since the data lost in the first packet loss is different from the data lost in the second packet loss, the source data packet of the lost packet can be obtained from other user terminals. The lost packet data can be recovered without feeding back user information to the base station, thereby reducing the transmission latency between the base station and the user terminal and improving the data transmission efficiency.

[0080] Furthermore, based on the first embodiment of this application, another embodiment of this application is provided, in which step S2 includes:

[0081] Step S30: If the second terminal does not receive the first encoded data, then the second lost packet data is encoded to generate the second encoded data;

[0082] As an example, due to packet loss, when the second terminal does not receive the first encoded data, the received second lost packet data is directly encoded to generate the second encoded data.

[0083] Step S40: Send the second encoded data, the virtual queue data of the second terminal, and the undecoded queue data to the first terminal;

[0084] As an example, virtual queue data can be a queue formed by data received by the terminal, denoted as Qi (i = 1, 2). Virtual queue data records the sequence number of data packets that the current user terminal or node has received but are not in the queue.

[0085] As an example, the undecoded queue data includes the queue of data received by the user terminal but not decoded, denoted as Li (i = 1, 2). The undecoded queue data contains the sequence numbers of the data packets that the node has not decoded.

[0086] As an example, the virtual queue data and the undecoded queue data do not change or update when the first encoded data is not received.

[0087] As an example, when the encoded packet in the preset encoding window is empty, only virtual queue data and undecoded queue data are sent to the first terminal.

[0088] Step S50: If the second terminal receives the first encoded data, then according to the comparison result of the first number of data packets in the preset encoding window and the preset buffer threshold, the second encoded data is generated, and the virtual queue data and the undecoded queue data are updated.

[0089] As an example, the default encoding window is denoted as W. i Let the maximum encoding window size be E. max If the Wi window size is less than or equal to Emax, the default encoding window is used to buffer data packets to be encoded.

[0090] As an example, the preset cache threshold is specifically E. max / 2, by combining the first number of data packets in the preset encoding window and E max Compared to / 2, it can prevent overflow caused by too many data packets and avoid packet loss.

[0091] As an example, based on the number of data packets in the preset encoding window and E max By comparing / 2, we can determine how to generate the second encoded data.

[0092] Step S60: Send the second encoded data, the updated virtual queue data, and the undecoded queue data to the first terminal, wherein the preset cache threshold is associated with the maximum value of the preset encoding window.

[0093] The step of generating second encoded data and updating the virtual queue data and the undecoded queue data based on a comparison between the first number of data packets in the preset encoding window and a preset buffer threshold, if the second terminal receives the first encoded data, includes:

[0094] Step S70: When the first quantity is greater than or equal to a preset buffer threshold, the unencoded data packets in the encoding window are encoded to obtain second encoded data;

[0095] As an example, after the second terminal receives the first encoded data from the first terminal, if the virtual queue data is empty, then let i = 0; otherwise, there must be L1(i) = Q1(0) in the first terminal, which means that the first terminal contains i source data packets that have entered the queue but have not been decoded.

[0096] As an example, if i ≥ Emax / 2, U2 will network - code the data packets in the coding window whose packet sequence numbers are less than Q1(0) to generate coded packets, and U2 updates the virtual queue data Q2 and the undecoded queue data L2 after decoding according to the coded packets received from U1.

[0097] Step S80, when the first quantity is less than the preset cache threshold, delete the uncoded data in the preset coding window according to the data information of the uncoded queue, and code the remaining data packets in the preset coding window to obtain second - coded data;

[0098] Step S90, decode the first - coded data, and update the virtual queue data and the undecoded queue data according to the decoded first - coded data.

[0099] As an example, if i < Emax / 2, U2 deletes the data packets in the virtual queue of the first terminal from the coding window W2 according to the information of the undecoded queue data L1, updates the virtual queue data Q2 and the undecoded queue data L2 after decoding according to the coded packets received from U1. After the update, U2 codes the data packets in W2 to generate coded packets.

[0100] As an example, during the data transmission process, the execution processes of the first terminal and the second terminal are the same. Specifically, as Figure 5 shown, it can be obtained that the base station S sends the original data packet S to the user terminal. Figure 5 Since the execution processes of the first terminal and the second terminal are the same, taking the first terminal as an example, the data packets in the U1 coding cache window W1, together with the virtual queue and the uncoded queue, are sent to U2 through the cooperation channel. Then, U1 receives the second - coded data from U2, and U1 updates W1, Q1, and L1 according to the coded packets of U2. At this time, the second - round cooperation is completed, and both the first terminal and the second terminal complete the lost - packet data recovery process. At this time, the base - station broadcast ends, and it is judged whether the user successfully receives the original data packet S. t After successfully receiving the original data packet, add the data packet S t to the preset coding window. When the lost - packet data is not fully recovered, add the sequence number of the data packet S t to the virtual sequence and the uncoded sequence at the user end for the next - round cooperation. t In this embodiment, by comparing with the maximum cache E

[0101] and transmitting data to each other according to the comparison result, packet loss caused by user - terminal cache overflow is prevented. max

[0102] ​Furthermore, based on the first and second embodiments of this application, another embodiment of this application is provided, in which the user terminal recovers the lost data within a preset time period, wherein the preset time period is less than or equal to the data transmission time between the base station and the user terminal.

[0103] As an example, the preset time period can be the data transmission time between the base station and the user terminal, or it can be shorter than the data transmission time between the base station and the user terminal. Since the bandwidth of the broadcast channel between the base station and the user terminal is smaller than the bandwidth of the short-range channel between the user terminals, for example, the maximum bandwidth frequency of VHF television broadcast is 300MHz, while that of normal short-range Wi-Fi is 2.4GHz, in order to cope with the bandwidth difference between the two types of channels, the cooperative time slot is divided into several equal sub-time slots in this scheme. Each cooperative packet sent between two users occupies exactly one sub-time slot (denoted as sub-time slot CT).

[0104] As an example, during data transmission, user terminals transmit cooperative data packets to each other, i.e., U1→U2→U1→U2.

[0105] As an example, by leveraging the time difference in channel transmission, users can cross-transmit data during the collaboration phase, reducing the recovery time for lost packets.

[0106] The number of data transmissions between the first terminal and the second terminal is related to the broadcast channel bandwidth between the base station and the user terminal, as well as the cooperative channel bandwidth between the user terminals.

[0107] In this embodiment, the packet loss recovery time slot diagram between the first terminal and the second terminal is as follows: Figure 4 As shown, the total time slots of a broadcast phase include 4 sub-time slots. The number of sub-time slots CT, k, is fixed and its value is equal to the ratio of the bandwidth of the cooperative channel to the bandwidth of the broadcast. In this application, it is considered that the bandwidth of the cooperative channel in the system is 4 times the bandwidth of the broadcast channel, i.e., k = 4. Therefore, for each data packet sent by the broadcast channel, two users can use the D2D cooperative channel to send and receive 2 encoded data packets respectively.

[0108] In this embodiment, each user terminal obtains encoded data packets from other user terminals within a preset time period. The source data packets can be recovered within a certain time slot using the encoded data packets, thereby improving the efficiency of data loss recovery.

[0109] Reference Figure 3 , Figure 3 This is a schematic diagram of the device structure of the hardware operating environment involved in the embodiments of this application.

[0110] like Figure 3As shown, the packet loss data recovery device may include: a processor 1001, a memory 1005, and a communication bus 1002. The communication bus 1002 is used to realize the connection and communication between the processor 1001 and the memory 1005.

[0111] Optionally, the packet loss data recovery device may also include a user interface, a network interface, a camera, RF (Radio Frequency) circuitry, sensors, a WiFi module, etc. The user interface may include a display screen and an input submodule such as a keyboard; optional user interfaces may also include standard wired or wireless interfaces. The network interface may include standard wired or wireless interfaces (such as a Wi-Fi interface).

[0112] Those skilled in the art will understand that Figure 3 The structure of the packet loss data recovery device shown does not constitute a limitation on the packet loss data recovery device. It may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0113] like Figure 3 As shown, the memory 1005, serving as a storage medium, may include an operating system, a network communication module, and a packet loss data recovery program. The operating system is a program that manages and controls the hardware and software resources of the packet loss data recovery device, supporting the operation of the packet loss data recovery program and other software and / or programs. The network communication module is used to enable communication between the various components within the memory 1005, as well as communication with other hardware and software in the packet loss data recovery system.

[0114] exist Figure 3 In the packet loss data recovery device shown, the processor 1001 is used to execute the packet loss data recovery program stored in the memory 1005 to implement the steps of the packet loss data recovery method described above.

[0115] The specific implementation of the packet loss data recovery device in this application is basically the same as the embodiments of the packet loss data recovery method described above, and will not be repeated here.

[0116] This application also provides a packet loss data recovery device, which further includes:

[0117] The encoding module is used to encode the received first lost packet data to obtain first encoded data, and then send the first encoded data to the second terminal.

[0118] The decoding module is used to decode the received first encoded data to obtain the lost source data packet, and to encode the received second lost data packet and transmit it to the first terminal so that the first terminal can recover the lost data based on the encoded second lost data packet.

[0119] The first packet loss data and the second packet loss data are sent by the base station, and the data lost in the first packet loss data is different from the data lost in the second packet loss data.

[0120] In one possible implementation of this application, the decoding module includes:

[0121] The encoding unit is used to encode the second lost packet data to generate second encoded data if the second terminal does not receive the first encoded data;

[0122] The first sending unit is used to send the second encoded data, the virtual queue data of the second terminal, and the undecoded queue data to the first terminal;

[0123] The first generation unit is configured to, if the second terminal receives the first encoded data, generate the second encoded data according to the comparison result between the first number of data packets in the preset encoding window and the preset buffer threshold, and update the virtual queue data and the undecoded queue data.

[0124] The second sending unit is used to send the second encoded data, the updated virtual queue data, and the undecoded queue data to the first terminal, wherein the preset buffer threshold is associated with the maximum value of the preset encoding window.

[0125] In one possible implementation of this application, the generation unit includes:

[0126] The first encoding subunit is used to encode the unencoded data packets in the encoding window to obtain the second encoded data when the first quantity is greater than or equal to a preset buffer threshold.

[0127] The second encoding subunit is used to, when the first quantity is less than a preset cache threshold, delete unencoded data in a preset encoding window based on the data information of the unencoded queue, and encode the remaining data packets in the preset encoding window to obtain second encoded data.

[0128] The decoding subunit is used to decode the first encoded data and update the virtual queue data and the undecoded queue data according to the decoded first encoded data.

[0129] In one possible implementation of this application, the encoding module includes:

[0130] The second generation unit is used by the first terminal to perform network encoding on the received data packets according to the encoding coefficients generated by the preset encoding window, and generate the first encoded data.

[0131] The third sending unit is used to send the first encoded data and the sequence number information corresponding to the first encoded data to the second terminal.

[0132] In one possible embodiment of this application, the apparatus further includes:

[0133] The first adding module is used to add the original data packet sent by the base station into the encoding window if the first terminal and the second terminal recover the lost data.

[0134] The second adding module is used to add the sequence number corresponding to the original data packet sent by the base station to the virtual queue data and the undecoded queue data if the first terminal and the second terminal fail to recover the lost data.

[0135] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or system that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or system. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or system that includes that element.

[0136] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0137] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) as described above, and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in the various embodiments of this application.

[0138] The above are merely preferred embodiments of this application and do not limit the patent scope of this application. Any equivalent structural or procedural transformations made using the content of this application's specification and drawings, or direct or indirect applications in other related technical fields, are similarly included within the patent protection scope of this application.

Claims

1. A method for recovering lost data, characterized in that, A user terminal applied to a packet loss data recovery system, the packet loss data recovery system further including a base station terminal, the user terminal including multiple first terminals and multiple second terminals, the method including the following steps: Step S1: The first terminal encodes the received first lost packet data to obtain first encoded data, and sends the first encoded data to the second terminal; Step S2: The second terminal decodes the received first encoded data to obtain the lost source data packet, and encodes the received second lost data packet and transmits it to the first terminal so that the first terminal can recover the lost data based on the encoded second lost data packet. The first packet loss data and the second packet loss data are sent by the base station, and the data lost in the first packet loss data is different from the data lost in the second packet loss data. Step S2 includes: If the second terminal does not receive the first encoded data, then the second lost packet data is encoded to generate the second encoded data; The second encoded data, the virtual queue data of the second terminal, and the undecoded queue data are sent to the first terminal; If the second terminal receives the first encoded data, it generates the second encoded data based on the comparison result between the first number of data packets in the preset encoding window and the preset buffer threshold, and updates the virtual queue data and the undecoded queue data. The second encoded data, the updated virtual queue data, and the undecoded queue data are sent to the first terminal, wherein the preset cache threshold is associated with the maximum value of the preset encoding window.

2. The packet loss data recovery method as described in claim 1, characterized in that, The step of generating second encoded data and updating the virtual queue data and the undecoded queue data based on the comparison result between the first number of data packets in the preset encoding window and the preset buffer threshold, if the second terminal receives the first encoded data, includes: When the first quantity is greater than or equal to the preset cache threshold, the data packets that have not been encoded in the encoding window are encoded to obtain the second encoded data; When the first quantity is less than the preset cache threshold, the unencoded data in the preset encoding window is deleted according to the data information of the unencoded queue, and the remaining data packets in the preset encoding window are encoded to obtain the second encoded data. The first encoded data is decoded, and the virtual queue data and the undecoded queue data are updated based on the decoded first encoded data.

3. The packet loss data recovery method as described in claim 1, characterized in that, Step S1 includes: The first terminal performs network encoding on the received data packets according to the encoding coefficients generated by the preset encoding window to generate first encoded data; The first encoded data and the corresponding serial number information are sent to the second terminal.

4. The packet loss data recovery method as described in claim 1, characterized in that, After step S2, the following is included: If the first terminal and the second terminal recover the lost data, the original data packet sent by the base station is added to the encoding window; If the first terminal and the second terminal fail to recover the lost data, the sequence number corresponding to the original data packet sent by the base station is added to the virtual queue data and the undecoded queue data.

5. The packet loss data recovery method as described in claim 1, characterized in that, The user terminal recovers the lost data within a preset time period, wherein the preset time period is less than or equal to the data transmission time between the base station and the user terminal.

6. The packet loss data recovery method as described in claim 1, characterized in that, The number of data transmissions between the first terminal and the second terminal is related to the broadcast channel bandwidth between the base station and the user terminal, as well as the cooperative channel bandwidth between the user terminals.

7. A packet loss data recovery device, characterized in that, The packet loss data recovery device includes: The encoding module is used to encode the received first lost packet data to obtain first encoded data, and then send the first encoded data to the second terminal. The decoding module is used to decode the received first encoded data to obtain the lost source data packet, and to encode the received second lost data packet and transmit it to the first terminal so that the first terminal can recover the lost data based on the encoded second lost data packet. The first packet loss data and the second packet loss data are sent by the base station, and the data lost in the first packet loss data is different from the data lost in the second packet loss data. The decoding module includes: The encoding unit is used to encode the second lost packet data to generate second encoded data if the second terminal does not receive the first encoded data; The first sending unit is used to send the second encoded data, the virtual queue data of the second terminal, and the undecoded queue data to the first terminal; The first generation unit is configured to, if the second terminal receives the first encoded data, generate the second encoded data according to the comparison result between the first number of data packets in the preset encoding window and the preset buffer threshold, and update the virtual queue data and the undecoded queue data. The second sending unit is used to send the second encoded data, the updated virtual queue data, and the undecoded queue data to the first terminal, wherein the preset buffer threshold is associated with the maximum value of the preset encoding window.

8. A packet loss data recovery device, characterized in that, The device includes: a memory, a processor, and a packet loss data recovery program stored in the memory and executable on the processor, the packet loss data recovery program being configured to implement the steps of the packet loss data recovery method as described in any one of claims 1 to 6.

9. A computer storage medium, characterized in that, The computer storage medium stores a packet loss data recovery program, which, when executed by a processor, implements the steps of the packet loss data recovery method as described in any one of claims 1 to 6.