Data redundancy transmission method and device, computer equipment and storage medium

By dynamically determining the target coding parameters and interleaving coding processing, the problem of high packet loss rate in the public network link is solved, stable and reliable data transmission is achieved when the public network link status is poor, and the utilization rate of the public network link and data transmission efficiency are improved.

CN120602047APending Publication Date: 2025-09-05DOUYIN VISION CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510864141.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-25
Publication Date
2025-09-05

AI Technical Summary

Technical Problem

Existing technologies fail to effectively utilize public network links when the packet loss rate of public network links is high, resulting in low data transmission stability and efficiency, and failing to achieve the original intention of utilizing public network links as much as possible.

Method used

By dynamically determining the target coding parameters and using interleaved coding processing to generate redundant packets, data can be transmitted reliably even when the public network link status is poor, thereby improving the utilization rate of the public network link.

Benefits of technology

It achieves stable and reliable data transmission when the public network link status is poor, improves the utilization rate of the public network link, and ensures the efficiency and reliability of data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120602047A_ABST
    Figure CN120602047A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of data transmission, and discloses a data redundancy transmission method and device, computer equipment and a storage medium, and the method comprises the steps: obtaining a dynamically determined target coding parameter; the target coding parameter comprises a target redundancy rate and a target interleaving interval; determining a plurality of original data packets belonging to the same interleaving coding group according to the target coding parameter, and performing interleaving coding processing based on the plurality of original data packets to generate a corresponding first interleaving redundant packet; and sending the plurality of original data packets and the first interleaving redundant packet to a receiving node, and indicating the receiving node to perform data recovery based on the first interleaving redundant packet under the condition that the original data packets are lost. According to the method and the device, the appropriate target coding parameter is dynamically determined, and then the interleaving coding processing is performed based on the target coding parameter, so that the reliability of data transmission can be ensured under the condition of ensuring the low packet loss rate, and efficient and stable data transmission is realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the technical field of data transmission, and in particular to a data redundancy transmission method, apparatus, computer equipment, and storage medium. Background Art

[0002] Building a business platform and establishing edge nodes at the edge of the network, close to users, enables rapid service response and optimization. Data transmission and interaction between edge nodes occurs via both public and dedicated links. When packet loss rates on public links are high, they switch to dedicated links, saving costs while increasing available bandwidth.

[0003] However, this link switching method has a low utilization rate of public network links and fails to achieve the original intention of making full use of public network links. How to use public network links to achieve stable and reliable data transmission is an urgent problem to be solved. Summary of the Invention

[0004] In view of this, the present disclosure provides a data redundancy transmission method, apparatus, computer equipment, and storage medium to achieve stable and reliable data transmission.

[0005] In a first aspect, the present disclosure provides a data redundancy transmission method, applied to a sending node, comprising:

[0006] Obtaining dynamically determined target coding parameters; the target coding parameters include a target redundancy rate and a target interleaving interval;

[0007] Determining, according to the target coding parameter, a plurality of original data packets belonging to the same interleaved coding group, and performing interleaved coding processing on the plurality of original data packets to generate corresponding first interleaved redundant packets;

[0008] sending the plurality of original data packets and the first interleaved redundant packet to a receiving node, and instructing the receiving node to perform data recovery based on the first interleaved redundant packet when the original data packet is lost;

[0009] The process of determining the target encoding parameters includes:

[0010] For each preset pending coding parameter, determining the packet loss rate and coding delay corresponding to the pending coding parameter under the current network state; the pending coding parameter includes a pending redundancy rate and a pending interleaving interval;

[0011] The undetermined coding parameters with a packet loss rate less than a preset packet loss rate threshold and a coding delay less than a preset delay threshold are used as the target coding parameters.

[0012] In a second aspect, the present disclosure provides a data redundancy transmission method, applied to a receiving node, comprising:

[0013] Acquire multiple original data packets and a first interleaved redundant packet sent by a sending node; the multiple original data packets belong to the same interleaved coding group determined according to target coding parameters, and the first interleaved redundant packet is generated by performing interleaved coding processing on the multiple original data packets; the target coding parameters include a target redundancy rate and a target interleaving interval;

[0014] In the event that an original data packet is lost, performing data recovery based on the first interleaved redundant packet to recover the lost original data packet;

[0015] The process of determining the target encoding parameters includes:

[0016] For each preset pending coding parameter, determining the packet loss rate and coding delay corresponding to the pending coding parameter under the current network state; the pending coding parameter includes a pending redundancy rate and a pending interleaving interval;

[0017] The undetermined coding parameters with a packet loss rate less than a preset packet loss rate threshold and a coding delay less than a preset delay threshold are used as the target coding parameters.

[0018] In a third aspect, the present disclosure provides a data redundancy transmission device, applied to a sending node, the device comprising:

[0019] An acquisition module, configured to acquire dynamically determined target coding parameters; the target coding parameters include a target redundancy rate and a target interleaving interval;

[0020] an interleaving coding module, configured to determine, according to the target coding parameter, a plurality of original data packets belonging to the same interleaving coding group, and perform interleaving coding processing on the plurality of original data packets to generate corresponding first interleaved redundant packets;

[0021] a sending module, configured to send the plurality of original data packets and the first interleaved redundant packet to a receiving node, and instruct the receiving node to perform data recovery based on the first interleaved redundant packet in the event that the original data packets are lost;

[0022] The process of determining the target encoding parameters includes:

[0023] For each preset pending coding parameter, determining the packet loss rate and coding delay corresponding to the pending coding parameter under the current network state; the pending coding parameter includes a pending redundancy rate and a pending interleaving interval;

[0024] The undetermined coding parameters with a packet loss rate less than a preset packet loss rate threshold and a coding delay less than a preset delay threshold are used as the target coding parameters.

[0025] In a fourth aspect, the present disclosure provides a data redundancy transmission device, applied to a receiving node, the device comprising:

[0026] a receiving module, configured to obtain a plurality of original data packets and a first interleaved redundant packet sent by a sending node; the plurality of original data packets belong to the same interleaved coding group determined according to target coding parameters, and the first interleaved redundant packet is generated by performing interleaved coding processing on the plurality of original data packets; the target coding parameters include a target redundancy rate and a target interleaving interval;

[0027] a processing module, configured to, in the event that an original data packet is lost, perform data recovery based on the first interleaved redundant packet to recover the lost original data packet;

[0028] The process of determining the target encoding parameters includes:

[0029] For each preset pending coding parameter, determining the packet loss rate and coding delay corresponding to the pending coding parameter under the current network state; the pending coding parameter includes a pending redundancy rate and a pending interleaving interval;

[0030] The undetermined coding parameters with a packet loss rate less than a preset packet loss rate threshold and a coding delay less than a preset delay threshold are used as the target coding parameters.

[0031] In a fifth aspect, the present disclosure provides a computer device comprising: a memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, and the processor executing the computer instructions to thereby execute the data redundancy transmission method of the above-mentioned first aspect, second aspect, or any corresponding embodiment thereof.

[0032] In a sixth aspect, the present disclosure provides a computer-readable storage medium having computer instructions stored thereon, the computer instructions being used to enable a computer to execute the data redundancy transmission method of the first aspect, the second aspect or any corresponding embodiment thereof.

[0033] In a seventh aspect, the present disclosure provides a computer program product, comprising computer instructions, wherein the computer instructions are used to enable a computer to execute the data redundancy transmission method of the first aspect, the second aspect, or any corresponding embodiment thereof.

[0034] The present invention dynamically determines the appropriate target coding parameters based on the current actual network status, and then performs interleaving coding processing based on the target coding parameters. While ensuring a low packet loss rate, it can also ensure the reliability of data transmission and achieve efficient and stable data transmission. When using a public network link to transmit data, even if the public network link status is poor, data transmission can be performed based on the public network link, which can improve the utilization rate of the public network link. Taking advantage of the limited number of coding parameters, the various pending coding parameters are traversed in a search manner, and the appropriate target coding parameters can be simply and quickly located, which is conducive to the dynamic selection of appropriate target coding parameters online. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] In order to more clearly illustrate the specific embodiments of the present disclosure or the technical solutions in the related technologies, the following briefly introduces the drawings required for use in the specific embodiments or related technical descriptions. Obviously, the drawings described below are some embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0036] Figure 1 It is a schematic diagram of edge nodes sending and receiving data;

[0037] Figure 2 It is a schematic diagram of the principle of interleaving coding;

[0038] Figure 3 is a flowchart of a data redundancy transmission method according to an embodiment of the present disclosure;

[0039] Figure 4 is a flowchart of another data redundancy transmission method according to an embodiment of the present disclosure;

[0040] Figure 5 is a schematic diagram of a state transition model according to an embodiment of the present disclosure;

[0041] Figure 6 is a schematic diagram of interleaving coding according to an embodiment of the present disclosure;

[0042] Figure 7 is a schematic diagram of a process for a receiving node to implement data redundancy transmission according to an embodiment of the present disclosure;

[0043] Figure 8 This is an interactive schematic diagram for implementing redundant data transmission according to an embodiment of the present disclosure;

[0044] Figure 9 is a relationship diagram between the redundancy rate and the actual packet loss rate according to an embodiment of the present disclosure;

[0045] Figure 10is a structural block diagram of a data redundancy transmission device at a sending node side according to an embodiment of the present disclosure;

[0046] Figure 11 is a structural block diagram of a data redundancy transmission device at a receiving node side according to an embodiment of the present disclosure;

[0047] Figure 12 Schematic diagram of the hardware structure of the computer device according to the embodiment of the present disclosure. DETAILED DESCRIPTION

[0048] To make the purpose, technical solutions, and advantages of the embodiments of the present disclosure more clear, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are part of the embodiments of the present disclosure, not all of the embodiments. Based on the embodiments of the present disclosure, all other embodiments obtained by those skilled in the art without making creative efforts shall fall within the scope of protection of the present disclosure.

