Data transmission method, data sending end, data receiving end and system

By combining multiple groups to build a associated grouping and generate redundant packages, the problem of low data recovery efficiency and accuracy in existing technologies has been solved, and more efficient and flexible data recovery has been achieved.

CN119341692APending Publication Date: 2025-01-21ALIPAY (HANGZHOU) INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411456601.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-17
Publication Date
2025-01-21

AI Technical Summary

Technical Problem

In the prior art, in the process of data transmission, when data recovery is based on redundant packets of specific packets, the recovery efficiency and accuracy are low.

Method used

By united multiple groups, build a associated group, generate redundant packages, and recover data based on the decoding matrix and redundant packets on the data receiving end.

Benefits of technology

It greatly improves the efficiency of data recovery, can handle different types of data transmission errors more flexibly, and optimizes the data recovery process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119341692A_ABST
    Figure CN119341692A_ABST
Patent Text Reader

Abstract

The invention provides a data transmission method, a data sending end, a data receiving end and a system, and the method applied to the data receiving end comprises the steps: receiving target data sent by the data sending end, the target data comprises a packet header and a packet body, the packet body comprises a plurality of grouped data packets and redundant packets corresponding to the groups, and the redundant packets are sent to the data sending end; the packet header comprises packet information, the packet information represents the plurality of packets and data packets contained in each packet, and if the data packets in the target packet are lost and the lost data packets of the target packet cannot be recovered based on the redundant packet corresponding to the target packet, determining at least one associated packet of the target packet based on the packet information, one associated group comprises a target group and a group having the same data packet as the target group, the target group is any group in the plurality of groups, and the lost data packet of the target group is recovered based on the at least one associated group so as to improve the recovery efficiency and accuracy.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of communication technology, and in particular to a data transmission method, a data transmitter, a data receiver and a system. Background Art

[0002] With the development of Internet communications and people's pursuit of data transmission reliability, FEC technology is applied to data recovery during data transmission.

[0003] In the related art, the data transmitter sends the original data to be transmitted based on the packet, and generates and sends the corresponding redundant packets based on the FEC technology. If the data receiver determines that a data packet of a certain packet is lost, the data is recovered based on the FEC technology and the redundant packets corresponding to the packet.

[0004] However, data recovery based on redundant packets of specific groups has the disadvantages of low recovery efficiency and accuracy.

[0005] It is worth noting that the contents of the above-mentioned related technologies are merely information known to the inventor personally, which does not mean that the above-mentioned information has entered the public domain before the filing date of this specification, nor does it mean that it can become the prior art of this specification. Summary of the invention

[0006] The present specification provides a data transmission method, a data sending end, a data receiving end and a system to avoid at least one of the above-mentioned technical problems.

[0007] In a first aspect, this specification provides a data transmission method, applied to a data receiving end, the method comprising:

[0008] Receive target data sent by a data transmitting end, wherein the target data includes a packet header and a packet body, the packet body includes a plurality of grouped data packets and redundant packets corresponding to each of the groups, the packet header includes group information, the group information represents the plurality of groups and the data packets included in each of the groups; and

[0009] If a data packet in a target group is lost, and the lost data packet of the target group cannot be recovered based on a redundant packet corresponding to the target group, determining at least one associated group of the target group based on the group information, wherein one associated group includes the target group and a group having the same data packet as the target group, and the target group is any one of the multiple groups; and

[0010] The lost data packets of the target packet are recovered based on the at least one associated packet.

[0011] In a second aspect, this specification provides a data transmission method, applied to a data sending end, the method comprising:

[0012] Obtaining original data to be transmitted;

[0013] Constructing target data according to the original data to be transmitted, wherein the target data includes a packet header and a packet body, the packet body includes a plurality of grouped data packets and a redundant packet corresponding to each group, the packet header includes grouping information, the grouping information represents the plurality of groups and the data packets included in each group, and the original data to be transmitted includes the plurality of grouped data packets; and

[0014] The target data is sent to a data receiving end, wherein the packet information is used to determine at least one associated packet of the target packet, so as to recover the lost data packet of the target packet when the data packet of the target packet is lost and the lost data packet of the target packet cannot be recovered based on the redundant packet corresponding to the target packet, wherein an associated packet includes the target packet and a packet having the same data packet as the target packet, and the target packet is any one of the multiple packets.

[0015] In a third aspect, this specification provides a data receiving end, including:

[0016] at least one storage medium storing at least one instruction set for data transmission;

[0017] At least one processor is communicatively connected to the at least one storage medium, wherein when the at least one processor is running, it reads the at least one instruction set and executes the method as described in the first aspect according to the instructions of the at least one instruction set.

[0018] In a fourth aspect, this specification provides a data sending end, including:

[0019] at least one storage medium storing at least one instruction set for data transmission;

[0020] At least one processor is communicatively connected to the at least one storage medium, wherein when the at least one processor is running, it reads the at least one instruction set and executes the method as described in the second aspect according to the instructions of the at least one instruction set.

[0021] In a fifth aspect, this specification provides a data transmission system, including:

[0022] The data receiving end as described in the third aspect;

[0023] The data sending end as described in the fourth aspect.

[0024] It can be seen from the above technical solutions that the data transmission method, data transmitter, data receiver and system provided in this specification can greatly improve the data recovery efficiency by combining multiple groups so that the data transmitter constructs a coding matrix on the basis of the combination and generates redundant packets based on the coding matrix; and the data receiver constructs a decoding matrix on the basis of the combination, and recovers the data packets lost or damaged during the data transmission process based on the decoding matrix and the redundant packets. And it can handle different types of data transmission errors more flexibly and optimize the data recovery process.

[0025] Other functions of the data transmission method, data transmitter, data receiver, and system provided in this specification will be partially listed in the following description. The creative aspects of the data transmission method, data transmitter, data receiver, and system provided in this specification can be fully explained by practicing or using the methods, devices, and combinations described in the following detailed examples. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] In order to more clearly illustrate the technical solutions in the embodiments of this specification, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this specification. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0027] Figure 1 A schematic diagram of an application scenario of the data transmission method provided in the embodiments of this specification;

[0028] Figure 2 A schematic diagram of the hardware structure of a data sending end and a data receiving end provided in the embodiments of this specification;

[0029] Figure 3 An interactive schematic diagram of a data transmission method provided in an embodiment of this specification;

[0030] Figure 4 A schematic diagram of grouping provided in the embodiments of this specification;

[0031] Figure 5 A schematic diagram of an initial matrix provided for an embodiment of this specification;

[0032] Figure 6 A schematic diagram of sub-matrix division provided in an embodiment of this specification;

[0033] Figure 7 A schematic diagram of determining target association groups provided in an embodiment of this specification;

[0034] Figure 8 A schematic diagram of a coding matrix provided in an embodiment of this specification;

