# Patent

## Title
Data retransmission method, apparatus, and system

## Abstract

A data retransmission method, apparatus, and system can improve a success ratio of data packet retransmission. A data retransmission method includes: after a source node continuously transmits at least two data packets to a destination node according to a go-back-N automatic repeat request, monitoring and decoding, by a relay node, the at least two data packets; storing a copy of a successfully decoded data packet; monitoring a response message to each data packet, where the response message is returned by the destination node to the source node; and sending a copy of a data packet that corresponds to a reception negative acknowledgment message to the destination node, when the monitored response message is the reception negative acknowledgment message.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of International Application No. PCT/CN2011/072965, filed on Apr. 18, 2011, which is hereby incorporated by reference in their entireties.


TECHNICAL FIELD
The present invention relates to the field of communications, and in particular, to a data packet retransmission method, apparatus, and system.
BACKGROUND
A data packet of a wireless communication system often cannot be received correctly. To improve reliability of data transmission, An ARQ (Automatic Repeat Request, automatic repeat request) technology is provided in the prior art.
In the ARQ technology, an SW-ARQ (Stop and Wait ARQ, stop and wait automatic repeat request) technology and a GBN-ARQ (Go-Back-N ARQ, go-back-N automatic repeat request) technology are often used. In the SW-ARQ technology, when a receiving end returns a reception acknowledgment message (ACK) for a previous data packet, a transmitting end transmits a next data packet; and when the receiving end returns a reception negative acknowledgment message (NACK) for the previous data packet, the transmitting end retransmits the previous data packet. Therefore, by using this technology, a system resource is wasted in a process of waiting for ACK/NACK. In the GBN-ARQ technology, the transmitting end continuously transmits data packets in sequence; and when receiving NACK returned by the receiving end, the transmitting end stops transmitting a new data packet, retransmits a data packet that corresponds to the NACK, and retransmits, in sequence, data packets subsequent to the data packet that corresponds to the NACK. Compared with the SW-ARQ technology, by using the GBN-ARQ technology, a utilization ratio of a channel is improved.
During implementation of data retransmission by using GBN-ARQ, the inventor finds that the prior art has at least the following problems. A relay cooperation communications technology is more and more used in an existing communication system to improve a success ratio of data transmission; however, for GBN-ARQ, a solution of the relay cooperation communications technology is not used, and therefore, when data retransmission is performed by using the GBN-ARQ technology, a success ratio of data packet retransmission is relatively low.
SUMMARY OF THE INVENTION
Embodiments of the present invention provide a data retransmission method, apparatus, and system, which can improve a success ratio of data packet retransmission.
In order to achieve the foregoing objective, the embodiments of the present invention adopt the following technical solutions.
A data retransmission method includes monitoring and decoding, by a relay node, each data packet that is sent by a source node for a first time in go-back-N automatic repeat request GBN-ARQ mode to a destination node, storing a copy of a successfully decoded data packet, monitoring a response message to each data packet, where the response message is returned by the destination node to the source node, and sending a copy of a data packet that corresponds to a reception negative acknowledgment message NACK to the destination node, when the monitored response message is the reception negative acknowledgment message NACK.
A data retransmission apparatus includes a first monitoring and decoding unit, configured to monitor and decode each data packet that is sent by a source node for a first time in go-back-N automatic repeat request GBN-ARQ mode to a destination node, a copy storage unit, configured to store a copy of a successfully decoded data packet, a response monitoring unit, configured to monitor a response message returned by the destination node to the source node, and a copy sending unit, configured to send a copy of a data packet that corresponds to a reception negative acknowledgment message NACK to the destination node, when the monitored response message is the reception negative acknowledgment message NACK.
A data retransmission system includes a source node, configured to send a data packet to a destination node in go-back-N automatic repeat request GBN-ARQ mode, and receive a response message of the destination node to each data packet, a relay node, configured to monitor and decode each data packet that is sent by the source node for a first time in go-back-N automatic repeat request GBN-ARQ mode to the destination node, and store a copy of a successfully decoded data packet, and the destination node, configured to receive at least two data packets sent by the source node, and return a response message, where the relay node is further configured to send a copy of a data packet that corresponds to a reception negative acknowledgment message NACK to the destination node, when the monitored response message is the reception negative acknowledgment message NACK, and the destination node is further configured to receive the copy of the data packet, where the copy of the data packet is sent by the relay node.
With the data retransmission method, apparatus, and system provided in the embodiments of the present invention, in an existing GBN-ARQ protocol, a relay cooperation communications technology is used, and a relay node is set to perform monitoring and decoding and participate in performing data transmission, so that the relay node performs data retransmission according to a monitored response message when a communication system performs data retransmission in go-back-N mode, thereby improving a success ratio of data retransmission of the system.