[0049] The edge nodes on the user side can provide storage, computing, network and other resources, thereby providing users with faster and better services based on a distributed structure. Services that are sunk to the edge nodes can avoid the increased bandwidth and delay consumption caused by multi-level network forwarding and long-distance network transmission, and can achieve rapid response and optimization of services.

[0050] Figure 1 Figure 1 shows a schematic diagram of edge node sending and receiving data. Figure 1 As shown, there are two gateway nodes on the user side, namely the first gateway node 101 and the second gateway node 102, both of which are edge nodes. Each gateway node can access one or more end devices; Figure 1 As shown, first gateway node 101 is connected to end device 111 and end device 112, and second gateway node 102 is connected to end device 113 and end device 114. When data is transmitted between two end devices (for example, end device 111 and end device 113), it can be achieved based on the links between the corresponding edge nodes, eliminating the need for multi-stage network forwarding.

[0051] There are many types of cloud services, including delay-sensitive traffic such as video conferencing and acceleration, as well as block-based traffic. Public network links and dedicated lines are commonly used for cross-regional interconnection, that is, between edge nodes (such as Figure 1 Data transmission and interaction between first gateway node 101 and second gateway node 102 is achieved through both public and dedicated links, saving costs while increasing available bandwidth. Dedicated links offer high performance but are relatively expensive, while public links offer lower costs but lack performance guarantees. Therefore, the question of how to use public links in conjunction with dedicated links for data transmission has become increasingly prominent.

[0052] Existing approaches primarily address this problem from an overlay network perspective. These approaches treat both public and dedicated links as available network resources, with dedicated links acting as backups for public links. When public links become inefficient due to factors such as packet loss, transmission is rapidly switched to dedicated links. This approach primarily selects transmission paths through active link detection and overlay network traffic scheduling models. However, this approach neglects optimizing the performance of the public links themselves. Measurements of several links revealed that packet loss rates on public links can reach 5% during peak hours, with one-way latency approaching 200ms. These conditions are too demanding for most data transmissions and can significantly degrade application performance. In this scenario, overlay network-based solutions devolve into scheduling between dedicated links, defeating the original purpose of maximizing public link utilization. Therefore, to further improve public link utilization, there is an urgent need to address the issue of ensuring stable transmission on public links with high packet loss and latency.

[0053] Forward Error Correction (FEC) is a general term for a class of error-correction coding methods used in communications. The transmitter uses mathematical operations to generate redundant packets from the original data packet, which are then transmitted over unreliable channels. This allows the receiver to detect errors in data transmission and perform error recovery based on the redundant packets. In the field of real-time network transmission, XOR coding (exclusive OR coding) is commonly used. This coding method generates coded packets through an exclusive OR operation. This method has a relatively low computational overhead and is more suitable for application-layer soft decoding.

[0054] In scenarios where edge nodes serve as gateway nodes, they are key devices connecting different networks or nodes. They continuously carry traffic from different connections, effectively smoothing out the time intervals between different data packets. Assuming that data packets can be continuously input, an XOR code can be directly used to perform XOR processing on n original data packets to generate an FEC redundancy packet, which is the XOR of all data packets. The encoding matrix is ​​as follows:

[0055]

[0056] This encoding matrix is ​​the most efficient choice when using XOR code, and can recover data even if any data packet is lost.

[0057] However, this encoding method is difficult to cope with the situation of continuous packet loss. When continuous packet loss occurs, data recovery may not be possible based on redundant packets.

[0058] Interleaving is a technique used in FEC to combat continuous bit errors. Figure 2A schematic diagram of interleaving coding is shown, where D1 to D16 are 16 consecutive data packets; Figure 2 As shown in , the traditional FEC coding is to encode continuous data packets, the coding group is horizontal, and the continuous data packets are XORed to obtain redundant packets; Figure 2 As shown, redundant packet F1 = D1⊕D2⊕D3⊕D4, where ⊕ represents an exclusive-or operation. Continuous packet loss may result in multiple lost packets in D1-D4, making it impossible for the receiver to recover the original number of packets based on redundant packet F1. This approach is ineffective against continuous packet loss.

[0059] The interleaved coding grouping is longitudinal, and the fixed interval data packets are XORed to obtain redundant packets; Figure 2 As shown, the redundant packet R1 obtained based on the interleaved coding is R1=D1⊕D5⊕D9⊕D13. At this time, even if continuous packet loss occurs, as long as the number of continuous packet loss does not exceed 4, data recovery can be achieved based on the redundant packet of the interleaved coding.

[0060] Interleaved coding can better combat continuous packet loss, but at the cost of longer decoding delays. In end-to-end audio and video FEC, this may affect the application's latency performance. The disclosed embodiments dynamically determine appropriate coding parameters, such as the redundancy rate and interleaving interval, based on the current actual network status. Interleaved coding is then performed based on these coding parameters. This ensures low packet loss rates while also ensuring reliable data transmission, enabling efficient and stable data transmission.

[0061] According to an embodiment of the present disclosure, an embodiment of a data redundant transmission method is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.

[0062] In this embodiment, a data redundancy transmission method is provided, which is applied to a node that sends data, that is, a sending node, which is specifically an edge node; for example, the sending node may be the first gateway node 101, the second gateway node 102, etc. Figure 3 is a flow chart of a data redundancy transmission method according to an embodiment of the present disclosure, such as Figure 3 As shown, the process includes the following steps.

[0063] Step S301: dynamically determined target coding parameters are obtained; the target coding parameters include a target redundancy rate and a target interleaving interval.

[0064] To improve resilience against continuous packet loss, this embodiment uses interleaving for redundant encoding. During interleaving, the redundancy rate and interleaving interval corresponding to the interleaving code must be determined. The redundancy rate represents the proportion of redundant packets generated based on the interleaving code, and also represents the proportion of redundant packets within an interleaving group. The interleaving interval represents the interval between the number of original data packets within the same interleaving group.

[0065] by Figure 2 Taking the interleaved coding shown in the figure as an example, an interleaved redundant packet R1 is generated based on the original data packets D1, D5, D9, and D13. The original data packets D1, D5, D9, and D13 and the interleaved redundant packet R1 belong to the same interleaved coding group, that is, there is an interleaved redundant packet obtained by interleaving coding in the five data packets (including the original data packets and the interleaved redundant packet), so the redundancy rate is 1 / 5; and every 4 original data packets are grouped into an interleaved coding group, that is, the interleaving interval is 4.

[0066] In actual use, the coding parameters suitable for the current network state, ie, the target coding parameters, are dynamically determined based on the current network state between the sending node and the receiving node, so as to facilitate subsequent interleaving coding processing based on the target coding parameters.

[0067] The process of determining the target encoding parameters may specifically include steps S3011 to S3012.

[0068] Step S3011: for each preset pending coding parameter, determine the packet loss rate and coding delay corresponding to the pending coding parameter under the current network state; the pending coding parameter includes a pending redundancy rate and a pending interleaving interval.

[0069] Step S3012: The undetermined coding parameters with a packet loss rate less than a preset packet loss rate threshold and a coding delay less than a preset delay threshold are used as target coding parameters.

[0070] In this embodiment, since the interleaving interval is an integer and the number of original data packets and interleaved redundant packets within an interleaved coding group is also an integer, the range of values ​​for the interleaving interval and the redundancy rate is limited. Therefore, this embodiment uses a search method to select appropriate coding parameters from various coding parameters (including the redundancy rate and interleaving interval) and use them as target coding parameters. For ease of description, the coding parameters used for selection are referred to as pending coding parameters, and the redundancy rate and interleaving interval are referred to as pending redundancy rate and pending interleaving interval, respectively.

[0071] For a certain pending coding parameter, under the current network status, if interleaving coding is performed based on the pending coding parameter, the corresponding packet loss rate and coding delay can be calculated. The pending coding parameter with a lower packet loss rate and coding delay should be selected as the target coding parameter.

[0072] Specifically, a packet loss rate threshold and a delay threshold are set in advance. For a certain undetermined coding parameter, if its packet loss rate is less than the packet loss rate threshold and the coding delay is less than the delay threshold, it means that the undetermined coding parameter meets the requirements, so the undetermined coding parameter can be used as the target coding parameter.

[0073] In the case where there are multiple pending coding parameters with packet loss rates and coding delays that meet the requirements (i.e., the packet loss rates of the multiple pending coding parameters are less than a preset packet loss rate threshold, and the coding delays are less than a preset delay threshold), to ensure the timeliness of data transmission, the set of pending coding parameters with the lowest redundancy rate can be preferentially selected as the target coding parameters. The receiving node can also be an edge node, or the receiving node can also be an end device, depending on the actual situation.

[0074] If the sending node can determine the current network state, the sending node can determine the target encoding parameters on its own; if the receiving node can determine the current network state, the receiving node can determine the target encoding parameters and then return the determined target encoding parameters to the sending node. This embodiment does not limit the entity that determines the target encoding parameters.

[0075] Step S302: determining a plurality of original data packets belonging to the same interleaving coding group according to target coding parameters, and performing interleaving coding processing on the plurality of original data packets to generate corresponding first interleaved redundant packets.

[0076] In this embodiment, after determining the target coding parameters, that is, after determining the target redundancy rate and the target interleaving interval, it can be determined based on the target interleaving interval which original data packets to be sent can be classified into the same interleaving coding group; and based on the target redundancy rate, the number of original data packets and the number of interleaved redundant packets in an interleaving coding group can be determined.

[0077] Therefore, after determining the target coding parameters, interleaving coding processing can be performed based on multiple original data packets belonging to the same interleaving coding group, thereby generating a corresponding number of interleaving redundant packets, ie, first interleaving redundant packets.

[0078] by Figure 2 Taking the example shown, if the target redundancy rate is 1 / 5 and the target interleaving interval is 4, based on the target interleaving interval, it can be determined that original data packets D1, D5, D9, D13, D17, etc. can belong to the same interleaving coding group, and original data packets D2, D6, D10, D14, D18, etc. can also belong to the same interleaving coding group, and so on. In addition, based on the target redundancy rate, it can be known that one redundant packet needs to be interleaved and encoded within every five data packets. Therefore, the four original data packets are classified into the same interleaving coding group, and interleaving coding processing is performed based on these four original data packets to generate a first interleaved redundant packet.

[0079] Step S303: Send the multiple original data packets and the first interleaved redundant packet to the receiving node, instructing the receiving node to perform data recovery based on the first interleaved redundant packet when the original data packets are lost.

[0080] In this embodiment, when the sending node sends the original data packet to the receiving node, in addition to sending each original data packet, it also needs to send the corresponding first interleaved redundant packet, so that when the original data packet is lost on the receiving node side, data recovery can be performed based on the first interleaved redundant packet.

[0081] Continue with Figure 2 As an example, if the receiving node correctly receives original data packets D1, D9, D13 and the first interleaved redundant packet R1, but original data packet D5 is lost, the receiving node can recover original data packet D5 based on the original data packets D1, D9, D13 and the first interleaved redundant packet R1. This eliminates the need for the sending node to retransmit original data packet D5, thus achieving packet loss mitigation. The specific recovery method depends on the encoding method used and is not limited here.

[0082] The data redundancy transmission method provided in this embodiment dynamically determines appropriate target coding parameters based on the current actual network status, and then performs interleaving coding processing based on the target coding parameters. While ensuring a low packet loss rate, it can also ensure the reliability of data transmission and achieve efficient and stable data transmission. When using a public network link to transmit data, even if the public network link status is poor, data transmission can be performed based on the public network link, which can improve the utilization rate of the public network link. Taking advantage of the limited number of coding parameters, a search method is used to traverse various pending coding parameters, which can easily and quickly locate the appropriate target coding parameters, facilitating the dynamic online selection of appropriate target coding parameters.

[0083] In this embodiment, a data redundancy transmission method is provided, which is applied to a node that sends data, that is, a sending node, which is specifically an edge node; for example, the sending node may be the first gateway node 101, the second gateway node 102, etc. Figure 4 is a flow chart of a data redundancy transmission method according to an embodiment of the present disclosure, such as Figure 4 As shown, the process includes the following steps.

[0084] Step S401: dynamically determined target coding parameters are obtained; the target coding parameters include a target redundancy rate and a target interleaving interval.

[0085] The process of determining the target encoding parameters may specifically include steps S4011 to S4012.

[0086] Step S4011: for each preset pending coding parameter, determine the packet loss rate and coding delay corresponding to the pending coding parameter under the current network state; the pending coding parameter includes a pending redundancy rate and a pending interleaving interval.

[0087] Step S4012: The undetermined coding parameters with a packet loss rate less than a preset packet loss rate threshold and a coding delay less than a preset delay threshold are used as target coding parameters.

[0088] For details, please see Figure 3 Step S301 and steps S3011 to S3012 of the illustrated embodiment are not described in detail here.

[0089] In some optional implementations, the above process of determining the target encoding parameters may further include steps a1 and a2.

[0090] Step a1: Obtain current traffic data under the current network status.

[0091] Step a2: construct a state transition model based on the current traffic data; the state transition model is used to represent the transition probability between various states.

[0092] Furthermore, the above-mentioned step S4011 "determining the packet loss rate and coding delay corresponding to the undetermined coding parameters under the current network state" may specifically include steps b1 to b2.

[0093] Step b1, determining, based on a state transition model, an abnormal probability that data cannot be recovered when interleaving encoding is performed with the undetermined encoding parameters, and determining a packet loss rate corresponding to the undetermined encoding parameters based on the abnormal probability;

[0094] Step b2: determining the coding delay corresponding to the pending coding parameters according to the pending redundancy rate and the pending interleaving interval in the pending coding parameters.

[0095] In this embodiment, to determine the FEC redundancy rate and interleaving interval, nodes must collect statistics on real-time packet loss in the network and calculate encoding parameters. Specifically, to dynamically determine appropriate target encoding parameters, traffic data under the current network state, i.e., current traffic data, can be obtained. This current traffic data can represent the current network status between the sending node and the receiving node.

[0096] For each data packet, it may be in a normal state with no packet loss, or it may be in a packet loss state. In this embodiment, based on the current traffic data, the transition probability between various states can be fitted and determined, thereby constructing a corresponding model, namely a state transition model.

[0097] For a given set of undetermined coding parameters, the transition probabilities represented by the state transition model can be used to determine the probability that the receiving node will be unable to recover data, known as the anomaly probability, and thus the corresponding packet loss rate. As can be seen, a greater anomaly probability correlates with a higher packet loss rate, indicating a positive correlation between the two. The coding delay can be calculated directly based on the undetermined redundancy rate and interleaving interval in the undetermined coding parameters, eliminating the need for a state transition model and simplifying the calculation.

[0098] Optionally, network packet loss can be modeled based on a four-state Markov model to determine the corresponding packet loss rate. However, the four-state Markov model is relatively complex, and fitting a complex model requires a higher data volume and stability, which is not always achievable in practice. Therefore, this embodiment uses a simpler state transition model to distinguish between random packet loss and continuous packet loss. The model includes three states: a first state of random packet loss (random loss), a second state of no packet loss (no loss), and a third state of continuous packet loss (burst loss). This state transition model can achieve simulation using less data, which can enhance the real-time performance of the model.

[0099] Figure 5 A schematic diagram of the state transition model is shown in FIG. Figure 5 As shown, the transition probability represented by the state transition model specifically includes: the first transition probability p from the second state to the first state 21 , the second transition probability p from the second state to the third state 23 , the third transition probability p from the third state to the second state 32 .

[0100] Moreover, the probability of transitioning from the first state to the second state is 1, and the probability of remaining in the second state is p 22 , the probability of keeping the third state unchanged is p 33 Understandable, p 21 +p 22 +p 23 =1, and p 32 +p 33 =1.

[0101] In this embodiment, based on the state transition model, the optimization goal of the coding parameters can be defined as: under the condition that each transition probability in the state transition model is known, determine the appropriate redundancy rate and interleaving interval (i.e., target redundancy rate and target interleaving interval) so that the actual packet loss rate is less than the packet loss rate threshold. The actual packet loss rate is the end-to-end perceived packet loss rate, and the packet loss rate threshold loss is th It can be determined according to actual conditions, such as 1%, 0.5%, 0.1%, etc.

[0102] Specifically, the above step b1 "determines the abnormal probability that data cannot be recovered when interleaving coding is performed with the pending coding parameters according to the state transition model, and determines the packet loss rate corresponding to the pending coding parameters according to the abnormal probability" includes the following steps b11 to b14.

[0103] Step b11, determining a probability of packet loss; the probability of packet loss is the sum of the first transition probability and the second transition probability.

[0104] In this embodiment, for a certain data packet, the occurrence of a packet loss includes random packet loss and continuous packet loss (regardless of whether there is subsequent continuous packet loss, it is regarded as a packet loss). Accordingly, the probability of a packet loss is the sum of the first transition probability and the second transition probability.

[0105] For example, lhr=p 21 +p 23 , lhr represents the probability of packet loss, p 21 represents the first transition probability, p 23 represents the second transition probability.

[0106] Step b12: Determine a first probability that data cannot be recovered in an interleaved coding group due to random packet loss based on the undetermined redundancy rate and the probability of a packet loss.

[0107] Step b13: Determine a second probability that data cannot be recovered in an interleaved coding group due to continuous packet loss based on the undetermined interleaving interval and the third transition probability; the sum of the first probability and the second probability is the abnormal probability.

[0108] Among them, it is relatively difficult to directly calculate the abnormal probability of packet loss through each transition probability; since this embodiment adopts the interleaved coding method, as long as the continuous packet loss does not exceed the interleaving interval, its continuity will not be reflected in a group of interleaved coding groups. The probability of two consecutive packet losses in a group of interleaved coding groups is already small, and the probability of three consecutive packet losses becomes very small. Therefore, when calculating the actual packet loss rate, it can be approximately considered that the packet loss pattern in each interleaved coding group is similar to random packet loss. In this case, continuous packet loss (transition from the second state to the third state) is also a special type of random packet loss. The case where continuous packet loss exceeds the interleaving interval is processed and calculated separately.

[0109] Therefore, the problem of determining the packet loss rate can be transformed into: for a given undetermined redundancy rate ρ and an undetermined interleaving interval gap, calculate the proportion of cases where interleaving coding cannot recover data in the scenarios of random packet loss and continuous packet loss, that is, the first probability α random and the second probability α burst The first probability α random With the second probability αburst The sum of the two is the abnormal probability.

[0110] In this embodiment, the pending redundancy rate can represent the number of data packets in an interleaved coding group. For the interleaved coding group, if there are multiple data packets that have experienced a single packet loss, the data in the interleaved coding group cannot be recovered. Therefore, based on the pending redundancy rate and the probability of a single packet loss, a first probability α of being unable to recover data in an interleaved coding group due to random packet loss can be determined. random .

[0111] The undetermined interleaving interval can represent the number of intervals between consecutive data packets. If the third transition probability is p 32 , then 1-p 32 is the probability of continuous packet loss (i.e., probability p 33 ), based on which the second probability α that data cannot be recovered in an interleaved coding group due to continuous packet loss can be determined burst .

[0112] Optionally, the redundancy rate ρ is to be determined, then the number of data packets n in an interleaved coding group is Therefore, for this interleaved coding group, the probability that none of the n data packets are lost is (1-1hr) n , the probability of losing only one packet is n×lhr×(1-lhr) n-1 When the number of packet loss exceeds 1, the data cannot be recovered. Therefore, the first probability α of being unable to recover data in an interleaved coding group due to random packet loss is random is: α random =1-(1-1hr) n -n×lhr×(1-lhr) n-1 .

[0113] For continuous packet loss, when the number of continuous packet loss is greater than the to-be-determined interleaving interval gap, it will cause unrecoverable data packets in the interleaving coding group. Therefore, the second probability α of being unable to recover data in an interleaving coding group due to continuous packet loss is burst is α burst =p 23 ×(1-p 32 ) gap , that is, α burst =p 23 ×p 33 gap .

[0114] Step b14: determining the packet loss rate corresponding to the undetermined encoding parameter based on the first probability, the second probability, and the preset number of packets whose data cannot be recovered.

[0115] In this embodiment, the abnormal probability (i.e., the sum of the first probability and the second probability) is the probability of packet loss due to an abnormal data packet. For an interleaved coding group, data recovery can generally be achieved if only one data packet is abnormal. Therefore, the number of packets that cannot be recovered can also be preset, and the packet loss rate corresponding to the undetermined coding parameters is determined based on this comprehensive analysis.

[0116] Specifically, the product of the number of packets whose data cannot be recovered and the abnormal probability is used as the packet loss rate corresponding to the undetermined encoding parameters.

[0117] For example, the packet loss rate corresponding to the undetermined encoding parameters is: Loss = E(loss num )×(α random +α burst ).

[0118] Among them, α random represents the first probability, lhr represents the probability of packet loss, and lhr=p 21 +p 23 , p 21 represents the first transition probability, p 23 represents the second transition probability; n represents the number of packets in an interleaved coding group, and ρ represents the undetermined redundancy rate; α burst represents the second probability, p 32 represents the third transition probability, gap represents the undetermined interleaving interval; Loss represents the packet loss rate corresponding to the undetermined coding parameters, loss num Indicates the number of packets that cannot be recovered, E(loss num ) represents loss num The expected value of is generally not less than 2, for example, E(loss num )=2.

[0119] In this embodiment, the packet loss rate corresponding to the undetermined encoding parameters should be less than the preset packet loss rate threshold loss th , that is: E(loss num )×(α random +α burst ) <loss th , so that the packet loss rate meets the corresponding constraints.

[0120] Based on this condition, the larger the interleaving gap is, the less likely it is that continuous packet loss will affect data recovery. However, this comes at the expense of coding delay. Therefore, when setting the interleaving gap, coding delay needs to be considered as another constraint.

[0121] Specifically, the coding delay corresponding to the undetermined coding parameter is:

[0122] Wherein, Delay represents the coding delay corresponding to the to-be-determined coding parameters, ρ represents the to-be-determined redundancy rate, gap represents the to-be-determined interleaving interval, and thpt represents the throughput determined based on the current traffic data.

[0123] In this embodiment, as described above, if the undetermined redundancy rate is ρ, the number of datagrams n in an interleaving group is Moreover, n×gap is the total number of interleaved coded packets, which can represent the delay caused thereby, so this embodiment will be used as As the corresponding coding delay, the coding delay is

[0124] Accordingly, the coding delay corresponding to the undetermined coding parameters needs to be less than the preset delay threshold delay th ,Right now: The delay threshold delay th It can be determined based on actual conditions, such as 10ms, 20ms, etc.

[0125] Based on the above inequalities regarding redundancy rate Loss and coding delay Delay, target coding parameters that meet the requirements can be determined. For example, the set of undetermined coding parameters with the largest number n (i.e., the smallest redundancy rate) is used as the current target coding parameters.

[0126] In this embodiment, a state transition model is constructed by fitting the current traffic data. Based on the transition probability shown in the state transition model, the redundancy rate corresponding to each pending coding parameter can be determined more accurately. By adopting a state transition model with three states, simulation can be achieved using less data, which can enhance the real-time performance of the model.

[0127] In the scenarios of random packet loss and continuous packet loss, the probability of data being unrecoverable is determined. Based on this, the anomaly probability can be relatively simply and accurately determined, and then the actual packet loss rate that will be caused when interleaving encoding is performed with the pending coding parameters is determined. Combined with the preset packet loss rate conditions, the optimal pending coding parameters are traversed to obtain and used as the subsequent target coding parameters to ensure low packet loss rate and low latency during subsequent data transmission.

[0128] Step S402: determining a plurality of original data packets belonging to the same interleaving coding group according to target coding parameters, and performing interleaving coding processing on the plurality of original data packets to generate corresponding first interleaved redundant packets.

[0129] For details, please see Figure 3 Step S302 of the illustrated embodiment will not be described in detail here.

[0130] Step S403: performing interleaving coding processing based on the multiple original data packets to generate at least one second interleaved redundant packet different from the first interleaved redundant packet; the second interleaved redundant packet is linearly independent of the first interleaved redundant packet.

[0131] Step S404: Buffer each second interleaved redundant packet.

[0132] In order to quickly retransmit data, the sending node can cache data that may need to be retransmitted, which generally requires caching all original data packets. Figure 1 As shown, when end device 111 sends a data packet to end device 113, it needs to pass through first gateway node 101 and second gateway node 102. Both gateway nodes can act as sending nodes and cache the corresponding data packets. If first gateway node 101 acts as the sending node and caches the corresponding data packets, if second gateway node 102 does not receive a data packet due to network reasons or other reasons and needs to retransmit the data, first gateway node 101 can directly retransmit the cached data packet without having to pull data from end device 111. However, when the sending node is a gateway node, it is necessary to cache the original data packets of each end device, which places high cache requirements.

[0133] In this embodiment, on the basis of the original interleaved coding, another interleaved redundant packet, ie, a second interleaved redundant packet, is additionally added. In this case, only the second interleaved redundant packet needs to be cached, and the original data packet does not need to be cached, thereby reducing the required cache space.

[0134] The second interleaved redundant packet is used to enable data recovery when data recovery based on the first interleaved redundant packet is unavailable. Therefore, the second interleaved redundant packet is different from the first interleaved redundant packet. Furthermore, the second interleaved redundant packet is linearly independent of the first interleaved redundant packet, so that the first interleaved redundant packet cannot be obtained based on multiple second interleaved redundant packets, thereby avoiding the occurrence of useless redundant packets.

[0135] Step S405: Send the multiple original data packets and the first interleaved redundant packet to the receiving node, instructing the receiving node to perform data recovery based on the first interleaved redundant packet when the original data packets are lost.

[0136] For details, please see Figure 3 Step S303 of the illustrated embodiment will not be described in detail here.

[0137] Step S406: Obtain a first message sent by the receiving node indicating that a first data packet is lost; the first data packet is one of the multiple original data packets that the receiving node cannot recover;

[0138] Step S407: Send a second interleaved redundant packet capable of restoring the first data packet to the receiving node.

[0139] In this embodiment, when a data packet is first sent to a receiving node, the redundant packets sent only include the first interleaved redundant packet, that is, the second interleaved redundant packet is not sent at this time, and the second interleaved redundant packet is only cached in the local cache space of the sending node.

[0140] If the receiving node correctly receives all original data packets, meaning it is not unable to recover the data, there is no need to use the second interleaved redundant packet; for example, the cached second interleaved redundant packet can be cleared. However, if the receiving node has an unrecoverable first data packet, the receiving node sends a first message to the sending node indicating that the first data packet has been lost. In traditional methods, the sending node directly retransmits the corresponding first data packet. However, in this embodiment, a second interleaved redundant packet capable of recovering the first data packet is sent to the receiving node. After receiving the second interleaved redundant packet, the receiving node can perform data recovery again based on it, ultimately recovering the lost first data packet.

[0141] Figure 6 A schematic diagram of interleaving coding is shown, in which the redundancy rate is 1 / 5 and the interleaving interval is 4; taking the interleaving coding group shown in the leftmost column as an example, when performing interleaving coding processing, in addition to generating the first interleaving redundant packet R1, second interleaving redundant packets S1 and S2 also need to be generated.

[0142] When sending a data packet, the sending node first sends the original data packets D1-D16 and the first interleaved redundant packets R1-R4 to the receiving node and caches the second interleaved redundant packets S1-S8. At this point, the sending node can directly delete the original data packets D1-D16, meaning there is no need to cache them. If the receiving node loses the original data packets D5 and D9, data recovery based on the first interleaved redundant packet R1 is not possible. Therefore, the receiving node sends a corresponding first message to the sending node. The first data packet in this case corresponds to the original data packets D5 and D9.

[0143] After receiving the first message, if the second interleaved redundant packet S1 is capable of recovering the first data packet, the sending node may send the second interleaved redundant packet S1 to the receiving node, allowing the receiving node to perform data recovery again based on the second interleaved redundant packet S1. If the receiving node previously received the first interleaved redundant packet R1, it is generally necessary to perform data recovery by combining the first interleaved redundant packet R1 with the second interleaved redundant packet S1 to recover the original data packets D5 and D9.

[0144] It should be noted that, in this embodiment, only the original data packet may be interleaved and encoded, such as Figure 6 Alternatively, on the basis of interleaving the original data packets, traditional redundant coding can also be performed on the continuous original data packets to generate traditional redundant packets, such as Figure 2 The redundant packet F1 shown is not limited in this embodiment.

[0145] Optionally, the coding method used in the interleaved coding process is XOR coding, wherein the number of the second interleaved redundant packets is not less than 2; and the coding coefficients corresponding to the first interleaved redundant packets are different from the coding coefficients corresponding to the second interleaved redundant packets.

[0146] In this embodiment, the encoding method used when generating the first interleaved redundant packet and the second interleaved redundant packet is XOR encoding, that is, the first interleaved redundant packet and the second interleaved redundant packet are both XOR codes, thereby ensuring encoding efficiency.

[0147] Furthermore, the first interleaved redundant packet is sent along with the original data packet. It needs to be able to recover any of the original data packets, so all elements in the coding coefficients corresponding to the first interleaved redundant packet are 1. As shown in the coding matrix above, the last row corresponds to the coding coefficients of the first interleaved redundant packet. To distinguish the second interleaved redundant packet from the first interleaved redundant packet, the elements in the coding coefficients of the second interleaved redundant packet cannot all be 1, meaning that the coding coefficients differ. However, this will prevent the second interleaved redundant packet from recovering some of the original data packets. To increase the probability that the receiving node can recover data when retransmission is required, the sending node buffers multiple second interleaved redundant packets, meaning the number of second interleaved redundant packets is no less than two.

[0148] For example, one second interleaved redundant packet can restore a portion of the original data packet, and another second interleaved redundant packet can restore another portion of the original data packet, so that the original data packets that can be restored by multiple second interleaved redundant packets can completely cover all the original data packets in the interleaved coding group.

[0149] Optionally, each element in the coding coefficient corresponding to the first interleaved redundant packet is 1. Also, the coding coefficient corresponding to one of the second interleaved redundant packets is [a1, a2, ..., a m ]; the coding coefficients corresponding to the other second interleaved redundant packet are [b1, b2, ..., b m ]; m is the number of original data packets in the interleaved coding group.

[0150] The elements in the coding coefficients of the two second interleaved redundant packets respectively satisfy:

[0151]

[0152] or,

[0153] Wherein, i represents the element index in the coding coefficient, i=1, 2,…, m; % represents the remainder operation.

[0154] In this embodiment, the coding matrix of the interleaved coding used may be as follows:

[0155]

[0156] Where m is the number of original data packets in the interleaved coding group, and the above coding matrix has m+3 rows and m columns. Figure 6 As shown in the example, m=4, and the corresponding encoding matrix is ​​a 7×3 matrix.

[0157] For an interleaved coding group, which includes m original data packets, namely D1 to Dm, interleaved coding can be implemented based on the coding matrix, and the corresponding first interleaved redundant packet R1 and two second interleaved redundant packets S1 and S2 can be determined:

[0158]

[0159] In this embodiment, if the receiving node experiences excessive packet loss and data recovery cannot be achieved using the second interleaved redundant packet, the sending node may not retransmit the second interleaved redundant packet, but instead delegate the retransmission task to the end device. Specifically, the end device itself stores the original data packet to be sent, and the sending node may instruct the end device to retransmit the corresponding data packet.

[0160] Optionally, the receiving node generally provides feedback on data reception to the sending node based on an ACK (acknowledgement number, or confirmation character). The receiving node can respond to all sequence number (Seq) holes by determining the missing sequence number as a lost packet and notifying the sending node. However, due to the use of FEC redundant coding, data packets have a certain degree of recovery capability. Even if there is a sequence number hole, it may still be a recoverable packet. Therefore, the receiving end can perform limited recovery after receiving a redundant packet. If traditional methods are used, even if recovery is possible, fast retransmission will be triggered, resulting in redundancy. Therefore, the receiving end should consider the recovery capability of FEC. If a sequence number hole is found, it should first mark it and then wait for the redundant packet to arrive to determine whether it can be recovered. If recovery is not possible, it will need to request retransmission from the sending end.

[0161] Compared to traditional TCP transmission, where the sending end determines whether to retransmit based on ACK information, this embodiment determines retransmission at the receiving end. The receiving end then notifies the sending end of the packet loss in the form of a negative acknowledgement (NACK) to initiate retransmission. That is, the first message sent by the receiving node includes the negative acknowledgement (NACK) corresponding to the first data packet, allowing the receiving node to determine which original data packets need to be retransmitted based on the NACK.

[0162] Optionally, to ensure the accuracy of data transmission, this embodiment uses both ACK and NACK. Specifically, the receiving node may return a first message indicating that data has not been received to the sending node, or may send a second message indicating that data has been received.

[0163] In addition, the message sent by the receiving node includes a type field (ACK_TYPE) and a sequence number field (ACK_NUM). After receiving the message, the sending node can determine whether the current transmission is ACK or NACK based on the type field, that is, based on the type field, it can determine whether the message is the first message or the second message; based on the sequence number field, it can determine the sequence number of the corresponding data packet, that is, the specific value of ACK or NACK.

[0164] Specifically, the first message includes a type field and a sequence number field; the type field of the first message indicates that the first message is a negative acknowledgement type, for example, ACK_TYPE=NACK, and the sequence number field of the first message indicates the negative acknowledgement number of the first data packet, which is the sequence number of the first data packet.

[0165] Furthermore, the method further includes step c1 to step c2.

[0166] Step c1, obtain the second message sent by the receiving node indicating that the second data packet has been received; the second message includes a type field and a sequence number field; the type field of the second message indicates that the second message is a confirmation type, and the sequence number field of the second message indicates the confirmation number of the second data packet.

[0167] Step c1: when multiple original data packets have been received by the receiving node, clear each second interleaved redundant packet in the cache.

[0168] In this embodiment, if a second message is received, i.e., if the type field in the second message indicates that the second message is of an acknowledgment type, for example, ACK_TYPE = ACK, then it can be determined that the receiving node has received the corresponding second data packet. For a certain interleaved coding group, if the receiving node has received all original data packets within the interleaved coding group, it can be determined that the interleaved coding group does not need to be retransmitted. Therefore, the sending node can clear the cached second interleaved redundant packets of the interleaved coding group.

[0169] Among them, the second data packet received by the receiving node can be the original data packet directly received from the sending node, or it can be the original data packet recovered based on the interleaved redundant packet, for example, the original data packet recovered based on the first interleaved redundant packet, or the original data packet recovered based on the second interleaved redundant packet.

[0170] The data redundancy transmission method provided in this embodiment calculates interleaving coding parameters in real time based on network conditions, enabling better adaptation to changes in packet loss between nodes and improving transmission efficiency. By providing an additional second interleaving redundancy packet for data retransmission, it reduces buffering pressure on the sender and avoids redundant retransmissions. The simultaneous use of ACK and NACK retransmission ensures accurate retransmission of lost data while also promptly notifying the sender to delete unused buffered data.

[0171] In this embodiment, a data redundant transmission method is provided, which is applied to a node receiving data, i.e., a receiving node. The sending node is specifically an edge node; for example, the receiving node may be the first gateway node 101, the second gateway node 102, etc. Figure 7 is a flow chart of a data redundancy transmission method according to an embodiment of the present disclosure, such as Figure 7 As shown, the process includes the following steps.

[0172] Step S701, obtaining multiple original data packets and a first interleaved redundant packet sent by a sending node; the multiple original data packets belong to the same interleaved coding group determined according to target coding parameters, and the first interleaved redundant packet is generated by interleaving coding processing based on the multiple original data packets; the target coding parameters include a target redundancy rate and a target interleaving interval.

[0173] The process of determining the target coding parameters includes: for each preset pending coding parameter, determining the packet loss rate and coding delay corresponding to the pending coding parameter under the current network state; the pending coding parameters include a pending redundancy rate and a pending interleaving interval; and selecting the pending coding parameter with a packet loss rate less than a preset packet loss rate threshold and a coding delay less than a preset delay threshold as the target coding parameter. For details, refer to the description of steps S3011 to S3012 above and will not be repeated here.

[0174] Step S702: When the original data packet is lost, data recovery is performed based on the first interleaved redundant packet to recover the lost original data packet.

[0175] In this embodiment, the receiving node receives the original data packet and the first interleaved redundant packet. If the original data packet is not lost, no processing is required. If the original data packet is lost and can be recovered based on the first interleaved redundant packet, data recovery is performed based on the first interleaved redundant packet and the received original data packet to recover the lost original data packet.

[0176] This part of the content is detailed in the relevant description of the above embodiment and will not be repeated here.

[0177] In some optional embodiments, the method may further include steps d1 to d3.

[0178] Step d1: When there is a first data packet among the multiple original data packets that cannot be restored based on the first interleaved redundant packet, a first message indicating that the first data packet is lost is sent to the sending node.

[0179] Step d2: Receive a second interleaved redundant packet returned by the sending node; the second interleaved redundant packet is generated by performing interleaving coding processing on multiple original data packets, and the second interleaved redundant packet is different from the first interleaved redundant packet and is linearly independent.

[0180] Step d3: Perform data recovery based on the second interleaved redundant packet to recover the first data packet.

[0181] The process of realizing data recovery based on the second interleaved redundant packet may be specifically referred to the relevant descriptions of steps S403 to S407 above, which will not be repeated here.

[0182] Optionally, the first message includes a type field and a sequence number field; the type field of the first message indicates that the first message is a negative acknowledgement type, and the sequence number field of the first message indicates a negative acknowledgement number of the first data packet.

[0183] Furthermore, the method further includes step d4.

[0184] Step d4, in the case where the second data packet has been received, sending a second message to the sending node indicating that the second data packet has been received; the second message includes a type field and a sequence number field; the type field of the second message indicates that the second message is a confirmation type, and the sequence number field of the second message indicates the confirmation number of the second data packet; the second data packet is the original data packet received directly from the sending node, or the original data packet recovered based on the interleaved redundant packet.

[0185] Among them, regarding the content of the first message and the second message, please refer to the relevant description of the above embodiment, and will not be repeated here.

[0186] Alternatively, the gateway node acts as a forwarding node, receiving packets from the user end and forwarding them to the destination node. If inter-node retransmission is enabled, this can be considered a weak link between the two nodes, with each node maintaining information such as the sequence number Seq and the corresponding acknowledgment number (ACK). The amount of bidirectional data flow between a pair of nodes depends on how many packets the node receives from the other end during that time period. Therefore, inconsistent bidirectional data flow is common, and this is a factor that must be considered when designing the ACK mechanism.

[0187] There are generally two ways for the receiving end to transmit ACK information back to the sending end:

[0188] 1. Piggybacked back to the sender by the data packet;

[0189] 2. Generate a separate ACK message without data.

[0190] The first method does not require additional ACK packets and consumes no additional bandwidth. However, due to the inconsistency of bidirectional traffic, it is impossible to confirm when the next data will arrive. This method results in poor ACK delivery timeliness, further affecting the timeliness of packet loss detection and retransmission. The second method supports sending ACK packets anytime and anywhere, with very high ACK timeliness. However, individual ACK packets will inevitably generate more traffic and squeeze bandwidth.

[0191] TCP uses a delayed ACK mechanism to strike a balance between the two. This mechanism allows for a certain delay in the receiving end's ACK response to allow for waiting for data packets / aggregate ACKs. However, this mechanism also has limitations, such as a 40ms time limit and a maximum of two aggregate ACKs. Some scenarios with high real-time requirements, such as transmitting real-time audio and video streams, can directly use the NACK mechanism. This mechanism only requests retransmission from the sender without confirming the data packet, eliminating the need for an ACK. However, this approach is only suitable for scenarios with high real-time requirements.

[0192] To address the timeliness issue of ACK, this embodiment adopts a design that uses both ACK and NACK. At the same time, the confirmation mechanism has two different functions, and their timeliness requirements are different:

[0193] (1) Communicate packet reception information. Once the sender knows which packets have been received, it can move the send window back and release the cached data. A small delay will not significantly impact the performance of the send window maintenance, so it can be performed with lower timeliness. In other words, the timeliness requirement for sending the second message is relatively low.

[0194] (2) Conveying packet loss information. Once the sender knows which data packets were not received, it needs to retransmit the data packets to the receiver. Since the goal of this embodiment is to optimize application latency, retransmission must be performed with high timeliness. In other words, the timeliness requirement for sending the first message is relatively low.

[0195] Based on this, the above step d1 “sending a first message indicating that the first data packet is lost to the sending node” may include step d11 or step d12.

[0196] Step d11: Generate a separate first message indicating that the first data packet is lost, and send the message to the sending node.

[0197] Step d12: If there is a first other data packet that needs to be sent to the sending node within the preset time period, a first message indicating that the first data packet is lost is added to the first other data packet, and the first other data packet is sent to the sending node.

[0198] Furthermore, the above step d4 of “sending a second message to the sending node indicating that the second data packet has been received” may include step d41.

[0199] Step d41 : adding a second message indicating that the second data packet has been received to a second other data packet that needs to be sent to the sending node, and sending the second other data packet to the sending node.

[0200] In this embodiment, when the receiving node determines that the first data packet needs to be retransmitted, it can directly generate a corresponding first message separately and send it to the sending node. At this time, it is necessary to generate a corresponding data packet (a NACK packet) separately to ensure that the sending end can quickly respond to the retransmission; or, when it is determined that the first data packet needs to be retransmitted, it can wait for a certain period of time (for example, 10ms, etc.). If there are other data packets that the receiving node needs to send to the sending node during the waiting period, that is, the first other data packet, it can be added to the first other data packet and sent to the sending node together. While ensuring the timeliness of the first message, the amount of data transmitted is reduced. If the first other data packet does not exist within the preset time period, step d11 is also executed, that is, the first message is sent directly.

[0201] When the receiving node determines that it has received the second data packet, there is no need to retransmit the second data packet. Since the timeliness of the confirmation message does not need to be particularly high, the receiving node can continue to wait until a second other data packet that needs to be sent to the sending node appears, and add the second message to the second other data packet and send it to the sending node together, reducing bandwidth waste.

[0202] In this embodiment, the simultaneous use of ACK and NACK retransmission design can not only reduce the bandwidth requirement between nodes, but also ensure that the application delay is not damaged.

[0203] Figure 8 FIG. 1 shows an interactive diagram of realizing data redundant transmission between nodes (for example, two gateway nodes). Figure 8 As shown, when the first end device needs to send an original data packet to the second end device, the process of performing data redundant transmission includes steps S801 to S811.

[0204] Step S801: The sending node obtains an original data packet from a first-end device.

[0205] Step S802: The sending node determines the currently required target coding parameters, which include a target redundancy rate and a target interleaving interval.

[0206] Step S803: The sending node performs interleaving coding processing on multiple original data packets belonging to the same interleaving coding group to generate a first interleaved redundant packet and multiple second interleaved redundant packets; and buffers these second interleaved redundant packets.

[0207] Step S804: The sending node sends the multiple original data packets and the first interleaved redundant packet to the receiving node in sequence.

[0208] Step S805: The receiving node determines whether a packet is lost, and if so, whether the lost original data packet can be restored based on the first interleaved redundant packet.

[0209] Step S806: If recovery is not possible, the first message is returned to the sending node.

[0210] It can be understood that if recovery is possible, the receiving node performs data recovery and returns a second message to the sending node.

[0211] Step S807: The sending node sends a corresponding second interleaved redundant packet to the receiving node based on the first message.

[0212] Step S808: The receiving node performs data recovery based on the second interleaved redundant packet to obtain the lost data packet.

[0213] Step S809: For the received data packet, the receiving node returns a second message to the sending node. It is understandable that after the receiving node recovers the lost data packet based on the second interleaved redundant packet, it will also return a corresponding second message.

[0214] In step S810 , the receiving node sends each original data packet to the second end device.

[0215] It can be understood that in step S810, the receiving node can also serve as the sending node, and the second end device serves as the receiving node, and implements data transmission based on the method provided in this embodiment.

[0216] Step S811 : When the sending node determines based on each second message that all original data packets have been received, the sending node deletes the relevant second interleaved redundant packet.

[0217] Figure 9 A relationship diagram between redundancy rate and actual packet loss rate is shown, wherein the data points represent the actual packet loss rate corresponding to each redundancy rate determined based on simulation (sim), and the curve represents the relationship between redundancy rate and actual packet loss rate determined based on the method of determining target coding parameters in this embodiment. Figure 9 As shown, the actual effect is close to the theoretical optimal curve.

[0218] The data redundancy transmission method provided in this embodiment uses a dynamically interleaved FEC coding algorithm, which can significantly reduce the packet loss rate perceived by the end, thereby improving the average throughput of the end. This method can effectively reduce the packet loss rate to 1 / 5 of the original, and the average throughput of TCP transmission is improved by approximately 320%. In addition, the retransmission method adopted in this embodiment can speed up the end-to-end retransmission speed, reduce the number of retransmissions at the end, reduce the end-to-end tail delay, and potentially improve the average throughput. It has been verified that this method can reduce the end-to-end retransmission rate to 1 / 5, and at the same time reduce the 99th percentile of the RTT (Round-Trip Time) from 402ms to 287ms.

[0219] This embodiment also provides a data redundancy transmission device for implementing the above-mentioned embodiments and preferred embodiments. Details already described will not be repeated. As used below, the term "module" may refer to a combination of software and / or hardware that implements a predetermined function. Although the devices described in the following embodiments are preferably implemented using software, implementation using hardware, or a combination of software and hardware, is also possible and contemplated.

[0220] This embodiment provides a data redundancy transmission device, which is applied to a sending node, such as Figure 10 As shown, the device includes:

[0221] An acquisition module 1001 is configured to acquire dynamically determined target coding parameters, wherein the target coding parameters include a target redundancy rate and a target interleaving interval;

[0222] An interleaving coding module 1002 is configured to determine, based on the target coding parameter, a plurality of original data packets belonging to the same interleaving coding group, and perform interleaving coding processing on the plurality of original data packets to generate corresponding first interleaved redundant packets;

[0223] a sending module 1003, configured to send the plurality of original data packets and the first interleaved redundant packet to a receiving node, and instruct the receiving node to perform data recovery based on the first interleaved redundant packet when the original data packet is lost;

[0224] The process of determining the target encoding parameters includes:

[0225] For each preset pending coding parameter, determining the packet loss rate and coding delay corresponding to the pending coding parameter under the current network state; the pending coding parameter includes a pending redundancy rate and a pending interleaving interval;

[0226] The undetermined coding parameters with a packet loss rate less than a preset packet loss rate threshold and a coding delay less than a preset delay threshold are used as the target coding parameters.

[0227] In some optional implementations, the process of determining the target encoding parameters further includes:

[0228] Get current traffic data under the current network status;

[0229] Constructing a state transition model based on the current traffic data; the state transition model is used to represent the transition probability between various states;

[0230] The determining of the packet loss rate and encoding delay corresponding to the undetermined encoding parameters under the current network state includes:

[0231] Determining, based on the state transition model, an abnormal probability that data cannot be recovered when interleaving encoding is performed with the undetermined encoding parameters, and determining, based on the abnormal probability, a packet loss rate corresponding to the undetermined encoding parameters;

[0232] According to the undetermined redundancy rate and the undetermined interleaving interval in the undetermined coding parameters, a coding delay corresponding to the undetermined coding parameters is determined.

[0233] In some optional embodiments, the state transition model includes a first state of random packet loss, a second state of no packet loss, and a third state of continuous packet loss;

[0234] The transition probabilities represented by the state transition model include: a first transition probability of transitioning from the second state to the first state, a second transition probability of transitioning from the second state to the third state, and a third transition probability of transitioning from the third state to the second state;

[0235] The determining, according to the state transition model, an abnormal probability that data cannot be recovered when interleaving coding is performed with the undetermined coding parameters, and determining, according to the abnormal probability, a packet loss rate corresponding to the undetermined coding parameters, includes:

[0236] Determining a probability of packet loss occurring once; wherein the probability of packet loss occurring once is the sum of the first transition probability and the second transition probability;

[0237] Determining a first probability that data cannot be recovered in an interleaved coding group due to random packet loss based on the undetermined redundancy rate and the probability of a single packet loss;

[0238] Determining, based on the undetermined interleaving interval and the third transition probability, a second probability that data cannot be recovered within an interleaving coding group due to continuous packet loss; the sum of the first probability and the second probability being the abnormal probability;

[0239] Based on the first probability, the second probability, and a preset number of packets whose data cannot be recovered, a packet loss rate corresponding to the undetermined encoding parameter is determined.

[0240] In some optional implementations, the first probability, the second probability, and the packet loss rates corresponding to the undetermined encoding parameters are respectively:

[0241] α random =1-(1-1hr) n -n×lhr×(1-lhr) n-1 ;

[0242] α burst =p 23 ×(1-p 32 ) gap ;

[0243] Loss=E(loss num )×(α random +α burst );

[0244] Among them, α random represents the first probability, lhr represents the probability of packet loss, and lhr=p 21 +p 23 , p 21 represents the first transition probability, p 23 represents the second transition probability; n represents the number of packets in an interleaved coding group, and ρ represents the undetermined redundancy rate; α burst represents the second probability, p 32 represents the third transition probability, gap represents the undetermined interleaving interval; Loss represents the packet loss rate corresponding to the undetermined coding parameter, loss num Indicates the number of packets that cannot be recovered, E(loss num ) represents loss num expected value.

[0245] In some optional implementations, the coding delay corresponding to the undetermined coding parameter is:

[0246]

[0247] Wherein, Delay represents the coding delay corresponding to the to-be-determined coding parameter, ρ represents the to-be-determined redundancy rate, gap represents the to-be-determined interleaving interval, and thpt represents the throughput determined according to the current traffic data.

[0248] In some optional implementations, the interleaving coding module 1002 is further configured to:

[0249] performing interleaving coding processing on the plurality of original data packets to generate at least one second interleaved redundant packet different from the first interleaved redundant packet, wherein the second interleaved redundant packet is linearly independent of the first interleaved redundant packet; and buffering each of the second interleaved redundant packets;

[0250] The acquisition module 1001 is further configured to: acquire a first message sent by the receiving node indicating that a first data packet is lost; the first data packet is one of the multiple original data packets that the receiving node cannot recover;

[0251] The sending module 1003 is further configured to send a second interleaved redundant packet capable of restoring the first data packet to the receiving node.

[0252] In some optional implementations, the coding method used in the interleaving coding process is XOR coding;

[0253] The number of the second interleaved redundant packets is not less than 2; the coding coefficients corresponding to the first interleaved redundant packets are different from the coding coefficients corresponding to the second interleaved redundant packets.

[0254] In some optional implementations, each element in the coding coefficient corresponding to the first interleaved redundant packet is 1;

[0255] One of the coding coefficients corresponding to the second interleaved redundant packets is [a1, a2, ..., a m ]; the coding coefficient corresponding to the second interleaved redundant packet is [b1, b2, ..., b m ]; m is the number of original data packets in the interleaved coding group;

[0256]

[0257] or,

[0258] Wherein, i represents the element index in the coding coefficient, i=1, 2,…, m; % represents the remainder operation.

[0259] In some optional embodiments, the first message includes a type field and a sequence number field; the type field of the first message indicates that the first message is a negative acknowledgement type, and the sequence number field of the first message indicates a negative acknowledgement number of the first data packet;

[0260] The acquisition module 1001 is further configured to:

[0261] Obtaining a second message sent by the receiving node indicating that a second data packet has been received; the second message includes a type field and a sequence number field; the type field of the second message indicates that the second message is a confirmation type, and the sequence number field of the second message indicates a confirmation number of the second data packet;

[0262] In a case where the plurality of original data packets have been received by the receiving node, each of the second interleaved redundant packets in the buffer is cleared.

[0263] This embodiment provides another data redundancy transmission device, which is applied to a receiving node, such as Figure 11 As shown, the device includes:

[0264] A receiving module 1101 is configured to obtain a plurality of original data packets and a first interleaved redundant packet sent by a sending node; the plurality of original data packets belong to the same interleaved coding group determined according to target coding parameters, and the first interleaved redundant packet is generated by performing interleaved coding processing on the plurality of original data packets; the target coding parameters include a target redundancy rate and a target interleaving interval;

[0265] The processing module 1102 is configured to perform data recovery based on the first interleaved redundant packet to recover the lost original data packet when the original data packet is lost;

[0266] The process of determining the target encoding parameters includes:

[0267] For each preset pending coding parameter, determining the packet loss rate and coding delay corresponding to the pending coding parameter under the current network state; the pending coding parameter includes a pending redundancy rate and a pending interleaving interval;

[0268] The undetermined coding parameters with a packet loss rate less than a preset packet loss rate threshold and a coding delay less than a preset delay threshold are used as the target coding parameters.

[0269] In some optional embodiments, the apparatus further includes a sending module configured to: if there is a first data packet among the plurality of original data packets that cannot be recovered based on the first interleaved redundant packet, send a first message indicating that the first data packet is lost to the sending node;

[0270] The receiving module 1101 is further configured to: receive a second interleaved redundant packet returned by the sending node; the second interleaved redundant packet is generated based on the interleaved coding process of the plurality of original data packets, the second interleaved redundant packet is different from the first interleaved redundant packet and is linearly independent;

[0271] The processing module 1102 is further configured to perform data recovery based on the second interleaved redundant packet to recover the first data packet.

[0272] In some optional embodiments, the first message includes a type field and a sequence number field; the type field of the first message indicates that the first message is a negative acknowledgement type, and the sequence number field of the first message indicates a negative acknowledgement number of the first data packet;

[0273] The sending module is further used for:

[0274] In the case where the second data packet has been received, a second message indicating that the second data packet has been received is sent to the sending node; the second message includes a type field and a sequence number field; the type field of the second message indicates that the second message is a confirmation type, and the sequence number field of the second message indicates the confirmation number of the second data packet; the second data packet is the original data packet received directly from the sending node, or the original data packet recovered based on the interleaved redundant packet.

[0275] In some optional implementations, the sending module sending a first message indicating that the first data packet is lost to the sending node includes:

[0276] separately generating a first message indicating that the first data packet is lost, and sending the message to the sending node;

[0277] or,

[0278] If there is a first other data packet that needs to be sent to the sending node within a preset time period, adding a first message indicating that the first data packet is lost to the first other data packet, and sending the first other data packet to the sending node;

[0279] The sending module sending a second message to the sending node indicating that the second data packet has been received includes:

[0280] A second message indicating that the second data packet has been received is added to a second other data packet that needs to be sent to the sending node, and the second other data packet is sent to the sending node.

[0281] The further functional description of each of the above modules and units is the same as that of the above corresponding embodiments and will not be repeated here.

[0282] The data redundancy transmission device in this embodiment is presented in the form of a functional unit, where the unit refers to an ASIC (Application Specific Integrated Circuit) circuit, including a processor and memory that executes one or more software or fixed programs, and / or other devices that can provide the above functions.

[0283] The present disclosure also provides a computer device having the above Figure 10 or Figure 11 The data redundant transmission device shown.

[0284] See also Figure 12 , Figure 12 is a structural diagram of a computer device provided by an optional embodiment of the present disclosure, such as Figure 12 As shown, the computer device includes: one or more processors 10, a memory 20, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. Various components utilize different buses to communicate with each other and can be installed on a common mainboard or installed in other ways as needed. The processor can process the instructions executed in the computer device, including instructions stored in or on the memory to display the graphical information of a GUI on an external input / output device (such as, a display device coupled to the interface). In some optional embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories. Equally, multiple computer devices can be connected, and each device provides part of the necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Figure 12 A processor 10 is taken as an example.

[0285] The processor 10 may be a central processing unit, a network processor, or a combination thereof. The processor 10 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit, a programmable logic device, or a combination thereof. The programmable logic device may be a complex programmable logic device, a field programmable gate array, a general purpose array logic, or any combination thereof.

[0286] The memory 20 stores instructions that can be executed by at least one processor 10, so that the at least one processor 10 executes the method shown in the above embodiment.

[0287] The memory 20 may include a program storage area and a data storage area, wherein the program storage area may store an operating system and application programs required for at least one function; the data storage area may store data created based on the use of the computer device, etc. In addition, the memory 20 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some optional embodiments, the memory 20 may optionally include a memory remotely located relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0288] The memory 20 may include a volatile memory, such as a random access memory; the memory may also include a non-volatile memory, such as a flash memory, a hard disk or a solid-state drive; the memory 20 may also include a combination of the above types of memory.

