Data transmission method, device, equipment and product based on network coding
By precoding and quadratic encoding of data packets in wireless multi-hop networks, and adjusting the step size of the target window according to the feedback information of the receiver, the problem of low decoding success rate in low-latency transmission is solved, and more efficient data transmission is achieved.
Patent Information
- Application Number
- CN202510877477.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-27
- Publication Date
- 2025-07-25
- Estimated Expiration
- 2045-06-27
AI Technical Summary
In wireless multi-hop networks, it is difficult for the prior art to maintain a high decoding success rate during low delay transmission, especially in the low packet loss scenario, the sliding window code with a fixed step size leads to the problem of high bit error rate.
The original data packets of the target window are precoded, a first coded package set is generated, and a secondary encoding is performed 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 of the receiving end.
It improves the reliability and effectiveness of data transmission, enhances the decoding rate of the receiver, and dynamically adjusts the transmission strategy, the subsequent data packet transmission is more efficient and effective.
Smart Images

Figure CN120378060A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of network coding technology, and particularly to a data transmission method, apparatus, device and product based on network coding. Background Art
[0002] A basic function of a wireless communication network is to perform data distribution. The source node generates the original data to be sent, the relay node routes and forwards the data, and the destination node is responsible for receiving and restoring the original data. Packets may be lost during the transmission process due to various factors. In a wireless multi-hop network, packet loss may be caused by multiple reasons. Different from congestion, the data loss caused by these factors cannot be improved by rate control. In existing network protocols, when data is lost, an automatic repeat request mechanism is usually adopted to ensure reliable data transmission. Although this method can better ensure reliable data transmission, it depends on feedback at the same time and will generate a large delay and storage consumption.
[0003] Current research has confirmed that the sliding window code can achieve low-delay data transmission, but the dynamic change of the link state causes the sliding window code with a fixed step size not to achieve the optimal throughput. Especially in the low packet loss rate scenario, due to the unbalanced redundancy allocation, the bit error rate is higher than that of the traditional BATS code with a fixed window.
[0004] Therefore, how to maintain a high decoding success rate during low-delay transmission has become a key technical problem to be solved urgently at present. Summary of the Invention
[0005] The main purpose of this application is to provide a data transmission method, apparatus, device and product based on network coding, aiming to solve the technical problem of how to maintain a high decoding success rate during low-delay transmission.
[0006] To achieve the above object, this application proposes a data transmission method based on network coding, and the method includes: Pre-encode the original data packets in the target window to generate a first set of encoded packets, and the pre-encoding is used to encode the data to improve the reliability and effectiveness of transmission; Transmit the first set of encoded packets to the receiving end, and perform secondary encoding on the received first set of encoded packets at the relay node to generate a set of innovative data packets, and the secondary encoding is used to improve the decoding rate; When the number of the set of innovative data packets transmitted to the receiving end reaches a preset threshold, adjust the step size of the target window according to the feedback information from the receiving end, and the feedback information includes the current decoding rate and the set of innovative data packets.
[0007] In one embodiment, the step of pre - coding the original data packets of the target window to generate the first set of coded packets includes: Define a preset window length and a preset step size for the target window. The preset window length is used to determine the number of coded packets in the first set of coded packets, and the preset step size is used to determine the sliding distance of the window; Select the target window according to the preset window length to generate a first coded packet; Slide the target window with the preset step size, and select a new target window according to the preset window length; Based on the new target window, repeat generating the first coded packet, and determine the first set of coded packets according to the first coded packet.
[0008] In one embodiment, the step of transmitting the first set of coded packets to the receiving end and performing secondary coding on the received first set of coded packets at the relay node to generate a set of innovative data packets includes: Transmit the first set of coded packets to the receiving end, and obtain the first coded packets in the first set of coded packets; Perform secondary coding on the received first set of coded packets at the relay node to generate a coefficient matrix; Based on the rank of the coefficient matrix, determine the decoding rate in advance; Determine the set of innovative data packets through multi - hop transmission, and optimize the set of innovative data packets based on the decoding rate.
[0009] In one embodiment, the step of performing secondary coding on the received first set of coded packets at the relay node to generate a coefficient matrix includes: Perform secondary coding on the received first set of coded packets at the relay node to generate a second set of coded packets; Generate a coefficient matrix according to the number of coded packets in the first set of coded packets and the number of coded packets in the second set of coded packets.
[0010] In one embodiment, the step of generating a coefficient matrix according to the number of coded packets in the first set of coded packets and the number of coded packets in the second set of coded packets includes: Perform a linear combination on the coded packets in the first set of coded packets and the second set of coded packets, and determine the element values of the coefficient matrix according to the linear combination result; Dynamically adjust the generation rule of the second coded packet according to the coefficient matrix and the information fed back by the receiving end to optimize the decoding rate of the set of innovative data packets.
[0011] In one embodiment, the feedback information includes the current decoding rate and the set of innovative data packets. When the number of innovative data packets in the set 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 of the receiving end includes: 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; If the current decoding rate does not reach the preset decoding rate threshold, increase the step size of the target window to increase the number of encoded packets transmitted subsequently; If the current decoding rate reaches the preset decoding rate threshold, decrease the step size of the target window to reduce the number of encoded packets transmitted subsequently, thereby optimizing the transmission efficiency.
[0012] In addition, to achieve the above object, the present application also proposes a data transmission device based on network coding. The data transmission device based on network coding includes: A first encoding module, configured to pre-encode the original data packets in the target window to generate a set of first encoded packets. 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 set of first encoded packets to the receiving end, and perform secondary encoding on the received set of first encoded packets at the 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 the feedback information of the receiving end when the number of innovative data packets in the set transmitted to the receiving end reaches a preset threshold. The feedback information includes the current decoding rate and the set of innovative data packets.
[0013] In addition, to achieve the above object, the present application also proposes a data transmission device based on network coding. The device includes: a memory, a processor, and a computer program stored on the memory and executable on the processor. The computer program is configured to implement the steps of the data transmission method based on network coding as described above.
[0014] In addition, to achieve the above object, the present application also proposes a storage medium. 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, it implements the steps of the data transmission method based on network coding as described above.
[0015] In addition, to achieve the above object, the present application also provides a computer program product. The computer program product 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.
[0016] One or more technical solutions proposed in this application have at least the following technical effects: Pre - encode the original data packets of the target window to generate a first set of encoded packets, and transmit the first set of encoded packets to the receiving end. At the relay node, perform secondary encoding on the received first set of encoded packets to generate a set of innovative packets. When the number of the set of innovative packets transmitted to the receiving end reaches a preset threshold, adjust the step size of the target window according to the feedback information from the receiving end. The feedback information includes the current decoding rate and the set of innovative packets. By pre - encoding the original data packets of the target window and appropriately arranging and combining the original data, the reliability and effectiveness of transmission are improved. At the relay node of data transmission, perform secondary encoding on the received first set of encoded packets to generate a set of innovative packets. These innovative packets contain additional information, which improves the decoding rate of the receiving end. When the number of innovative packets transmitted to the receiving end reaches the preset threshold, adjust the step size of the target window according to the feedback information from the receiving end. By dynamically adjusting the transmission strategy, the subsequent data packet transmission becomes more efficient and effective. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The accompanying drawings here are incorporated into the specification and form a part of this specification, showing embodiments consistent with this application, and are used together with the specification to explain the principles of this application.
[0018] In order to more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the following will briefly introduce the accompanying drawings required for use in the description of the embodiments or the prior art. Obviously, for those of ordinary skill in the art, without creative efforts, other drawings can also be obtained based on these drawings.
[0019] Figure 1 It is a schematic flowchart of the first embodiment of the data transmission method based on network coding in this application; Figure 2 It is a schematic flowchart of the second embodiment of the data transmission method based on network coding in this application; Figure 3 It is a schematic flowchart of the third embodiment of the data transmission method based on network coding in this application; Figure 4 It is a schematic flowchart of the BATS code for non - overlapping windows in the embodiments of this application; Figure 5 It is a schematic flowchart of the fourth embodiment of the data transmission method based on network coding in this application; Figure 6 It is a schematic diagram of the sliding window mechanism in the embodiments of this application; Figure 7 It is a schematic diagram for comparing the bit error rates of different sliding window strategies in the embodiments of this application; Figure 8Schematic diagram of the module structure of the data transmission device based on network coding according to an embodiment of the present application; Figure 9 Schematic diagram of the device structure of the hardware operating environment involved in the data transmission method based on network coding in an embodiment of the present application.
[0020] The implementation, functional features and advantages of the present application will be further described with reference to the embodiments and the accompanying drawings. Specific embodiments
[0021] It should be understood that the specific embodiments described herein are only used to explain the technical solutions of the present application and are not used to limit the present application.
[0022] In order to better understand the technical solutions of the present application, the following will be described in detail with reference to the accompanying drawings of the specification and specific embodiments.
[0023] A basic function of a wireless communication network is data distribution. The source node generates the original data to be sent, the relay node routes and forwards the data, and the destination node is responsible for receiving and restoring the original data. Packets may be lost during the transmission process due to various factors. In a wireless multi-hop network, packet loss may be caused by various reasons. Different from congestion, the data loss caused by these factors cannot be improved by rate control. In existing network protocols, when data is lost, the automatic repeat request mechanism is usually used to ensure reliable data transmission. Although this method can better ensure reliable data transmission, it depends on feedback at the same time and will generate a large delay and storage consumption. Therefore, a series of erasure codes such as fountain codes, random linear network codes, and batch sparse codes (BATS codes) have been developed subsequently for link without feedback to achieve low-delay transmission. The sliding window batch sparse network coding (BATS code) mainly based on link feedback to achieve adaptive step size. In current research, it is confirmed that the sliding window code can achieve low-delay transmission of data. However, the dynamic change of the link state causes the fixed-step sliding window code not to achieve the optimal throughput. Especially in the low packet loss rate scenario, due to the imbalance of redundant allocation, the bit error rate is higher than that of the traditional BATS code with a fixed window. Therefore, it becomes more important to adaptively adjust the sliding window step size through link feedback to achieve higher throughput and transmission efficiency. In recent years, researchers have applied the sliding window code to the BATS code to obtain a lower completion delay. However, the sliding window code actually shortens the code length of the BATS code, resulting in a performance degradation. Therefore, how to maintain a high decoding success rate during low-delay transmission has become a key technical problem that needs to be solved urgently.
[0024] This application provides a solution, which pre - encodes the original data packets of the target window to generate a first set of encoded packets, transmits the first set of encoded packets to the receiving end, and the relay node performs secondary encoding on the received first set of encoded packets to generate a set of innovative packets. When the number of innovative 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. The feedback information includes the current decoding rate and the set of innovative packets. Pre - encoding the original data packets of the target window improves the reliability and effectiveness of transmission by appropriately arranging and combining the original data. At the relay node of data transmission, the received first set of encoded packets is subjected to secondary encoding to generate a set of innovative packets. These innovative packets contain additional information, which improves the decoding rate at the receiving end. When the number of innovative packets transmitted to the receiving end reaches the 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 becomes more efficient and effective.
[0025] Based on this, the embodiments of this application provide a data transmission method based on network coding. Referring to Figure 1 , Figure 1 is the schematic flowchart of the first embodiment of the data transmission method based on network coding of this application.
[0026] In this embodiment, the data transmission method based on network coding includes steps S10 - S30: Step S10, pre - encode the original data packets of the target window to generate a first set of encoded packets.
[0027] 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 packets can be the data packets directly generated from the sending end without encoding or processing. Pre - encoding can be the encoding process performed on the original data packets before data transmission, which is used to encode the data to improve the reliability and effectiveness of transmission. The first set of encoded packets can be the set of data packets after pre - encoding processing, which can be understood as a batch. Each batch consists of multiple encoded data packets and is ready for transmission. Exemplarily, the sender extracts from the window data packets according to the degree distribution and performs pre - encoding to obtain encoded packets , which is used as a batch.
[0028] Step S20, transmit the first set of encoded packets to the receiving end, and the relay node performs secondary encoding on the received first set of encoded packets to generate a set of innovative packets.
[0029] It should be noted that a relay node refers to an intermediate node between a sending end and a receiving end, which can receive, process, and forward data packets. Secondary encoding can be the re-encoding process performed on the set of first encoded packets received at the relay node, and is used to improve the decoding rate. The set of innovative data packets can be understood as a new set of encoded packets generated after secondary encoding, which is different from the set of first encoded packets and contains data packets generated by a new encoding method. Exemplarily, within the first window, w input data packets are encoded. At the source node, each batch is generated according to the outer code encoding process, and then the batches are sequentially sent to the intermediate node. At the intermediate node, the encoded packets within each batch are randomly linearly network encoded according to the inner code encoding process, and then the batches are sequentially sent to the receiving end.
[0030] Step S30: When the number of the set of innovative data packets transmitted to the receiving end reaches a preset threshold, adjust the step size of the target window according to the feedback information from the receiving end. The feedback information includes the current decoding rate and the set of innovative data packets.
[0031] It should be noted that the preset threshold can be a preset value or condition. When this threshold is reached or satisfied, 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. Among them, the decoding rate is the ratio or success rate of the receiving end successfully decoding valid data, and is an important indicator for measuring the data transmission effect. The step size of the target window can be understood as the distance by which the window moves or expands each time the target window is adjusted. The step size can affect the selection and transmission strategy of data packets. Exemplarily, after sending N batches, the sending end adjusts the step size of the window movement according to the current decoding rate and the number of innovative packets.
[0032] In this embodiment, the original data packets of the target window are pre-encoded. By appropriately arranging and combining the original data, the reliability and effectiveness of the transmission are improved. At the relay node of the data transmission, the set of first encoded packets received is secondarily 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 the preset threshold, the step size of the target window is adjusted according to the feedback information from the receiving end. By adjusting the step size, the transmission order and quantity of data packets can be dynamically optimized, thereby improving the transmission efficiency and decoding success rate.
[0033] Referring to Figure 2 , Figure 2 is a schematic flowchart of the second embodiment of the data transmission method based on network coding in this application. Based on the above Figure 1Based on the first embodiment shown, the second embodiment of the data transmission method based on network coding in this application is proposed.
[0034] In the second embodiment, step S10 includes: Step S101, define the preset window length and preset step size of the target window.
[0035] It should be noted that the preset window length can be a length of a segment of data selected in the target window, used to determine the number of coded packets in the first coded packet set. The preset step size is used to determine the sliding distance of the window. Exemplarily, the preset window length is 4, indicating that each target window will contain 4 consecutive data packets. The preset step size is 2, indicating that each time the target window slides, the window will move a distance of 2 data packets.
[0036] Step S102, select the target window according to the preset window length and generate the first coded packet.
[0037] Exemplarily, the data packet sequence in the data stream can be: A, B, C, D, E, F, G, H, I. According to the preset window length (4 data packets), select data packets A, B, C, D to form the first target window. The data packets A, B, C, D can be pre-coded to generate a first coded packet P1.
[0038] Step S103, slide the target window with the preset step size and select a new target window according to the preset window length.
[0039] Exemplarily, according to the preset step size (a distance of 2 data packets), the target window slides from A, B, C, D to C, D, E, F. It can be understood that the new target window contains data packets C, D, E, F.
[0040] Step S104, based on the new target window, repeat generating the first coded packet and determine the first coded packet set according to the first coded packet.
[0041] Exemplarily, the data packets C, D, E, F can be pre-coded to generate the second first coded packet P2. According to the preset step size, the target window continues to slide 2 data packets and becomes E, F, G, H. The data packets E, F, G, H are pre-coded to generate the third first coded packet P3. Finally, the first coded packet set is composed of P1 (A, B, C, D), P2 (C, D, E, F), and P3 (E, F, G, H).
[0042] In this embodiment, by defining the preset window length and preset step size of the target window, the receiving end can process the received set of encoded packets more effectively. A reasonable window length can ensure that each encoded packet carries sufficient information, enabling the receiving end to decode quickly. By encoding the original data packets into the first set of encoded packets, the redundancy of the data can be 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.
[0043] Referring to Figure 3 , Figure 3 which is a schematic flowchart of the third embodiment of the data transmission method based on network coding in this application. Based on the above Figure 2 shown second embodiment, the third embodiment of the data transmission method based on network coding in this application is proposed.
[0044] In the third embodiment, the step S20 includes: Step S201: Transmit the first set of encoded packets to the receiving end and obtain the first encoded packets in the first set of encoded packets.
[0045] It should be noted that the first set of encoded packets can be a set of data packets after precoding processing, which can be understood as a batch. Each batch consists of multiple encoded data packets and is ready for transmission.
[0046] Step S202: Perform secondary coding on the received first set of encoded packets at the relay node to generate a coefficient matrix.
[0047] It should be noted that the coefficient matrix is a matrix generated by the relay node according to the received first set of encoded packets, which contains the linear combination coefficients used in the coding process. Exemplarily, the relay node performs secondary coding on the received first set of encoded packets P1. A coefficient matrix is generated according to the secondary coding process, such as matrix M .
[0048] Step S203: Determine the decoding rate in advance based on the rank of the coefficient matrix.
[0049] It should be noted that the rank r of the coefficient matrix can provide an estimate of the information redundancy of the set of encoded packets. Exemplarily, assume that the generated coefficient matrix M has a rank of r . According to the rank M of the coefficient matrix r , estimate the probability of successful decoding at the receiving end in advance.
[0050] Step S204: Determine the set of innovative packets through multi-hop transmission and optimize the set of innovative packets based on the decoding rate.
[0051] It should be noted that the relay node generates a set of innovative data packets through multi-hop transmission, and these coded packets can further enhance the success rate of decoding. According to the pre-determined decoding rate, the relay node can optimize the selection and transmission mode of the innovative data packets. Multi-hop transmission can be understood as different first coded packets generated by different data packets. Exemplarily, as Figure 4 shown, m1 can be used as a Batch, and multiple m1 can be generated. After packet loss occurs, multiple innovative data packets are generated after secondary coding and multiple transmissions. After multi-hop transmission, the receiving end receives the set of innovative data packets, and the set of innovative data packets includes innovative data packets, where .
[0052] In this embodiment, the set of first coded packets is transmitted to the receiving end, and the first coded packets in the set of first coded packets are obtained, ensuring the transmission of the set of first coded packets to the receiving end. The first coded packets are the starting point for the receiving end to decode. Even if packet loss or damage occurs during transmission, the receiving end can still start the decoding process using the first coded packets. Secondary coding and the determination of the decoding rate based on the coefficient matrix help the relay node and the receiving end to further optimize the decoding process based on the received coded packets. By generating the coefficient matrix and analyzing its rank, the possibility of successful decoding at the receiving end can be evaluated in advance, so as to adjust the subsequent decoding strategy and improve the success rate of decoding. The optimization of multi-hop transmission and the set of innovative data packets allows for dynamic adjustment of the selection and transmission mode of coded packets during transmission, and can minimize transmission delay and resource consumption on the premise of ensuring data transmission quality.
[0053] In one implementation manner, based on the above third embodiment, the step S202 includes: performing secondary coding on the set of first coded packets received by the relay node to generate a set of second coded packets; generating a coefficient matrix according to the number of coded packets in the set of first coded packets and the number of coded packets in the set of second coded packets.
[0054] It should be noted that the set of second coded packets can be a new set of coded packets generated after the secondary coding operation at the relay node. It can be understood that there will be some lost coded packets during secondary coding, so the number of coded packets in the set of second coded packets will be less than the number of coded packets in the set of first coded packets. The coefficient matrix is generated according to the number of coded packets in the set of first coded packets and the number of coded packets in the set of second coded packets. Exemplarily, the sender extracts from the window data packets according to the degree distribution and performs pre-coding to obtain coded packets , which is used as a Batch. At the relay node, for the received The secondary encoding is performed on the encoded packets, where t is the number of lost encoded packets in single-hop transmission, and the resulting coefficient matrix can be expressed as , is the coefficient matrix with a size of . It should be noted that the set of innovative data packets determined by multi-hop transmission is represented as the coefficient matrix , , and its calculation formula is as follows:
[0055] In the above formula, represents packets juxtaposed, is the coefficient matrix with a size of .
[0056] In this embodiment, by performing secondary encoding on the first set of encoded packets at the relay node, a second set of encoded packets is generated, so that even if some data packets are lost during transmission, the receiving end may still be able to recover the original data through the decoding process, improving the reliability of data transmission. Based on the generated coefficient matrix, the relay node can dynamically adjust the generation rule of the second encoded packet according to the real-time network conditions and feedback information. This optimization can effectively utilize network bandwidth and resources, improve the efficiency of data transmission, and minimize transmission delay and resource consumption as much as possible.
[0057] In one embodiment, based on the above third embodiment, the step of generating a coefficient matrix according to the number of encoded packets in the first set of encoded packets and the number of encoded packets in the second set of encoded packets includes: performing a linear combination on the encoded packets in the first set of encoded packets and the second set of encoded packets, and determining the element values of the coefficient matrix according to the result of the linear combination; dynamically adjusting the generation rule of the second encoded packet according to the coefficient matrix and the information fed back by the receiving end to optimize the decoding rate of the set of innovative data packets.
[0058] It should be noted that the operation performed at the relay node is to perform weighted addition on the encoded packets in the first set of encoded packets and the second set of encoded packets to generate new encoded packets. According to the coefficient matrix and the feedback information from the receiving end, dynamically adjusting the generation rule of the second encoded packet can adjust the weights of the linear combination or add additional redundant encoded packets. Exemplarily, when the receiving end receives innovative data packets, and the current decoding rate are fed back to the sending end, and the generation rule of the second encoded packet is dynamically adjusted according to the fed-back information.
[0059] In this embodiment, through the generation of linear combinations and coefficient matrices, the system can dynamically adjust the coding strategy during the transmission process to improve the reliability and efficiency of data transmission. In a complex network environment facing network noise, latency, or packet loss, the optimization strategy can significantly enhance the overall performance of the system and the user experience.
[0060] Referring to Figure 5 , Figure 5 which is a schematic flowchart of the fourth embodiment of the data transmission method based on network coding in this application. Based on the third embodiment shown above Figure 3 a fourth embodiment of the data transmission method based on network coding in this application is proposed.
[0061] In the fourth embodiment, step S30 includes: Step S301, calculate the decoding rate of the innovative packets in the current window and compare the current decoding rate with a preset decoding rate threshold.
[0062] It should be noted that the current decoding rate is the ratio of the successfully decoded innovative 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.
[0063] Step S302, if the current decoding rate does not reach the preset decoding rate threshold, increase the step size of the target window to increase the number of coded packets for subsequent transmission.
[0064] Exemplarily, in the target window, if the current decoding rate is lower than the preset decoding rate threshold (assuming the preset decoding rate threshold is 85%), for example, the current decoding rate is only 80%, the step size of the target window can be increased, for example, from 10 packets to 15 packets.
[0065] Step S303, if the current decoding rate reaches the preset decoding rate threshold, decrease the step size of the target window to reduce the number of coded packets for subsequent transmission, thereby optimizing the transmission efficiency.
[0066] Exemplarily, in the target window, if the current decoding rate is higher than the preset decoding rate threshold (assuming the preset decoding rate threshold is 85%), for example, the current decoding rate is 90%, the step size of the target window can be decreased, for example, from 15 packets to 10 packets.
[0067] To better illustrate the above steps, in combination with Figure 6 , exemplarily, the window size of the adaptive sliding window BATS code is w , and the window starts from the beginning of the input packets and slides downward at a certain step size s until the end of the data. There is an overlapping part between windows, and the overlapping width can bew-s The step size can be adjusted according to the actual situation, and the window is slid according to the updated step size.
[0068] In this embodiment, by calculating the decoding rate of the 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 reaches the expected reliability level. When 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 in subsequent transmissions, which helps to enhance the redundancy and reliability of data transmission and improve the chance of successful decoding at the receiving end. When the current decoding rate reaches the preset decoding rate threshold, reducing the step size of the target window, the system can save network bandwidth and resources, avoid unnecessary redundant transmissions, and at the same time maintain a sufficient decoding rate to ensure the efficiency and economy of data transmission.
[0069] To verify the feasibility of the data transmission method based on network coding of this application, a comparative experiment is set up to verify the block error rate of different sliding window strategies. The block error rates of fixed window, sliding window, and adaptive sliding window are compared. This application is an adaptive sliding window, and the results are as Figure 7 shown. It can be seen that as the packet loss rate (Loss) increases, the block error rate (BLER, Block Error Rate) of the adaptive sliding window is the smallest. It can be understood that as the window moves, it is inevitable that the packet loss rate increases, but it can still be seen that the packet loss rate of the method of this application is lower than that of the other two methods.
[0070] It should be noted that the above examples are only for understanding this application and do not constitute a limitation on the data transmission method based on network coding of this application. Any simple transformation in more forms based on this technical concept is within the protection scope of this application.
[0071] 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: A first encoding module 10, configured to pre-encode the original data packets in the target window to generate a set of first encoded packets, where the pre-encoding is used to encode the data to improve the reliability and effectiveness of transmission; A secondary encoding module 20, configured to transmit the set of first encoded packets to a receiving end, and perform secondary encoding on the received set of first encoded packets at a relay node to generate a set of innovative data packets; A feedback adjustment module 30, configured to adjust a step size of the target window according to feedback information from a receiving end when a quantity of an innovation data packet set transmitted to the receiving end reaches a preset threshold, where the feedback information includes a current decoding rate and the innovation data packet set.
[0072] The data transmission device based on network coding provided in this application adopts the data transmission method based on network coding in the foregoing embodiment, and can solve the technical problem of how to maintain a high decoding success rate during low-latency transmission. Compared with the prior art, the beneficial effects of the data transmission device based on network coding provided in this application are the same as those of the data transmission method based on network coding provided in the foregoing embodiment, and other technical features in the data transmission device based on network coding are the same as the features disclosed in the method of the foregoing embodiment, and will not be elaborated herein.
[0073] This application provides a data transmission device based on network coding. The data transmission device based on network coding includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable 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 first embodiment above.
[0074] Next, refer to Figure 9 , which shows a schematic structural diagram of a data transmission device based on network coding suitable for implementing the embodiments of this application. The data transmission device based on network coding in the embodiments of this application may include, but is not limited to, mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (Personal Digital Assistant), PADs (Portable Application Description), PMPs (Portable Media Players), in-vehicle terminals (such as in-vehicle navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Figure 9 The data transmission device based on network coding shown is only an example, and should not impose any limitation on the functions and usage scope of the embodiments of this application.
[0075] As Figure 9As shown, the network coding-based data transmission device may include a processing device 1001 (such as a central processing unit, a graphics processing unit, etc.), which may perform various appropriate actions and processes according to a program stored in a read-only memory (ROM: Read Only Memory) 1002 or a program loaded from a storage device 1003 into a random access memory (RAM: Random Access Memory) 1004. In the RAM 1004, various programs and data required for the operation of the network coding-based data transmission device are also stored. The processing device 1001, the ROM 1002, and the RAM 1004 are connected to each other through a bus 1005. An input / output (I / O) interface 1006 is also connected to the bus. Generally, the following systems may be connected to the I / O interface 1006: an input device 1007 including, for example, a touch screen, a touchpad, a keyboard, a mouse, an image sensor, a microphone, an accelerometer, a gyroscope, etc.; an output device 1008 including, for example, a liquid crystal display (LCD: Liquid Crystal Display), a speaker, a vibrator, etc.; a storage device 1003 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 1009. The communication device 1009 may allow the network coding-based data transmission device to communicate with other devices wirelessly or wiredly to exchange data. Although Figure 9 a network coding-based data transmission device with various systems is shown, it should be understood that it is not required to implement or have all the shown systems. Instead, more or fewer systems may be implemented or had.
[0076] Specifically, according to the embodiments disclosed in the present application, the processes described above with reference to the flowcharts may be implemented as computer software programs. For example, the embodiments disclosed in the present application include a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program includes program codes for executing the methods shown in the flowcharts. In such an embodiment, the computer program may be downloaded and installed from a network through the communication device, or installed from the storage device 1003, or installed from the ROM 1002. When the computer program is executed by the processing device 1001, the above-mentioned functions defined in the methods of the embodiments disclosed in the present application are executed.
[0077] The network coding-based data transmission device provided by the present application adopts the network coding-based data transmission method in the above embodiments, and can solve the technical problem of how to maintain a high decoding success rate during low-latency transmission. Compared with the prior art, the beneficial effects of the network coding-based data transmission device provided by the present application are the same as those of the network coding-based data transmission method provided by the above embodiments, and other technical features in the network coding-based data transmission device are the same as the features disclosed in the method of the previous embodiment, and will not be elaborated here.
[0078] It should be understood that each part disclosed in this application can be implemented by hardware, software, firmware, or a combination thereof. In the description of the above embodiments, specific features, structures, materials, or characteristics can be combined in a suitable manner in any one or more embodiments or examples.
[0079] As mentioned above, it is only the specific implementation manner of this application, but the protection scope of this application is not limited thereto. Any person skilled in the art within the technical scope disclosed in this application can easily think of changes or substitutions, which should all be covered within the protection scope of this application. Therefore, the protection scope of this application should be subject to the protection scope of the claims.
[0080] This application provides a computer-readable storage medium having computer-readable program instructions (i.e., computer programs) stored thereon, and the computer-readable program instructions are used to execute the data transmission method based on network coding in the above embodiments.
[0081] The computer-readable storage medium provided by this application can be, for example, a USB flash drive, but is not limited to electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices, or any combination of the above. More specific examples of computer-readable storage media can include, but are not limited to: electrical connections with one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM) or flash memory, optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the above. In this embodiment, the computer-readable storage medium can be any tangible medium that contains or stores a program, and this program can be used by or combined with an instruction execution system, device, or device. The program code contained on the computer-readable storage medium can be transmitted by any appropriate medium, including but not limited to: wires, optical cables, RF (Radio Frequency), etc., or any suitable combination of the above.
[0082] The above computer-readable storage medium can be included in the data transmission device based on network coding; it can also exist independently and not be assembled into the data transmission device based on network coding.
[0083] The above computer-readable storage medium carries one or more programs which, when executed by a network coding-based data transmission device, cause the network coding-based data transmission device to: pre-code original data packets of a target window to generate a first set of coded packets, where the pre-coding is used to encode data to improve the reliability and effectiveness of transmission; transmit the first set of coded packets to a receiving end, and perform secondary coding on the received first set of coded packets at a relay node to generate a set of innovative data packets, where the secondary coding is used to increase the decoding rate; when the number of the set of innovative data packets transmitted to the receiving end reaches a preset threshold, adjust the step size of the target window according to feedback information from the receiving end, where the feedback information includes the current decoding rate and the set of innovative data packets.
[0084] Computer program code for performing the operations of this application can be written in one or more programming languages or combinations thereof. The programming languages include object-oriented programming languages such as Java, Smalltalk, and C++, and also include conventional procedural programming languages such as the "C" language or similar programming languages. The program code can be executed entirely on a user's computer, partially on a user's computer, executed as a stand-alone software package, partially on a 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 can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (e.g., by using an Internet service provider to connect through the Internet).
[0085] The flowcharts and block diagrams in the accompanying drawings illustrate the possible architectures, functions, and operations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in the flowchart or block diagram may represent a module, a program segment, or a part of code that contains one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than marked in the accompanying drawings. For example, two consecutive blocks shown may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, and combinations of blocks in the block diagram and / or flowchart, can be implemented by a dedicated hardware-based system for performing the specified functions or operations, or can be implemented by a combination of dedicated hardware and computer instructions.
[0086] The modules involved in the embodiments of the present application can be implemented in software or in hardware. In some cases, the name of the module does not constitute a limitation on the unit itself.
[0087] The readable storage medium provided by the present application is a computer-readable storage medium. The computer-readable storage medium stores computer-readable program instructions (i.e., computer programs) for executing the above-mentioned data transmission method based on network coding, and can solve the technical problem of how to maintain a high decoding success rate during low-latency transmission. Compared with the prior art, the beneficial effects of the computer-readable storage medium provided by the present application are the same as those of the data transmission method based on network coding provided by the above embodiments, and will not be elaborated here.
[0088] The present application also provides a computer program product, including a computer program, and the steps of the data transmission method based on network coding as described above are implemented when the computer program is executed by a processor.
[0089] The computer program product provided by the present application can solve the technical problem of how to maintain a high decoding success rate during low-latency transmission. Compared with the prior art, the beneficial effects of the computer program product provided by the present application are the same as those of the data transmission method based on network coding provided by the above embodiments, and will not be elaborated here.
[0090] The above are only some embodiments of the present application, and do not limit the patent scope of the present application. Any equivalent structural transformation made by using the content of the specification and drawings of the present application under the technical concept of the present application, or direct / indirect application in other related technical fields, is 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 described above includes: Pre - coding the original data packets of the target window to generate a first set of coded packets, where the pre - coding is used to encode the data to improve the reliability and effectiveness of transmission; Transmitting the first set of coded packets to the receiving end, and at the relay node, performing secondary coding on the received first set of coded packets to generate a set of innovative packets, where the secondary coding is used to improve the decoding rate; When the number of the set of innovative packets transmitted to the receiving end reaches a preset threshold, adjusting the step size of the target window according to the feedback information from the receiving end, where the feedback information includes the current decoding rate and the set of innovative packets.
2. The method according to claim 1, wherein The step of pre - coding the original data packets of the target window to generate a first set of coded packets includes: Defining a preset window length and a preset step size for the target window, where the preset window length is used to determine the number of coded packets in the first set of coded packets, and the preset step size is used to determine the 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 by the preset step size and selecting a new target window according to the preset window length; Based on the new target window, repeating the generation of the first coded packet and determining the first set of coded packets according to the first coded packet.
3. The method according to claim 1, characterized in that, The step of transmitting the first set of coded packets to the receiving end, and at the relay node, performing secondary coding on the received first set of coded packets to generate a set of innovative packets includes: Transmitting the first set of coded packets to the receiving end and obtaining the first coded packets in the first set of coded packets; At the relay node, performing secondary coding on the received first set of coded packets to generate a coefficient matrix; Determining the decoding rate in advance based on the rank of the coefficient matrix; Determining the set of innovative packets through multi - hop transmission and optimizing the set of innovative packets based on the decoding rate.
4. The method according to claim 3, wherein The step of performing secondary coding on the received first set of coded packets at the relay node to generate a coefficient matrix includes: Performing secondary coding on the received first set of coded packets at the relay node to generate a second set of coded packets; Generating a coefficient matrix according to the number of coded packets in the first set of coded packets and the number of coded packets in the second set of coded packets.
5. The method according to claim 4, wherein The step of generating a coefficient matrix according to the number of coded packets in the first set of coded packets and the number of coded packets in the second set of coded packets includes: Performing a linear combination of the coded packets in the first set of coded packets and the second set of coded packets, and determining the element values of the coefficient matrix according to the result of the linear combination; Dynamically adjusting the generation rule of the second coded packet according to the coefficient matrix and the information fed back from the receiving end to optimize the decoding rate of the set of innovative packets.
6. The method according to any one of claims 1 to 5, characterized in that, The feedback information includes the current decoding rate and the set of innovative packets. The step of adjusting the step size of the target window according to the feedback information from the receiving end when the number of the set of innovative packets transmitted to the receiving end reaches a preset threshold includes: Calculating the decoding rate of the innovative packets in the 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, increase the step size of the target window to increase the number of encoded packets for subsequent transmission; If the current decoding rate reaches the preset decoding rate threshold, decrease the step size of the target window to reduce the number of encoded packets for subsequent transmission, thereby optimizing the transmission efficiency.
7. A data transmission device based on network coding, characterized in that, The device includes: A first encoding module, configured to pre-encode the original data packets in the target window to generate a first set of encoded packets, where 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 encoded packets to the receiving end, and perform secondary encoding on the received first set of encoded packets at the 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 the feedback information from the receiving end when the number of the set of innovative data packets transmitted to the receiving end reaches a preset threshold, where the feedback information includes the current decoding rate and the set of innovative data packets.
8. A data transmission device based on network coding, characterized in that The device includes: a memory, a processor, and a computer program stored on the memory and executable on the processor, where 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 6.
9. 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, it implements the steps of the network coding-based data transmission method according to any one of claims 1 to 6.
10. A computer program product, characterized in that, The computer program product includes a computer program. When the computer program is executed by a processor, it implements the steps of the network coding-based data transmission method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Congestion control based wireless multi-hop network multicast method
CN103209435A
High-throughput satellite formation data transmission method based on network coding
CN106452559A
Balanced protection sliding window BATS code transmission method
CN110430018A
Wireless network data transmission method, transmitting end and receiving end
CN117220830A
Low earth orbit satellite routing method based on link quality perception and network coding
CN118317388A