BRIEF DESCRIPTION OF THE DRAWINGS
For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawing, in which:
FIG. 1 is a flow chart of a data retransmission method according to Embodiment 1 of the present invention;
FIG. 2 is a block diagram of a data retransmission apparatus according to Embodiment 1 of the present invention;
FIG. 3 is a flow chart of a data retransmission method according to Embodiment 2 of the present invention;
FIG. 4 is a block diagram of a data retransmission apparatus according to Embodiment 3 of the present invention;
FIG. 5 is a block diagram of a data retransmission system when a response message is NACK according to Embodiment 4 of the present invention;
FIG. 6 is a block diagram of a data retransmission system when a response message is ACK according to Embodiment 4 of the present invention;
FIG. 7 is a flow chart of a working method of a data retransmission system according to Embodiment 4 of the present invention;
FIG. 8 is a schematic diagram of a structure of a frame according to Embodiment 2 of the present invention;
FIG. 9 is a schematic diagram of normally receiving/sending a data packet by each node according to Embodiment 2 of the present invention;
FIG. 10 is a schematic diagram of assisting a source node by a relay node in sending data according to Embodiment 2 of the present invention;
FIG. 11 is a schematic diagram showing that a relay node fails to decode a data packet and cannot send a copy of the data packet according to Embodiment 2 of the present invention;
FIG. 12 is a schematic diagram showing that a relay node re-monitors and re-decodes a re-sent data packet according to Embodiment 3 of the present invention;
FIG. 13 is a simulation data diagram of a simulation experiment according to Embodiment 4 of the present invention; and
FIG. 14 is a simulation data diagram of a simulation experiment according to Embodiment 4 of the present invention.



DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
The technical solutions in the embodiments of the present invention are described clearly in the following with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the embodiments to be described are merely a part rather than all of the embodiments of the present invention. All other embodiments obtained by persons of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.
A first embodiment of the present invention provides a data retransmission method. As shown in FIG. 1, the method includes the following steps.
101: Monitor and decode each data packet that is sent by a source node for a first time in go-back-N automatic repeat request GBN-ARQ mode to a destination node.
When sending a data packet in go-back-N automatic repeat request (GBN-ARQ) mode, a source node continuously sends N data packets first, where the N data packets are at least two data packets. When the N data packets are sent, a relay node monitors and attempts to decode the data packets. After finishing sending the N data packets, the source node temporarily stops data packet sending and waits for return of ACK or NACK, where the ACK or NACK corresponds to a first sent data packet among the N sent data packets.
102: Store a copy of a successfully decoded data packet.
For a successfully decoded data packet, the relay node stores a copy of the data packet.
103: Monitor a response message to each data packet, where the response message is returned by the destination node to the source node.
When the destination node successfully receives a data packet sent by the source node, a returned response message is ACK; and when the destination node cannot successfully receive a data packet sent by the source node, a returned response message is NACK. The relay node monitors a response message to each data packet.
104: When the monitored response message is NACK, send a copy of a data packet that corresponds to the NACK.
When NACK is monitored, if a data packet that corresponds to the NACK is successfully decoded, the relay node sends, in a time slot that is in a frame and corresponds to the relay node itself, a copy of a data packet that corresponds to the monitored NACK to the destination node.
An embodiment of the present invention further provides a data retransmission apparatus. As shown in FIG. 2, the apparatus includes a first monitoring and decoding unit 21, a copy storage unit 22, a response monitoring unit 23, and a copy sending unit 24.
The first monitoring and decoding unit 21 is configured to monitor and decode each data packet that is sent by a source node for a first time in go-back-N automatic repeat request GBN-ARQ mode to a destination node. The copy storage unit 22 is configured to store a copy of a successfully decoded data packet. The response monitoring unit 23 is configured to monitor a response message returned by the destination node to the source node. The copy sending unit 24 is configured to send a copy of a data packet that corresponds to NACK, when the monitored response message is the NACK.
With the data retransmission method and apparatus provided in the embodiments of the present invention, in an existing GBN-ARQ protocol, a relay cooperation communications technology is used, and a relay node is set to perform monitoring and decoding and participate in performing data transmission, so that the relay node performs data retransmission according to a monitored response message when a communication system performs data retransmission in go-back-N mode according to the GBN-ARQ protocol, thereby improving a success ratio of data retransmission of the system.
A second embodiment of the present invention provides a data retransmission method. As shown in FIG. 3, the method includes the following steps.
301: Monitor and decode each data packet that is sent by a source node for a first time in go-back-N automatic repeat request GBN-ARQ mode to a destination node.
When sending a data packet according to GBN-ARQ, a source node continuously sends N data packets first, where the N data packets are at least two data packets. When the N data packets are sent, a relay node monitors and attempts to decode the data packets.
After finishing sending the N data packets, the source node temporarily stops data packet sending, waits for return of ACK or NACK, where the ACK or NACK corresponds to a first sent data packet among the at least two sent data packets, and performs a next action according to a returned response message.
302: Store a copy of a successfully decoded data packet.
For a successfully decoded data packet, the relay node stores a copy of the data packet.
303: Monitor a response message to each data packet, where the response message is returned by the destination node to the source node.
When the destination node successfully receives a data packet sent by the source node, a returned response message is ACK; and when the destination node cannot successfully receive a data packet sent by the source node, a returned response message is NACK. The relay node monitors a response message to each data packet.
304: Determine whether the monitored response message is NACK.
If the monitored response message is NACK, perform step 305; otherwise, proceed to step 307.
305: When the monitored response message is the NACK, delete all stored copies of data packets that are previous to a copy of a data packet that corresponds to the reception negative acknowledgment message NACK.
306: Send the copy of the data packet that corresponds to the NACK.
A sequence between step 305 and step 306 may not be limited.
The NACK is also received by the source node. After receiving the NACK, the source node re-sends the data packet that corresponds to the NACK and a subsequent sent data packet.
Specifically, in a frame in which the relay node sends the copy of the data packet that corresponds to the NACK, the source node also re-sends the data packet that corresponds to the NACK to the destination node. The source node re-sends the data packet and the relay node sends the copy of the data packet respectively in their corresponding time slot in the same frame. FIG. 8 is a schematic diagram of a structure of the frame. A duration of the whole frame is TF, one frame is formed by M time slots, and a duration of each time slot is TF/M. For example, a time slot s3 is a time slot that corresponds to the source node, and a time slot sR is a time slot that corresponds to the relay node.
Generally, the destination node receives data packets in sequence, and when an error occurs to reception of a data packet, subsequent data packets are discarded. Therefore, after re-sending the data packet that corresponds to the NACK, the source node needs to re-send, in sequence, sent data packets subsequent to the data packet that corresponds to the NACK to the destination node. When the source node re-sends, in sequence, the sent data packets subsequent to the data packet that corresponds to the NACK, the relay node re-monitors and re-decodes a sent data packet that is not correctly decoded. Definitely, alternately the relay node may also re-monitor and re-decode all sent data packets that are re-sent by the source node in sequence and are subsequent to the data packet that corresponds to the NACK.
307: When the monitored response message is ACK, monitor and decode a new data packet sent by the source node.
After receiving the ACK, the source node continues to send a new data packet to the destination node; and at this time, the relay node monitors and attempts to decode the new data packet sent by the source node.
The method described in this embodiment of the present invention is described in the following by using an example. As shown in FIG. 9, it is assumed that a duration of a frame is TF, the source node occupies a time slot S1 of a frame to send a data packet, and the relay node occupies a time slot SR of a frame to send a copy of a data packet. It is assumed that, in a system shown in FIG. 9, when sending a data packet according to the GBN-ARQ, the source node first continuously sends 5 data packets in a sequence from PACKET1 to PACKET5, and then stops the sending and waits for return of ACK/NACK. For example, for the PACKET1, a response message of the PACKET1 is ACK1 or NACK1. When the source node sends a data packet, the relay node monitors the data packet. In FIG. 9, when the source node finishes sending the PACKET1 to PACKET5, a response message of the PACKET1 is returned to the source node. If the response message is ACK1, the source node continues to send a sixth data packet PACKET6, and the relay node continues to perform monitoring.
When a response message of the second data packet PACKET2 is NACK2, if the relay node successfully decodes the PACKET2, the source node and the relay node respectively re-send, in their corresponding time slot in the same frame, the PACKET2 to the destination node, as shown in FIG. 10. Meanwhile, the source node re-sends all transmitted data packets subsequent to the second data packet, that is, PACKET3 to PACKET6. If the relay node fails to decode the PACKET2, the relay node cannot send a copy of the PACKET2 but only the source node re-sends the PACKET2, as shown in FIG. 11.
In addition, if the relay node fails to decode a packet subsequent to the data packet that corresponds to the NACK, the relay node re-monitors and re-decodes, in a re-sending process of the source node, the data packet that is subsequent to the data packet that corresponds to the NACK and fails to be decoded. As shown in FIG. 12, the relay node successfully decodes the PACKET1 but fails to decode the PACKET2, and a response message that corresponds to the PACKET1 is NACK1. After receiving the NACK1, the source node re-sends data packets from the PACKET1 to the PACKET5. When re-sending the PACKET2, the relay node re-monitors and re-decodes the PACKET2 that fails to be decoded. Definitely, alternately the relay node may also re-monitor and re-decode all the data packets from the PACKET1 to the PACKET5 that are re-sent by the source node in sequence.
With the data retransmission method provided in this embodiment of the present invention, in an existing GBN-ARQ protocol, a relay cooperation communications technology is used, and a relay node is set to perform monitoring and decoding and participate in performing data transmission, so that a source node and the relay node can perform data retransmission in different time slots in the same frame when a communication system performs data retransmission in go-back-N mode according to the GBN-ARQ protocol, thereby improving a success ratio of data retransmission of the system.
A third embodiment of the present invention provides a data retransmission apparatus. As shown in FIG. 4, the apparatus includes a first monitoring and decoding unit 41, a copy storage unit 42, a response monitoring unit 43, a copy sending unit 44, and a copy deleting unit 45.
The first monitoring and decoding unit 41 is configured to monitor and decode each data packet that is sent by a source node for a first time in go-back-N automatic repeat request GBN-ARQ mode to a destination node. The copy storage unit 42 is configured to store a copy of a successfully decoded data packet. The response monitoring unit 43 is configured to monitor a response message returned by the destination node to the source node. The copy sending unit 44 is configured to send a copy of a data packet that corresponds to NACK, when the monitored response message is the NACK. The copy deleting unit 45 is configured to delete all stored copies of data packets that are previous to the copy of the data packet that corresponds to the NACK, after the NACK is monitored.
In a frame in which the copy storage unit 42 of the relay node sends the copy of the data packet that corresponds to the NACK, the source node also re-sends the data packet that corresponds to the NACK to the destination node, and the source node and the relay node respectively send a data packet in their corresponding time slot in the same frame.
When receiving ACK, the source node continues to send a new data packet to the destination node. At this time, the first monitoring and decoding unit 41 monitors and decodes the new data packet sent by the source node. In addition, after re-sending the data packet that corresponds to the NACK, the source node re-sends, in sequence, sent data packets subsequent to the data packet that corresponds to the NACK. Optionally, the apparatus may include a second monitoring and decoding unit 412, configured to re-monitor and re-decode a sent data packet that is not correctly decoded, when the source node re-sends the sent data packets subsequent to the data packet that corresponds to the NACK.
With the data retransmission apparatus provided in this embodiment of the present invention, in an existing GBN-ARQ protocol, a relay cooperation communications technology is used, and a relay node is used to perform monitoring and decoding and participate in performing data transmission, so that a source node and the relay node can perform data retransmission in different time slots in the same frame when a communication system performs data retransmission in go-back-N mode according to the GBN-ARQ protocol, thereby improving a success ratio of data retransmission of the system.
A fourth embodiment of the present invention provides a data retransmission system. As shown in FIG. 5 and FIG. 6, the system includes a source node 51, a relay node 52, and a destination node 53.
The source node 51 is configured to send N data packets to the destination node in go-back-N automatic repeat request GBN-ARQ mode, and receive a response message of the destination node to each data packet. The relay node 52 is configured to monitor and decode each data packet that is sent by the source node 51 for a first time in go-back-N automatic repeat request GBN-ARQ mode to the destination node, and store a copy of a successfully decoded data packet. The destination node 53 is configured to receive the N data packets sent by the source node 51, and return a response message to the source node 51.
Specifically, as shown in FIG. 5, the source node 51 sends a data packet i to the destination node 53, and the relay node 52 monitors and decodes the data packet i. When a response message that is received by the source node 51 and corresponds to the data packet i is NACK, the source node 51 re-sends the data packet i and re-sends, in sequence, sent data packets subsequent to the data packet i to the destination node 53. After monitoring the NACK, if the relay node 52 itself has successfully finished decoding the data packet i, the relay node 52 sends a copy of the data packet i.
In each frame, the source node 51 sends or re-sends data in a fixed time slot that corresponds to the source node 51. In the same frame in which the source node 51 re-sends the data packet that corresponds to the NACK, the relay node 52 sends, in its corresponding time slot, a copy of the data packet that corresponds to the NACK. The relay node 52 is further configured to re-monitor and re-decode a sent data packet that is not successfully decoded, when the source node re-sends all sent data packets.
When the response message received by the source node is ACK, the source node sends a new data packet subsequent to the data packet i, as shown in FIG. 6.
A decoding failure may occur when the relay node 52 monitors a data packet sent by the source node 51. When the relay node 52 fails to decode a data packet and the destination node 53 returns NACK for the data packet, after the relay node 52 monitors the NACK that corresponds to the data packet, the relay node 52 cannot send a copy of the data packet that fails to be decoded, but the source node 51 can re-send the data packet after the source node 51 receives the NACK.
After monitoring the NACK, the relay node 52 further needs to delete all stored copies of data packets that are previous to the copy of the data packet that corresponds to the NACK. By deleting all the stored copies of the data packets that are previous to the copy of the data packet that corresponds to the NACK, cache space of the relay node 52 is saved, so as to store a copy of a new arriving data packet.
The data retransmission system provided in this embodiment of the present invention performs data transmission according to the following procedure, as shown in FIG. 7.
701: A source node sends N data packets to a destination node in go-back-N automatic repeat request GBN-ARQ mode, where the N data packets are at least two data packets.
702: A relay node monitors and attempts to decode the N data packets.
703: After receiving a data packet sent by the source node, the destination node returns a response message. If the data packet sent by the source node is successfully received and the returned response message is ACK, proceed to step 704; and if the data packet sent by the source node cannot be received successfully and the returned response message is NACK, proceed to step 705.
704: After receiving the ACK, the source node continues to send a new data packet.
705: After receiving the NACK, the source node retransmits a data packet that corresponds to the NACK.
706: After monitoring the NACK, if the relay node successfully decodes the data packet that corresponds to the NACK, the relay node sends a copy of the data packet that corresponds to the NACK.
After monitoring the NACK, the relay node needs to delete stored copies of data packets that are previous to the copy of the data packet that corresponds to the NACK. If the relay node cannot successfully decode the data packet that corresponds to the NACK, the relay node cannot send the copy of the data packet that corresponds to the NACK to the destination node.
After the relay node and the relay node finish retransmitting the data packet/transmitting the copy of the data packet, the procedure proceeds to step 707.
707: The source node re-sends, in sequence, sent data packets subsequent to the data packet that corresponds to the NACK to the destination node.
708: When the source node re-sends, in sequence, the data packets, the relay node re-monitors and re-decodes a data packet that cannot be decoded successfully during first transmission among all data packets that are re-sent in sequence.
Effects of this embodiment of the present invention are described in the following through a simulation experiment performed by using MATLAB software.
Parameters in the simulation experiment are described first.
A duration of each frame is TF, each frame has M time slots, and a length of a time slot is




  
    
      T
      F
    
    M
  
  .