[0289] The computer device further includes a communication interface 30 for the computer device to communicate with other devices or a communication network.

[0290] The embodiments of the present disclosure also provide a computer-readable storage medium. The above-mentioned method according to the embodiments of the present disclosure can be implemented in hardware, firmware, or implemented as a computer code that can be recorded in a storage medium, or implemented as a computer code that is originally stored in a remote storage medium or a non-temporary machine-readable storage medium and downloaded through a network and will be stored in a local storage medium, so that the method described herein can be stored in such software processing on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only storage memory, a random access memory, a flash memory, a hard disk or a solid-state drive, etc.; further, the storage medium can also include a combination of the above-mentioned types of memory. It can be understood that a computer, a processor, a microprocessor controller or programmable hardware includes a storage component that can store or receive software or computer code. When the software or computer code is accessed and executed by a computer, a processor or hardware, the method shown in the above embodiment is implemented.

[0291] A portion of the present disclosure may be applied as a computer program product, such as a computer program instruction, which, when executed by a computer, can call or provide the method and / or technical solution according to the present disclosure through the operation of the computer. Those skilled in the art should understand that the form in which the computer program instruction exists in a computer-readable medium includes but is not limited to a source file, an executable file, an installation package file, etc. Accordingly, the way in which the computer program instruction is executed by the computer includes but is not limited to: the computer directly executes the instruction, or the computer compiles the instruction and then executes the corresponding compiled program, or the computer reads and executes the instruction, or the computer reads and installs the instruction and then executes the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium that can be accessed by the computer.

