Network coding communication method for real-time reliable control

By adopting network encoding communication methods in the industrial Internet of Things communication environment, using random coefficient encoding and UDP protocols for data packet transmission, and decoding and recovery on the receiving end, solving the real -time and reliability of data transmission when the communication environment worsen. Realize efficient and real -time data transmission.

CN119341690APending Publication Date: 2025-01-21FUZHOU UNIV
View PDF 0 Cites 3 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

In the case of deteriorating the industrial Internet of Things communication environment, it is difficult for the prior art to achieve data transmission with good real-time and reliable transmission quality without relying on feedback retransmission, resulting in increased network load, increased latency and communication delay of other equipment and block.

Method used

Adopting a network coding communication method oriented to real-time and reliable control, by initializing the encoder parameters and establishing an analog channel, using finite field-based random coefficient encoding and UDP protocol for data packet transmission, and recovering the lost data packets through the decoder at the receiving end. Implement dynamic Gaussian elimination decoding.

Benefits of technology

When the communication environment of the Industrial Internet of Things deteriorates, high-reliability transmission of data packets is achieved without relying on feedback retransmission. It has high real-time performance and can meet the communication needs of automated production lines.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119341690A_ABST
    Figure CN119341690A_ABST
Patent Text Reader

Abstract

The invention relates to a real-time reliable control-oriented network coding communication method, which comprises the following steps of: S1, initializing encoder parameters, establishing an end-to-end analog channel for data packet transmission, carrying out finite field-based random coefficient coding on a data packet transmitted from an upper layer, and packaging a corresponding data packet header, and sending the data to a corresponding receiving end through a UDP protocol. And S2, initializing decoder parameters, acquiring transmitted coded data by monitoring a UDP (User Datagram Protocol) port, de-encapsulating a data packet, and carrying out corresponding decoding operation according to packet header information so as to recover the data packet lost in the transmission process. According to the method, under the condition of not depending on feedback retransmission, when the communication environment of the industrial Internet of Things is severe, high real-time performance lower than 1 ms in-sequence time delay (the blocking time of a data packet in a decoder) is achieved, and high-reliability data transmission with the error rate smaller than 10 <-5 > is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention relates to the technical field of application layer data transmission, in particular to a network coding communication method oriented to real-time reliable control. Background Art

[0002] In 2019, China's 5G network was officially put into commercial use, and the integration and innovative development of 5G and industrial Internet of Things has become a new direction actively explored by the industry. Then, with the release of 3GPP R16, R17 and other standard versions, 5G ultra-reliable low-latency communication (URLLC) features have gradually matured, and the integration and application of 5G and industry will penetrate into the core links of production and manufacturing, providing new technical options for the development of wireless equipment, flexible production lines, and intelligent production.

[0003] In actual IIoT deployments, multiple devices are interconnected via wireless links, which are prone to errors or erasures in complex and changing industrial environments. To recover lost or damaged information, the sending device needs to transmit repeatedly, which will increase the network load and cause delays. At the same time, repeated transmissions on wireless links will not only increase the communication delay of a device on a certain production line, but also increase the communication delay of all other devices in the same network, which may also be blocked and suspended. Summary of the invention

[0004] In view of this, the purpose of the present invention is to provide a network coding communication method for real-time and reliable control, which can achieve data transmission with good real-time performance and reliable transmission quality when the communication environment of the industrial Internet of Things deteriorates without relying on feedback retransmission.

[0005] To achieve the above object, the present invention adopts the following technical solution: a network coding communication method for real-time reliable control, comprising the following steps:

[0006] Step S1: Initialize encoder parameters, establish an end-to-end analog channel for data packet transmission, perform random coefficient encoding based on a finite field on the data packets transmitted from the upper layer, encapsulate the corresponding data packet header, and send it to the corresponding receiving end through the UDP protocol;

[0007] Step S2: Initialize the decoder parameters, obtain the transmitted encoded data by monitoring the UDP port, decapsulate the data packet, and perform corresponding decoding operations according to the packet header information to restore the data packet lost during the transmission process.

[0008] In a preferred embodiment, step S1 includes the following steps:

[0009] Step S11: Initialize encoder parameters: set the IP address and port number of the receiving end, the stream number corresponding to the encoder, and the size of the encoding window We , the number of source packets k and code packets r generated each time, the corresponding encoding rate R is

[0010]

[0011] Among them, the coding rate R is the ratio of useful (non-redundant) data in the coded data stream to the total coded data, and the number of source packets k and code packets r are, after each k useful information data packets are obtained from the upper layer, r redundant information packets will be encoded and sent together with them;