A delay between time of sending a data packet from a source node and time of receiving ACK/NACK is TR, and it is assumed that TR=N·TF, where N>1.
Time of transmitting a data packet from the source node to a destination node is Tt.
Transmission time of returning ACK/NACK from the destination node to the source node is Tf.
It is assumed that a data packet that arrives at the destination node complies with Poisson distribution in which a parameter λ=0.01.
The following can be obtained:

TR=TF+Tt+Tf.

A duration of a working status of a systems is




  
    
      T
      F
    
    M
  
  .




A duration of an idle status of the systems is




  
    
      
        (
        
          M
          -
          1
        
        )
      
      ⁢
      
        T
        F
      
    
    M
  
  .




An error probability is P when each frame is sent.
Required time for successfully transmitting a data packet is X.
When the system reaches a stable status, a throughput rate of the system is Th, and Th=1/X.
A required waiting time before each data packet obtains a service is W, and



  
    
      W
      =
      
        
          
            λ
            ⁢
            
              
            
            ⁢
            
              E
              ⁡
              
                (
                
                  X
                  2
                
                )
              
            
          
          
            2
            ⁢
            
              (
              
                1
                -
                ρ
              
              )
            
          
        
        +
        
          
            E
            ⁡
            
              (
              
                V
                2
              
              )
            
          
          
            2
            ⁢
            
              
            
            ⁢
            
              E
              ⁡
              
                (
                V
                )
              
            
          
        
      
    
    ,
    
      

    
    ⁢
    where
  




  
    ρ
    =
    
      
        λ
        ·
        
          X
          _
        
      
      <
      1.
    
  