[0292] Although the embodiments of the present disclosure are described in conjunction with the accompanying drawings, those skilled in the art may make various modifications and variations without departing from the spirit and scope of the present disclosure, and such modifications and variations should all be included in the scope of protection of the present disclosure.

Claims

1. A data redundancy transmission method, characterized in that: Applied to a sending node, the method includes: Obtaining dynamically determined target coding parameters; the target coding parameters include a target redundancy rate and a target interleaving interval; Determining, according to the target coding parameter, a plurality of original data packets belonging to the same interleaved coding group, and performing interleaved coding processing on the plurality of original data packets to generate corresponding first interleaved redundant packets; sending the plurality of original data packets and the first interleaved redundant packet to a receiving node, and instructing the receiving node to perform data recovery based on the first interleaved redundant packet when the original data packet is lost; The process of determining the target encoding parameters includes: For each preset pending coding parameter, determining the packet loss rate and coding delay corresponding to the pending coding parameter under the current network state; the pending coding parameter includes a pending redundancy rate and a pending interleaving interval; The undetermined coding parameters with a packet loss rate less than a preset packet loss rate threshold and a coding delay less than a preset delay threshold are used as the target coding parameters.

2. The method according to claim 1, characterized in that The process of determining the target encoding parameters further includes: Get current traffic data under the current network status; Constructing a state transition model based on the current traffic data; the state transition model is used to represent the transition probability between various states; The determining of the packet loss rate and encoding delay corresponding to the undetermined encoding parameters under the current network state includes: Determining, based on the state transition model, an abnormal probability that data cannot be recovered when interleaving encoding is performed with the undetermined encoding parameters, and determining, based on the abnormal probability, a packet loss rate corresponding to the undetermined encoding parameters; According to the undetermined redundancy rate and the undetermined interleaving interval in the undetermined coding parameters, a coding delay corresponding to the undetermined coding parameters is determined.

