Data transmission method, device, equipment and product based on network coding
By precoding and recoding data packets in wireless multi-hop networks and adjusting the window step size based on feedback from the receiving end, the problem of low decoding success rate in low-latency transmission is solved, achieving efficient and reliable data transmission.
Patent Information
- Application Number
- CN202510877477.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-27
- Publication Date
- 2025-09-30
- Estimated Expiration
- 2045-06-27
AI Technical Summary
In wireless multi-hop networks, existing technologies have difficulty maintaining a high decoding success rate during low-latency transmission, especially in low packet loss rate scenarios, where unbalanced redundancy allocation leads to high bit error rates.
The original data packet of the target window is pre-encoded to generate a first coded packet set, and then re-encoded at the relay node to generate an innovative data packet set. When the innovative data packet set transmitted to the receiving end reaches a preset threshold, the step size of the target window is adjusted according to the feedback information from the receiving end to optimize the transmission strategy.
It improves the reliability and effectiveness of data transmission, enhances the decoding rate of the receiving end, and dynamically adjusts the transmission strategy to make data packet transmission more efficient and effective, reducing latency and resource consumption.
Smart Images

Figure CN120378060B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of network coding technology, and in particular to data transmission methods, devices, equipment and products based on network coding. Background Art
[0002] A fundamental function of wireless communication networks is data distribution. Source nodes generate the original data to be transmitted, relay nodes route and forward the data, and destination nodes are responsible for receiving and recovering the original data. Data packets may be lost during transmission due to various factors. In wireless multi-hop networks, data packet loss can occur for a variety of reasons. Unlike congestion, data loss caused by these factors cannot be mitigated through rate control. In existing network protocols, when data loss occurs, an automatic retransmission request mechanism is typically used to ensure reliable data transmission. While this approach effectively ensures reliable data transmission, it relies on feedback and incurs significant latency and storage consumption.
[0003] Current research has confirmed that sliding window codes can achieve low-latency data transmission. However, the dynamic changes in link status mean that fixed-step sliding window codes cannot achieve optimal throughput. Especially in low packet loss rate scenarios, the imbalance in redundancy allocation leads to a higher bit error rate than traditional BATS codes with fixed windows.
[0004] Therefore, how to maintain a high decoding success rate during low-latency transmission has become a key technical issue that urgently needs to be solved. Summary of the Invention
[0005] The main purpose of this application is to provide a data transmission method, device, equipment and product based on network coding, aiming to solve the technical problem of how to maintain a high decoding success rate during low-latency transmission.
[0006] To achieve the above objectives, the present application proposes a data transmission method based on network coding, the method comprising:
[0007] Precoding the original data packets of the target window to generate a first set of coded packets, wherein the precoding is used to encode the data to improve the reliability and effectiveness of transmission;
[0008] Transmitting the first coded packet set to a receiving end, performing secondary encoding on the received first coded packet set at a relay node to generate an innovative data packet set, wherein the secondary encoding is used to improve a decoding rate;
[0009] When the number of innovative data packet sets transmitted to the receiving end reaches a preset threshold, the step size of the target window is adjusted according to feedback information from the receiving end, where the feedback information includes a current decoding rate and the innovative data packet sets.
[0010] In one embodiment, the step of pre-encoding the original data packets of the target window to generate the first coded packet set includes:
[0011] defining a preset window length and a preset step length of the target window, wherein the preset window length is used to determine the number of code packets in the first code packet set, and the preset step length is used to determine a sliding distance of the window;
[0012] Selecting the target window according to the preset window length to generate a first coded packet;
[0013] Sliding the target window with the preset step length, and selecting a new target window according to the preset window length;
[0014] Based on the new target window, the first coding packet is repeatedly generated, and the first coding packet set is determined according to the first coding packet.
[0015] In one embodiment, the step of transmitting the first coded packet set to a receiving end and performing secondary encoding on the received first coded packet set at a relay node to generate an innovative data packet set includes:
[0016] Transmitting the first set of coded packets to a receiving end, and obtaining a first coded packet in the first set of coded packets;
[0017] Performing secondary encoding on the received first coded packet set at the relay node to generate a coefficient matrix;
[0018] Determining a decoding rate in advance based on the rank of the coefficient matrix;
[0019] The innovative data packet set is determined through multi-hop transmission, and the innovative data packet set is optimized based on the decoding rate.
[0020] In one embodiment, the step of performing secondary encoding on the received first set of coded packets at the relay node to generate a coefficient matrix includes:
[0021] performing secondary encoding on the received first set of coded packets at the relay node to generate a second set of coded packets;
[0022] A coefficient matrix is generated according to the number of coding packets in the first coding packet set and the number of coding packets in the second coding packet set.
[0023] In one embodiment, the step of generating a coefficient matrix according to the number of coding packets in the first coding packet set and the number of coding packets in the second coding packet set includes:
[0024] Performing a linear combination on the code packets in the first code packet set and the second code packet set, and determining a value of each element of a coefficient matrix according to a result of the linear combination;
[0025] The generation rule of the second coded packet is dynamically adjusted according to the coefficient matrix and information fed back by the receiving end to optimize the decoding rate of the innovative data packet set.
[0026] In one embodiment, the feedback information includes a current decoding rate and the innovative data packet set, and when the number of innovative data packet sets transmitted to the receiving end reaches a preset threshold, the step of adjusting the step size of the target window according to the receiving end feedback information includes:
[0027] Calculating a decoding rate of the innovative data packet in a current window, and comparing the current decoding rate with a preset decoding rate threshold;
[0028] If the current decoding rate does not reach the preset decoding rate threshold, increasing the step size of the target window to increase the number of encoded packets transmitted subsequently;
[0029] If the current decoding rate reaches a preset decoding rate threshold, the step size of the target window is reduced to reduce the number of encoding packets transmitted subsequently, thereby optimizing transmission efficiency.
[0030] In addition, to achieve the above-mentioned purpose, the present application also proposes a data transmission device based on network coding, wherein the data transmission device based on network coding includes:
[0031] A first encoding module, configured to pre-encode the original data packets of the target window to generate a first set of coded packets, wherein the pre-encoding is used to encode the data to improve the reliability and effectiveness of transmission;
[0032] a secondary encoding module, configured to transmit the first set of coded packets to a receiving end, and perform secondary encoding on the received first set of coded packets at a relay node to generate a set of innovative data packets;
[0033] A feedback adjustment module is used to adjust the step size of the target window according to feedback information from the receiving end when the number of innovative data packet sets transmitted to the receiving end reaches a preset threshold, wherein the feedback information includes the current decoding rate and the innovative data packet set.
[0034] In addition, to achieve the above-mentioned purpose, the present application also proposes a data transmission device based on network coding, which includes: a memory, a processor, and a computer program stored on the memory and executable on the processor, wherein the computer program is configured to implement the steps of the data transmission method based on network coding as described above.
[0035] In addition, to achieve the above-mentioned purpose, the present application also proposes a storage medium, which is a computer-readable storage medium, and a computer program is stored on the storage medium. When the computer program is executed by the processor, the steps of the network coding-based data transmission method as described above are implemented.
[0036] In addition, to achieve the above-mentioned purpose, the present application also provides a computer program product, which includes a computer program. When the computer program is executed by a processor, it implements the steps of the data transmission method based on network coding as described above.
[0037] One or more technical solutions proposed in this application have at least the following technical effects:
[0038] The original data packets of the target window are pre-encoded to generate a first set of coded packets. The first set of coded packets is transmitted to the receiving end. The received first set of coded packets is re-encoded at the relay node to generate a set of innovative data packets. When the number of innovative data packet sets transmitted to the receiving end reaches a preset threshold, the step size of the target window is adjusted according to the feedback information from the receiving end. The feedback information includes the current decoding rate and the set of innovative data packets. The original data packets of the target window are pre-encoded. By properly arranging and combining the original data, the reliability and effectiveness of the transmission are improved. At the relay node of the data transmission, the received first set of coded packets is re-encoded to generate a set of innovative data packets. These innovative data packets contain additional information, which improves the decoding rate of the receiving end. When the number of innovative data packets transmitted to the receiving end reaches a preset threshold, the step size of the target window is adjusted according to the feedback information from the receiving end. By dynamically adjusting the transmission strategy, the transmission of subsequent data packets is made more efficient and effective. BRIEF DESCRIPTION OF THE DRAWINGS
[0039] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present application and, together with the description, serve to explain the principles of the present application.
[0040] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0041] Figure 1 This is a flowchart of the first embodiment of the data transmission method based on network coding of the present application;
[0042] Figure 2 This is a flowchart of a second embodiment of the network coding-based data transmission method of the present application;
[0043] Figure 3 This is a flowchart of the third embodiment of the data transmission method based on network coding of the present application;
[0044] Figure 4 This is a schematic diagram of the BATS code flow for non-overlapping windows according to an embodiment of the present application;
[0045] Figure 5 This is a flowchart of a fourth embodiment of the data transmission method based on network coding of the present application;
[0046] Figure 6 This is a schematic diagram of the sliding window mechanism of an embodiment of the present application;
[0047] Figure 7 This is a schematic diagram comparing bit error rates of different sliding window strategies according to an embodiment of the present application;
[0048] Figure 8 This is a schematic diagram of the module structure of a data transmission device based on network coding according to an embodiment of the present application;
[0049] Figure 9 Schematic diagram of the device structure of the hardware operating environment involved in the data transmission method based on network coding in the embodiment of the present application.
[0050] The purpose, features and advantages of this application will be further explained in conjunction with the embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION
[0051] It should be understood that the specific embodiments described herein are merely used to explain the technical solutions of the present application and are not intended to limit the present application.
[0052] In order to better understand the technical solution of the present application, a detailed description will be given below in conjunction with the accompanying drawings and specific implementation methods.
[0053] A fundamental function of wireless communication networks is data distribution. Source nodes generate the original data to be transmitted, relay nodes route and forward the data, and destination nodes are responsible for receiving and recovering the original data. Data packets may be lost during transmission due to various factors. In wireless multi-hop networks, packet loss can occur for a variety of reasons. Unlike congestion, data loss caused by these factors cannot be mitigated by rate control. Existing network protocols typically employ an automatic retransmission request mechanism to ensure reliable data transmission when data loss occurs. While this approach effectively ensures reliable data transmission, it relies on feedback and incurs significant latency and storage consumption. Consequently, a series of erasure codes, such as fountain codes, random linear network coding, and batch sparse codes (BATS codes), have been developed to achieve low-latency transmission over feedback-free links. Sliding window batch sparse network coding (BATS) codes, which primarily implement adaptive step-size sliding window codes based on link feedback, have been shown in current research to achieve low-latency data transmission. However, the dynamic changes in link state mean that fixed-step sliding window codes cannot achieve optimal throughput. This is especially true in low packet loss scenarios, where imbalanced redundancy allocation leads to higher bit error rates than traditional fixed-window BATS codes. Therefore, adaptively adjusting the sliding window step size through link feedback to achieve higher throughput and transmission efficiency becomes increasingly important. In recent years, researchers have applied sliding window codes to BATS codes to achieve lower completion latency. However, sliding window codes essentially shorten the code length of BATS codes, resulting in performance degradation. Therefore, maintaining a high decoding success rate during low-latency transmission has become a key technical challenge that urgently needs to be addressed.
[0054] The present application provides a solution, which pre-encodes the original data packets of the target window, generates a first set of coded packets, transmits the first set of coded packets to the receiving end, performs secondary encoding on the received first set of coded packets at the relay node, generates an innovative data packet set, and when the number of innovative data packet sets transmitted to the receiving end reaches a preset threshold, adjusts the step size of the target window according to the feedback information of the receiving end, and the feedback information includes the current decoding rate and the innovative data packet set. The original data packets of the target window are pre-encoded, and the reliability and effectiveness of the transmission are improved by properly arranging and combining the original data. At the relay node of the data transmission, the received first set of coded packets is secondary encoded to generate an innovative data packet set. These innovative data packets contain additional information, which improves the decoding rate of the receiving end. When the number of innovative data packets transmitted to the receiving end reaches a preset threshold, the step size of the target window is adjusted according to the feedback information of the receiving end. By dynamically adjusting the transmission strategy, the transmission of subsequent data packets is made more efficient and effective.
[0055] Based on this, the embodiment of the present application provides a data transmission method based on network coding, referring to Figure 1 , Figure 1 This is a flowchart of the first embodiment of the data transmission method based on network coding of the present application.
[0056] In this embodiment, the data transmission method based on network coding includes steps S10 to S30:
[0057] Step S10: pre-encode the original data packets of the target window to generate a first coded packet set.
[0058] It should be noted that the target window can be the data block that the sender is concerned about during the data transmission process. In this window, the sender will select specific data packets for transmission or processing. The original data packet can be a data packet directly generated from the sender and not encoded or processed. Precoding can be the encoding processing performed on the original data packet before data transmission, which is used to encode the data to improve the reliability and effectiveness of the transmission. The first coded packet set can be a set of data packets after precoding processing, which can be understood as a batch (Batch), each batch consisting of multiple encoded data packets, ready for transmission. For example, the sender will window Extracted from the degree distribution Data packets Pre-coding is performed Coded packages , as a Batch.
[0059] Step S20: transmitting the first coded packet set to the receiving end, performing secondary encoding on the received first coded packet set at the relay node to generate an innovative data packet set.
[0060] It should be noted that the relay node refers to an intermediate node between the sending end and the receiving end, which can receive, process and forward data packets. Secondary encoding can be a re-encoding process performed on the first coded packet set received at the relay node to improve the decoding rate. The innovative data packet set can be understood as a new coded packet set generated after secondary encoding, which is different from the first coded packet set and contains data packets generated by a new encoding method. For example, in the first window, w The input data packets are encoded, and each batch is generated at the source node according to the outer code encoding process. The batches are then sent to the intermediate nodes in sequence. At the intermediate nodes, the encoded packets in each batch are subjected to random linear network coding according to the inner code encoding process, and then the batches are sent to the receiving end in sequence.
[0061] Step S30: When the number of innovative data packet sets transmitted to the receiving end reaches a preset threshold, the step size of the target window is adjusted according to feedback information from the receiving end, where the feedback information includes the current decoding rate and the innovative data packet sets.
[0062] It should be noted that the preset threshold can be a pre-set value or condition. When this threshold is reached or met, the step size of the target window is adjusted according to the feedback information from the receiving end. The feedback information includes the current decoding rate and the innovative data packet set. The decoding rate is the ratio or success rate of the receiving end successfully decoding the valid data, which is an important indicator for measuring the data transmission effect. The step size of the target window can be understood as the distance the window moves or expands each time the target window is adjusted. The step size can affect the selection and transmission strategy of the data packet. For example, when the window send N After the batch is generated, the sender will generate a batch based on the current decoding rate and the number of innovation packets. To adjust the step size of the window movement.
[0063] In this embodiment, the original data packets in the target window are pre-encoded. By appropriately arranging and combining the original data, the reliability and effectiveness of transmission are improved. At the data transmission relay node, the received first set of coded packets is re-encoded to generate a set of innovative data packets. These innovative data packets contain additional information, which improves the decoding rate at the receiving end. When the number of innovative data packets transmitted to the receiving end reaches a preset threshold, the step size of the target window is adjusted based on the feedback information from the receiving end. By adjusting the step size, the transmission order and number of data packets can be dynamically optimized, thereby improving transmission efficiency and decoding success rate.
[0064] Reference Figure 2 , Figure 2 This is a flow chart of the second embodiment of the data transmission method based on network coding of this application. Figure 1 The first embodiment shown here proposes a second embodiment of the data transmission method based on network coding of the present application.
[0065] In the second embodiment, step S10 includes:
[0066] Step S101 : defining a preset window length and a preset step length of a target window.
[0067] It should be noted that the preset window length can be the length of a data segment selected within the target window, which is used to determine the number of code packets in the first code packet set. The preset step size is used to determine the sliding distance of the window. For example, a preset window length of 4 indicates that each target window will contain 4 consecutive data packets. A preset step size of 2 indicates that each time the target window is slid, the window moves by a distance of 2 data packets.
[0068] Step S102: Select a target window according to a preset window length to generate a first coded packet.
[0069] For example, the sequence of packets in a data stream may be: A, B, C, D, E, F, G, H, I. Based on a preset window length (4 packets), packets A, B, C, and D are selected to form the first target window. Packets A, B, C, and D may be precoded to generate a first coded packet P1.
[0070] Step S103: Slide the target window with a preset step length, and select a new target window according to the preset window length.
[0071] Exemplarily, according to a preset step size (the distance of 2 data packets), the target window slides from A, B, C, D to C, D, E, F. It is understandable that the new target window includes data packets C, D, E, F.
[0072] Step S104: Repeatedly generate the first coded packet based on the new target window, and determine the first coded packet set according to the first coded packet.
[0073] For example, data packets C, D, E, and F can be precoded to generate the second first coded packet P2. The target window slides by two more data packets, becoming E, F, G, and H, according to the preset step size. Data packets E, F, G, and H are precoded to generate the third first coded packet P3. The final set of first coded packets consists of P1 (A, B, C, and D), P2 (C, D, E, and F), and P3 (E, F, G, and H).
[0074] This embodiment defines a preset window length and a preset step size for the target window, enabling the receiving end to more efficiently process the received set of coded packets. A reasonable window length ensures that each coded packet carries sufficient information, enabling rapid decoding by the receiving end. By encoding the original data packets into the first set of coded packets, data redundancy is increased. Even if some data packets are lost or damaged during transmission, the receiving end still has a high probability of successfully decoding and recovering the original data.
[0075] Reference Figure 3 , Figure 3 This is a flow chart of the third embodiment of the data transmission method based on network coding of this application. Figure 2 The second embodiment shown here proposes a third embodiment of the data transmission method based on network coding of the present application.
[0076] In the third embodiment, step S20 includes:
[0077] Step S201: transmit a first coded packet set to a receiving end, and obtain a first coded packet in the first coded packet set.
[0078] It should be noted that the first coded packet set may be a set of data packets that have undergone pre-coding processing, which can be understood as a batch. Each batch consists of multiple coded data packets and is ready for transmission.
[0079] Step S202: performing secondary encoding on the received first set of coded packets at the relay node to generate a coefficient matrix.
[0080] It should be noted that the coefficient matrix is a matrix generated by the relay node based on the received first coded packet set, which contains the linear combination coefficients used in the encoding process. For example, the relay node performs secondary encoding on the received first coded packet set P1. The coefficient matrix is generated according to the secondary encoding process, for example, the matrix M .
[0081] Step S203: Determine the decoding rate in advance based on the rank of the coefficient matrix.
[0082] It should be noted that the rank of the coefficient matrix r An estimate of the information redundancy of a set of coded packets can be provided. For example, assuming that the coefficient matrix generated is M The rank of r , according to the coefficient matrix M Rank r , estimate the probability of successful decoding at the receiving end in advance.
[0083] Step S204 : determining an innovative data packet set through multi-hop transmission, and optimizing the innovative data packet set based on the decoding rate.
[0084] It should be noted that the relay node generates a set of innovative data packets through multi-hop transmission. These coded packets can further enhance the success rate of decoding. Based on the predetermined decoding rate, the relay node can optimize the selection and transmission method of the innovative data packets. Multi-hop transmission can be understood as different first coded packets generated by different data packets. For example, Figure 4 As shown, m1 can be used as a batch to generate multiple m1s. After packet loss, multiple innovative data packets are generated after secondary encoding and multiple transmissions. After multi-hop transmission, the receiving end receives a set of innovative data packets, which includes Innovation data packages, including .
[0085] In this embodiment, the first coding packet set is transmitted to the receiving end, and the first coding packet in the first coding packet set is obtained, which ensures the transmission of the first coding packet set to the receiving end, wherein the first coding packet is the starting point for decoding at the receiving end. Even if data packet loss or damage occurs during the transmission process, the receiving end can still use the first coding packet to start the decoding process. Secondary coding and decoding rate determination based on the coefficient matrix help the relay node and the receiving end to further optimize the decoding process based on the received coding packets. By generating a coefficient matrix and analyzing its rank, the possibility of successful decoding at the receiving end can be evaluated in advance, thereby adjusting the subsequent decoding strategy and improving the success rate of decoding. Multi-hop transmission and innovative data packet set optimization allow dynamic adjustment of the selection and transmission method of coding packets during the transmission process, which can minimize transmission delay and resource consumption while ensuring data transmission quality.
[0086] In one embodiment, based on the above-mentioned third embodiment, step S202 includes: performing secondary encoding on the received first coding packet set at the relay node to generate a second coding packet set; and generating a coefficient matrix according to the number of coding packets in the first coding packet set and the number of coding packets in the second coding packet set.
[0087] It should be noted that the second set of code packets may be a new set of code packets generated after the secondary encoding operation is performed at the relay node. It is understandable that some code packets may be lost during the secondary encoding, so the number of code packets in the second set of code packets will be smaller than the number of code packets in the first set of code packets. The coefficient matrix is generated based on the number of code packets in the first set of code packets and the number of code packets in the second set of code packets. For example, the transmitting end sets the window Extracted from the degree distribution Data packets Pre-coding is performed Coded packages , as a Batch. At the relay node, the received The code packets are encoded twice, where t is the number of coded packets lost in single-hop transmission, the obtained coefficient matrix can be expressed as , is the coefficient matrix, size is It should be noted that the multi-hop transmission determines the innovative data packet set represented by the coefficient matrix , The calculation formula is as follows:
[0088]
[0089] In the above formula, express The packages are arranged in parallel. is the coefficient matrix, size is .
[0090] In this implementation, by re-encoding the first set of coded packets at the relay node to generate a second set of coded packets, even if some packets are lost during transmission, the receiving end can still recover the original data through decoding, thereby improving data transmission reliability. Based on the generated coefficient matrix, the relay node can dynamically adjust the rules for generating the second set of coded packets based on real-time network conditions and feedback information. This optimization effectively utilizes network bandwidth and resources, improves data transmission efficiency, and minimizes transmission delays and resource consumption.
[0091] In one embodiment, based on the above-mentioned third embodiment, the step of generating a coefficient matrix based on the number of coding packets in the first coding packet set and the number of coding packets in the second coding packet set includes: linearly combining the coding packets in the first coding packet set and the second coding packet set, and determining the values of each element of the coefficient matrix based on the linear combination result; dynamically adjusting the generation rule of the second coding packet based on the coefficient matrix and the information fed back by the receiving end to optimize the decoding rate of the innovative data packet set.
[0092] It should be noted that the operation performed at the relay node is to perform weighted addition of the code packets in the first code packet set and the second code packet set to generate a new code packet. Based on the coefficient matrix and the feedback information from the receiving end, the generation rule of the second code packet is dynamically adjusted, and the weight of the linear combination can be adjusted or additional redundant code packets can be added. For example, the receiving end receives innovative data packages, The current decoding rate is fed back to the sending end, and the generation rule of the second coded packet is dynamically adjusted according to the feedback information.
[0093] In this implementation, through linear combinations and coefficient matrix generation, the system can dynamically adjust the encoding strategy during transmission to improve data transmission reliability and efficiency. In complex network environments with network noise, latency, or packet loss, this optimization strategy can significantly improve overall system performance and user experience.
[0094] Reference Figure 5 , Figure 5 This is a flow chart of the fourth embodiment of the data transmission method based on network coding of this application, based on the above Figure 3 The third embodiment shown provides the fourth embodiment of the data transmission method based on network coding of the present application.
[0095] In the fourth embodiment, step S30 includes:
[0096] Step S301 : Calculate the decoding rate of the innovative data packets in the current window, and compare the current decoding rate with a preset decoding rate threshold.
[0097] It should be noted that the current decoding rate is the ratio of successful decoding of innovative data packets in the current window, and the preset decoding rate threshold is the threshold of the target decoding rate set in advance. It can be understood that if the current decoding rate reaches the preset decoding rate threshold, it means that the receiving end can effectively decode the data.
[0098] Step S302: If the current decoding rate does not reach the preset decoding rate threshold, the step size of the target window is increased to increase the number of encoding packets to be transmitted subsequently.
[0099] Exemplarily, in the target window, the current decoding rate is lower than the preset decoding rate threshold (assuming the preset decoding rate threshold is 85%). For example, if the current decoding rate is only 80%, the step size of the target window can be increased, for example, from 10 data packets to 15 data packets.
[0100] Step S303: If the current decoding rate reaches a preset decoding rate threshold, the step size of the target window is reduced to reduce the number of encoding packets to be transmitted subsequently, thereby optimizing transmission efficiency.
[0101] Exemplarily, in the target window, the current decoding rate is higher than the preset decoding rate threshold (assuming the preset decoding rate threshold is 85%). For example, if the current decoding rate is only 80%, the step size of the target window can be reduced, for example, from 15 data packets to 10 data packets.
[0102] In order to better illustrate the above steps, Figure 6 , for example, the adaptive sliding window BATS code window size is w , the window starts from the beginning of the input data packet and increases in steps of s Slide down until the end of the data, there is overlap between windows, and the overlap width can be ws The step size can be adjusted according to the actual situation, and the sliding window can be adjusted according to the updated step size.
[0103] In this embodiment, by calculating the decoding rate of innovative data packets in the current window and comparing the current decoding rate with a preset decoding rate threshold, the system can quickly determine whether the transmission has achieved the expected reliability level. If the current decoding rate does not reach the preset decoding rate threshold, increasing the step size of the target window can increase the number of encoded packets transmitted subsequently, helping to enhance the redundancy and reliability of data transmission and increase the chance of successful decoding at the receiving end. If the current decoding rate reaches the preset decoding rate threshold, reducing the step size of the target window can save network bandwidth and resources, avoid unnecessary redundant transmissions, and maintain a sufficient decoding rate, ensuring efficient and economical data transmission.
[0104] In order to verify the feasibility of the data transmission method based on network coding in this application, a comparative experiment is set up to verify the block error rate of different sliding window strategies. The block error rate of fixed window (Fixed Window), sliding window (Sliding Window), and adaptive sliding window (Adaptive Sliding Window) are compared. This application adopts adaptive sliding window. The results are as follows Figure 7 As shown in the figure, it can be seen that as the packet loss rate (Loss) increases, the block error rate (BLER) of the adaptive sliding window is minimized. It is understandable that as the window moves, the packet loss rate inevitably increases, but it can still be seen that the packet loss rate of the proposed method is lower than that of the other two methods.
[0105] It should be noted that the above examples are only used to understand the present application and do not constitute a limitation on the data transmission method based on network coding of the present application. More simple transformations based on this technical concept are all within the scope of protection of the present application.
[0106] This application also provides a data transmission device based on network coding, please refer to Figure 8 , the data transmission device based on network coding includes:
[0107] A first encoding module 10 is configured to pre-encode the original data packets of the target window to generate a first set of coded packets, wherein the pre-encoding is used to encode the data to improve the reliability and effectiveness of transmission;
[0108] A secondary encoding module 20 is configured to transmit the first set of coded packets to a receiving end, and perform secondary encoding on the received first set of coded packets at a relay node to generate a set of innovative data packets;
[0109] The feedback adjustment module 30 is configured to adjust the step size of the target window according to feedback information from the receiving end when the number of innovative data packet sets transmitted to the receiving end reaches a preset threshold, wherein the feedback information includes the current decoding rate and the innovative data packet sets.
[0110] The network coding-based data transmission device provided in this application, which employs the network coding-based data transmission method of the aforementioned embodiment, can solve the technical problem of maintaining a high decoding success rate during low-latency transmission. Compared to the prior art, the network coding-based data transmission device provided in this application has the same beneficial effects as the network coding-based data transmission method provided in the aforementioned embodiment. Other technical features of the network coding-based data transmission device are the same as those disclosed in the aforementioned embodiment and are not further described here.
[0111] The present application provides a data transmission device based on network coding, which includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the data transmission method based on network coding in the above-mentioned embodiment 1.
[0112] Reference below Figure 9 , which shows a schematic diagram of the structure of a network coding-based data transmission device suitable for implementing the embodiments of the present application. The network coding-based data transmission device in the embodiments of the present application may include, but is not limited to, mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (Personal Digital Assistants), PADs (Portable Application Descriptions), PMPs (Portable Media Players), in-vehicle terminals (such as in-vehicle navigation terminals), and fixed terminals such as digital TVs and desktop computers. Figure 9 The network coding-based data transmission device shown is merely an example and should not impose any limitations on the functions and scope of use of the embodiments of the present application.
[0113] like Figure 9 As shown, a network coding-based data transmission device may include a processing device 1001 (e.g., a central processing unit, a graphics processing unit, etc.), which can perform various appropriate actions and processes based on programs stored in a read-only memory (ROM) 1002 or programs loaded from a storage device 1003 into a random access memory (RAM) 1004. RAM 1004 also stores various programs and data required for the operation of the network coding-based data transmission device. Processing device 1001, ROM 1002, and RAM 1004 are interconnected via a bus 1005. An input / output (I / O) interface 1006 is also connected to the bus. Typically, the following systems may be connected to I / O interface 1006: input devices 1007, such as a touchscreen, touchpad, keyboard, mouse, image sensor, microphone, accelerometer, gyroscope, etc.; output devices 1008, such as a liquid crystal display (LCD), speaker, vibrator, etc.; storage device 1003, such as a magnetic tape or hard disk; and communication device 1009. The communication device 1009 can allow the data transmission device based on network coding to communicate with other devices wirelessly or by wire to exchange data. Figure 9 1 shows a data transmission device based on network coding with various systems, but it should be understood that it is not required to implement or have all the systems shown. More or fewer systems may be implemented or have instead.
[0114] In particular, according to the embodiments disclosed in the present application, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, the embodiments disclosed in the present application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program comprising program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network via a communication device, or installed from a storage device 1003, or installed from a ROM 1002. When the computer program is executed by the processing device 1001, the above-mentioned functions defined in the method of the embodiment disclosed in the present application are executed.
[0115] The network coding-based data transmission device provided in this application, employing the network coding-based data transmission method of the aforementioned embodiment, can solve the technical problem of maintaining a high decoding success rate during low-latency transmission. Compared to the prior art, the beneficial effects of the network coding-based data transmission device provided in this application are the same as those of the network coding-based data transmission method provided in the aforementioned embodiment. Other technical features of this network coding-based data transmission device are the same as those disclosed in the aforementioned embodiment and are not further elaborated here.
[0116] It should be understood that the various parts disclosed in this application can be implemented using hardware, software, firmware, or a combination thereof. In the description of the above embodiments, specific features, structures, materials, or characteristics can be combined in any one or more embodiments or examples in a suitable manner.
[0117] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
[0118] The present application provides a computer-readable storage medium having computer-readable program instructions (ie, a computer program) stored thereon, wherein the computer-readable program instructions are used to execute the network coding-based data transmission method in the above-mentioned embodiment.
[0119] The computer-readable storage medium provided herein may be, for example, a USB flash drive, but is not limited to electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, systems, or devices, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to, an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In this embodiment, the computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, system, or device. The program code contained on the computer-readable storage medium may be transmitted using any suitable medium, including, but not limited to, wires, optical cables, RF (Radio Frequency), etc., or any suitable combination thereof.
[0120] The computer-readable storage medium may be included in the data transmission device based on network coding, or may exist independently without being assembled into the data transmission device based on network coding.
[0121] The above-mentioned computer-readable storage medium carries one or more programs. When the above-mentioned one or more programs are executed by a data transmission device based on network coding, the data transmission device based on network coding enables: pre-encoding the original data packet of the target window to generate a first coding packet set, and the pre-coding is used to encode the data to improve the reliability and effectiveness of the transmission; transmitting the first coding packet set to the receiving end, and performing secondary encoding on the received first coding packet set at the relay node to generate an innovative data packet set, and the secondary encoding is used to improve the decoding rate; when the number of innovative data packet sets transmitted to the receiving end reaches a preset threshold, adjusting the step size of the target window according to the feedback information of the receiving end, and the feedback information includes the current decoding rate and the innovative data packet set.
[0122] Computer program code for performing the operations of the present application may be written in one or more programming languages, or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0123] The flow charts and block diagrams in the accompanying drawings illustrate the possible architecture, functions and operations of the systems, methods and computer program products according to various embodiments of the present application. In this regard, each box in the flow chart or block diagram can represent a module, program segment or a part of code, and the module, program segment or a part of code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order than that marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a dedicated hardware-based system that performs the specified function or operation, or can be implemented by a combination of dedicated hardware and computer instructions.
[0124] The modules described in the embodiments of the present application may be implemented in software or hardware, wherein the name of a module does not necessarily limit the unit itself.
[0125] The computer-readable storage medium provided in this application stores computer-readable program instructions (i.e., a computer program) for executing the aforementioned network coding-based data transmission method. This computer-readable storage medium addresses the technical problem of maintaining a high decoding success rate during low-latency transmission. Compared to the prior art, the beneficial effects of the computer-readable storage medium provided in this application are similar to those of the network coding-based data transmission method provided in the aforementioned embodiments, and are not further elaborated here.
[0126] The present application also provides a computer program product, comprising a computer program, which implements the steps of the above-mentioned network coding-based data transmission method when executed by a processor.
[0127] The computer program product provided in this application can solve the technical problem of maintaining a high decoding success rate during low-latency transmission. Compared with the prior art, the beneficial effects of the computer program product provided in this application are the same as those of the network coding-based data transmission method provided in the above embodiment, and will not be elaborated here.
[0128] The above description is only part of the embodiments of the present application and does not limit the patent scope of the present application. All equivalent structural transformations made by using the contents of the present application specification and drawings under the technical concept of the present application, or direct / indirect application in other related technical fields are included in the patent protection scope of the present application.
Claims
1. A data transmission method based on network coding, characterized in that: The method includes: Precoding the original data packets of the target window to generate a first set of coded packets, wherein the precoding is used to encode the data to improve the reliability and effectiveness of transmission; Transmitting the first coded packet set to a receiving end, performing secondary encoding on the received first coded packet set at a relay node to generate an innovative data packet set, wherein the secondary encoding is used to improve a decoding rate; When the number of innovative data packet sets transmitted to the receiving end reaches a preset threshold, adjusting the step size of the target window according to feedback information from the receiving end, the feedback information including the current decoding rate and the innovative data packet sets; The step of transmitting the first coded packet set to a receiving end, and performing secondary encoding on the received first coded packet set at a relay node to generate an innovative data packet set includes: Transmitting the first set of coded packets to a receiving end, and obtaining a first coded packet in the first set of coded packets; performing secondary encoding on the received first set of coded packets at the relay node to generate a second set of coded packets; Performing a linear combination on the code packets in the first code packet set and the second code packet set, and determining a value of each element of a coefficient matrix according to a result of the linear combination; Dynamically adjusting a generation rule of the second coded packet according to the coefficient matrix and information fed back by the receiving end to optimize a decoding rate of the innovative data packet set; Determining a decoding rate in advance based on the rank of the coefficient matrix; The innovative data packet set is determined through multi-hop transmission, and the innovative data packet set is optimized based on the decoding rate.
2. The method according to claim 1, wherein The step of pre-encoding the original data packets of the target window to generate a first coded packet set includes: defining a preset window length and a preset step length of the target window, wherein the preset window length is used to determine the number of code packets in the first code packet set, and the preset step length is used to determine a sliding distance of the window; Selecting the target window according to the preset window length to generate a first coded packet; Sliding the target window with the preset step length, and selecting a new target window according to the preset window length; Based on the new target window, the first coding packet is repeatedly generated, and the first coding packet set is determined according to the first coding packet.
3. The method according to any one of claims 1 to 2, characterized in that The feedback information includes a current decoding rate and the innovative data packet set. When the number of innovative data packet sets transmitted to the receiving end reaches a preset threshold, the step of adjusting the step size of the target window according to the feedback information from the receiving end includes: Calculating a decoding rate of the innovative data packet in a current window, and comparing the current decoding rate with a preset decoding rate threshold; If the current decoding rate does not reach the preset decoding rate threshold, increasing the step size of the target window to increase the number of encoded packets transmitted subsequently; If the current decoding rate reaches a preset decoding rate threshold, the step size of the target window is reduced to reduce the number of encoding packets transmitted subsequently, thereby optimizing transmission efficiency.
4. A data transmission device based on network coding, characterized in that: The device comprises: A first encoding module, configured to pre-encode the original data packets of the target window to generate a first set of coded packets, wherein the pre-encoding is used to encode the data to improve the reliability and effectiveness of transmission; a secondary encoding module, configured to transmit the first set of coded packets to a receiving end, and perform secondary encoding on the received first set of coded packets at a relay node to generate a set of innovative data packets; a feedback adjustment module, configured to adjust the step size of the target window according to feedback information from the receiving end when the number of innovative data packet sets transmitted to the receiving end reaches a preset threshold, the feedback information including the current decoding rate and the innovative data packet sets; The secondary encoding module is further configured to transmit the first set of coded packets to a receiving end, obtain a first coded packet in the first set of coded packets, perform secondary encoding on the received first set of coded packets at a relay node to generate a second set of coded packets, perform linear combination on the coded packets in the first set of coded packets and the second set of coded packets, and determine the value of each element of a coefficient matrix based on the linear combination result; The secondary encoding module is also used to dynamically adjust the generation rules of the second coding packet according to the coefficient matrix and the information fed back by the receiving end to optimize the decoding rate of the innovative data packet set; determine the decoding rate in advance based on the rank of the coefficient matrix; determine the innovative data packet set through multi-hop transmission, and optimize the innovative data packet set based on the decoding rate.
5. A data transmission device based on network coding, characterized in that: The device comprises: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program is configured to implement the steps of the network coding-based data transmission method according to any one of claims 1 to 3.
6. A storage medium, characterized in that The storage medium is a computer-readable storage medium, and a computer program is stored on the storage medium. When the computer program is executed by a processor, the steps of the network coding-based data transmission method according to any one of claims 1 to 3 are implemented.
7. A computer program product, characterized in that The computer program product comprises a computer program, and when the computer program is executed by a processor, the steps of the data transmission method based on network coding according to any one of claims 1 to 3 are implemented.