Waiting time that a data packet waits for a time slot of a next frame is V.
The following can be obtained:




  
    
      E
      ⁡
      
        (
        
          V
          2
        
        )
      
    
    
      2
      ⁢
      
        
      
      ⁢
      
        E
        ⁡
        
          (
          V
          )
        
      
    
  
  =
  
    
      
        T
        F
      
      2
    
    .
  




Based on the foregoing result, the following cant be obtained:




  W
  =
  
    
      
        λ
        ·
        
          
            X
            2
          
          _
        
      
      
        2
        ⁢
        
          (
          
            1
            -
            ρ
          
          )
        
      
    
    +
    
      
        
          T
          F
        
        2
      
      .
    
  




A total transmission time of each data packet in the system is T=W+X.
An average packet loss rate from the source node to the destination node is PS,D.
An average packet loss rate from the source node to a relay node is PS,R.
An average packet loss rate from the relay node to the destination node is PR,D.
For a GBN-ARQ technology and a technology (represented by GBN-CARQ in the simulation experiment) in this embodiment of the present invention, where the technology uses a relay cooperation communications technology on the basis of GBN-ARQ, when a data packet fails to be sent, the source node re-sends the data packet that fails to be sent and (N−1) sent data packets subsequent to the data packet that fails to be sent. Therefore, finally, the number of times required for successfully transmitting the data packets is:

E(K)=1·(1−PX1)+(N+1)·PX1·(1−PX2)+(2N+1)·PX1·PX2·(1−PX2)+ . . . +(1N+1)·PX1·PX2i-1·(1−PX2),

where PX1, indicates a failure possibility of first transmission, and PX2 indicates a failure possibility of retransmission.

Therefore, the following can be obtained:



  
    
      
    
    ⁢
    
      
        
          
            
              X
              _
            
            =
            
            ⁢
            
              
                
                  (
                  
                    1
                    -
                    
                      P
                      X
                      1
                    
                  
                  )
                
                ·
                
                  (
                  
                    
                      T
                      F
                    
                    +
                    
                      T
                      f
                    
                    +
                    
                      T
                      t
                    
                  
                  )
                
              
              +
            
          
        
      
      
        
          
            
            ⁢
            
              
                ∑
                
                  l
                  =
                  1
                
                ∞
              
              ⁢
              
                
              
              ⁢
              
                
                  (
                  
                    
                      l
                      ·
                      
                        T
                        R
                      
                    
                    +
                    
                      (
                      
                        
                          T
                          F
                        
                        +
                        
                          T
                          f
                        
                        +
                        
                          T
                          t
                        
                      
                      )
                    
                  
                  )
                
                ·
                
                  P
                  X
                  1
                
                ·
                
                  P
                  X
                  
                    2
                    
                      l
                      -
                      1
                    
                  
                
                ·
                
                  (
                  
                    1
                    -
                    
                      P
                      X
                      2
                    
                  
                  )
                
              
            
          
        
      
      
        
          
            =
            
            ⁢
            
              
                (
                
                  
                    T
                    F
                  
                  +
                  
                    T
                    f
                  
                  +
                  
                    T
                    t
                  
                
                )
              
              +
              
                
                  
                    P
                    X
                    1
                  
                  ·
                  
                    T
                    R
                  
                
                
                  1
                  -
                  
                    P
                    X
                    2
                  
                
              
            
          
        
      
    
  




  
    
      
    
    ⁢
    and
  




  
    
      
        X
        2
      
      _
    
    =
    
      
        
          (
          
            
              T
              F
            
            +
            
              T
              f
            
            +
            
              T
              t
            
          
          )
        
        2
      
      +
      
        
          2
          ·
          
            P
            X
            1
          
          ·
          
            T
            R
          
          ·
          
            (
            
              
                T
                F
              
              +
              
                T
                f
              
              +
              
                T
                t
              
            
            )
          
        
        
          1
          -
          
            P
            X
            2
          
        
      
      +
      
        
          
            
              P
              X
              1
            
            ·
            
              (
              
                1
                +
                
                  P
                  X
                  2
                
              
              )
            
            ·
            
              T
              R
              2
            
          
          
            
              (
              
                1
                -
                
                  P
                  X
                  2
                
              
              )
            
            2
          
        
        .
      
    
  