3. The method according to claim 2, characterized in that The state transition model includes a first state of random packet loss, a second state of no packet loss, and a third state of continuous packet loss; The transition probabilities represented by the state transition model include: a first transition probability of transitioning from the second state to the first state, a second transition probability of transitioning from the second state to the third state, and a third transition probability of transitioning from the third state to the second state; The determining, according to the state transition model, an abnormal probability that data cannot be recovered when interleaving coding is performed with the undetermined coding parameters, and determining, according to the abnormal probability, a packet loss rate corresponding to the undetermined coding parameters, includes: Determining a probability of packet loss occurring once; wherein the probability of packet loss occurring once is the sum of the first transition probability and the second transition probability; Determining a first probability that data cannot be recovered in an interleaved coding group due to random packet loss based on the undetermined redundancy rate and the probability of a single packet loss; Determining, based on the undetermined interleaving interval and the third transition probability, a second probability that data cannot be recovered within an interleaving coding group due to continuous packet loss; the sum of the first probability and the second probability being the abnormal probability; Based on the first probability, the second probability, and a preset number of packets whose data cannot be recovered, a packet loss rate corresponding to the undetermined encoding parameter is determined.

4. The method according to claim 3, characterized in that The packet loss rates corresponding to the first probability, the second probability, and the undetermined coding parameters are respectively: α random =1-(1-lhr) n -n×lhr×(1-lhr) n-1 ; a burst =p 23 ×(1-p 32 ) gap ; Loss=E(loss num )×(a random +a burst ); Among them, α random represents the first probability, lhr represents the probability of packet loss, and lhr=p 21 +p 23 , p 21 represents the first transition probability, p 23 represents the second transition probability; n represents the number of packets in an interleaved coding group, and ρ represents the undetermined redundancy rate; α burst represents the second probability, p 32 represents the third transition probability, gap represents the undetermined interleaving interval; Loss represents the packet loss rate corresponding to the undetermined coding parameter, loss num Indicates the number of packets that cannot be recovered, E(loss num ) represents loss num expected value.