[0035] Fig. 9 A schematic diagram of lower triangular elimination operation and augmented matrix recording provided in the embodiments of this specification;

[0036] Fig.10 A schematic diagram of a decoding matrix provided in an embodiment of this specification. DETAILED DESCRIPTION

[0037] Exemplary embodiments will be described in detail herein, examples of which are shown in the accompanying drawings. When the following description refers to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The implementations described in the following exemplary embodiments do not represent all implementations consistent with this specification. Instead, they are merely examples of devices and methods consistent with some aspects of this specification as detailed in the appended claims.

[0038] It should be understood that the terms "including" and "having" and any variations thereof in the embodiments of this specification are intended to cover but not exclude inclusion. For example, a product or device comprising a series of components is not necessarily limited to those components explicitly listed, but may include other components not explicitly listed or inherent to these products or devices.

[0039] In the embodiments of this specification, the term "and / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B may represent: A exists alone, A and B exist at the same time, and B exists alone. The character " / " generally indicates that the associated objects before and after are in an "or" relationship.

[0040] The term "plurality" in the embodiments of the present specification refers to two or more than two, and other quantifiers are similar thereto.

[0041] The terms "first", "second", "third", etc. in this specification are used to distinguish similar or similar objects or entities, and do not necessarily mean to limit a specific order or sequence, unless otherwise indicated. It should be understood that the terms used in this way can be interchangeable under appropriate circumstances, for example, they can be implemented in an order other than those given in the diagrams or descriptions of the embodiments of this specification.

[0042] The term "unit / module" as used in this specification refers to any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic or combination of hardware and / or software code that is capable of performing the functions associated with that element.

[0043] To facilitate readers' understanding of this specification, at least some of the terms in this specification are explained as follows:

[0044] Forward Error Correction (FEC) is an error control method widely used in the field of data communication. Its basic principle is to add some redundant data (such as checksums, etc.) to the original data through a certain algorithm at the data sending end. Even if a certain number of errors or data packets are lost during the data transmission from the data sending end to the data receiving end, the data receiving end can use these redundant data to reconstruct the original data (that is, the data sent by the data end) without retransmitting. FEC improves the reliability of data transmission, especially in interference-prone environments such as wireless communications, satellite communications, and network transmission.

[0045] Redundant packets refer to data packets that are added to the FEC mechanism to implement forward error correction. These redundant packets do not directly carry new information content, but are checksum information or additional copies of data calculated based on the original data. When a part of the data packet is lost or damaged during transmission, the redundant packet can help the receiver recover the lost or damaged data packet, thereby ensuring the integrity of the data received by the data receiving end.

[0046] Recovery efficiency refers to the proportion of lost or damaged data packets that are successfully recovered when using FEC error recovery technology. This is an indicator that measures the self-healing ability of a data transmission system (including the data sender and the data receiver) when faced with errors. High recovery efficiency means that the data transmission system can effectively deal with errors in data transmission and maintain data integrity and transmission quality without significantly increasing the additional transmission burden. Recovery efficiency is affected by many factors, including the FEC coding scheme used and the severity of the network environment.

[0047] To facilitate readers' understanding of this specification, the application scenarios of this specification are now introduced.

[0048] The technical solution provided in this specification is applicable to application scenarios of data transmission based on FEC technology. For example, the application scenario can be a communication scenario of a communication satellite system, a wireless communication scenario, an optical fiber communication scenario, a storage device scenario, a live broadcast and video streaming scenario, an Internet of Things (IoT) communication scenario of an Internet of Things (IoT) device, a broadcasting scenario of a radio and television system, a communication scenario of spacecraft communication, a data transmission scenario between network devices, etc., which will not be listed here one by one.

[0049] Taking the communication scenario of the communication satellite system as an example, satellite communication is susceptible to various interferences due to the long signal propagation distance. By combining FEC technology, the quality of data transmission can be guaranteed. The communication scenarios of the communication satellite system can include satellite TV broadcasting and satellite Internet services.

[0050] Taking wireless communication scenarios as an example, wireless communication scenarios include mobile communication networks (such as 4G, 5G, etc.), wireless local area networks (Wi-Fi), Bluetooth, etc. FEC technology helps to improve the transmission quality of signals in complex and changing wireless environments.

[0051] Taking the optical fiber communication scenario as an example, especially in long-distance optical fiber transmission, FEC technology can reduce the impact of signal attenuation and noise, and improve data transmission rate and stability. Among them, the optical fiber communication scenario can include the scenario of submarine optical cable communication system.

[0052] Taking the storage device scenario as an example, storage media such as hard disk drives, solid-state drives, and optical disks can use FEC technology to detect and correct errors when reading data, thereby improving the reliable storage of data.

[0053] Taking live broadcast and video streaming scenarios as an example, in online video platforms and live broadcast services, in order to ensure a smooth and high-quality viewing experience, FEC technology can be used to combat data loss caused by network fluctuations.

[0054] Taking the IoT communication scenario as an example, in the fields of smart home, smart city, industrial IoT, etc., data transmission between devices often relies on low-power wide area networks (LPWAN). The use of FEC technology helps to improve transmission reliability under limited power and bandwidth.

[0055] Taking the broadcasting scenario of a broadcast television system as an example, the Digital Video Broadcasting (DVB) standard includes a variety of FEC coding schemes based on FEC technology to improve the reception quality of television signals.

[0056] Taking the communication scenario of spacecraft communication as an example, the communication between deep space probes and the earth can be reduced due to extreme distance and signal attenuation based on FEC technology.

[0057] Taking the data transmission scenario between network devices as an example, network infrastructure such as routers and switches may have built-in FEC technology functional modules to improve the stability and efficiency of network transmission.

[0058] For example, the technical solution provided in this specification can be applied to Figure 1 The application scenario shown.

[0059] like Figure 1 As shown, the application scenario includes a data transmission system 100. The data transmission system 100 includes a data sending end 101 and a data receiving end 102.

[0060] The data transmitting end 101 is used to transmit the target data to the data receiving end 102. Correspondingly, the data receiving end 102 is used to receive the target data transmitted by the data transmitting end 101.

[0061] For example, the data transmitter 101 performs FEC encoding on the original data to be transmitted based on the FEC technology to obtain a coding matrix, and generates redundant packets according to the coding matrix, thereby obtaining target data including the original data to be transmitted and the redundant packets. The data transmitter 101 transmits the target data to the data receiver 102.

[0062] Correspondingly, the data receiving end 102 receives the target data transmitted by the data sending end 101 .

[0063] It is understandable that due to network and other reasons, data packets may be lost during the data transmission process. For example, if data packets are lost in the target data received by the data receiving end 102, the original data to be transmitted received by the data receiving end 102 is not completely consistent with the original data to be transmitted sent by the data transmitting end 101. Therefore, the data receiving end 102 needs to recover the lost data packets to obtain the complete original data to be transmitted (the original data to be transmitted when the data transmitting end 101 sends it).