(1) For GBN-ARQ, a specific algorithm is:




  
    Th
    =
    
      
        1
        
          X
          _
        
      
      =
      
        
          1
          -
          
            
              P
              
                S
                ,
                D
              
            
            _
          
        
        
          
            
              (
              
                1
                -
                
                  
                    P
                    
                      S
                      ,
                      D
                    
                  
                  _
                
              
              )
            
            ·
            
              (
              
                
                  T
                  F
                
                +
                
                  T
                  f
                
                +
                
                  T
                  t
                
              
              )
            
          
          +
          
            
              
                P
                
                  S
                  ,
                  D
                
              
              _
            
            ·
            
              T
              R
            
          
        
      
    
  
  ,




where Th is a throughput rate of the whole system.



  
    W
    =
    
      
        
          
            λ
            ⁢
            
              
            
            ⁢
            
              E
              ⁡
              
                (
                
                  X
                  2
                
                )
              
            
          
          
            2
            ⁢
            
              (
              
                1
                -
                ρ
              
              )
            
          
        
        +
        
          
            E
            ⁡
            
              (
              
                V
                2
              
              )
            
          
          
            2
            ⁢
            
              
            
            ⁢
            
              E
              ⁡
              
                (
                V
                )
              
            
          
        
      
      =
      
        
          
            λ
            
              2
              ⁢
              
                (
                
                  1
                  -
                  ρ
                
                )
              
            
          
          ·
          
            (
            
              
                
                  
                    
                      
                        
                          (
                          
                            
                              T
                              F
                            
                            +
                            
                              T
                              f
                            
                            +
                            
                              T
                              t
                            
                          
                          )
                        
                        2
                      
                      +
                      
                        
                          2
                          ·
                          
                            
                              P
                              
                                S
                                ,
                                D
                              
                            
                            _
                          
                          ·
                          
                            T
                            R
                          
                          ·
                          
                            (
                            
                              
                                T
                                F
                              
                              +
                              
                                T
                                f
                              
                              +
                              
                                T
                                t
                              
                            
                            )
                          
                        
                        
                          1
                          -
                          
                            
                              P
                              
                                S
                                ,
                                D
                              
                            
                            _
                          
                        
                      
                    
                    ,
                  
                
              
              
                
                  
                    +
                    
                      
                        
                          
                            P
                            
                              S
                              ,
                              D
                            
                          
                          _
                        
                        ·
                        
                          (
                          
                            1
                            +
                            
                              P
                              X
                              2
                            
                          
                          )
                        
                        ·
                        
                          T
                          R
                          2
                        
                      
                      
                        
                          (
                          
                            1
                            -
                            
                              
                                P
                                
                                  S
                                  ,
                                  D
                                
                              
                              _
                            
                          
                          )
                        
                        2
                      
                    
                  
                
              
            
            )
          
        
        +
        
          
            T
            F
          
          2
        
      
    
  




  
    
      
    
    ⁢
    where
  




  
    
      
    
    ⁢
    
      ρ
      =
      
        
          λ
          ·
          
            X
            _
          
        
        =
        
          
            λ
            ·
            
              (
              
                
                  (
                  
                    
                      T
                      F
                    
                    +
                    
                      T
                      f
                    
                    +
                    
                      T
                      t
                    
                  
                  )
                
                +
                
                  
                    
                      
                        P
                        
                          S
                          ,
                          D
                        
                      
                      _
                    
                    ·
                    
                      T
                      R
                    
                  
                  
                    1
                    -
                    
                      
                        P
                        
                          S
                          ,
                          D
                        
                      
                      _
                    
                  
                
              
              )
            
          
          <
          1.
        
      
    
  




  
    
      
    
    ⁢
    
      T
      =
      
        
          W
          +
          
            X
            _
          
        
        =
        
          W
          +
          
            (
            
              
                T
                F
              
              +
              
                T
                f
              
              +
              
                T
                t
              
            
            )
          
          +
          
            
              
                
                  P
                  
                    S
                    ,
                    D
                  
                
                _
              
              ·
              
                T
                R
              
            
            
              1
              -
              
                
                  P
                  
                    S
                    ,
                    D
                  
                
                _
              
            
          
        
      
    
  



where T is time that each data packet stays in the system when the whole system reaches a stable status.
(2) For GBN-CARQ according to this embodiment of the present invention, a specific algorithm is:




  
    Th
    =
    
      
        1
        
          X
          _
        
      
      =
      
        
          1
          -
          
            P
            X
            2
          
        
        
          
            
              (
              
                1
                -
                
                  P
                  X
                  2
                
              
              )
            
            ·
            
              (
              
                
                  T
                  F
                
                +
                
                  T
                  f
                
                +
                
                  T
                  t
                
              
              )
            
          
          +
          
            
              
                P
                
                  S
                  ,
                  D
                
              
              _
            
            ·
            
              T
              R
            
          
        
      
    
  
  ,