5. The method according to claim 2, characterized in that The coding delay corresponding to the undetermined coding parameters is: Wherein, Delay represents the coding delay corresponding to the to-be-determined coding parameter, ρ represents the to-be-determined redundancy rate, gap represents the to-be-determined interleaving interval, and thpt represents the throughput determined according to the current traffic data.

6. The method according to claim 1, characterized in that Also includes: Performing interleaving encoding processing based on the plurality of original data packets to generate at least one second interleaved redundant packet different from the first interleaved redundant packet; The second interleaved redundant packet is linearly independent of the first interleaved redundant packet; buffering each of the second interleaved redundant packets; Obtaining a first message sent by the receiving node indicating that a first data packet is lost; The first data packet is one of the plurality of original data packets that the receiving node cannot recover; A second interleaved redundant packet capable of restoring the first data packet is sent to the receiving node.

7. The method according to claim 6, characterized in that The coding method adopted in the interleaved coding process is XOR coding; The number of the second interleaved redundant packets is not less than 2; the coding coefficients corresponding to the first interleaved redundant packets are different from the coding coefficients corresponding to the second interleaved redundant packets.

8. The method according to claim 7, characterized in that All elements in the coding coefficient corresponding to the first interleaved redundant packet are 1; One of the coding coefficients corresponding to the second interleaved redundant packets is [a1, a2, ..., a m ]; the coding coefficient corresponding to the second interleaved redundant packet is [b1, b2, ..., b m ]; m is the number of original data packets in the interleaved coding group; or, Wherein, i represents the element index in the coding coefficient, i=1, 2,…, m; % represents the remainder operation.