[0064] For example, the data receiving end 102 can restore the lost data packets based on the redundant packets, thereby obtaining the complete original data to be transmitted.

[0065] Specifically, in actual applications, the data transmitter 101 divides the original data to be transmitted into multiple groups. For each group:

[0066] The data transmitting end 101 performs FEC encoding based on the FEC technology to obtain a coding matrix, and determines the redundant packets of the group according to the coding matrix.

[0067] The data receiving end 102 receives the target data and, if it is determined that the data packet in the packet is lost, can obtain the redundant packet of the packet. The data receiving end 102 performs FEC decoding based on the FEC technology to obtain a decoding matrix, and restores the lost data in the packet according to the decoding matrix, the redundant packet of the packet, and the received data in the packet (i.e., the non-lost data), thereby obtaining the complete original data to be transmitted of the packet.

[0068] Then, in the case of data loss of a specific group, data recovery based on the redundant packets of the specific group has the disadvantages of low recovery efficiency and accuracy.

[0069] It is worth noting that the contents of the above-mentioned related technologies are merely information known to the inventor personally, which does not mean that the above-mentioned information has entered the public domain before the filing date of this specification, nor does it mean that it can become the prior art of this specification.

[0070] Therefore, in order to avoid at least one of the above problems, this specification proposes a technical conception based on creative labor:

[0071] Data transmitting end: After obtaining each group, for any group, determine the maximum joint group with overlapping data with the group, and determine the redundant packet of the group based on the maximum joint group. Generate a packet body including data packets of each group and redundant packets. Generate a packet header including information representing the packets, so as to represent each packet and the data packets included in each packet through the packet information. The data transmitting end transmits the target data including the packet header and the packet body to the data receiving end. The data transmitting end generates a coding matrix based on the FEC technology, and generates redundant packets based on the coding matrix.

[0072] Data receiving end: Receives the target data sent by the data sending end. If a data packet in the target group (any group in the target data) is lost, the data receiving end first recovers the lost data packet based on the redundant packet of the group. If the recovery fails, the lost data packet is recovered based on the packet information. For example, the lost data packet is recovered by including the target group and the associated group with the same data packet composition as the target group. Among them, the data receiving end generates a decoding matrix based on the FEC technology, and recovers the lost data packet based on the decoding matrix and the corresponding redundant packet.

[0073] Based on the above analysis, it can be known that the above technical solution combines multiple groups including the same data to obtain an associated group, so that the redundant packet corresponding to an associated group can be based on the basis of the combination, such as the associated group obtained based on the combination of multiple groups, and the redundant packet of the associated group is determined based on the combined multiple groups. That is, a redundant packet can act on multiple groups, so when a data packet in a group is lost, data can be recovered through the associated group combined with it, thereby greatly improving the data recovery efficiency. And it can handle different types of data transmission errors more flexibly and optimize the data recovery process.

[0074] In addition, based on the joint basis, each packet can be shortened in actual applications, thereby reducing the computing power required for encoding. Therefore, the technical solution based on FEC technology provided by this solution can select a data packet of appropriate length as a packet according to the computing power of the encoding end (i.e., the data sending end) to reduce the encoding computing power requirements. The decoding end (i.e., the data receiving end) combines multiple packets into a long packet (i.e., an associated packet) based on the joint basis to recover the data packet to improve the recovery efficiency.

[0075] It is understandable that the data sending end and the data receiving end are not fixed. For example, in some scenarios, the data sending end may also be the data receiving end, and the data receiving end may also be the data sending end. That is to say, for the same electronic device, when the electronic device receives data, it can be called the data receiving end; when the electronic device sends data, it can be called the data sending end.

[0076] The data transmitting end and the data receiving end may be electronic devices of different structures or electronic devices of the same structure, which is not limited in this embodiment. Figure 2 Taking the figure as an example, the possible hardware structures of the data sending end and the data receiving end are explained.

[0077] Figure 2 The hardware structure diagram of an electronic device 200 provided according to an embodiment of the present specification is shown. When the electronic device 200 acts as a data transmitting end, the electronic device 200 is used to perform data processing and transmit the data to the data transmitting end. When the electronic device 200 acts as a data receiving end, the electronic device 200 is used to perform data receiving and recovery operations.

[0078] like Figure 2 As shown, the electronic device 200 may include at least one storage medium 203 and at least one processor 202. In some embodiments, the electronic device 200 may further include a communication port 204 and an internal communication bus 201. The electronic device 200 may further include an I / O component 205.

[0079] The internal communication bus 201 can connect different system components. For example, the internal communication bus 201 can connect the storage medium 203, the processor 202, the communication port 204 and the I / O component 205.

[0080] The I / O component 205 supports input / output between the electronic device 200 and other components.

[0081] The communication port 204 is used for data communication between the electronic device 200 and the outside world. For example, the communication port 204 can be used for data communication between the electronic device 200 and a network. The communication port 204 can be a wired communication port or a wireless communication port.

[0082] The storage medium 203 may include a data storage device. The data storage device may be a non-temporary storage medium or a temporary storage medium. For example, the data storage device may include one or more of a disk 2031, a read-only storage medium (ROM) 2032, or a random access storage medium (RAM) 2033. The storage medium 203 also includes at least one instruction set stored in the data storage device.

[0083] The instruction set includes computer program code. If the electronic device 200 acts as a data sending end, the computer program code may include programs, routines, objects, components, data structures, processes, modules, etc. for executing the methods of data processing and transmission to the data receiving end provided in this specification; if the electronic device 200 acts as a data receiving end, the computer program code may include programs, routines, objects, components, data structures, processes, modules, etc. for executing the methods of data receiving and recovery provided in this specification.

[0084] The at least one processor 202 may be in communication with the at least one storage medium 203. The at least one processor 202 is configured to execute the at least one instruction set.

[0085] When the electronic device 200 is running, at least one processor 202 reads the at least one instruction set. If the electronic device 200 acts as a data sending end, it executes the method of data processing provided in this specification and transmitting the data to the data receiving end according to the instructions of the at least one instruction set; if the electronic device 200 acts as a data receiving end, it executes the method of data receiving and recovery provided in this specification according to the instructions of the at least one instruction set.

[0086] The processor 202 may be in the form of one or more processors. In some embodiments, the processor 202 may include one or more hardware processors, such as a microcontroller, a microprocessor, a reduced instruction set computer (RISC), an application-specific integrated circuit (ASIC), an application-specific instruction set processor (ASIP), a central processing unit (CPU), a graphics processing unit (GPU), a physical processing unit (PPU), a microcontroller unit, a digital signal processor (DSP), a field programmable gate array (FPGA), an advanced RISC machine (ARM), a programmable logic device (PLD), any circuit or processor capable of performing one or more functions, etc., or any combination thereof.