where Th is a throughput rate of the whole system.



  
    W
    =
    
      
        
          
            λ
            ⁢
            
              
            
            ⁢
            
              E
              ⁡
              
                (
                
                  X
                  2
                
                )
              
            
          
          
            2
            ⁢
            
              (
              
                1
                -
                ρ
              
              )
            
          
        
        +
        
          
            E
            ⁡
            
              (
              
                V
                2
              
              )
            
          
          
            2
            ⁢
            
              
            
            ⁢
            
              E
              ⁡
              
                (
                V
                )
              
            
          
        
      
      =
      
        
          
            λ
            
              2
              ⁢
              
                (
                
                  1
                  -
                  ρ
                
                )
              
            
          
          ·
          
            (
            
              
                
                  
                    
                      
                        
                          (
                          
                            
                              T
                              F
                            
                            +
                            
                              T
                              f
                            
                            +
                            
                              T
                              t
                            
                          
                          )
                        
                        2
                      
                      +
                      
                        
                          2
                          ·
                          
                            
                              P
                              
                                S
                                ,
                                D
                              
                            
                            _
                          
                          ·
                          
                            T
                            R
                          
                          ·
                          
                            (
                            
                              
                                T
                                F
                              
                              +
                              
                                T
                                f
                              
                              +
                              
                                T
                                t
                              
                            
                            )
                          
                        
                        
                          1
                          -
                          
                            P
                            X
                            2
                          
                        
                      
                    
                    ,
                  
                
              
              
                
                  
                    +
                    
                      
                        
                          
                            P
                            
                              S
                              ,
                              D
                            
                          
                          _
                        
                        ·
                        
                          (
                          
                            1
                            +
                            
                              P
                              X
                              2
                            
                          
                          )
                        
                        ·
                        
                          T
                          R
                          2
                        
                      
                      
                        
                          (
                          
                            1
                            -
                            
                              P
                              X
                              2
                            
                          
                          )
                        
                        2
                      
                    
                  
                
              
            
            )
          
        
        +
        
          
            T
            F
          
          2
        
      
    
  




  
    
      
    
    ⁢
    
      
        where
        :
        
          

        
        ⁢
        
          
        
        ⁢
        ρ
      
      =
      
        
          λ
          ·
          
            X
            _
          
        
        =
        
          
            λ
            ·
            
              (
              
                
                  (
                  
                    
                      T
                      F
                    
                    +
                    
                      T
                      f
                    
                    +
                    
                      T
                      t
                    
                  
                  )
                
                +
                
                  
                    
                      
                        P
                        
                          S
                          ,
                          D
                        
                      
                      _
                    
                    ·
                    
                      T
                      R
                    
                  
                  
                    1
                    -
                    
                      P
                      X
                      2
                    
                  
                
              
              )
            
          
          <
          1.
        
      
    
  




  
    
      
    
    ⁢
    
      T
      =
      
        
          W
          +
          
            X
            _
          
        
        =
        
          W
          +
          
            (
            
              
                T
                F
              
              +
              
                T
                f
              
              +
              
                T
                t
              
            
            )
          
          +
          
            
              
                
                  P
                  
                    S
                    ,
                    D
                  
                
                _
              
              ·
              
                T
                R
              
            
            
              1
              -
              
                P
                X
                2
              
            
          
        
      
    
  




  
    
      
    
    ⁢
    
      
        
          P
          X
          2
        
        =
        
          
            
              
                P
                
                  S
                  ,
                  R
                
              
              _
            
            ·
            
              
                P
                
                  S
                  ,
                  D
                
              
              _
            
          
          +
          
            
              (
              
                1
                -
                
                  
                    P
                    
                      S
                      ,
                      R
                    
                  
                  _
                
              
              )
            
            ·
            
              
                P
                
                  R
                  ,
                  D
                
              
              _
            
          
        
      
      ,
    
  



where T is time that each data packet stays in the system when the whole system reaches a stable status.
Table 1 shows settings of basic parameters in (1) and (2).












TABLE 1







TR
Tf
λ
N









8
0.2
0.01
8










To facilitate calculation, PS,R=PR,D may be assumed in the simulation. According to calculation formulas of Th in (1) and (2), the MATLAB software is run to obtain a curve shows that Th changes along the average packet loss rate PS,R, as shown in FIG. 13. It can be seen that a throughput rate of the GBN-CARQ technology is higher than that of the GBN-ARQ technology when the average packet loss rate increases. In addition, a curve shows that T changes along PS,R can also be obtained, as shown in FIG. 14. It can be seen that increasing amplitude of T in the GBN-CARQ technology is lower than that of T in the GBN-ARQ technology when the average packet loss rate increases, that is, in the GBN-CARQ technology, time that each data packet stays in the system is shorter when the whole system reaches a stable status.
With the data retransmission system provided in this embodiment of the present invention, in an existing GBN-ARQ protocol, a relay cooperation communications technology is used, and a relay node is used to perform monitoring and decoding and participate in performing data transmission, so that a source node can retransmit a data packet and the relay node can send a copy of a data packet in different time slots in a retransmission frame respectively when a communication system performs data retransmission in go-back-N mode according to the GBN-ARQ protocol, thereby improving a success ratio of data retransmission of the system and also improving a throughput rate of the whole system.
Through the foregoing description of the embodiments, persons skilled in the art may clearly understand that the present invention may be implemented by software plus necessary universal hardware, and definitely may also be implemented by hardware, but in many cases, the software implementation is preferred. Based on such an understanding, the technical solutions of the present invention essentially, or the part contributing to the prior art may be implemented in the form of a software product. The computer software product is stored in a readable storage medium, for example, a floppy disk, a hard disk, or an optical disk of a computer, and includes several instructions for instructing a computer device (which may be a personal computer, a server, or a network device) to perform the methods described in the embodiments of the present invention.
The foregoing descriptions are merely specific embodiments of the present invention, but are not intended to limit the protection scope of the present invention. Any variation or replacement readily figured out by persons skilled in the art within the technical scope disclosed in the present invention shall all fall within the protection scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the protection scope of the claims.