9. The method according to claim 6, characterized in that The first message includes a type field and a sequence number field; the type field of the first message indicates that the first message is a negative acknowledgement type, and the sequence number field of the first message indicates a negative acknowledgement number of the first data packet; The method further comprises: Obtaining a second message sent by the receiving node indicating that a second data packet has been received; the second message includes a type field and a sequence number field; the type field of the second message indicates that the second message is a confirmation type, and the sequence number field of the second message indicates a confirmation number of the second data packet; In a case where the plurality of original data packets have been received by the receiving node, each of the second interleaved redundant packets in the buffer is cleared.

10. A data redundancy transmission method, characterized in that: Applied to a receiving node, the method includes: Acquire multiple original data packets and a first interleaved redundant packet sent by a sending node; the multiple original data packets belong to the same interleaved coding group determined according to target coding parameters, and the first interleaved redundant packet is generated by performing interleaved coding processing on the multiple original data packets; the target coding parameters include a target redundancy rate and a target interleaving interval; In the event that an original data packet is lost, performing data recovery based on the first interleaved redundant packet to recover the lost original data packet; The process of determining the target encoding parameters includes: For each preset pending coding parameter, determining the packet loss rate and coding delay corresponding to the pending coding parameter under the current network state; the pending coding parameter includes a pending redundancy rate and a pending interleaving interval; The undetermined coding parameters with a packet loss rate less than a preset packet loss rate threshold and a coding delay less than a preset delay threshold are used as the target coding parameters.