[0087] For illustration purposes only, only one processor 202 is shown in the electronic device 200 in the accompanying drawings. However, it should be noted that the electronic device 200 in this specification may also include multiple processors, and therefore, the operations and / or method steps disclosed in this specification may be performed by one processor or by multiple processors in combination. For example, if the processor 202 of the electronic device 200 is described in this specification as performing step A and step B, it should be understood that step A and step B may also be performed jointly or separately by two different processors 202 (for example, the first processor performs step A, the second processor performs step B, or the first and second processors perform steps A and B together).

[0088] See also Figure 3 , Figure 3 The interactive diagram of the data transmission method provided in the embodiment of this specification. Figure 3 As shown, the method includes the following S301 to S304:

[0089] S301: The data sending end obtains the original data to be transmitted.

[0090] The original data to be transmitted refers to the data that needs to be transmitted from the data sending end to the data receiving end.

[0091] S302: The data transmitting end constructs target data according to the original data to be transmitted. The target data includes a header and a payload. The payload includes a plurality of packets of data and a redundant packet corresponding to each packet. The header includes packet information, which represents the plurality of packets and the packets contained in each packet. The data to be transmitted includes the plurality of packets of data.

[0092] Exemplarily, in order to transmit the original data to be transmitted to the data receiving end and enable the data receiving end to receive the complete original data to be transmitted, the data sending end can construct target data based on the original data to be transmitted, so that when the data packet received by the data receiving end is lost, the data receiving end can perform data recovery based on the target data it received, thereby obtaining the complete original data to be transmitted.

[0093] The target data generated by the data sending end includes two parts, one part is the packet header and the other part is the packet body.

[0094] In this embodiment, a feature of combining different packets is introduced, and this feature can be specifically manifested as the packet header including the packet information and the redundant packets in the packet body.

[0095] Exemplarily, the data transmitter adds grouping information in the packet header to indicate which groups the original data to be transmitted is divided into and which data packets are included in each group. When generating redundant packets, the data transmitter constructs a coding matrix by combining different groups with the same data packets to generate redundant packets based on the coding matrix (detailed description is given below).

[0096] In some embodiments, S302 may include the following steps 1 to 2:

[0097] Step 1: Evaluate the packet length of the original data to be transmitted to obtain the multiple packets.

[0098] In some embodiments, step 1 may include: determining the computing power information of the data sending end, and evaluating the maximum packet length of the original data to be transmitted based on the computing power information to obtain the multiple packets.

[0099] For example, the maximum packet length evaluation is the key to reducing the computing power requirements of the data sending end. Relatively speaking, the shorter the packet, the smaller the computing power requirements, but at the same time the recovery efficiency will also be reduced. Therefore, in order to improve the recovery efficiency, this embodiment increases the packet length as much as possible under the condition that the computing power allows.

[0100] For example, at the data sending end, the computing power information ensures that the FEC encoding time is within 1ms, and the maximum packet length is evaluated; or, the computing power information ensures that under the condition of 10,000 concurrent data sending requests, the FEC encoding and decoding time is within 1ms, and the maximum packet length is evaluated.

[0101] Step 2: Construct the header and body based on multiple groups.

[0102] Relatively speaking, in this embodiment, by combining the computing power information for grouping, the lengths of the multiple packets obtained by grouping are generally neither too large nor too small. On this basis, in order to improve the recovery efficiency, the data sending end can determine different packets including the same data to construct the packet header and the packet body.

[0103] Taking the packet header as an example, it can be known from the above that after dividing the data into the multiple groups, the data transmitting end can construct group information representing the multiple groups and the data packets contained in each group.

[0104] like Figure 4 As shown, Figure 4 The five groups obtained by dividing the data at the data sending end are shown as an example.

[0105] In some embodiments, constructing a packet body according to multiple groups in step 2 may include: determining the maximum joint group of any group among the multiple groups, wherein the maximum joint group is the maximum associated group among the associated groups of any group. Constructing a coding matrix of the maximum joint group with the goal of providing rank 1 for each row vector, and generating a redundant packet of any group according to the coding matrix.

[0106] Exemplarily, the data transmitter may use a moving window to determine different groups including the same data. Exemplarily, the length of the window is within a preset maximum range (which may be determined based on computing power information, etc.), while ensuring that at least one window overlaps. Relatively speaking, the more overlapping parts there are, the more associated groups there are, and the higher the recovery efficiency.

[0107] Combination Figure 4 , the length of a group is a Window. Among them, Window-1, Window-2, and Window-3 have an overlapping part I, then Window-1, Window-2, and Window-3 can be an associated group. Window-2, Window-3, and Window-4 have an overlapping part P1, then Window-2, Window-3, and Window-4 can be an associated group. Window-3, Window-4, and Window-5 have an overlapping part P2, then Window-3, Window-4, and Window-5 can be an associated group.

[0108] The maximum joint group can be understood as the longest associated group.

[0109] For example, combined with Figure 4 It can be seen that the maximum joint group of Window-4 is the associated group including Window-2, Window-3, Window-4, and Window-5. Accordingly, the data transmitter performs FEC encoding on the maximum associated group to obtain a redundant packet corresponding to Window-4.

[0110] Among them, constructing the coding matrix is ​​the key to improving the joint recovery efficiency and the core of the entire joint coding and decoding solution. Its essence is to ensure that the redundant packets under different groups contribute to the recovery of the entire associated group, in order to achieve the recovery efficiency of the FEC group of the same length as the associated group.

[0111] In some embodiments, constructing a coding matrix of maximum joint grouping with the goal of providing rank 1 for each row vector in step 2 includes the following sub-steps 1 to 4:

[0112] Sub-step 1: Based on the data packets of the maximum joint grouping, construct an initial matrix for zero-filling the missing data.

[0113] Exemplarily, the data transmitting end constructs the coding matrix according to the transmission order of the original data to be transmitted, and fills the missing zeros to obtain the following Figure 5 The initial matrix shown.

[0114] in, Figure 5 The B to K shown in FIG. 1 represent data packets in the original data to be transmitted. Each packet covers a data packet of a certain length according to the window characteristics, such as Figure 5 The shown coverage is 6 packets, with overlapping packets between three packets, F and G, constructing a correlation packet of length 10 (B to K).

[0115] Sub-step 2: Decompose the initial matrix into multiple sub-matrices.

[0116] In some embodiments, sub-step 2 may include: determining a diagonal of the initial matrix, and decomposing the initial matrix into a plurality of sub-matrices based on the diagonal.

