METHOD AND APPARATUS FOR REDUCED DATA BLOCK TRANSMISSION IN AN AUTOMATIC REPEAT REQUEST SYSTEM
A wireless transceiver apparatus (201, 203) and a method of operation in an Automatic Repeat Request (ARQ) mode is disclosed. On the transmitter side a packet of data (113) is fragmented into a series of sequential data blocks and each data block is assigned a block sequence number (601). At least a first data block of the series of sequential data blocks is sent to the receiver (603), and also a first block sequence number corresponding to the first data block. An acknowledgment timer is set (605) specifying a time interval in which to receive an acknowledgment message from the remote transceiver. If the acknowledgment timer has timed out, the transmitter side sends a discard message (607) to the receiver specifying at least a second block sequence number corresponding to at least a second data block, and specifying that said second data block is to be discarded.
The present invention relates generally to packet based wireless communications systems employing automatic repeat request (ARQ) mechanisms and more particularly to a method and apparatus for reducing data block transmissions in such wireless packet based communications systems.
BACKGROUNDAutomatic repeat request (ARQ) mechanisms make use of retransmission in packet based wireless communications systems, as well as other communications systems, to increase the probability that data has been transferred from a transmitter to a receiver. Retransmission of data however may reduce a system's net data throughput which may be of particular significance for various wireless communications systems.
In wireless communications systems based on the IEEE 802.16 standard, various timers are defined with respect to the ARQ mechanism. Specifically, a block lifetime timer is assigned to each ARQ block such that the blocks are discarded at the expiry of the timer. However, in general any ARQ block will only be a fraction of a Medium Access Control Layer (MAC) Service Data Unit (MSDU). Therefore if a fraction of an MSDU is discarded due to timer expiry, the entire MSDU becomes obsolete, and it is futile and also wasteful of bandwidth, to transmit and/or retransmit any remaining ARQ blocks associated with the same MSDU.
Methods and apparatuses for reducing data block transmission in systems employing Automatic Repeat Request (ARQ) are provided herein.
In a first aspect of the various embodiments, a method of operating a wireless transceiver in an Automatic Repeat Request (ARQ) mode comprises fragmenting a packet of data into a series of sequential data blocks and assigning each of the data blocks a block sequence number; sending at least a first data block from the series of sequential data blocks, and a first block sequence number corresponding to the first data block, to a remote wireless transceiver; setting an acknowledgment timer specifying a time interval in which to receive an acknowledgment message from the remote transceiver, the acknowledgment message corresponding to the first data block; determining that the acknowledgment timer has timed out; and sending a discard message to the remote transceiver specifying at least a second block sequence number corresponding to at least a second data block, and specifying that the second data block is to be discarded.
A second aspect of the various embodiments is a method of operating a wireless transceiver in an ARQ mode comprising receiving from a remote transceiver at least a first data block including a first block sequence number, the first data block being from a series of sequential data blocks forming a packet; receiving from the remote transceiver a discard message specifying at least a second block sequence number corresponding to at least a second data block, where the discard message specifies that the second data block is to be discarded; and discarding the second data block.
A third aspect is a wireless communication station comprising a transceiver; a processor coupled to the transceiver which has a medium access control layer, and configured to fragment a packet of data into a series of sequential data blocks and assign each of the data blocks a block sequence number; send at least a first data block from the series of sequential data blocks, and a first block sequence number corresponding to the first data block, to a remote wireless transceiver; set an acknowledgment timer specifying a time interval in which to receive an acknowledgment message of the first data block from the remote transceiver; determine that the acknowledgment timer has timed out; and send a discard message to the remote transceiver specifying at least a second block sequence number corresponding to at least a second data block, and specifying that the second data block is to be discarded.
Turning now to the drawings wherein like numerals represent like components,
The data 113 may contain a data packet structured by a Medium Access Control Layer (MAC) wherein the data packet may be referred to in some embodiments as a Service Data Unit (SDU), or more specifically a MAC SDU (MSDU). Additionally, such MSDUs may be partitioned or “fragmented” to produce packet fragments, or smaller data blocks. Groups of such MSDU fragments or MSDU data blocks are subsequently transmitted in “Protocol Data Units” (PDUs). Therefore, the payload may be a complete MSDU, or in the case of large MSDUs, may be one of more fragments of an MSDU, which are contained in a PDU. Such fragmentation operation is dictated by Quality of Service (QoS) requirements and by the efficient use of bandwidth as understood by those of ordinary skill.
The data 113 may also be “packed” data, that is, the MAC layer of the transmitter may discretionally pack several MSDUs into one PDU. Additionally, the transmitter MAC layer may pack various MSDU fragments into a single PDU. For ARQ systems, the packing and/or fragmentation sub-headers 111 will contain a Block Sequence Number (BSN) which the ARQ system uses to identify missing or otherwise lost fragments so that the fragments may be retransmitted.
Generally, when packing is employed, the packing sub-header 111 will also contain fragmentation information for the MSDU or fragment thereof contained within data 113. However, if packing is not used, then sub-headers 111 will be a fragmentation sub-header and contain the fragmentation information for the corresponding fragment. Therefore, the configuration of the signal 103 payload may be a sequence of sub-headers 111 and corresponding data 113 portions wherein the fragmentation subheader or each packing sub-header contains a BSN and/or fragmentation information for the specific fragment.
Further, the signal 103 payload may contain one or more initial PDU transmissions combined with one or more PDU retransmissions. The BSN of a fragment may be an 11-bit field in some embodiments in which 802.16 is employed. Fragmentation information may be a 2-bit field and indicate whether a fragment is a “First Fragment,” “Continuing Fragment,” “Last Fragment,” or “Unfragmented” by the binary values “10,” “11,” “01,” and “00” respectively.
Lastly, data 113 may also contain an ARQ feedback message, which may be in combination with other PDU data as discussed above. For example, an ARQ feedback message may be “piggybacked” with other data by using a packing subheader. However, an ARQ feedback message may also be sent as a stand alone MAC management message without a subheader. The data 113 may also employ encryption in some embodiments.
Signal 103 may include a Cyclic Redundancy Check (CRC) field 115 in some embodiments which may cover the MAC header 107 as well as data 113. Further, in some embodiments the MAC header 107 will contain a CRC-8 header checksum and CRC field 115 may contain a CRC-32 checksum to cover the data. If encryption is used as mentioned above, the CRC field will be determined subsequent to encryption operations. Signal 103 may also include padding (not shown).
In ARQ systems, an MSDU may be logically segmented into a series of data blocks and subsequently encapsulated into PDUs as discussed briefly above. The BSN, which is contained in the fragmentation or packing sub-headers 111 likewise as discussed above, will correspond to the first data block of the series of data blocks after the sub-header 111, which are being transmitted together. For retransmission, the transmitter may make a policy decision as to whether retransmitted data blocks are arranged in the same PDUs.
A number of base stations 203 may be connected to a base station controller 209 via backhaul connections 211. The overall network may comprise any number of base station controllers, each controlling a number of base stations. Note that the base station controller 209 may alternatively be implemented as a distributed function among the base stations. The base stations 203 may communicate with the mobile station 201 via any number of standard air interfaces such as, but not limited to, UMTS, E-UMTS, CDMA2000, 802.11 or 802.16.
The base stations 203 may perform a number of control functions such as, but not limited to, a Radio Link Control (RLC) function and Medium Access Control (MAC) function. Base station controller 209 may provide a centralized Radio Resource Management (RRM) function to synchronize various functions between the base stations 203 such as, but not limited to, scheduling and segmentation and reassembly functions as well as to coordinate the RLC and MAC functions between the various base stations 203.
It is to be understood that
Returning to
Memory 305 is for illustrative purposes only and may be configured in a variety of ways and still remain within the scope of the various embodiments herein disclosed. For example, memory 305 may be comprised of several elements each coupled to the processor 303. Further, separate processors and memory elements may be dedicated to specific tasks such as rendering graphical images upon a graphical display. In any case, the memory 305 will have at least the functions of providing storage for an operating system 307, applications 309 and general file storage 311 for mobile station 300. In some embodiments, applications 309 may comprise a software stack having a Medium Access Control (MAC) layer that communicates with a stack MAC layer in a base station or base station controller.
Turning now to
A high level transmitter operation in accordance with various embodiments is illustrated by
The transmitter will set one or more acknowledgement timers, as shown in step 605, and wait for an ACK or NACK message from the receiver. This step may include a number of retransmit attempts based on one or more of the step 605 timers timing out. However, after final timeout, the MSDU can be considered to have failed. Therefore, in step 607, the transmitter will send a discard message to the receiver indicating that other ARQ data blocks that are part of the same MSDU should be discarded.
Segments of the transmitter state machine useful for understanding the various embodiments in a transmitting equipment are illustrated by
Therefore, in step 701 the transmitter may segment an MSDU into a number of data blocks and include fragmentation control information in appropriate sub-headers, such as fragmentation or packing sub-headers 111 shown in
In general as shown in step 705, the transmitter waits for the data block or blocks to be acknowledged by the receiver by an ACK message. If the data block is acknowledged then the block state will be updated. For example, a data block may be in one of four states; “not-sent,” “outstanding,” “discarded,” and “waiting-for-retransmission.” Therefore, a data block initial state is “not-sent.”
After the block is sent it becomes “outstanding” until an ACK is received in 705, or a “not-acknowledged” (NACK) is received as in 707, or if ACK timeout occurs as in 709. Upon receipt of an ACK message in 705, the block state will be updated to “discarded” by the transmitter. In this case, the block state may be updated to “discarded” in 711, after which a pointer may be moved to the next Block Sequence Number (BSN) or numbers as in 713, and the next data block or set of blocks may be sent in 703.
However, if a NACK is received as in 707, or if ACK timeout occurs as in 709, then the block state will be changed to “waiting for retransmission” in 715 and the block will be resent in 703.
Upon the initial sending of the data block in 703, a data block lifetime timer is also set, and the timeout is pending as shown in step 717. If the data block lifetime timer times out in 717, a discard message is sent to the receiver in 719. The discard message may in some embodiments provide an indication to the receiver of every related data block, that is, an indication of every data block BSN pertaining to the same MSDU for which the discarded block occurred. It is to be understood that various implementations are possible for indicating the related data blocks and that such implementations remain in accordance with the various embodiments disclosed herein. Thus, in one exemplary implementation of the various embodiments, the discard message may specify a range of BSNs which are to be discarded, by providing an initial BSN and a final BSN. Further, in some embodiments the receiving side may infer whether certain data blocks belong to a discarded MSDU and therefore in such embodiments only a single BSN may be provided, for example an initial BSN or a final BSN. In other alternative embodiments, the discard message may provide an initial BSN for a new MSDU so that the receiving side may advance its receive window accordingly, in addition to deleting data blocks with BSNs corresponding to the failed MSDU.
Returning now to
Returning now to
If the data block was in fact within the appropriate BSN window then the data block may be stored in 813, and the receive (Rx) window may be advanced to the next expected BSN if the received data block BSN is equal to the current Rx window start pointer value. The receiver will then send an ACK message to the transmitter in 815. During the normal operation of the receiver in ARQ mode, various blocks will be received such that the process of 801 through 815 will repeat until the successful reception of one or more MSDUs or unless, a discard message is received as in 817. If a discard message is not received in 817, the receiver will continue to receive data blocks in 801 that are expected within the Rx window. However, if a discard message is received as in 817, the receiver will determine whether currently stored data blocks belong to the same MSDU as blocks specified by the discard message.
As discussed above with respect to the transmitter states illustrated by
Therefore in 823, all data blocks related to the same MSDU for which any data block was to be discarded, as specified by the transmitter discard message, or as inferred by the receiver, may likewise be discarded. The receiver will then, in 825, update the block state to “received,” even though the blocks have in fact not been received, and send an ACK message to the transmitter in 827. The ACK message will inform the transmitter that the blocks were discarded. In 829, the receiver will advance its Rx window to the next BSN.
Therefore in accordance with the exemplary
Returning to the base station 903 side, and assuming that an ACK is not received, the timer 909 will timeout and the base station 903 will resend the data block 913. The resend 913 may also occur if a NACK message is received as was discussed above. In
The MS 901 will discard any specified ARQ blocks in 921, and may also infer other blocks not specified, if such blocks may be related to the same MSDU by using for example, the block fragmentation control information as was discussed above. The MS 901 will then advance the ARQ_RX_WINDOW_START 923 to the next BSN, and will send an ARQ feedback message 925 to the base station 903 indicating that the ARQ blocks have been discarded. The base station 903 likewise discards any ARQ blocks queued for the MSDU in 919.
Therefore, in
Therefore, the various embodiments employ the technique illustrated by
It is assumed in
If the receiver is unable to deduct all information needed to discard a complete MSDU, one such case being where consecutive data blocks have not been received, then on reception of new information concerning this MSDU, the receiver may continue to discard the remaining MSDU data blocks. In the event of consecutive data blocks which are not received, and which are part of a discarded MSDU, the receiver will, in the various embodiments, set a discard flag. For example, assuming a discarded MSDU consists of data blocks 4 through 9 wherein all blocks have been received, except for blocks 6 and 7. In this case the receiver would forward the window to BSN 6 because it cannot determine whether blocks 6 and 7 are “Continuing Fragments,” or whether block 6 is a “Last Fragment” and block 7 is a “First Fragment” of a new MSDU. Therefore the receiver in this case can only safely discard up through “Continuing Fragment” block 5. However, when the receiver receives block 6 having FC information set to “Continuing Fragment,” it will discard blocks 6 through 9, and advance the window to BSN 10. Because block 8, which is a “Continuing Fragment,” and block 9, which is a “Last Fragment,” have been received, and because block 6, subsequently received is then known to be continuing, block 7 logically must likewise be continuing and may be discarded. Thus, the receiver appropriately discards blocks 6 though 9 and advances the receive window to BSN 10.
Additionally, it is to be understood that the transmitter side may also employ the techniques described above and illustrated by
Returning briefly to
While various embodiments have been illustrated and described, it is to be understood that the invention is not so limited. Numerous modifications, changes, variations, substitutions and equivalents will occur to those skilled in the art without departing from the spirit and scope of the present invention as defined by the appended claims.
Claims
1. A method of operating a wireless transceiver, said wireless transceiver operating in an Automatic Repeat Request (ARQ) mode, said method comprising:
- fragmenting a packet of data into a series of sequential data blocks and assigning each of said data blocks a block sequence number;
- sending at least a first data block from said series of sequential data blocks, and a first block sequence number corresponding to said first data block, to a remote wireless transceiver;
- setting an acknowledgment timer specifying a time interval in which to receive an acknowledgment message from said remote transceiver, said acknowledgment message corresponding to said first data block;
- determining that said acknowledgment timer has timed out; and
- sending a discard message to said remote transceiver specifying at least a second block sequence number corresponding to at least a second data block, and specifying that said second data block is to be discarded, wherein the at least a second block sequence number corresponds to one or more remaining data blocks forming said packet of data.
2. The method of claim 1, further comprising:
- discarding all remaining data blocks of said series of sequential data blocks.
3. The method of claim 2, further comprising:
- advancing an ARQ transmission window start to the next block sequence number greater than a largest value block sequence number, said largest value block sequence number corresponding to a last in sequence data block of said series of sequential data blocks.
4. The method of claim 1, further comprising:
- receiving from said remote transceiver, an acknowledgment message, said acknowledgment message specifying that said second data block has been discarded by said remote transceiver.
5. The method of claim 1, further comprising:
- setting a retry timer specifying a time interval in which to receive a report message from said remote transceiver, said report message acknowledging receipt of said discard message;
- determining that said retry timer has timed out; and
- sending a second discard message to said remote transceiver.
6. A method of operating a wireless transceiver, said wireless transceiver operating in an Automatic Repeat Request (ARQ) mode, said method comprising:
- receiving from a remote transceiver at least a first data block including a first block sequence number, said first data block being from a series of sequential data blocks forming a packet;
- receiving from said remote transceiver a discard message specifying at least a second block sequence number corresponding to at least a second data block, said discard message specifying that said second data block is to be discarded, wherein the at least a second block sequence number corresponds to one or more remaining data blocks forming said packet; and
- discarding said second data block.
7. The method of claim 6, further comprising:
- sending a discard report message to said remote transceiver reporting that said second data block has been discarded.
8. The method of claim 7, further comprising:
- advancing an ARQ receive window start to the next block sequence number greater than a largest value block sequence number, said largest value block sequence number corresponding to a last in sequence data block of said series of sequential data blocks.
9. The method of claim 6, further comprising:
- receiving from said remote transceiver, a fragmentation information corresponding to said first data block;
- setting a data purge timer specifying a time interval in which to receive at least a second data block from said series of sequential data blocks;
- determining that said purge timer has timed out;
- using said fragmentation information to determine a final block sequence number corresponding to a last in sequence data block of said series of sequential data blocks; and
- advancing an ARQ receive window start to the next block sequence number greater than said final block sequence number.
10. A wireless communication station comprising:
- a transceiver for transmitting and receiving radio signals;
- a processor coupled to said transceiver, said processor having a medium access control layer, and configured to: fragment a packet of data into a series of sequential data blocks and assign each of said data blocks a block sequence number; send at least a first data block from said series of sequential data blocks, and a first block sequence number corresponding to said first data block, to a remote wireless transceiver; set an acknowledgment timer specifying a time interval in which to receive an acknowledgment message from said remote transceiver, said acknowledgment message corresponding to said first data block; determine that said acknowledgment timer has timed out; and send a discard message to said remote transceiver specifying at least a second block sequence number corresponding to at least a second data block, and specifying that said second data block is to be discarded, wherein the at least a second block sequence number corresponds to one or more remaining data blocks forming said packet of data.
11. The wireless communication station of claim 10, wherein said processor is further configured to discard all remaining data blocks of said series of sequential data blocks.
12. The wireless communication station of claim 10, wherein said processor is further configured to advance an ARQ transmission window start to the next block sequence number greater than a largest value block sequence number, said largest value block sequence number corresponding to a last in sequence data block of said series of sequential data blocks.
13. The wireless communication station of claim 10, wherein said processor is further configured to receive from said remote wireless transceiver, an acknowledgment message, said acknowledgment message specifying that said second data block has been discarded by said remote wireless transceiver.
14. The wireless communication station of claim 10, wherein said processor is further configured to:
- receive from said remote transceiver at least a first data block including a first block sequence number, said first data block being from a series of sequential data blocks forming a packet;
- receive from said remote transceiver a discard message specifying at least a second block sequence number corresponding to at least a second data block, said discard message specifying that said second data block is to be discarded; and
- discard said second data block.
15. The wireless communication station of claim 14, wherein said processor is further configured to send a discard report message to said remote transceiver reporting that said second data block has been discarded.
16. The wireless communication station of claim 14, wherein said processor is further configured to advance an ARQ receive window start to the next block sequence number greater than a largest value block sequence number, said largest value block sequence number corresponding to a last in sequence data block of said series of sequential data blocks.
17. The wireless communication station of claim 14, wherein said processor is further configured to:
- receive from said remote transceiver, a fragmentation information corresponding to said first data block;
- set a data purge timer specifying a time interval in which to receive at least a second data block from said series of sequential data blocks;
- determine that said purge timer has timed out;
- use said fragmentation information to determine a final block sequence number corresponding to a last in sequence data block of said series of sequential data blocks; and
- advance an ARQ receive window start to the next block sequence number greater than said final block sequence number.
18. The wireless communication station of claim 10, wherein said transceiver for transmitting and receiving radio signal, transmits and receives radio signals in accordance with an orthogonal frequency division multiple access radio interface.
19. The wireless communication station of claim 10, wherein said packet of data is a Medium Access Control Layer Service Data Unit (MSDU).
20. The wireless communication station of claim 10, wherein said first block sequence number corresponding to said first data block, further includes a fragmentation control information.
Type: Application
Filed: Jan 19, 2010
Publication Date: May 13, 2010
Inventors: Marcel Korndewal (Amersfoort), Win Schaap (Kortenhoef), Leon J. Zegers (Amesterdam)
Application Number: 12/689,592
International Classification: H04L 1/18 (20060101); G06F 11/14 (20060101);