[0012] Step S12: Establish an end-to-end simulated channel for data packet transmission, and use the Gilbert loss model and Markov chain to simulate the packet loss and burst length on the network link; two states, G and B, are used to describe the successful reception of data packets and the loss of data packets. The transition probability between transmission states is characterized by parameters γ and β; parameter γ refers to the state from B to G, and parameter β refers to the state from G to B; the overall packet loss rate π of the simulated channel B The expected burst error length E[B] is characterized by the following formula:

[0013]

[0014]

[0015] Step S13: Add some information of the packet itself to the source data packet sent from the upper layer and encapsulate it into a SourceBlock packet. Specifically, add 2 bytes of data packet length information and 4 bytes of data packet sequence number information to the packet header, and then add 2 bytes of CRC check information to the tail;

[0016] Step S14: encapsulate the encapsulated SourceBlock packet again, specifically, add 1 byte of stream sequence number information, 4 bytes of RepairID information, 4 bytes of SourceID information, 4 bytes of lower boundary information of the encoding window, 4 bytes of upper boundary information of the encoding window, 2 bytes of SourceBlock packet size information to the header of the packet, and then add 2 bytes of CRC check information to the tail;

[0017] Step S15: If the number of source packets S contained in one generation is set, then the GF(2 8 ) The random coefficient encoding of the finite field, the specific encoding method is shown in the following formula;

[0018]

[0019] Among them, c i,j is the jth code packet in the i-th block of data, u mis the mth source data packet, w i,j,m For the encoding code package c i,j In the process, the source data packet u m The corresponding linear combination weight, w i,j,m The specific value is from GF(2 8 ) is randomly obtained in the finite field as the weight coefficient of the linear combination. The random number is generated by the mt19937 pseudo-random number generator, and the generator is initialized by setting the seed through RepairID;

[0020] Step S16: Store the encapsulated packet into a queue, and repeatedly query whether the queue is empty through another thread. If it is not empty, take the data out of the queue and send the packet to the corresponding IP and port of the receiving end through the sendto() function via the UDP protocol.

[0021] In a preferred embodiment, step S2 includes the following steps:

[0022] Step S21: Initialize decoder parameters: set the port number to be monitored and the decoding window size W corresponding to the decoder d ;

[0023] Step S22: Set up another thread to listen to the corresponding port number, and retrieve the received data packets by cyclically calling the recv() function and store them in a queue;

[0024] Step S23: The decoder repeatedly checks whether the queue is empty. If it is not empty, it takes data out of the queue and sends it to the decoding window for decoding;

[0025] Step S24: decapsulate the data packet and obtain the information about the encoder and the data packet itself carried in its packet header; if the data packet is an outdated data packet, it is directly discarded; if it arrives in order, it is directly passed to the upper layer;

[0026] Step S25: If the data packet does not arrive in order, the decoder is activated and stored in the decoding window, and a decoding matrix is ​​generated in the decoder to store the coding coefficients. Since system coding is used, the coefficient of the source packet is 1 and inserted in the corresponding position in the decoding matrix; for redundant packets, the mt19937 pseudo-random number generator is initialized based on the decoded RepairID information as a seed to generate the corresponding coding coefficients and insert them in the corresponding position in the decoding matrix;

[0027] Step S26: If a new data packet outside the decoding window is received, the decoding window and the decoding matrix are expanded;

[0028] Step S27: Determine whether the size of the expanded decoding window is greater than W dWhether the conditions are met, if they are met, the window push operation is performed. Each source packet pushed out from the decoding window will be directly uploaded, and a decoding sub-matrix will be generated. The decoding matrix is ​​traversed to observe whether there is a full-rank sub-matrix. If so, the sub-matrix is ​​decoded and the decoded source packet is uploaded;

[0029] Step S28: inserting the data packet into the expanded decoding window, and cutting the length of its coding coefficients into the length of the decoding window according to the received source packet, and inserting it into the corresponding position in the decoding matrix;

[0030] Step 29: If the decoding matrix is ​​full rank, decode the final linear equation system HS=C, where H is the decoding matrix, each row of which represents the coding coefficient of a data packet, S is the column vector of the decoding window, and C is the final set of solved source packets; the solved source packets are directly passed to the upper layer.

[0031] Compared with the prior art, the present invention has the following beneficial effects: the present invention provides a network coding communication solution for real-time and reliable control, which can not only ensure the high reliability of data packets when the communication environment of the industrial Internet of Things deteriorates, but also the solution does not need to rely on feedback retransmission, uses the UDP protocol for transmission, has high real-time performance, and can fully meet the communication needs on the automated production line. BRIEF DESCRIPTION OF THE DRAWINGS

