Convolutional network coding transmission method based on unequal redundancy insertion
Technical Field
The invention belongs to the technical field of communication, and particularly relates to a convolutional network coding transmission method which can be used for a single-path single-hop actual network with time delay.
Background
The single-path single-hop wireless network is the most basic point-to-point network transmission model and consists of a transmitting end and a receiving end. The data packet in the single-path single-hop wireless network is generated and sent by a sending end, transmitted through a wireless communication channel and finally reaches a receiving end of the wireless network. In actual wireless communication, a wireless channel is affected by various factors, and there may be a case where a data packet is lost during channel transmission. Automatic repeat request ARQ and erasure code EC are two main methods to solve the problem of channel packet loss. However, in ARQ, the feedback of each data packet occupies network resources and has a time delay, and since a wireless communication channel may generate a burst error, the number of data retransmissions of some nodes is too large, which causes an increase in the delay of other data in a data queue, thereby reducing the effective utilization rate of the channel. The overhead due to feedback is also very large in case of poor channel performance. In linear block codes, the throughput of random linear network coding RLNC and systematic codes increases with increasing packet size, but with a large decoding delay. Therefore, the correlation of the data packets is increased by using a convolution mode, the number of the redundant packets added to the next group of data packets is dynamically adjusted according to the decoding condition of the previous group, and higher throughput can be achieved under the condition of low time delay. Network coding NC was originally proposed by Ahlswede et al in 2000, the essence of which was to allow relay nodes to perform forwarding operations after processing the information they received. However, in the single-hop network, each data packet is directly sent to the receiving end by the sending end without an intermediate node, and in order to improve the throughput of the single-hop network and fully utilize the wireless resources, the network coding technology is applied to the source node of the single-hop communication system, that is, when the source node sends the data packet, the source node sends the mixed packet after linear mixing of network coding, so that the purposes of improving the throughput of the single-hop network, ensuring the reliability of data transmission and fully utilizing the wireless resources are achieved.
The patent document of Nanjing university of science and engineering, "an end-to-end real-time reliable transmission method based on network coding" (application date: 2020, 12, month and 01, application number: 2020109303908, application publication number: CN112019304A) discloses an end-to-end real-time reliable transmission method based on network coding, which mainly solves the problems of network congestion, prolonged data transmission time, poor reliability and the like caused by node link instability, channel interference and the like in end-to-end network transmission. Firstly, designing a coding matrix, and coding on the basis of ensuring the linear independence between coding packets; secondly, in the decoding process of the receiving end, a rapid parallel decoding scheme is designed to reduce the calculation pressure of the receiving end; finally, the data transmission is carried out by utilizing the network coding based on the streaming processing. The method has one of two disadvantages, namely, only considering packet loss rate and communication radius of nodes when adding redundant packets according to network conditions, and cannot well cope with channel burst errors. Secondly, the coded data packet matrix is only related to the original data packet of the group, when the data packet received by the group cannot be decoded correctly, only feedback can be sent to the sending end and the sending end is waited to retransmit the coded packet, and decoding can be performed only when the number of the retransmitted effective data packets reaches a certain number, so that great time delay consumption can be generated.
Disclosure of Invention
The present invention aims at the defects of the prior art, and provides a convolutional network coding transmission method based on unequal redundancy insertion, so as to adaptively adjust the number of added redundant packets according to the real-time state of a channel, better cope with channel burst errors, and equivalently increase the coding length and the error correction capability through a convolutional network coding mode, thereby reducing the retransmission times and reducing the time delay.
The technical idea of the invention is as follows: the problem that the random linear network coding RLNC applied to high time delay of point-to-point wireless network transmission and a mode of expanding an original data packet cannot deal with burst errors of a wireless channel is solved. By carrying out convolutional network coding on the packet data packet, if the current group can not be decoded, when the data packet of the next group is received, the data packet of the current group can be decoded in a combined manner without waiting for the last retransmission data packet to be decoded, so that the problem of high time delay of random linear network coding is solved; the increased number of the next group of redundant packets is dynamically adjusted according to the decoding condition of the previous packet, rather than setting the number of the redundant packets to a fixed value, thereby solving the problem of channel burst errors.
According to the above thought, the implementation scheme of the invention comprises the following steps:
(1) uniformly dividing all data packets to be transmitted into M groups, storing each group of data packets in a matrix form, selecting a coding coefficient matrix on a finite field and multiplying the coding coefficient matrix by a packet data packet matrix to generate M groups of coding data packets, wherein the value range of M is [2, + ∞ ];
(2) performing convolutional network coding on M groups of coded data packets according to each L groups of data packets, and sequentially adding the obtained convolutional coded data packets into a sending queue of a sending end, wherein L represents the convolutional depth selected in the value range of [1,10], and k represents the number of each group of data packets;
(3) the method comprises the steps that a sending end sequentially sends convolution coding data packets in a queue to a wireless communication channel, and a receiving end extracts all coding data packets with the same group number as a received coding data packet from a receiving buffer queue after receiving the convolution coding data packets;
(4) judging whether the group of data packets can be correctly decoded according to whether the receiving end coded data packet matrix is full-rank: if the coding data packet matrix is full rank, recording 1 as a correct decoding state; otherwise, recording 0 as the state which can not be decoded correctly;
(5) according to the recording condition, dynamically adjusting the number of the redundant packets added into the current group, and inserting the redundant packets into a sending queue of L groups of coded data packets for sending so as to deal with burst errors of a channel;
(6) the receiving end extracts L groups of coded data packets from the receiving buffer queue and calculates the DOF of the coded data packets, if the DOF is 0, the step (8) is executed, otherwise, the step (7) is executed;
(7) selecting a coding coefficient matrix on a limited domain, left-multiplying the data packet matrix to generate DOF coding retransmission data packets, inserting the DOF coding retransmission data packets into a sending queue for sending, finishing one retransmission, adding one to the retransmission times, and judging whether the current retransmission times reach the set maximum retransmission times: if yes, sending the next group of data packets; otherwise, returning to the step (6);
(8) and the receiving end decodes the extracted coded data packet by using a Gaussian elimination method, records corresponding decoding time and completes transmission of the coded data packet.
Compared with the prior art, the invention has the following advantages:
firstly, because the invention generates and sends the coded data packet, the coding mode is convolution, namely the data packet is subjected to linear mixing in groups and between groups, the correlation among the data packets is enhanced, and the throughput of system transmission is improved; the number of redundancy of the next group of data packets is dynamically adjusted according to the receiving condition of the previous group of data packets, so that the decoding probability of the data packets which cannot be decoded is greatly improved, and the transmission delay of the data packets in the single-hop wireless network is reduced;
secondly, because the receiving end utilizes the convolution coding and decoding method, the error correction capability of the code with the packet length of kxL can be obtained, namely the throughput is large, and the decoding time delay is close to the time delay of the code with the packet length of k.
Thirdly, because the invention adaptively adjusts the next group of data packets according to the receiving condition of the previous group of data packets to increase the number of redundancies, more redundancies can be increased to resist burst errors of a channel under the condition of poor channel state, thereby overcoming the defects that the loss of coded packets in the same batch in the prior art affects the rank of the coded packets in the same batch in a receiving node, and further affects the decoding of a receiving end, so that the transmission success rate of a single-hop wireless network is reduced, the probability that the receiving end receives full-rank coded data packets is improved, and further the transmission success rate of the single-hop wireless network is improved.
Drawings
FIG. 1 is a diagram of a use scenario of the present invention;
fig. 2 is a flow chart of the implementation of the present invention.
Detailed Description
Embodiments of the present invention will be described in further detail below with reference to the accompanying drawings.
Referring to fig. 1, the present embodiment is a process of performing data transmission and feedback retransmission based on a single-path single-hop network topology model, where the model is composed of a sending end and a receiving end, the sending end sends out a coded data packet for convolutional network coding, and transmits the data packet to the receiving end through a channel, and the receiving end feeds back the sending end according to the receiving condition, and if the receiving end feeds back an acknowledgement character ACK, the sending end sends the next group of data packets; otherwise, the transmitting end transmits the retransmission coding data packet.
Referring to fig. 2, an implementation of this example includes the following steps:
step 1, uniformly grouping and coding all data packets to be sent.
Uniformly dividing all data packets to be sent into M groups at a sending end, and storing each group of data packets in a matrix form; in that
The coding coefficient matrix selected from GF (2) and GF (2) in finite field3)、GF(26)、GF(28) Any value randomly chosen in these finite fields;
and the selected coding coefficient matrix is multiplied by the grouped data packet matrix to generate M groups of coding data packets, wherein the value range of M is [2, + ∞ ].
And 2, carrying out convolutional network coding on the coded data packet.
Selecting front L groups of data packets from the M groups of coded data packets to carry out convolutional network coding;
randomly selecting a coding coefficient matrix of k rows and k columns in a finite field, and performing left multiplication on the group of data packet matrices to complete the coding of an original data packet;
randomly selecting a convolution coding coefficient matrix of Y rows and k multiplied by L columns in a finite field, and performing left multiplication on a data packet matrix formed by splicing a group where a data packet to be transmitted is located and all groups transmitted before the group to complete convolution operation of the data packet;
and adding the obtained convolution coding data packets into a sending queue of a sending end in sequence, wherein L represents the selected convolution depth in the value range of [1,10], k represents the number of each group of data packets, and Y is the number of the added redundant packets.
And 3, the transmitting end transmits the convolution coding data packet, and the receiving end extracts the coding data packet.
The transmitting end sequentially transmits the convolution coding data packets in the queue to a wireless communication channel, and after receiving the convolution coding data packets, the receiving end extracts all coding data packets with the same group number as the received coding data packets from the receiving buffer queue.
And 4, judging whether the group of data packets can be correctly decoded according to whether the receiving end coded data packet matrix is full rank.
The rank of the receiving matrix of i × N rows and i × k columns is calculated as r by calling the rank function of Matlab, and is compared with the number of columns of the receiving matrix:
if r is i × k, the decoding is full rank and correct, and the state is recorded as 1;
otherwise, the decoding can not be correctly carried out, and the state is marked as 0;
where i is the number of groups and N is the total number of original and redundant packets.
And 5, dynamically adjusting the number of the redundant packets added into the current group according to the recording condition.
Counting the number j of groups which are not decoded correctly, generating j multiplied by X redundant coding packets, and inserting the redundant coding packets into a transmission queue of L groups of coding data packets for transmission so as to deal with burst errors of a channel, wherein X represents a linear coefficient with the value range of [1, k ].
And 6, extracting the L groups of coded data packets from the receiving buffer queue by the receiving end, and calculating the DOF of the L groups of coded data packets.
Extracting L groups of coded data packets from a receiving end, calling rank function of Matlab to calculate rank r' of receiving matrix of L multiplied by N rows and L multiplied by k columns,
comparing the rank r' with the number of columns L × k of the receive matrix, the degree of freedom DOF is obtained:
if r' is L × k, the degree of freedom DOF is 0, and step 8 is performed;
otherwise, DOF — L × k-r', step 7 is performed.
And 7, generating and sending the retransmission data packet.
Selecting a coding coefficient matrix on a limited domain, left-multiplying the data packet matrix to generate DOF coding retransmission data packets, inserting the DOF coding retransmission data packets into a transmission queue for transmission, completing one retransmission,
and adding one to the retransmission times, and judging whether the current retransmission times reach the set maximum retransmission times:
if yes, sending the next group of data packets; otherwise, the procedure returns to the step 6,
wherein, the set maximum retransmission times is set according to one of the following two conditions:
the method comprises the following steps that a sending end sends a group of data packets to a receiving end, in order to guarantee reliability, the retransmission times of the receiving end when the receiving end can decode with the probability close to 1 are calculated, and the retransmission times are set as the maximum retransmission times;
and secondly, when the erasure probability of the wireless communication channel is in the interval of [0.2,1], in order to prevent the generation of huge transmission delay caused by repeated retransmission, an integer randomly selected in the value range of [0,4] is set as the maximum retransmission time.
And 8, decoding the extracted coded data packet by the receiving end by using a Gaussian elimination method, and recording corresponding decoding time to finish the transmission of the coded data packet.
The foregoing description is only an example of the present invention and is not intended to limit the invention, so that it will be apparent to those skilled in the art that various changes and modifications in form and detail may be made therein without departing from the spirit and scope of the invention.