[0117] For example, Figure 6 As shown in , the data transmitter can decompose the large initial matrix into several sub-matrices arranged along the diagonal. Figure 6 The three sub-matrices are shown as selected by the dashed lines.

[0118] In this embodiment, the data transmitting end decomposes the initial matrix based on the diagonal line, so that the sub-matrices arranged along the diagonal line are independent of each other, thereby improving the effectiveness and reliability of the decomposition.

[0119] Sub-step 3: For any sub-matrix, determine the matrix parameters of the sub-matrix with full rank as the goal.

[0120] Exemplarily, by ensuring that each sub-matrix is ​​full rank, the corresponding redundant packet can be applied to data recovery of the entire associated group, maintaining the same recovery efficiency as the associated group with the same length as the large initial matrix.

[0121] In some embodiments, in order to achieve full rank for each submatrix on the diagonal, the properties of the Cauchy matrix can be used. For example, by associating x and y in the entire large initial matrix, the large initial matrix is ​​constructed into a large Cauchy matrix (the data padded with 0 is replaced with Cauchy sub-elements), then the matrix formed by each group is a Cauchy submatrix, which is a full rank submatrix. Therefore, the submatrices on the diagonal all meet the full rank goal.

[0122] Sub-step 4: Construct a coding matrix with rank 1 for each row vector according to the matrix parameters corresponding to each sub-matrix.

[0123] Accordingly, on the basis that each sub-matrix is ​​full rank, the encoding matrix is ​​further constructed with the goal of providing rank 1 for each row vector. That is, the row vector of each redundant packet in the encoding matrix can provide a rank 1, which cannot be eliminated by other rows through linear combination, so as to ensure that each redundant packet can participate in data recovery, thereby improving the effectiveness and reliability of data recovery.

[0124] S303: The data sending end sends the target data to the data receiving end.

[0125] Correspondingly, the data receiving end receives the target data sent by the data sending end.

[0126] S304: If a data packet in the target group is lost, and the lost data packet of the target group cannot be recovered based on the redundant packet corresponding to the target group, the data receiving end determines at least one associated packet of the target group based on the packet information.

[0127] S305: The data receiving end recovers the data packet of the target packet loss based on the at least one associated packet.

[0128] Exemplarily, after obtaining the target data, the data receiving end first determines whether the received data packet is complete. If yes, it means that the data receiving end has received the complete original data to be transmitted, that is, no data packet loss occurs during the process of transmitting the target data from the data sending end to the data receiving end.

[0129] However, in actual applications, due to network and other reasons, data packets are usually lost. Therefore, after receiving the target data, the data receiving end can first determine which packet's data packet is lost. For example, if it is determined that the data packet of the target packet is lost, the data receiving end first obtains the redundant packet of the target packet from the packet body, so as to recover the lost data packet of the target packet based on the redundant packet. If it can be recovered, the recovered data packet is obtained. If it cannot be recovered, the data sending end can determine the at least one associated packet associated with the target packet based on the packet information in the packet header, so as to recover the lost data packet of the target packet based on the at least one associated packet, so as to obtain the recovered data packet.

[0130] In some embodiments, S305 may include the following steps 1 and 2:

[0131] Step 1: From the at least one associated packet, determine a target associated packet that may be able to decode the target packet.

[0132] Exemplarily, the data receiving end may search in the at least one associated packet to obtain a target associated packet that may be able to decode the target packet.

[0133] In some embodiments, step 1 may include the following sub-steps 1 and 2:

[0134] Sub-step 1: performing decoding evaluation on a previous associated packet to determine whether the previous associated packet includes an associated packet that may be decodable, wherein the previous associated packet is an associated packet with the target packet as the last packet in the at least one associated packet.

[0135] For example, Figure 7 As shown, the target group is group 4. The previous associated group includes three associated groups, namely associated group A, associated group B, and associated group C. Associated group A includes group 3 and group 4; associated group B includes group 2, group 3, and group 4; associated group C includes group 1, group 2, group 3, and group 4.

[0136] The data receiving end determines whether the associated group A, the associated group B, and the associated group C include an associated group that may be decodable, such as determining whether the associated group A is an associated group that may be decodable.

[0137] Sub-step 2: If yes, then determine a possible decodable context packet in the previous context packet as the target context packet.

[0138] In combination with the above example, if there is a possible decodable associated packet in the previous associated packet, the data receiving end may determine the associated packet as the target associated packet.

[0139] For example, if the data receiving end determines that associated packet A is an associated packet that may be decodable, then associated packet A is determined as a target associated packet.

[0140] Combining the above sub-steps 1 and 2, it can be seen that the data receiving end can obtain the target associated group from the previous associated group. Since the data receiving end receives the previous associated group relatively earlier, by determining the target group from the previous associated group, the possibility of determining the target group can be increased.

[0141] In some embodiments, sub-step 1 may include the following refinement step 1 and refinement step 2:

[0142] Refinement step 1: Perform the i-th forward search on the previous associated group to obtain the i-th associated group, where i is an integer greater than or equal to 1, the number of groups in the i-th associated group is i+1, and the target group is the last group in the i-th associated group.

[0143] Refinement step 2: Perform decoding evaluation on the i-th associated packet to determine whether the i-th associated packet is likely to be decodable.

[0144] For example, combining the above examples and Figure 7 , when i=1, that is, the first forward search, the data receiving end determines that the first associated packet is associated packet A. The data receiving end performs a decoding evaluation on associated packet A to determine whether associated packet A is likely to be decodable.

[0145] In combination with the above sub-step 2, it can be seen that if the evaluation result is yes, the data receiving end determines the associated group A as the target associated group. Accordingly, the data receiving end ends the forward search.

[0146] If the evaluation result is no, the data receiving end enters the (i+1)th forward search until the target associated group is obtained, or the forward search for the previous associated group is completed.

[0147] Exemplarily, in combination with the above example, if the evaluation result of the first forward search is negative, the data receiving end enters the second forward search to obtain associated group B. Similarly, the data receiving end performs a decoding evaluation on associated group B to determine whether associated group B is possibly decodable.

[0148] If the evaluation result is yes, the data receiving end determines the associated group A as the target associated group. If the evaluation result is no, the data receiving end enters the third forward search. And so on, until the target associated group is obtained, or the evaluation of the associated group C is completed.

[0149] In this embodiment, decoding evaluation is performed in a forward search manner, which helps to conveniently and quickly determine whether there is a target associated group that can be decoded, thereby improving the efficiency and reliability of determining the target associated group.

[0150] In some embodiments, the data receiving end may also conclude that the previous association packet does not include the association packet that may be decodable after the above sub-step 1. Therefore, the method may also include the following sub-step 3:

[0151] Sub-step 3: If not, a decoding evaluation is performed on the contextually associated groups to determine the potentially decodable associated groups in the contextually associated groups, and the potentially decodable associated groups in the contextually associated groups are determined as target associated groups.

