Two-way wireless relay transmission method suitable for multiple relay nodes
11489583 · 2022-11-01
Assignee
Inventors
Cpc classification
H04B7/15521
ELECTRICITY
International classification
Abstract
A two-way wireless relay transmission method suitable for multiple relay nodes proposes a transmission solution based on a Decode-and-Forward (DF) technology and Network Coding (Network Coding, NC) technology suitable for a two-way wireless relay network. The method has an advantage of achieving a maximum spectrum efficiency based on the DF technology, and proposes a retransmission-free error control solution to avoid a problem of error spreading brought about by the NC technology to obtain an effective transmission throughput that is superior to existing solutions.
Claims
1. A two-way wireless relay transmission method suitable for multiple relay nodes comprising the following steps: S1. numbering two terminal nodes as 0 and n+1 respectively, and numbering other n relay nodes as 1, 2, 3, . . . , n, for any integer k∈[0, n], wherein nodes k and k+1 are neighbor nodes of a two-way relay transmission network; S2. configuring a packet buffer (PB) for each node i∈[0, n+1] of the two-way relay transmission network; for a terminal node of the two terminal nodes, using the PB to temporarily store a single data packet received by the terminal node from its neighbor node; and for a non-terminal node, using the PB to temporarily store a data packet to be sent generated by performing an XOR operation; configuring a transmission buffer (TB) for each terminal node of the two terminal nodes to temporarily store all data packets to be sent generated by the terminal node; S3. Starting from timeslot 0, each node of the two-way relay transmission network transmits the data packets generated by the two terminal nodes, the terminal node 0 and the terminal node n+1, according to the following rules: 1) each node i∈[0, n+1] sends the data packets only within timeslots (i modulo 3), 3+(i modulo 3), 6+(i modulo 3), . . . , 3k+(i modulo 3), . . . , and receive the data packets from its neighbor nodes within remaining time slots timeslots, wherein k is any non-negative integer; 2) when a node j∈[1, n] gets a transmission opportunity, if the data packet buffered in the PB of a node j is {right arrow over (0)}, the node j remains silent, wherein the data packet {right arrow over (0)} refers to an all-0 bit packet having a fixed length; otherwise, the node j sends the data packet buffered in its PB; 3) after sending the data packet buffered in its PB, only node 1 or node n updates the data packet buffered in its PB to a data packet 0; 4) when the node j∈[1, n] receives the data packet sent by a neighbor node, the node j first performs the XOR operation on the received data packet with the data packet buffered in its PB and then updates its PB according to an XOR result; 5) when a terminal node gets a transmission opportunity, it first sends the first data packet buffered in its TB to its neighbor node, then performs the XOR operation on the first data packet buffered in its TB with the data packet buffered in its PB, updates its PB according to the XOR result, and finally pops the first data packet buffered in its TB; 6) when a terminal node receives the data packet sent by its neighbor node, it will perform the following two operations sequentially: 6.1) performing the XOR operation on the received data packet with the data packet buffered in its PB; if the XOR result is not {right arrow over (0)}, submitting the XOR result to an upper layer protocol for further processing; 6.2) updating its PB with the received data packet.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
DETAILED DESCRIPTION OF THE EMBODIMENTS
(5) The present invention will be described in detail below in conjunction with the accompanying drawings and simulation examples to prove the practicability of the present invention.
(6) For the convenience of analysis, suppose that the lengths of the data packets sent by two terminal nodes (i.e. node 0 and node n+1) are both fixed at 8472 bits, and the wireless channel transmission rate between any two adjacent nodes is fixed at 11 Mbit/s.
(7)
(8) The two-way relay transmission algorithm based on digital network coding technology designed by the present invention includes the following steps:
(9) Step 1: numbering 2 terminal nodes as 0 and 4 respectively, and numbering 3 relay nodes as 1, 2 and 3, such that for any integer i∈[0, 3], nodes i and i+1 are two neighbor nodes of the two-way relay transmission network.
(10) Step 2: configuring a packet buffer (PB) for each node i∈[0, 4] of the two-way relay transmission network, such that each terminal node, i.e. node 0 or node 4, will use the buffer to temporarily store a single data packet successfully received by the terminal node from the neighbor node; and each node j∈[1, 3] will use the buffer to temporarily store a data packet to be sent generated by performing XOR operation. At the same time, configuring a transmission buffer (TB) for node 0 (or node 4) of the network to temporarily store all data packets to be sent generated by node 0 (or node 4). Wherein, before the two-way relay transmission starts, each node is required to initialize its PB into a data packet {right arrow over (0)}, that is, an all-0 bit packet having a fixed length.
(11) Step 3: starting from time slot 0, each node of the 3-way relay transmission network relays transmission of data packets sent by node 0 and node n+1 according to the following rules:
(12) (3.1) each node i∈[0, 4] can send data packets only within time slots (i modulo 3), 3+(i modulo 3), 6+(i modulo 3), . . . , 3k+(i modulo 3), . . . , and receive data packets from neighbor nodes within remaining time slots. Wherein k is any non-negative integer.
(13) For example, node 0 can respectively send its generated data packets x.sub.1, x.sub.2, x.sub.3, . . . only within time slots 0, 3, 6, . . . , node 4 can respectively send its generated data packets y.sub.1, y.sub.2, y.sub.3, . . . only within time slots 1, 4, 7, . . . , and node 3 also can respectively send data packets buffered in its PB only within time slots 3, 6, 9, . . . .
(14) (3.2) When node j∈[1, 3] gets a transmission opportunity, if the data packet buffered in its PB is {right arrow over (0)}, it remains silent; otherwise, it will send the data packet buffered in its PB. In particular, after node 1 or node n sends its data packet, it is required to update its PB as data packet {right arrow over (0)}.
(15) For example, when node 3 gets a transmission opportunity within time slot 0, since the data packet buffered in its PB is {right arrow over (0)}, it remains silent in this time slot. When node 3 gets a transmission opportunity within time slot 3, it sends the data packet x.sub.1⊕y.sub.1 buffered in its PB. In addition, after transmission of data packets in time slots 1, 4, 7, . . . , node 1 immediately updates its PB with the data packet {right arrow over (0)}. Similarly, after transmission of data packets in time slots 3, 6, 9, . . . , node 3 immediately updates its PB with the data packet {right arrow over (0)}. Conversely, after transmission of data packets in time slots 2, 5, 8, . . . , the content buffered in PB of node 2 remains unchanged.
(16) (3.3) When node j∈[1, 3] receives a data packet sent by a neighbor node, it is required to first perform XOR operation on the received data packet with the data packet buffered in its PB, and then update its PB according to the XOR result.
(17) For example, upon respectively receiving data packet x.sub.1 or y.sub.2 sent by node 2 or node 4 within time slot 2 or time slot 4, node 3 is required to first perform XOR operation on the received data packet with the data packet buffered in its PB, i.e. y.sub.1 or {right arrow over (0)}, and then update its PB according to the XOR result, i.e. x.sub.1⊕y.sub.1 or y.sub.2.
(18) (3.4) When node 0 or node n+1 gets a transmission opportunity, it is required to first send the first data packet buffered in its TB, then perform XOR operation on the first data packet buffered in its TB with the data packet buffered in its PB, update its PB according to the XOR result, and finally pop the first data packet buffered in its TB from its TB.
(19) For example, upon respectively getting a transmission opportunity within time slots 0, 3 or 6, node 0 will first send the first data packet buffered in its PB, i.e. x.sub.1, x.sub.2 or x.sub.3, then perform XOR operation on the first data packet buffered in its TB with the data packet buffered in its PB, i.e. {right arrow over (0)}, x.sub.1 or x.sub.1⊕x.sub.2, update its PB according to the XOR result, i.e. x.sub.1, x.sub.1⊕x.sub.2 or x.sub.1⊕x.sub.2⊕x.sub.3, and finally pops the first data packet buffered in its TB, i.e. x.sub.1, x.sub.2 or x.sub.3, from its TB, such that the first data packet buffered in its TB becomes x.sub.2, x.sub.3 or x.sub.4.
(20) (3.5) When node 0 or node n+1 receives the data packet sent by the neighbor node, it will perform sequentially the following two operations:
(21) (3.5.1) performing XOR operation on the received data packet with the data packet buffered in its PB. If the XOR result is not {right arrow over (0)}, submitting the XOR result to an upper layer protocol for further processing.
(22) For example, after respectively receiving data packets x.sub.1, x.sub.1⊕x.sub.2 or x.sub.1⊕x.sub.2⊕x.sub.3⊕y.sub.1 from node 1 within time slots 1, 4 or 7, node 0 will first perform XOR operation on the received data packet respectively with the data packets buffered in its PB x.sub.1, x.sub.1⊕x.sub.2 or x.sub.1⊕x.sub.2⊕x.sub.3, and respectively generate XOR results {right arrow over (0)}, {right arrow over (0)} or y.sub.1. At the end of time slots 1 or 4, since the XOR result is {right arrow over (0)}, node 0 will not submit the corresponding XOR result to the upper layer protocol. On the contrary, at the end of time slot 7, since the XOR result is not {right arrow over (0)}, node 0 will submit the corresponding XOR result y.sub.1 to the upper layer protocol.
(23) (3.5.2) Updating its PB with the received data packet.
(24) For example, after respectively receiving data packets x.sub.1, x.sub.1⊕x.sub.2 or x.sub.1⊕x.sub.2⊕x.sub.3⊕y.sub.1 from node 1 within time slots 1, 4 or 7, node 0 will respectively update its PB as the received data packets, i.e. x.sub.1, x.sub.1⊕x.sub.2 or x.sub.1⊕x.sub.2⊕x.sub.3⊕y.sub.1.
(25) It can be seen from
(26) On the other hand, when an error occurs in transmission of data packet x.sub.1 by node 2 to node 3 within time slot 2 while all other data packets are transmitted correctly, this error will also cause node 4 to receive and decode an erroneous data packet x.sub.1 within time slot 3. For similar reasons, the subsequent data packets x.sub.2, x.sub.3, . . . , which are respectively received and decoded by node 4 within time slots 6, 9, . . . , are also correct.
(27) Obviously, with the increase of two-way relay transmission time slots, as two terminal nodes send or receive more and more data packets, the XOR operation for generating the data packets buffered by their PBs becomes more and more complicated. However, since the XOR operation will always generate a single data packet having a fixed bit length, this operation will not make the implementation of each terminal node more complicated, and the terminal node is not required to identify any data packet involved in this XOR operation.
(28)
(29)