[0032] Figure 1 A flowchart of a method implementation of an embodiment of the present invention;

[0033] Figure 2 A structural diagram of data packet encapsulation in an embodiment of the present invention;

[0034] Figure 3 Schematic diagram of the change of packet error rate with bit rate in an embodiment of the present invention;

[0035] Figure 4 Schematic diagram of the change of on-demand sequence delay with bit rate in an embodiment of the present invention. DETAILED DESCRIPTION

[0036] The present invention will be further described below in conjunction with the accompanying drawings and embodiments.

[0037] It should be noted that the following detailed descriptions are illustrative and are intended to provide further explanation of the present application. Unless otherwise specified, all technical and scientific terms used herein have the same meanings as those commonly understood by those skilled in the art to which the present application belongs.

[0038] It should be noted that the terms used herein are only for describing specific embodiments and are not intended to limit the exemplary embodiments according to the present application; as used herein, unless the context clearly indicates otherwise, the singular form is also intended to include the plural form. In addition, it should be understood that when the terms "comprise" and / or "include" are used in this specification, they indicate the presence of features, steps, operations, devices, components and / or their combinations.

[0039] like Figure 1-4 As shown, this embodiment provides a network coding communication solution for real-time reliable control, including the following steps:

[0040] Step S1, initialize encoder parameters, establish an end-to-end analog channel for data packet transmission, encode the data packets transmitted from the upper layer based on finite field random coefficients, encapsulate the corresponding data packet header, and send it to the corresponding receiving end through the UDP protocol.

[0041] Step S2, initialize the decoder parameters, obtain the transmitted encoded data by monitoring the UDP port, decapsulate the data packet, and perform corresponding decoding operations according to the packet header information to restore the data packet lost during the transmission process.

[0042] When encountering continuous packet loss caused by channel deterioration, the data packets will be buffered until enough redundant packets are received, and then the lost data packets can be solved through dynamic Gaussian elimination.

[0043] In this embodiment, step S1 specifically includes the following steps:

[0044] Step S1-1, initialize the encoder parameters: set the IP address and port number of the receiving end, the stream sequence number corresponding to the encoder, and the size of the encoding window W e , the number of source packets k and code packets r generated each time, the corresponding encoding rate R is

[0045]

[0046] Among them, the coding rate R is the ratio of useful (non-redundant) data in the coded data stream to the total coded data, and the number of source packets k and code packets r are, after each k useful information data packets are obtained from the upper layer, r redundant information packets will be encoded and sent together with them;

[0047] Step S1-2: Establish an end-to-end simulated channel for data packet transmission, and use the Gilbert loss model and Markov chain to simulate packet loss and burst length on the network link. Two states (G and B) are used to describe the successful reception of data packets and the loss of data packets. The transition probability between transmission states is characterized by parameters γ (state from B to G) and β (state from G to B). The overall packet loss rate of the simulated channel is πB The expected burst error length E[B] is characterized by the following formula.

[0048]

[0049] S1-3. Add some information of the packet itself to the source data packet sent from the upper layer and encapsulate it into a SourceBlock packet. Specifically, add 2 bytes of data packet length information and 4 bytes of data packet sequence number information to the packet header, and then add 2 bytes of CRC check information to the end.

[0050] S1-4. Encapsulate the encapsulated SourceBlock packet again, specifically by first adding 1 byte of stream sequence number information, 4 bytes of RepairID information, 4 bytes of SourceID information, 4 bytes of lower boundary information of the encoding window, 4 bytes of upper boundary information of the encoding window, 2 bytes of SourceBlock packet size information to the header of the packet, and then adding 2 bytes of CRC check information to the end.

[0051] S1-5. If the number of source packets S contained in the set one generation is sent, then the GF(2 8 ) The random coefficient encoding of the finite field, the specific encoding method is shown in the following formula;

[0052]

[0053] Among them, c i,j is the jth code packet in the i-th block of data, u m is the mth source data packet, w i,j,m For the encoding code package c i,j In the process, the source data packet u m The corresponding linear combination weight, w i,j,m The specific value is from GF(2 8 ) is randomly obtained in the finite field as the weight coefficient of the linear combination. The random number is generated by the mt19937 pseudo-random number generator, and the generator is initialized by setting the seed through RepairID;

[0054] S1-6. Store the encapsulated packet in the queue, and use another thread to repeatedly query whether the queue is empty. If it is not empty, take the data out of the queue and send the packet to the corresponding IP and port of the receiving end through the sendto() function via the UDP protocol.

[0055] The structure diagram of Source data packet and CodeBlock data packet encapsulation in this embodiment is as follows Figure 2 shown.