[0152] The preceding and following associated groups are associated groups that are included in the at least one associated group and do not end with the target group.

[0153] Exemplary, continue to combine the above examples and Figure 7, the preceding and following associated groups include 12 associated groups, such as associated group a, associated group b, and so on. Associated group a includes group 5 and group 4; associated group b includes group 5, group 4, and group 3; associated group c includes group 5, group 4, group 3, and group 2, and so on, which are not listed here one by one. The data receiving end obtains an associated group that may be decodable from the 12 associated groups and determines it as the target associated group.

[0154] That is, in this embodiment, the data receiving end first performs evaluation in combination with previously received data, and if the evaluation result is negative, then performs evaluation in combination with the subsequently and previously received data to achieve decoding effectiveness and reliability.

[0155] In some embodiments, the decoding evaluation of the previous and next associated groups in sub-step 3 to determine the associated groups that may be decodable in the previous and next associated groups may include the following refinement steps 1 and 2:

[0156] Refinement step 1: Perform the kth forward search on the previous and next associated groups to obtain the kth associated group, where k is an integer greater than or equal to 1, the number of groups in the kth associated group is k+1, and the target group is the k+1th group from the last in the kth associated group.

[0157] Refinement step 2: Perform decoding evaluation on the k-th associated group to determine whether the k-th joint group is likely to be decodable.

[0158] For example, combining the above examples and Figure 7 , if k=1, the data receiving end obtains the associated packet a. The data receiving end performs a decoding evaluation on the associated packet a to determine whether the associated packet a is likely to be decodable.

[0159] In combination with the above sub-step 2, it can be seen that if the evaluation result is yes, the data receiving end determines the associated group a as the target associated group. Accordingly, the data receiving end ends the forward search.

[0160] If the evaluation result is negative, the data receiving end enters the k+1th forward search until the target associated group is obtained, or the forward search for the previous associated group is completed.

[0161] Exemplarily, in combination with the above example, if the evaluation result of the k=1th forward search is negative, the data receiving end enters the k+1th forward search to obtain the associated packet b. Similarly, the data receiving end performs a decoding evaluation on the associated packet b to determine whether the associated packet b is possibly decodable.

[0162] If the evaluation result is yes, the data receiving end determines the associated group b as the target associated group. If the evaluation result is no, the data receiving end enters the k+2th forward search. And so on, until the target associated group is obtained, or the evaluation of 12 associated groups is completed.

[0163] Similarly, by performing a forward search on the previous and next associated groups in the manner of this embodiment to perform decoding evaluation, it is helpful to conveniently and quickly determine whether there is a target associated group that can be decoded, thereby improving the efficiency and reliability of determining the target associated group.

[0164] Step 2: Decode the target group according to the target associated group to recover the data packets lost by the target group.

[0165] Accordingly, if the data receiving end determines that the target associated packet may be able to decode the target packet, a decoding operation is performed to recover the data.

[0166] Combining the above steps 1 and 2, it can be seen that the data receiving end attempts to obtain a target associated group that may be able to decode the target group from multiple associated groups, rather than directly performing trial decoding based on each associated group. On this basis, the decoding operation is performed based on the target associated group. Relatively speaking, decoding resources can be saved and recovery efficiency can be improved.

[0167] In some embodiments, step 2 may include the following sub-steps 1 to 3:

[0168] Sub-step 1: Construct the encoding matrix based on the target association grouping.

[0169] Exemplarily, the data receiving end constructs the following according to the target association grouping: Figure 8 The encoding matrix is ​​shown.

[0170] Sub-step 2: Perform zeroing operation and zeroing record on the coding matrix according to the data packets that are not lost in the target group, and obtain a zeroing operation matrix and a zeroing record matrix respectively.

[0171] Continue reading Figure 8 , if the data receiving end receives data packet 3 and data packet 7, the encoding matrix is ​​set to zero based on data packet 3 and data packet 7 to obtain a zero operation matrix. The data sending end performs zero record on the zero operation to obtain a zero record matrix.

[0172] Sub-step 3: Recover the target packet lost according to the zeroing operation matrix and the zeroing record matrix.

[0173] Combined with the above analysis of sub-steps 1 to 3, it can be seen that in this embodiment, the data receiving end uses zeroing operation and zeroing record to help simplify the decoding process, especially when multiple original data are lost, it can be easier to identify which redundant data can be used to recover the lost data. In addition, by clarifying which data is lost, the remaining redundant data can be used to more accurately recover the original data, avoiding unnecessary calculations and improving the recovery accuracy.

[0174] In some embodiments, sub-step 3 may include the following refinement steps 1 and 2:

[0175] Refinement step 1: If the zeroing operation matrix is ​​full rank, construct a decoding matrix based on the zeroing operation matrix.

[0176] Exemplarily, the data receiving end determines whether the zeroing operation matrix is ​​full rank, and if so, constructs a decoding matrix corresponding to the zeroing operation matrix.

[0177] Full rank means that the number of rows of the matrix is ​​equal to the number of columns, and the value of the determinant is not zero, which means that the matrix can be inverted. In this embodiment, at the data receiving end, if the zeroing operation matrix is ​​full rank, it means that the zeroing operation matrix can be inverted, and thus can be used to construct a decoding matrix.

[0178] Correspondingly, when the zeroing operation matrix is ​​full rank, the data receiving end can construct a decoding matrix based on the matrix, wherein the decoding matrix is ​​used to recover the lost original data.

[0179] In some embodiments, the refinement step 1 includes the following refinement sub-step 1 and refinement sub-step 2:

[0180] Refinement sub-step 1: Perform lower triangular elimination operation on the zeroing operation matrix to determine whether the zeroing operation matrix is ​​full rank, and record the determinant operation corresponding to the lower triangular elimination operation based on the augmented matrix.

[0181] The lower triangular elimination operation is a method in linear algebra that is used to convert a matrix into a lower triangular form, so that it is easier to determine whether the matrix is ​​full rank. Augmented matrices are often used to solve linear equations.

[0182] Exemplarily, after the above zeroing operation, Fig. 9 As shown, the data receiving end performs lower triangular elimination on the zeroing operation matrix to evaluate whether the rank satisfies the requirement of not less than the lost original data. Fig. 9 As shown, the data receiving end uses the augmented matrix to record the determinant operation performed due to the lower triangular elimination operation.

[0183] Refinement sub-step 2: If yes, perform upper elimination operation on the matrix of the lower triangular elimination operation, and record the determinant operation of the upper elimination operation in the augmented matrix recording the lower triangular elimination operation, and determine the augmented matrix recording the upper elimination operation as the decoding matrix.

[0184] Among them, the upper elimination operation is another linear algebra method besides the lower elimination operation, which is used to further simplify the matrix so that the matrix equation can be solved more easily.

