[0001] This invention relates generally to information networks and more particularly to information networks that partition information into different classes and prioritizes the different classes, depending upon desired performance goals.
[0002] Communications networks use a transmission medium to transmit information in the form of computer data, voice, music, video, etc., from one station to another. The communications medium may be a wired link, a fiber optic link, or a wireless link. The wireless link may include, but is not limited to, radio frequency, infrared, laser light, and microwave. The network may, in fact, use a combination of different communications links.
[0003] With the exception of a small number of networks that use dedicated communications links between each station, most information networks use a shared transmission medium to carry the transmitted information. Examples of information networks using a shared transmission medium include: Ethernet, token ring, and wireless Ethernet (IEEE 802.11).
[0004] However, by sharing a communications medium between multiple stations, there are situations (extended busy times) that arise when stations are required to wait a significant amount of time before they are able to transmit their data. Additionally, situations (collisions) exist when simultaneous transmissions from different stations occur and result in the mutual destruction of the transmissions. Such situations are undesirable in providing quality of service (QoS) to multimedia data transfers and in making efficient use of scarce spectrum on a wireless medium.
[0005] For some applications, such as voice telephony, video teleconferencing, and other real-time, bi-directional, interactive applications, extended transfer times can severely and rapidly degrade the performance of the applications to a level that is unacceptable. For example, in voice telephony applications, if the delay between one user speaking and another user listening is greater than a few milliseconds, the delay becomes noticeable to the users and the users' satisfaction level for the telephone connection begins to drop.
[0006] One way to ensure that applications requiring a low maximum network latency receive the level of service that they require is to implement some form of QoS transfers of data traffic between stations. In many networks with QoS transfers, communications traffic in a network are partitioned into multiple categories and the categories are parameterized or prioritized according to their specific performance requirements. For example, traffic carrying a telephone conversation between two users will be given a higher priority than traffic carrying data for a file transfer between two computers. By creating categories for the traffic, parameterizing and prioritizing the different categories and ensuring that traffic of higher QoS demands or higher priority receives better service, these networks offer and meet performance guarantees.
[0007] In wireless local area networks (LANs) specified by the IEEE 802.11 technical standard, each different category of network traffic is required to contend for access to the shared medium. The technical standard specifies a technique using a randomly selected backoff time and a backoff counter to ensure fair access to the shared medium. However, because there are many possible categories of network traffic and the backoff counter requires frequent updates, hardware rather than software has been the preferred implementation method for the backoff counters. This is due to the fact that the frequent updates to the backoff counters places too great of a computational burden on the processor of a network station when the backoff counters implemented in software.
[0008] Unfortunately, a maximum number of different traffic categories have not been specified by the IEEE technical standard. Therefore, a particular implementation with a fixed number of hardware backoff counters cannot be assured of having enough backoff counters to support all of the different traffic categories. Additionally, a large number of hardware backoff counters can be expensive in terms of integrated circuit real estate. A need has therefore arisen for a technique that can support a variable number of different traffic categories without placing an undue computational burden on the processor of a network station.
[0009] In one aspect, the present invention provides a method for contending for access to a communications medium to transmit a message of a first traffic category in a system implementing a plurality of backoff counters using a single hardware backoff counter comprising: determining if the hardware backoff counter is idle, initiating a backoff procedure for the message if the hardware backoff counter is idle, if the hardware backoff counter is busy, then generating a backoff time for the first traffic category, comparing the backoff time for the first traffic category with a backoff time for a second traffic category in the hardware backoff counter; and determining a backoff procedure based on the results of the comparison.
[0010] In another aspect, the present invention provides a method for implementing a plurality of backoff counters using a single hardware backoff counter comprising determining a state of the hardware backoff counter, if the hardware backoff counter is performing a backoff procedure, then determining a state of a communications medium, if the communications medium is idle, then decrementing a value in the hardware backoff counter, if the value is equal to zero, then allow transmission to occur, if the communications medium is busy, then updating a value in each backoff counter, selecting a backoff counter with a smallest value, moving the selected backoff counter to the hardware backoff counter; and initiating a new backoff procedure with the hardware backoff counter.
[0011] The present invention provides a number of advantages. For example, use of a preferred embodiment of the present invention allows for a variable number of backoff counters while requiring only a single hardware backoff counter, increasing the flexibility of the network station.
[0012] Also, use of a preferred embodiment of the present invention requires computational support only when there is not a high demand for compute cycles. A time when there is high demand for computational support would, for example, be while the communications channel is idle. Rather, the updating of the software backoff counters during the time when the communications channel is busy, implying that the hardware backoff counters and any associated processes having to do with contention for the communications channel are idle because the channel is busy and is not available for contention.
[0013] Additionally, a preferred embodiment of the present invention allows for backoff counters to be implemented in software, hence permitting changes to be made to the design of the backoff counters by reprogramming the software of the network station.
[0014] The above features of the present invention will be more clearly understood from consideration of the following descriptions in connection with accompanying drawings in which:
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024] The making and use of the various embodiments are discussed below in detail. However, it should be appreciated that the present invention provides many applicable inventive concepts which can be embodied in a wide variety of specific contexts. The specific embodiments discussed are merely illustrative of specific ways to make and use the invention, and do not limit the scope of the invention.
[0025] Long delays leads to communications with large latencies. There are many communications applications that cannot tolerate high network latency. Examples include voice telephony applications, video teleconferencing, and other real-time, bi-directional and interactive applications. These applications require a network that provides a low maximum network latency, a minimal data transfer rate, and other QoS expectations.
[0026] One step devised to meet QoS expectations involves categorizing traffic in the network and assigning QoS parameters and/or priorities to the different traffic categories. Network traffic with the low network latency requirements are assigned higher priorities to ensure that they are serviced before traffic with less stringent network latency requirements, hence the higher priority traffic is required to wait less. Traffic with lower priorities are sometimes required to wait an extended amount of time, but only applications that are not sensitive to extended wait-times are assigned low priorities. Applications such as data and file transfers are assigned low priorities, while applications such as voice and video transmissions are assigned high priorities.
[0027] Referring now to
[0028]
[0029] As shown in
[0030] Stations within a BSS, for example, stations
[0031] A user may be thought of as a device or an entity that uses a station to communicate with other users who are using other stations to communicate. Therefore, in the remainder of this discussion, the terms stations and users will be used interchangeably without loss of information.
[0032] In an IEEE 802.11 wireless LAN, data, management, and control traffic are transmitted in what are called “units.” Data and control traffic transmitted between two stations are called Medium Access Control (MAC) protocol data units (MPDU), while management traffic transmitted between two stations are called MAC management protocol data units (MMPDU). A unit may be fragmented if it is too large to fit within a single MAC frame and therefore may be fragmented into multiple MAC frames.
[0033] An IEEE 802.11 wireless LAN may transmit information in one of two ways. A first way, called contention free communications, occurs only when a network station receives a poll from a network controller that explicitly gives the network station permission to transmit. A second way, known as contention access, allows any network station to vie for control of the shared communications medium when the medium is determined to be idle. The medium is idle when the clear channel assessment (CCA) has been continuously asserted for an extended period of time.
[0034] The method used controlling access to the medium is as follows. When a network station has information to transmit, it places the information in a queue and it generates a random time value known as a backoff time. The backoff time selected from a uniformly distributed random variable with an interval [0, CW], where CW is a value specified in the IEEE 802.11 technical specifications. The backoff time is then placed into a backoff timer. The backoff timer decrements the backoff time by one each time the medium remains idle for one network cycle. When the backoff timer reaches zero, the network station can transmit. If the medium becomes busy when backoff timer is not zero, then the backoff timer stops decrementing.
[0035] Because the contention access control method is fully distributed, i.e., any network station with information to transmit is using the access control method, collisions can and do occur. If a collision occurs, then the stations involved in the collision will generate a new backoff time with the interval being doubled in size. This continues until the information is successfully transmitted or if a message has been involved with too many collisions and retransmissions are abandoned.
[0036] According to the IEEE 802.11e draft technical standard version 2.0, the contention access control method is extended to support prioritized traffic. The IEEE 802.11e draft technical standard, “Draft Supplement to STANDARD FOR Telecommunications and Information Exchange Between Systems LAN/MAN Specific Requirements—Part 11: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications: Medium Access Control (MAC) Enhancements for Quality of Service (QoS)”, which is incorporated herein by reference. The draft technical standard specifies that each category of traffic be required to undergo the contention access control method for access to the shared communications medium.
[0037] A common way to provide contention access control for every category of traffic is to provide a queue and backoff timer for each different traffic category. As stated previously, there are two ways to implement the backoff timers, in software and in hardware. Implementing the backoff timers in software provides a large amount of flexibility, both in terms of features and functionality. Because the backoff timers are implemented in software, their design and number can be readily changed when needed. Implementing the backoff timers in hardware reduces the computational load placed on the processor of the network station, but is inflexible because the design and number of backoff timers cannot be changed once set. Because the number of traffic categories may change, a hardware implementation of the backoff timer with an insufficient number of backoff timers to support all of the traffic categories is not a usable solution.
[0038] The inflexibility of the hardware backoff counter places severe limitations on its use in an actual network station. However, the implementation of the backoff timers in software can place such a great computation burden on the processor of the network station that it may require a significant processor upgrade. A method that can implement an arbitrary number of backoff timers with a single hardware timer would provide an ideal compromise to the flexibility and cost issues.
[0039] Referring now to
[0040] According to a preferred embodiment of the present invention, the HWBOC
[0041] According to a preferred embodiment of the present invention, the VBOC is not a fully functional backoff counter. Instead of decrementing the value stored in it after each idle network cycle, the VBOC maintains the value that was initially stored in it. Decrementing the value stored in every VBOC after every idle network cycle would place an undue computational burden on the processing element of the network station and is, in essence, a software implementation of the backoff counter. It is preferred that the VBOC be updated only when the communications medium becomes busy. When the communications medium becomes busy, the HWBOC
[0042] The HWBOC
[0043] As discussed previously, there are at least two possible configurations for an HWBOC, one configuration allows a direct write of the backoff time to the HWBOC while a second configuration does not allow a direct write of the backoff time to the HWBOC. The present invention is operable with both configurations, with minor adjustments.
[0044] Referring now to
[0045] When a particular traffic category, for example, category X, has information to transmit, the network station will store the information in a queue. The network station will then check the HWBOC to see if it is idle (block
[0046] If the HWBOC was not idle (block
[0047] If BC
[0048] However, since time has elapsed since BC
[0049] If BC
[0050] If BC
[0051]
[0052] Referring now to
[0053] When a particular traffic category, for example, category X, has information to transmit, the network station will store the information in a queue. The network station will then check the HWBOC to see if it is idle (block
[0054] If the HWBOC was not idle (block
[0055] If BC
[0056] However, rather than triggering the HWBOC with CW
[0057] If BC
[0058] If BC
[0059] Derivation of the three different cases resulting from the comparison of the virtual backoff time, BC
[0060] According to the IEEE 802.11e technical standard, the uniform distribution of the backoff value for use in contention for access to the shared communications medium is required. The technical standard does not require that the backoff timers be implemented in hardware, software, or a combination thereof. It only requires that the backoff value, however generated and maintained, must be uniformly distributed and must remain so when traffic categories are moved up and down a prioritized list for transmission purposes.
[0061] In order to properly implement EDCF with a plurality of VBOCs and a single HWBOC, the uniform distribution of the backoff value for each supported traffic category must be guaranteed. As described previously, the total backoff period for a given traffic category X may be composed of several individual periods. This is due to the chance that a given traffic category may occupy the HWBOC for a period of time and then replaced by a different traffic category with a higher priority and then once again regaining occupancy of the HWBOC. A method, referred to as Multi-stage Uniform Generation (MUG), for generating uniformly distributed random variables is discussed below. The method will show that the summation of these individual periods is indeed uniformly distributed within the interval [0, CW
[0062] The MUG method is as below:
[0063] Given two numbers T and CW, where CW≧T≧0.
[0064] A random variable, BC, uniformly distributed in the interval [0, CW] can be drawn as follows. First, a random variable BC
[0065] If BC
[0066] If BC
[0067] When drawing BC=U[0, T] or BC=U[T, CW], the MUG method can be repeatedly employed. Therefore, the MUG method can be carried out an arbitrary number of times.
[0068] A proof of the MUG method is as follows:
[0069] For any given value y,
[0070] where: Pr(BC=y) means the probability of the event BC=y occurring, I(y>T) returns a 1 if y≧T and a 0 if y<T.
[0071] Notice that the present invention follows the MUG method for generating the backoff value for a queue of a given traffic category X. For example, traffic category X first generates a virtual backoff counter BC
[0072] In summary, for the two cases (BC
[0073] In the case when there are multiple traffic categories, i.e., multiple VBOCs active, the present invention also applies. For example, when a packet from a traffic category occupying the HWBOC finishes transmitting, a decision has to be made on the next traffic category to occupy the HWBOC. Assume the virtual backoff counters (VBOCs) are sorted in the increasing order, i.e., VBOC
[0074] According to a preferred embodiment of the present invention, the actual backoff value for the traffic category X should be less than the second smallest VBOC, i.e., VBOC
[0075] Referring now to
[0076] Referring now to
[0077] Now, category X is allowed to take control of the HWBOC. However, rather than triggering the HWBOC with CW
[0078] Referring now to
[0079] The EDCF collision procedure, as is specified by the IEEE 802.11e draft technical standard, specifies that the traffic category with the higher priority is allowed to transmit. The traffic category with the lower priority is forced to repeat the backoff procedure. However, rather than using the original contention window size, the contention window of the repeated backoff procedure is now double the size of the previous contention window. Should another collision occur, the contention window is doubled once again. This continues until the traffic is successfully transmitted or if a preset number of attempts has been reached and the transmission is aborted. Note that a limit to the doubling of the contention window size is specified in the draft technical standards.
[0080] Referring now to
[0081] To ensure that the backoff times remain uniformly distributed, when the category X traffic takes over the HWBOC, the HWBOC is triggered with a contention window of size [0, T], where T is the amount of time remaining in the HWBOC for category Y traffic. When the HWBOC expires, the category X traffic is allowed to transmit. After the category X traffic transmits, the category Y traffic is allowed to resume control of the HWBOC. The category Y traffic triggers the HWBOC with a contention window of size [0, CW
[0082] Up to this point, the algorithms presented have used two different traffic categories. The extension of the algorithms to an arbitrary number of traffic categories is quite similar to the two category cases presented above. When an arbitrary traffic category I requires backoff, it generates a virtual backoff count, BC
[0083] The various backoff counters are checked to determine the backoff counter with the smallest backoff value and the traffic category associated with the smallest backoff value is allowed to take over the HWBOC with the HWBOC triggered with the second smallest backoff value. This process continues until all queued traffic has been transmitted.
[0084] Referring now to
[0085] After the transmission is initiated, all remaining virtual backoff counters are updated and then checked to determine the smallest (BC
[0086] Another feature specified by the IEEE 802.1 le draft technical standard is the use of Arbitration Interframe Space (AIFS). AIFS are used to specify the amount of time that a particular traffic category must wait after the communications medium becomes idle before it can start or resume its backoff countdown. AIFS may be the same for all traffic categories in the network or they may be different for different traffic categories. The present invention is fully functional with either fixed sized AIFS or variable sized AIFS.
[0087] Referring now to
[0088] Time t
[0089] A hardware implementation of a preferred embodiment of the present invention has minimal requirements above and beyond a hardware implementation of a single hardware backoff counter implementation required for network stations compliant with the IEEE 802.11b technical standard, a standard that supports only a single backoff counter and does not support multiple traffic categories and priorities.
[0090] Referring now to
[0091] Coupled to the MAC processor
[0092] A memory
[0093] Referring now to
[0094] A first functional unit is an initial transmit hardware enqueue unit
[0095] The generate virtual backoff unit
[0096] Each time that the communications medium becomes busy, the backoff counters are frozen, providing a good opportunity to update the virtual backoff counters. An adjust virtual backoff counters unit
[0097] The number of idle network cycles minus the value of AIFS for the traffic category in the HWBOC
[0098] Finally, after the traffic category in the HWBOC
[0099] If the HWBOC
[0100] While this invention has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various modifications and combinations of the illustrative embodiments, as well as other embodiments of the invention, will be apparent to persons skilled in the art upon reference to the description. It is therefore intended that the appended claims encompass any such modifications or embodiments.