[0056] In this embodiment, step S2 specifically includes the following steps:

[0057] Step S2-1, initialize the decoder parameters: set the port number to be monitored and the decoding window size W corresponding to the decoder d .

[0058] Step S2-2, set up another thread to listen to the corresponding port number, and retrieve the received data packets by cyclically calling the recv() function and store them in the queue.

[0059] Step S2-3: The decoder repeatedly queries whether the queue is empty. If it is not empty, data is taken out of the queue and sent to the decoding window for decoding.

[0060] Step S2-4: Decapsulate the data packet and obtain the information about the encoder and the data packet itself carried in its header. If the data packet is outdated, it is directly discarded. If it arrives in order, it is directly passed to the upper layer.

[0061] Step S2-5, if the data packet does not arrive in order, activate the decoder and store it in the decoding window, and generate a decoding matrix in the decoder to store the coding coefficients. Since system coding is used, the coefficient of the source packet is 1, which is inserted in the corresponding position in the decoding matrix. For redundant packets, the mt19937 pseudo-random number generator is initialized based on the decoded RepairID information as a seed, and the corresponding coding coefficients are generated and inserted in the corresponding position in the decoding matrix.

[0062] Step S2-6: If a new data packet outside the decoding window is received, the decoding window and the decoding matrix are expanded.

[0063] Step S2-7: Determine whether the size of the expanded decoding window is greater than W d Whether the condition is met, if it is met, the window push operation is performed. Each source packet pushed out from the decoding window will be uploaded directly, and a decoding sub-matrix will be generated. The decoding matrix is ​​traversed to observe whether there is a full-rank sub-matrix. If so, the sub-matrix is ​​decoded and the decoded source packet is uploaded.

[0064] Step S2-8: insert the data packet into the expanded decoding window, and according to the received source packet, cut the length of its coding coefficient to the length of the decoding window, and insert it into the corresponding position in the decoding matrix.

[0065] Step 2-9: If the decoding matrix is ​​full rank, decode the final linear equation system HS=C, where H is the decoding matrix, each row of which represents the coding coefficient of a data packet, S is the column vector of the decoding window, and C is the final set of solved source packets. The solved source packets are directly passed to the upper layer.

[0066] Experimental simulation

[0067] This example uses two PCs with Ubuntu 20.04 installed for testing. The two PCs are respectively installed with the sender and the receiver. The sender obtains the random byte data stream through the pseudo-random device / dev / urandom provided by the Linux system for transmission. Each time, 400 bytes are obtained as a data packet for encapsulation and transmission. The receiver will calculate and count the data according to the data acquisition situation.

[0068] The simulated channel parameters are set based on the situation when the industrial Internet of Things communication environment is bad. Generally, when the industrial Internet of Things encounters channel degradation caused by environmental changes, the packet loss rate is 1-10%, and the burst length is between 20-50 packets. Therefore, we set the parameters to 5% packet loss and 32-length burst errors, and the coding window size W e Set to 256, decoding window size W d Set to 384, the number of code packets r generated each time is fixed to 1, the number of source packets k generated each time is 1, 3, 5, 7, 9, the corresponding encoding rate R is 0.5, 0.75, 0.83, 0.875, 0.9, and 5,000,000 data packets are transmitted at each rate. The corresponding simulation results are as follows Figure 3 and Figure 4 shown.

[0069] Figure 3 and Figure 4 The sequential delay and packet loss of this algorithm at different bit rates under harsh industrial environments are given. When the communication environment of the Industrial Internet of Things deteriorates, the bit rate is set to 0.5, the sequential delay is about 0.96ms, and the packet loss rate is about 2E-6. Therefore, it can be seen that this algorithm can effectively maintain high real-time performance and high reliability when the Industrial Internet of Things environment is harsh.

Claims

1. A network coding communication method for real-time reliable control, characterized in that , including the following steps: Step S1: Initialize encoder parameters, establish an end-to-end analog channel for data packet transmission, perform random coefficient encoding based on a finite field on the data packets transmitted from the upper layer, encapsulate the corresponding data packet header, and send it to the corresponding receiving end through the UDP protocol; Step S2: Initialize the decoder parameters, obtain the transmitted encoded data by monitoring the UDP port, decapsulate the data packet, and perform corresponding decoding operations according to the packet header information to restore the data packet lost during the transmission process.