[0185] Continuing with the above example and Fig.10 , the zeroing operation matrix is ​​full rank, then we can Fig. 9 The matrix shown in is subjected to upper elimination operation to calculate the decoding matrix. Fig.10 As shown, the data receiving end records the determinant operation corresponding to the upper elimination operation based on the augmented matrix. Fig.10 The augmented matrix on the right is the decoding matrix.

[0186] It can be seen from the above-mentioned refinement sub-step 1 and refinement sub-step 2 that in this embodiment, the accuracy and effectiveness of the decoding matrix can be ensured through the lower triangular elimination and upper elimination operations. The calculation process can also be simplified and unnecessary calculation steps can be reduced. In addition, this method ensures that even in the case of a high network packet loss rate, the lost data can be accurately recovered.

[0187] Refinement step 2: According to the decoding matrix, the zero record matrix, and the redundant packets of the target associated packet, the data packet lost by the target packet is calculated.

[0188] Exemplarily, the data receiving end uses the decoding matrix, the zeroing record matrix, and the redundant packets in the target associated group to calculate the lost data packets.

[0189] For example, the data receiving end first performs a calculation operation on the redundant packet and the received data packet according to the zero-setting record matrix; and then performs a calculation operation on the decoding matrix to complete the recovery operation of the lost data packet.

[0190] In combination with the above analysis of refinement step 1 and refinement step 2, it can be known that in the present embodiment, the zeroing record matrix can simplify the calculation process, because it records which positions have been zeroed, which helps to reduce unnecessary calculation steps. The zeroing record matrix can help the data receiving end determine which redundant packets can be used to recover the lost original data. In addition, the reversibility of the decoding matrix can be guaranteed by the full rank zeroing operation matrix, thereby improving the efficiency and accuracy of data recovery.

[0191] It is worth noting that the above examples are only used to illustrate the possible implementation methods of the data transmission method of this specification, and cannot be understood as limiting the implementation methods of the data transmission method of this specification. Exemplarily, based on the above technical concept, some of the above technical features can be combined to obtain a new embodiment; new technical features can be added on the basis of the above examples to obtain a new embodiment; some technical features can be reduced on the basis of the above examples to obtain a new embodiment; some technical features in the above examples can be replaced with other technical features; some technical features and sequences in the above examples can be adjusted to obtain a new embodiment, etc., which will not be listed here one by one.

[0192] Based on the above technical concept, this specification also provides a computer-readable non-temporary storage medium, which stores at least one instruction set. When the at least one instruction set is executed by a processor, the steps of the data transmission method described in this specification are implemented.

[0193] In some possible implementations, various aspects of this specification may also be implemented in the form of a program product, which includes a program code. When the program product is run on a data transmitting end, the program code is used to cause the data transmitting end to execute the steps of the method for processing data and sending data to a data receiving end described in this specification. The program product for implementing the above method may include program code using a portable compact disk read-only memory (CD-ROM) and may be run on a data receiving end. However, the program product of this specification is not limited thereto, and in this specification, a readable storage medium may be any tangible medium containing or storing a program, which may be used by an instruction execution system or used in combination therewith. The program product may use any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, a system, device or device of electricity, magnetism, light, electromagnetic, infrared, or semiconductor, or any combination thereof. More specific examples of readable storage media include: an electrical connection with one or more conductors, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. The computer-readable storage medium may include a data signal propagated in a baseband or as part of a carrier wave, wherein a readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The readable storage medium may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, device, or device. The program code contained on the readable storage medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the above. The program code for performing the operations of this specification can be written in any combination of one or more programming languages, including object-oriented programming languages ​​- such as Java, C++, etc., and also includes conventional procedural programming languages ​​- such as "C" language or similar programming languages.

[0194] It is worth noting that, when the program product is run on a data receiving end, the program code is used to enable the data receiving end to execute the steps of the method for receiving and recovering data described in this specification.

[0195] The above is a description of a specific embodiment of the present specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the drawings do not necessarily require a specific order or a continuous order to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0196] In summary, after reading this detailed disclosure, those skilled in the art will appreciate that the foregoing detailed disclosure may be presented only by way of example and may not be limiting. Although not explicitly stated herein, those skilled in the art will appreciate that this specification requires various reasonable changes, improvements and modifications to the embodiments. These changes, improvements and modifications are intended to be proposed by this specification and are within the spirit and scope of the exemplary embodiments of this specification.

[0197] In addition, certain terms in this specification have been used to describe embodiments of this specification. For example, "one embodiment", "an embodiment" and / or "some embodiments" mean that a particular feature, structure or characteristic described in conjunction with the embodiment may be included in at least one embodiment of this specification. Therefore, it can be emphasized and should be understood that two or more references to "an embodiment" or "one embodiment" or "an alternative embodiment" in various parts of this specification do not necessarily refer to the same embodiment. In addition, specific features, structures or characteristics may be appropriately combined in one or more embodiments of this specification.

[0198] It should be understood that in the foregoing description of the embodiments of this specification, in order to help understand a feature and for the purpose of simplifying this specification, this specification combines various features in a single embodiment, figure or its description. However, this does not mean that the combination of these features is necessary. When reading this specification, it is entirely possible for a person skilled in the art to mark out some of the devices as separate embodiments. In other words, the embodiments in this specification can also be understood as the integration of multiple secondary embodiments. And the content of each secondary embodiment is also valid when it is less than all the features of a single aforementioned disclosed embodiment.

[0199] Each patent, patent application, publication of patent applications, and other materials, such as articles, books, specifications, publications, documents, articles, etc., cited herein, except to the extent that it is inconsistent or conflicting with this document or that has a limiting effect on the broadest scope of the claims, may be incorporated herein by reference and used for all purposes now or hereafter associated with this document. In addition, in the event of any inconsistency or conflict between the description, definition, and / or use of a term in any material and the description, definition, and / or use of a term in this document, the term in this document shall prevail.

[0200] Finally, it should be understood that the embodiments of the application disclosed herein are explanations of the principles of the embodiments of this specification. Other modified embodiments are also within the scope of this specification. Therefore, the embodiments disclosed in this specification are only used as examples and not as limitations. Those skilled in the art can adopt alternative configurations according to the embodiments in this specification to implement the applications in this specification. Therefore, the embodiments of this specification are not limited to the embodiments accurately described in the application.

Claims

1. A data transmission method, applied to a data receiving end, the method comprising: Receive target data sent by a data transmitting end, wherein the target data includes a packet header and a packet body, the packet body includes a plurality of grouped data packets and redundant packets corresponding to each of the groups, the packet header includes group information, the group information represents the plurality of groups and the data packets included in each of the groups; and If a data packet in a target group is lost, and the lost data packet of the target group cannot be recovered based on a redundant packet corresponding to the target group, determining at least one associated group of the target group based on the group information, wherein one associated group includes the target group and a group having the same data packet as the target group, and the target group is any one of the multiple groups; and The lost data packets of the target packet are recovered based on the at least one associated packet.