## Claims

1. A data retransmission method, comprising:
monitoring and decoding, by a relay node, each data packet that is sent by a source node for a first time in a go-back-N automatic repeat request (GBN-ARQ) mode to a destination node;
storing a copy of a successfully decoded data packet by the relay node;
monitoring, by the relay node, a response message to each data packet between the destination node and the source node, wherein the response message is returned by the destination node to the source node;
deleting, by the relay node and in response to the response message being a reception negative acknowledgment message, all stored copies of data packets that are previous to a data packet that corresponds to the reception negative acknowledgment message; and
sending, by the relay node to the destination node and in response to the response message being the reception negative acknowledgment message, the copy of the data packet that was successfully decoded, wherein the copy of the data packet corresponds to the reception negative acknowledgment message, and wherein the copy of the data packet is sent in a first time slot of a first frame, the first frame including a copy of the data packet re-sent by the source node in a second time slot of the first frame different from the first time slot.

2. The data retransmission method according to claim 1, wherein after re-sending the data packet that corresponds to the reception negative acknowledgment message, the source node re-sends, in sequence, sent data packets subsequent to the data packet that corresponds to the reception negative acknowledgment message.

3. The data retransmission method according to claim 2, further comprising:
when the source node re-sends the sent data packets subsequent to the data packet that corresponds to the reception negative acknowledgment message, re-monitoring and re-decoding, by the relay node, a sent data packet that is not correctly decoded.

4. The data retransmission method according to claim 2, further comprising:
when the source node re-sends the sent data packets subsequent to the data packet that corresponds to the reception negative acknowledgment message, re-monitoring and re-decoding, by the relay node, all sent data packets that are re-sent by the source node in sequence and are subsequent to the data packet that corresponds to the reception negative acknowledgment message.

5. A data retransmission apparatus, comprising:
a first monitoring and decoding unit disposed in a relay node, configured to monitor and decode each data packet that is sent by a source node for a first time in go-back-N automatic repeat request (GBN-ARQ) mode to a destination node;
a memory, configured to store a copy of a successfully decoded data packet;
a response monitoring unit, configured to monitor a response message returned by the destination node to the source node;
a copy deleting unit, configured to, delete, in response to the response message being a reception negative acknowledgment message, all stored copies of data packets that are previous to a data packet that corresponds to the reception negative acknowledgment message; and
a transmitter, configured to send, to the destination node, a copy of the data packet that was decoded and that corresponds to the reception negative acknowledgment message, in response to the monitored response message being the reception negative acknowledgment message, and wherein the copy of the data packet is sent in a first time slot of a first frame, the first frame including a copy of the data packet re-sent by the source node in a second time slot of the first frame different from the first time slot.

6. The data retransmission apparatus according to claim 5, further comprising:
a second monitoring and decoding unit, configured to re-monitor and re-decode a sent data packet that is not correctly decoded, when the source node re-sends sent data packets subsequent to the data packet that corresponds to the reception negative acknowledgment message.

7. The data retransmission apparatus according to claim 5, further comprising:
a second monitoring and decoding unit, configured to re-monitor and re-decode all sent data packets that are re-sent by the source node in sequence and are subsequent to the data packet that corresponds to the reception negative acknowledgement message.

8. A data retransmission system, comprising:
a destination node;
a source node, configured to send a data packet to the destination node in go-back-N automatic repeat request (GBN-ARQ) mode and to receive a response message of the destination node to the data packet; and
a relay node, configured to monitor and decode the data packet that is sent by the source node for the GBN-ARQ mode to the destination node and to store a copy of the successfully decoded data packet;
wherein the destination node is configured to receive the data packet sent by the source node and to return a response message;
wherein the relay node is further configured to send, to the destination node, a copy of a data packet that corresponds to a reception negative acknowledgment message in response to the relay node monitoring communication between the destination node and the source node, further in response to the relay node determining that reception negative acknowledgment message was sent from the destination node to the source node, and further in response to the monitored response message being the reception negative acknowledgment message, and wherein the copy of the data packet is sent in a first time slot of a first frame, the first frame including a copy of the data packet re-sent by the source node in a second time slot of the first frame different from the first time slot;
wherein the relay node is further configured to delete, in response to the response message being the reception negative acknowledgment message, all stored copies of data packets that are previous to the data packet that corresponds to the reception negative acknowledgment message; and
wherein the destination node is further configured to receive the copy of the data packet, wherein the copy of the data packet is sent by the relay node.

9. The data retransmission system according to claim 8, wherein the source node is further configured to, after re-sending the data packet that corresponds to the reception negative acknowledgment message, re-send, in sequence, all sent data packets subsequent to the data packet that corresponds to the reception negative acknowledgment message.

10. The data retransmission system according to claim 9, wherein the relay node is further configured to re-monitor and re-decode a sent data packet that is not correctly decoded, when the source node re-sends all the sent data packets.

11. The data retransmission system according to claim 9, wherein the relay node is further configured to re-monitor and re-decode all the sent data packets that are re-sent by the source node in sequence and are subsequent to the data packet that corresponds to the reception negative acknowledgment message.