11. The method according to claim 10, characterized in that Also includes: When there is a first data packet among the plurality of original data packets that cannot be restored based on the first interleaved redundant packet, sending a first message indicating that the first data packet is lost to the sending node; receiving a second interleaved redundant packet returned by the sending node; The second interleaved redundant packet is generated by performing interleaving coding processing on a plurality of the original data packets, and the second interleaved redundant packet is different from the first interleaved redundant packet and is linearly independent; Data recovery is performed based on the second interleaved redundant packet to recover the first data packet.

12. The method according to claim 11, characterized in that The first message includes a type field and a sequence number field; the type field of the first message indicates that the first message is a negative acknowledgement type, and the sequence number field of the first message indicates a negative acknowledgement number of the first data packet; The method further comprises: In the case where the second data packet has been received, a second message indicating that the second data packet has been received is sent to the sending node; the second message includes a type field and a sequence number field; the type field of the second message indicates that the second message is a confirmation type, and the sequence number field of the second message indicates the confirmation number of the second data packet; the second data packet is the original data packet received directly from the sending node, or the original data packet recovered based on the interleaved redundant packet.

13. The method according to claim 12, characterized in that The sending a first message indicating that the first data packet is lost to the sending node includes: separately generating a first message indicating that the first data packet is lost, and sending the message to the sending node; or, If there is a first other data packet that needs to be sent to the sending node within a preset time period, adding a first message indicating that the first data packet is lost to the first other data packet, and sending the first other data packet to the sending node; The sending a second message indicating that the second data packet has been received to the sending node includes: A second message indicating that the second data packet has been received is added to a second other data packet that needs to be sent to the sending node, and the second other data packet is sent to the sending node.

14. A data redundancy transmission device, characterized in that: Applied to a sending node, the device includes: An acquisition module, configured to acquire dynamically determined target coding parameters; the target coding parameters include a target redundancy rate and a target interleaving interval; an interleaving coding module, configured to determine, according to the target coding parameter, a plurality of original data packets belonging to the same interleaving coding group, and perform interleaving coding processing on the plurality of original data packets to generate corresponding first interleaved redundant packets; a sending module, configured to send the plurality of original data packets and the first interleaved redundant packet to a receiving node, and instruct the receiving node to perform data recovery based on the first interleaved redundant packet in the event that the original data packets are lost; The process of determining the target encoding parameters includes: For each preset pending coding parameter, determining the packet loss rate and coding delay corresponding to the pending coding parameter under the current network state; the pending coding parameter includes a pending redundancy rate and a pending interleaving interval; The undetermined coding parameters with a packet loss rate less than a preset packet loss rate threshold and a coding delay less than a preset delay threshold are used as the target coding parameters.

15. A data redundancy transmission device, characterized in that: Applied to a receiving node, the device includes: a receiving module, configured to obtain a plurality of original data packets and a first interleaved redundant packet sent by a sending node; the plurality of original data packets belong to the same interleaved coding group determined according to target coding parameters, and the first interleaved redundant packet is generated by performing interleaved coding processing on the plurality of original data packets; the target coding parameters include a target redundancy rate and a target interleaving interval; a processing module, configured to, in the event that an original data packet is lost, perform data recovery based on the first interleaved redundant packet to recover the lost original data packet; The process of determining the target encoding parameters includes: For each preset pending coding parameter, determining the packet loss rate and coding delay corresponding to the pending coding parameter under the current network state; the pending coding parameter includes a pending redundancy rate and a pending interleaving interval; The undetermined coding parameters with a packet loss rate less than a preset packet loss rate threshold and a coding delay less than a preset delay threshold are used as the target coding parameters.

16. A computer device, characterized in that: include: A memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the data redundancy transmission method according to any one of claims 1 to 13 by executing the computer instructions.

17. A computer-readable storage medium, characterized in that The computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a computer to execute the data redundancy transmission method according to any one of claims 1 to 13.