2. The method according to claim 1, wherein: The recovering of the data packet lost by the target packet based on the at least one plurality of associated packets comprises: determining, from the at least one associated packet, a target associated packet that may be able to decode the target packet; and The target packet is decoded according to the target associated packet to recover the lost data packet of the target packet.

3. The method according to claim 2, wherein: Determining, from the at least one associated packet, a target associated packet that may be able to decode the target packet, comprises: Performing a decoding evaluation on a previous associated group to determine whether the previous associated group includes an associated group that may be decodable, wherein the previous associated group is an associated group with the target group as the last group in the at least one associated group; and If so, a possibly decodable associated packet among the previous associated packets is determined as the target associated packet.

4. The method according to claim 3, wherein: Performing a decoding evaluation on a previous associated packet to determine whether the previous associated packet includes an associated packet that may be decodable, comprising: Performing an i-th forward search on the previous associated group to obtain an i-th associated group, wherein i is an integer greater than or equal to 1, the number of groups in the i-th associated group is i+1, and the target group is the last group in the i-th associated group; and A decoding evaluation is performed on the i-th associated packet to determine whether the i-th associated packet is possibly decodable.

5. The method according to claim 3, wherein: The method further comprises: If not, performing decoding evaluation on the contextually associated groups to determine the potentially decodable associated groups in the contextually associated groups, and determining the potentially decodable associated groups in the contextually associated groups as the target associated groups; and The preceding and following associated groups are associated groups that are included in the at least one associated group and do not end with the target group.

6. The method according to claim 5, wherein: The step of performing decoding evaluation on the preceding and following associated groups to determine the associated groups that may be decodable in the preceding and following associated groups comprises: Performing a k-th forward search on the preceding and following associated groups to obtain a k-th associated group, wherein k is an integer greater than or equal to 1, the number of groups in the k-th associated group is k+1, and the target group is the last (k+1) group in the k-th associated group; and A decoding evaluation is performed on the k-th associated packet to determine whether the k-th associated packet is possibly decodable.

7. The method according to claim 2, wherein: The decoding operation on the target group according to the target associated group to recover the data packet lost by the target group comprises: Constructing a coding matrix according to the target association grouping; Performing a zeroing operation and a zeroing record on the coding matrix according to the data packets that are not lost in the target group, to obtain a zeroing operation matrix and a zeroing record matrix respectively; and The data packets of the target group loss are restored according to the zeroing operation matrix and the zeroing record matrix.

8. The method according to claim 7, wherein: The recovering the data packet of the target packet loss according to the zeroing operation matrix and the zeroing record matrix comprises: If the zeroing operation matrix is ​​full rank, constructing a decoding matrix according to the zeroing operation matrix; and The data packet lost by the target packet is calculated according to the decoding matrix, the zero-setting record matrix, and the redundant packet of the target associated packet.

9. The method according to claim 8, wherein: If the zeroing operation matrix is ​​full rank, constructing a decoding matrix according to the zeroing operation matrix comprises: Performing a lower triangular elimination operation on the zeroing operation matrix to determine whether the zeroing operation matrix is ​​full rank, and recording a determinant operation corresponding to the lower triangular elimination operation based on an augmented matrix; If yes, perform an upper elimination operation on the matrix of the lower triangular elimination operation, record the determinant operation of the upper elimination operation in the augmented matrix recording the lower triangular elimination operation, and determine the augmented matrix recording the upper elimination operation as the decoding matrix.

10. A data transmission method, applied to a data sending end, the method comprising: Obtaining original data to be transmitted; Constructing target data according to the original data to be transmitted, wherein the target data includes a packet header and a packet body, the packet body includes a plurality of grouped data packets and a redundant packet corresponding to each group, the packet header includes grouping information, the grouping information represents the plurality of groups and the data packets included in each group, and the original data to be transmitted includes the plurality of grouped data packets; and The target data is sent to a data receiving end, wherein the packet information is used to determine at least one associated packet of the target packet, so as to recover the lost data packet of the target packet when the data packet of the target packet is lost and the lost data packet of the target packet cannot be recovered based on the redundant packet corresponding to the target packet, wherein an associated packet includes the target packet and a packet having the same data packet as the target packet, and the target packet is any one of the multiple packets.

11. The method according to claim 10, wherein: The step of constructing target data according to the original data to be transmitted includes: Performing packet length evaluation on the original data to be transmitted to obtain the multiple packets; The packet header and the packet body are constructed according to the multiple groups.

12. The method according to claim 11, wherein: Constructing the package body according to the multiple groups includes: For any group among the multiple groups, determine a maximum combined group of the any group, wherein the maximum combined group is a maximum associated group among associated groups of the any group; The coding matrix of the maximum joint group is constructed with the goal of providing rank 1 for each row vector, and the redundant packets of the arbitrary group are generated according to the coding matrix.

13. The method according to claim 12, wherein: The step of constructing the coding matrix of the maximum joint grouping with the goal of providing rank 1 for each row vector includes: constructing an initial matrix for zero-filling missing data according to the data packets of the maximum joint grouping; Decomposing the initial matrix into a plurality of sub-matrices; For any submatrix, determining matrix parameters of the arbitrary submatrix with full rank as a goal; and The encoding matrix in which each row vector provides rank 1 is constructed according to the matrix parameters corresponding to each submatrix.

14. The method according to claim 13, wherein: Decomposing the initial matrix into a plurality of sub-matrices comprises: determining the diagonal of the initial matrix; and The initial matrix is ​​decomposed into the plurality of sub-matrices based on the diagonal line.

15. The method according to claim 11, wherein: The step of evaluating the packet length of the original data to be transmitted to obtain the multiple packets includes: Determining computing power information of the data sending end; The maximum packet length of the original data to be transmitted is evaluated according to the computing power information to obtain the multiple packets.

16. A data receiving terminal, comprising: at least one storage medium storing at least one instruction set for data transmission; At least one processor is communicatively connected to the at least one storage medium, wherein when the at least one processor is running, the at least one instruction set is read, and the method as described in any one of claims 1 to 9 is executed according to the instructions of the at least one instruction set.

17. A data transmitting end, comprising: at least one storage medium storing at least one instruction set for data transmission; At least one processor is communicatively connected to the at least one storage medium, wherein when the at least one processor is running, the at least one instruction set is read, and the method as described in any one of claims 10 to 15 is executed according to the instructions of the at least one instruction set.

18. A data transmission system, comprising: The data receiving terminal as claimed in claim 16; The data transmitter as claimed in claim 17.