2. A network coding communication method for real-time reliable control according to claim 1, characterized in that ,Step S1 includes the following steps: Step S11: Initialize encoder parameters: set the IP address and port number of the receiving end, the stream number corresponding to the encoder, and the size of the encoding window W e , the number of source packets k and code packets r generated each time, the corresponding encoding rate R is Among them, the coding rate R is the ratio of non-redundant data to the total coded data in the coded data stream, the number of source packets k and the number of code packets r are, after each k useful information data packets are obtained from the upper layer, r redundant information packets will be encoded and sent together with them; Step S12: Establish an end-to-end simulated channel for data packet transmission, and use the Gilbert loss model and Markov chain to simulate the packet loss and burst length on the network link; two states, G and B, are used to describe the successful reception of data packets and the loss of data packets. The transition probability between transmission states is characterized by parameters γ and β; parameter γ refers to the state from B to G, and parameter β refers to the state from G to B; the overall packet loss rate π of the simulated channel B The expected burst error length E[B] is characterized by the following formula: Step S13: Add some information of the packet itself to the source data packet sent from the upper layer and encapsulate it into a SourceBlock packet. Specifically, add 2 bytes of data packet length information and 4 bytes of data packet sequence number information to the packet header, and then add 2 bytes of CRC check information to the tail; Step S14: encapsulate the encapsulated SourceBlock packet again, specifically, add 1 byte of stream sequence number information, 4 bytes of RepairID information, 4 bytes of SourceID information, 4 bytes of lower boundary information of the encoding window, 4 bytes of upper boundary information of the encoding window, 2 bytes of SourceBlock packet size information to the header of the packet, and then add 2 bytes of CRC check information to the tail; Step S15: If the number of source packets S contained in one generation is set, then the GF(2 8 ) The random coefficient encoding of the finite field, the specific encoding method is shown in the following formula; Among them, c i,j is the jth code packet in the i-th block of data, u m is the mth source data packet, w i,j,m For the encoding code package c i,j In the process, the source data packet u m The corresponding linear combination weight, w i,j,m The specific value is from GF(2 8 ) is randomly obtained in the finite field as the weight coefficient of the linear combination. The random number is generated by the mt19937 pseudo-random number generator, and the generator is initialized by setting the seed through RepairID; Step S16: Store the encapsulated packet into a queue, and repeatedly query whether the queue is empty through another thread. If it is not empty, take the data out of the queue and send the packet to the corresponding IP and port of the receiving end through the sendto() function via the UDP protocol.

3. A network coding communication method for real-time reliable control according to claim 1, characterized in that ,Step S2 includes the following steps: Step S21: Initialize decoder parameters: set the port number to be monitored and the decoding window size W corresponding to the decoder d ; Step S22: another thread is set to monitor the corresponding port number, and the received data packets are retrieved by cyclically calling the recv() function and stored in the queue; Step S23: The decoder repeatedly checks whether the queue is empty. If it is not empty, it takes data out of the queue and sends it to the decoding window for decoding; Step S24: decapsulate the data packet and obtain the information about the encoder and the data packet itself carried in its packet header; if the data packet is an outdated data packet, it is directly discarded; if it arrives in order, it is directly passed to the upper layer; Step S25: If the data packet does not arrive in order, the decoder is activated and stored in the decoding window, and a decoding matrix is ​​generated in the decoder to store the coding coefficients. Since system coding is used, the coefficient of the source packet is 1 and inserted in the corresponding position in the decoding matrix; for redundant packets, the mt19937 pseudo-random number generator is initialized based on the decoded RepairID information as a seed to generate the corresponding coding coefficients and insert them in the corresponding position in the decoding matrix; Step S26: If a new data packet outside the decoding window is received, the decoding window and the decoding matrix are expanded; Step S27: Determine whether the size of the expanded decoding window is greater than W d Whether the conditions are met, if they are met, the window push operation is performed. Each source packet pushed out from the decoding window will be directly uploaded, and a decoding sub-matrix will be generated. The decoding matrix is ​​traversed to observe whether there is a full-rank sub-matrix. If so, the sub-matrix is ​​decoded and the decoded source packet is uploaded; Step S28: inserting the data packet into the expanded decoding window, and cutting the length of its coding coefficients into the length of the decoding window according to the received source packet, and inserting it into the corresponding position in the decoding matrix; Step 29: If the decoding matrix is ​​full rank, decode the final linear equation system HS=C, where H is the decoding matrix, each row of which represents the coding coefficient of a data packet, S is the column vector of the decoding window, and C is the final set of solved source packets; the solved source packets are directly passed to the upper layer.

Citation Information

Cited By

  • Application layer coding and decoding method for solving high burst

    CN119945625A

  • A high burst solution application layer codec method

    CN119945625B

  • Key data transmission method based on unidirectional transmission equipment

    CN121262015A