Not Applicable.
Not Applicable.
The preferred embodiments are in the field of wireless communications and are more specifically directed to automatic repeat requests from a receiving unit to indicate to a transmitting unit to re-transmit a number of data blocks that were not properly received by the receiving unit.
Advances in wireless communication technology, especially in recent years, have greatly improved not only the performance (i.e., data rate for a given error rate) at which wireless communications can be carried out, but also have enabled the realization of additional functions and services by way of wireless communications. For example, wireless broadband communication in metro area networks is now becoming commonplace. An example of one type of wide area wireless network communications is referred to as “WiMAX”, corresponding to communications carried out under IEEE Standard for Local and metropolitan area networks, Part 16: Air Interface for Fixed Broadband Wireless Access Systems (IEEE Standard 802.16-2004, and all subsequent revisions). Of course, wireless local area networks (WLAN) are also now becoming commonplace and are capable of carrying traffic at very high data rates (e.g., 100 Mbit/sec).
Networks operating under the WiMAX standard, for example, are capable of carrying out multiple types of communications. These multiple communications “services” are typically supported by modern wireless devices, including laptop computers equipped with WiMAX network adapters, palm top computers or highly capable personal digital assistants (PDAs), and modem “smartphones” that support data services. As known in the art, these modern wireless devices and systems, communicating via a WiMAX or other metro or wider area wireless network, support multiple simultaneous wireless communications sessions. Different types of such communications can have different constraints and requirements. For example, one class of such communications that can be carried out under WiMAX is voice telephony, by way of the well-known Voice over Internet Protocol (VoIP) service. VoIP communications involve constraints on the timeliness of the communications (i.e., so that a sensible back-and-forth conversation can be carried out), but can tolerate a relatively high error rate. In contrast, email services, and web browsing services over the Internet, involve less stringent time constraints, but can have higher error rate requirements.
Physically, a WiMAX metro area network is realized via base stations deployed within the physical service area with some frequency (e.g., on the order of a base station deployed every mile, to every several miles), similar to cellular telephone base stations and towers. A given base station is capable of communicating with nearby wireless client devices, typically referred to as “subscriber stations”, or often as “mobile stations” considering that these devices are typically portable computing and communications devices such as laptop or palmtop computers, smartphones, and the like. Each of the traffic flows between a mobile station and a base station is typically referred to as a “service flow”, in the context of WiMAX communications. For example, a VoIP call is carried out over one service flow, an email session is carried out over another service flow, and each web browsing session is carried out over another service flow. As evident from this discussion, multiple service flows may be carried out simultaneously between a mobile station and a base station; indeed, communications in each direction (e.g., uplink to the base station and downlink from the base station) are typically considered separate service flows, such that bidirectional communications in an interactive web session, for example, typically constitutes two service flows.
Various communications standards include and define an automatic repeat request (ARQ) sub-protocol under which a receiving station, after receiving a sequence of blocks (or interchangeably referred to as “packets”) of data, provides feedback to the transmitting station if blocks of that data were not properly received. Thus, in a given service flow, the receiving station provides feedback to the transmitting station, and from the above discussion of service flows note that for a given service flow, the receiving station may be the base station while the transmitting station is the subscriber/mobile station, or conversely for a given service flow, the receiving station may be the subscriber/mobile station while the transmitting station is the base station. In any event, the ARQ feedback specifies, for erroneous or lost data blocks, various message formats for the feedback messages that when received by the transmitting station, cause that station to re-transmit the improperly received (or lost) data blocks. Thus, by way of example but without limitation to the preferred embodiments detailed later, for conventional communications under the IEEE 802.16 standard, there are four different types of ARQ formats: (i) Selective ACK; (ii) Cumulative ACK; (iii) Cumulative with Selective ACK; and (iv) Cumulative ACK with Block Sequence ACK. Each of these is known in the art, but each is also described below for sake of background and for sake of contrast to the preferred embodiments detailed later.
In the Selective ACK ARQ format, a receiving station transmits a feedback message to a transmitting station that includes one or more (up to four) 16-bit bitmaps, where each bit in the bitmap corresponds to a respective block of data received by the receiving station and indicates, by the binary map value, whether the block was received either acceptably or in error. For example, if the binary value of 1 indicates an acceptable data block, then the binary value of 0 indicates an unacceptable (i.e., in error) data block, where at least the latter therefore is to be re-transmitted by the transmitting station once it receives and comprehends the feedback ARQ message. Using these conventions and by way of example, therefore, a 16-bit Selective ACK bitmap of 1111000011110000 indicates from the receiving station to the transmitting station that in the 16 blocks of data it received, the first set of four data blocks was acceptable, the second set of four data blocks was in error, the third set of four data blocks was acceptable, and the fourth set of four data blocks was in error. Thus, in response to the message, the transmitting station may re-transmit the erroneous data blocks (i.e., the second and fourth set of blocks).
In the Cumulative ACK ARQ format, a receiving station transmits a feedback message to a transmitting station that includes an identifier (e.g., sequence number) of the last data block that was satisfactorily received in a sequence of blocks. Thus, in response to the message, the transmitting station may re-transmit the sequence starting from the next block following the identified-erroneous received data block. Note that the Cumulative ACK ARQ format has at least one drawback if used in sequences that include a burst of erroneously-received data blocks in the middle of otherwise properly received data blocks. More specifically, then, consider the use of the Cumulative ACK ARQ format in a case for a sequence of 100 blocks, where the first 10 blocks are received accurately, the next 5 blocks are received in error, and the remaining 85 blocks are received accurately; in this case, then the Cumulative ACK ARQ would indicate the last error-free block before an error occurred, that is, then 10th block in the example sequence. In response, therefore, the transmitting station is caused to re-transmit the latter 90 blocks of data in the sequence, even though the latter 85 of those already were transmitted and received without errors. Thus, data bandwidth is consumed in the re-transmitting of that data.
In the Cumulative with Selective ACK format, a receiving station transmits a feedback message to a transmitting station that includes both: (1) an identifier (e.g., sequence number) of the last data block that was satisfactorily received in a sequence of blocks; and (2) one or more (up to four) 16-bit bitmaps, where each bit in a bitmap corresponds to a respective block of data received by the receiving station and indicates, by the binary value, whether the block was either acceptable or in error, where these described 16 data blocks follow the last identified block in item (1), above. In other words, this format combines the two formats detailed above. Note that the Cumulative with Selective ACK format has at least one drawback if it is used in a sequence where the error block is early in the sequence in that the bitmap therefore will only characterize up to the next 64 blocks following the last of the properly-received blocks in the sequence.
In the Cumulative ACK with Block Sequence ACK format, a receiving station transmits a feedback message to a transmitting station that includes an indication of the sequence number of the last in sequence correctly received block and up to 4 ACK Maps. Each ACK map includes an indication of the type of sequence used and either 14 bits in a 2 sequence variant or 15 bits in a 3 sequence variant. For either variant, these bits includes a Sequence Ack Map (“SAM”), where the Map is 2 bits for the 2 sequence variant and the Map is 3 bits for the 3 sequence variant. The state of each bit in the map indicates that a sequential number of blocks, corresponding to that bit, were received either as all valid (i.e., without error) or all invalid. For example, a binary value of 0 indicates that a corresponding sequential number of blocks were invalid, and a binary value of 1 indicates that a corresponding sequential number of blocks were valid. Thus, for the 2 sequence variant, a SAM of 01 indicates that a first sequence length SL1 of sequential blocks, corresponding to the first SAM bit value of 0, were received as invalid, and a second sequence length SL2 of sequential blocks, corresponding to the second SAM bit value of 1, were received as valid. Note that the first and second sequence lengths SL1 and SL2 are also included in the message format. Particularly, in addition to the SAM, the remaining 12 bits in the message identify two six-bit binary numbers, where each binary number thereby indicates the values of SL1 and SL2 (i.e., a value up to 31 due to the six bits). Continuing the previous example with the SAM of 01, assume also that in the remaining 12 bits the first six bits are 000111 (i.e., decimal 7) and the second six bits are 010011 (i.e., decimal 19). Thus, these values respectively indicate that SL1=7 and SL2=19. Accordingly, in combination with the SAM, this message would indicate that the receiver received a sequence of data blocks wherein the first 7 blocks were invalid while the next 19 blocks were valid. The 3 sequence variant of this format is similar, but its SAM includes three bits, each corresponding to a respective 4-bit sequence length SL1, SL2, and SL3 in the remaining 12 bits. Thus, for the 3 sequence variant, the remaining 12 bits in the message provide three 4-bit numbers that each respectively indicate one of the values of SL1, SL2, and SL3. Consider then an example of a SAM of 010, and assume also that in the remaining 12 bits the first four bits are 0011 (i.e., decimal 3, that is, SL1=3), the second four bits are 1001 (i.e., decimal 9, that is, SL2=9), and the third four bits are 0111 (i.e., decimal 7, that is, SL3=7). Thus, in combination with the SAM, this message would indicate that the receiver received a sequence of data blocks wherein the first 3 blocks in the sequence were invalid (because the first SAM bit is 0), the next 9 blocks in the sequence were valid (because the second SAM bit is 1), and the next 7 blocks in the sequence were invalid (because the third SAM bit is 0).
It is recognized in connection with the preferred embodiments that while the Cumulative ACK ARQ format has benefits in reporting upon certain data block sequences, it may provide certain drawbacks due to latency of communications between the base station and a subscriber/mobile station and thus it may be improved upon as detailed later. By way of example at this point, note that in some wireless protocols, such as in the above-introduced WiMAX standard, a subscriber/mobile station may not instantaneously communicate a service flow with the base station, but instead the subscriber/mobile station must request bandwidth from the base station and only upon receipt from the base station of such bandwidth, sometimes referred to as a reservation, is the mobile station permitted to then communicate one or more packets. In this regard, therefore, if a subscriber/mobile station desires to communicate a Cumulative ACK feedback message to a base station, then by the time the subscriber/mobile station is granted a reservation and thereafter communicates a Cumulative ACK feedback message, there has been a latency since the time that the base station transmitted the packets to which the later-received Cumulative ACK feedback message corresponds. Thus, there is the possibility, if not likelihood, that the base station has, before receiving the Cumulative ACK feedback message, already transmitted additional packets that are not comprehended by the later-received Cumulative ACK feedback message. As demonstrated later, therefore, when the base station receives and processes the latent feedback message, the base station may in response and improperly re-transmit packets to the mobile station that were not necessarily received in error, that is, the base station may re-transmit such packets that in fact were validly received and therefore did not require re-transmission. Thus, additional bandwidth is utilized in the re-transmission, as possibly are resources of the transmitting base station.
It is further recognized in connection with the preferred embodiments that the latency described above may also cause drawbacks with other ARQ formats or indeed in other standards. For example, recall that the Cumulative with Selective ACK ARQ format provides feedback from a receiving station that includes not only an identifier of the last valid data block but also one or more bitmaps corresponding to one or more respective groups of blocks of data; however, note that a given bitmap, while capable in its number of bits of characterizing a respective number of data blocks, may be formed by a receiving station at a time when not all of those blocks are ready to characterize. For example, assume in a given instance that a receiving station has received a given invalid data block followed by an additional six data blocks, while the 16 bit bitmap of the Cumulative with Selective ACK ARQ format would permit the receiving station to characterize a full 16 data blocks rather than just the six blocks that followed the invalid data block. Thus, in one approach the receiving station may simply provide a 16 bit bitmap that characterizes the 6 data blocks with the first 6 respective bits of the 16 bit bitmap, while then setting the remaining 10 bits of the 16 bit bitmap to invalid, even though in fact the remaining 10 data blocks corresponding to those remaining 10 bits may not yet have been received or may not be accurately characterized by the ARQ message; in this case, when the transmitting station receives this ARQ message, in response thereto it may well re-transmit the last 10 data blocks having interpreted the ARQ message to indicate that such blocks were not validly received. Alternatively, in one variation to the standard, the receiving station may in effect “back up” in the sequence of data blocks so as to fully characterize 16 received data blocks, that is, in the example above, instead of starting the Cumulative with Selective ACK ARQ message with an identification of the given invalid data block, instead the receiving station, with knowledge that it will characterize a total of 17 data blocks (one by sequence number and 16 by a 16-bit a bit map), backs up a total of 17 blocks in the received sequence so that the 17th most-recently received block will be indicated in the ARQ message as valid instead of invalid, and the remaining 16 data blocks are characterized by the respective 16 bits in the ARQ message 16-bit bitmap—thus, this change effectively changes the earlier standard definition wherein the sequence indicator was always of an invalid data block, and instead contemplates the sequence indicator to identify a valid data block. In addition to requiring a change in the standard definition, this approach also requires overhead directed to addressing the “back up” described above.
Given the preceding, the preferred embodiments seek to improve upon the prior art, as demonstrated below.
In a preferred embodiment, there is a method of performing wireless communications. The method receives at a receiving unit a sequence of data blocks from a transmitting unit. The method also identifies at the receiving unit a first invalid sequential data block in the sequence. The method also communicates from the receiving unit a wireless message to the transmitting unit for provoking the transmitting unit to re-transmit a portion of the sequence of data blocks. The wireless message comprises a first field and a second field. The first field is for identifying the first invalid sequential data block. The second field is for identifying a last data block, from the sequence of data blocks, to which the wireless message applies.
Other aspects are also disclosed and claimed.
The preferred embodiments are described in connection with a preferred implementation into a base station and subscriber/mobile station in a “WiMAX” wireless broadband network, operating under the IEEE 802.16 standard, as it is contemplated that this implementation is especially beneficial when realized in such an environment. However, it is also contemplated that other preferred embodiments may be created to provide similar important benefits in other types of networks, particularly those in which an ARQ format is established with a transmitting station that re-transmits data blocks upon receipt of an ARQ message from a receiving station, wherein that message is delayed in time such that by the time the transmitting station receives the ARQ message it has transmitted to the same receiving station additional data blocks beyond those contemplated in the message. Accordingly, it is to be understood that the following description is provided by way of example only, and is not intended to limit the true inventive scope as claimed.
As noted above and as evident from
In the example of
Network station 20 is contemplated to be implemented by way of a programmable digital computing system. As such, network station 20 includes a processor unit 24, which may be implemented as a general purpose or application-specific processor, as determined by the system designer, capable of executing instructions in computer programs to carry out the overall processing and functionality of network station 20. In
According to a preferred embodiment, a methodology is provided whereby a receiving station (e.g., one of base station BS or any subscriber station SS) receives a sequence of data blocks (or referred to as packets) from a transmitting station (e.g., also one of base station BS or any subscriber station SS), the receiving station sends an ARQ message back to the transmitting station, and the transmitting station decodes the ARQ message and responds thereto. It is contemplated that various processing circuitry in network station 20 may accomplish this methodology as either the receiving station or the transmitting station by the use of program instructions. Thus, such program instructions may be executed by a MAC controller 25 or such other processing circuitry in network station 20, and in doing so carries out the operations of the preferred embodiments as described later. In this regard, it is contemplated that such program instructions or a portion thereof may be provided to network station 20 by way of computer-readable media, or otherwise stored in program memory 23 such as by way programming program memory 23 during or after manufacture, or provided by way of other conventional optical, magnetic, or other storage resources at those computer resources, or communicated to network station 20 by way of an electromagnetic carrier signal upon which functional descriptive material corresponding to that computer program or portion thereof is encoded.
Other system functions in network station include peripherals 32, shown in
Network station 20 also includes the appropriate circuitry for communicating in a wireless broadband network such as that shown in
As introduced earlier, according to a preferred embodiment, network station 20 is programmed, for example by way of instructions stored in program memory 23 and executable by MAC controller 25, to perform different operations when either:
(1) acting as a receiving station, it:
(2) acting as a transmitting station, it:
In the preferred embodiments, in acting as a receiving station, network station 20 may operate according to any of known methodologies and per known protocols to receive a sequence of data blocks, and then the ARQ response also may be performed in known manners, including those set forth in the IEEE 802-16 formats detailed earlier in this document. Thus, by ways of example, the ARQ response may be any one of (i) Selective ACK; (ii) Cumulative ACK; (iii) Cumulative with Selective ACK; and (iv) Cumulative ACK with Block Sequence ACK. However, attention is directed to the second and third of those options, that is, the Cumulative ACK, for sake of better understanding a beneficial example of the inventive scope is shown for the Cumulative ACK; however, the preferred embodiment is also contemplated as implemented into the Cumulative with Selective ACK and one skilled in the art may appreciate the possible implementation and response to still other ARQ formats. Further, also per the preferred embodiments, when network station 20 operates to transmit a Cumulative ACK (or Cumulative with Selective ACK), it may do so using a novel encoding approach that is also treated in a novel manner by the corresponding receiving station, as further detailed below.
Each downlink sub-frame SFxDL includes downlink data DLDx and also an uplink map UL_MAPx. With respect to the uplink map, recall from earlier that in certain protocols a subscriber station must request bandwidth from the base station and only upon receipt from the base station of such bandwidth (i.e., of a “reservation”) is the subscriber station permitted to then communicate one or more data blocks. In this regard, each uplink map UL_MAPx of
Each uplink sub-frame SFxUL includes a number N+1 of data slots or is otherwise partitioned to represent data from different subscriber stations that are communicated during the time allotted to the uplink sub-frame. For example, each data slot may correspond to a different frequency (or set of frequency hops) and a corresponding subscriber station therefore communicates along that frequency during the uplink sub-frame. For example in
It has been observed in connection with the prior art and as improved upon by the preferred embodiments that certain operations pose limitations in connection with communications between a base station and subscriber station, as may be now more apparent given the context provided above. Specifically, note that a base (or other transmitting) station typically stores an entire window of packets and maintains that data even after transmitting all of it until the base station is satisfactorily informed that the receiving subscriber station has received all of those packets as valid data. Indeed, often the transmitting base station will stall, that is, it will not communicate additional data, until it is notified that the window of data was validly received. In order to avoid excessive stalls and the inefficiencies arising from them, there is an incentive or goal for the receiving subscriber station to respond with an ARQ feedback message before the transmitting base station has reached the end of its window, that is, so that hopefully the transmitting base station can be informed, via ARQ feedback, that at least a portion of the window was validly received before having to stall after transmitting the entirety of the window, and with that information the transmitting station need not retain at least a copy of that window data of which it is informed was validly received. If this process continues effectively, then the chance of a stall occurring while having to store an entire data window is reduced.
Another observed limitation of the above-described communications is the latency that arises, and how it impacts ARQ communications, in the sequence of communications in
A first indicator in message ARQI includes a LAST_IN_SEQUENCE_VALID indicator. This indicator is included in a Cumulative ACK ARQ message (or Cumulative with Selective ACK ARQ message) according to the prior art. For example, under the IEEE 802.16 (WiMAX) standard this indicator is referred to as the ‘sequence number of the last successfully received block’, and as that phrase describes, the LAST_IN_SEQUENCE_VALID indicator identifies the last validly received block number for a sequence of blocks, which in essence therefore also necessarily is for implicitly identifying the first invalid block which immediately follow the last validly received block in the sequence. To further appreciate this indicator, consider now the block sequence in
As detailed earlier, if in the prior art a feedback ARQ message is received by a transmitting base station after sufficient latency, then the base station may needlessly re-transmit all blocks following the LAST_IN_SEQUENCE_VALID block from the data window that applies to that ARQ message; to correct this inefficiency, and as shown in
Continuing with the example of the sequence in
To further illustrate additional inventive aspects,
In an alternative embodiment, the receiving subscriber station identifies in the LAST_IN_SEQUENCE_CHARACTERIZED indicator a block that is not necessarily the last in a received frame. For example, such an approach may be preferable when or if the ARQ frequency differs from the frame frequency. In this alternative embodiment, the receiving subscriber station identifies in the LAST_IN_SEQUENCE_CHARACTERIZED indicator the last successive invalid block in the window sequence that follows the LAST_IN_SEQUENCE_VALID block, where the identified block is not necessarily the last block before the end of a frame boundary. For example, again in
Next, consider again the above-described alternative embodiment but now for the example sequence of blocks in
From the preceding, it may be appreciated that the preferred embodiments provide a method and apparatus for automatic repeat requests (ARQ) from a receiving unit to indicate to a transmitter to re-transmit a number of data units that were not properly received by the receiving unit. The ARQ of the preferred embodiments may be used in addition to other ARQ methodologies to provide considerable and additional flexibility over the prior art. In a WiMAX network, such an approach will be especially useful if there are burst errors in acknowledging a larger number of blocks/packets with lower feedback bandwidth. Thus, these considerations and the described embodiments also demonstrate that while the present embodiments have been described in detail, various substitutions, modifications or alterations could be made to the descriptions set forth above without departing from the inventive scope, as is defined by the following claims.