The rapid diffusion of Wireless Local Area Network (WLAN) access and the increasing demand for WLAN coverage is driving the installation of a very large number of Access Points (AP). The most common WLAN technology is described in the Institute of Electrical and Electronics Engineers IEEE 802.11 family of industry specifications, such as specifications for IEEE 802.11b, IEEE 802.11g and IEEE 802.11a. Other wireless technologies are being developed, such as IEEE 802.16 or WiMAX technology. A number of different 802.11 task groups are involved in developing specifications relating to improvements to the existing 802.11 technology. A draft specification from the IEEE 802.11e Task Group has proposed a set of QoS parameters to be used for traffic between an Access Point and a station. See, e.g., Tim Godfrey, “Inside 802.11e: Making QoS A Reality Over WLAN Connections,” CommsDesign, Dec. 19, 2003. Similarly in Ultra Wideband (UWB) environment, the WiMedia Alliance has published a draft standard, “Distributed Medium Access Control (MAC) for Wireless Networks,” Release 1.0, Dec. 8, 2005. These are a few examples of wireless network specifications, and there are many other technologies and standards being developed.
A number of wireless standards allow stations to access a channel through a contention based channel access mechanism, where wireless nodes may contend for channel access. For example, in WiMedia Distributed MAC specification, this channel access technique is referred to as prioritized contention access (PCA), where contention access is provided using different access categories (ACs), or traffic priorities. For example, for WiMedia and for 802.11e Enhanced Data Channel Access (EDCA), different quality of service (QoS) parameters may be provided for each AC. For example, QoS parameters may include: CWmin[AC], which is the minimum contention window for the AC, the CWmax[AC], the AIFSN[AC] which is the arbitration inter-frame spacing for the AC, the TXOPLimit[AC] which defines the length of the transmission opportunity or TXOP a wireless node is granted. Values for these parameters may be established to favor higher ACs or over lower ACs, for example.
A problem may arise in some cases where one wireless node may consume a significant percentage of channel usage, thereby preventing other nodes, e.g., even nodes having a same AC, from obtaining channel access. As an example, in some cases, access to the channel may be determined as a race between nodes. For example, nodes that may already be connected to the channel, in some cases, may have a better chance of winning a transmission opportunity (TXOP) because of the unfairness of the EDCA channel access protocol. It may therefore be desirable to provide a technique to improve fairness in contention based channel access for wireless networks.
Various embodiments are disclosed relating wireless networks, and also relating to pro-active congestion mitigation in a wireless network.
In an example embodiment, a wireless node may make a determination that an amount of previous channel usage by the wireless node is greater than a threshold value, and then delay an acquisition of a transmission opportunity based on the determination. For example, the wireless node may delay a start of a backoff time counter based on the determination, and/or may increase a value of the backoff time counter based on the determination. For example, the wireless node may delay an acquisition of a TXOP by using a access category (AC)-specific backoff timer value that includes a random value up to an AC-specific contention window plus an AC-specific relinquish backoff value
According to an example embodiment, a technique is provided for self-initiated relinquishing of a channel in a wireless network. A wireless node may, for example, delay a start of a backoff time counter by a delay period if a previous channel usage for the wireless node over a measurement period is greater than a threshold value.
According to another example embodiment, a method is provided that may include: making a determination, by a wireless node, that an amount of previous channel usage by the wireless node, e.g., over a measurement period, is greater than a threshold value, and delaying a start of a backoff time counter for the node based on the determination. In an example embodiment, the wireless node may delay a start of a backoff time counter by extending the arbitration inter-frame space (AIFS[AC]) for the node by a delay period, such as a relinquish inter-frame space (RIFS[AC]), if the previous channel usage for the node is greater than the threshold value. By delaying a start of a backoff time counter for a node by an additional delay (e.g., RIFS) when the previous channel usage for the node exceeds a threshold value over a measurement period, this may provide increased opportunity for other nodes to access the channel or win the transmission opportunity (TXOP). In such case, according to an example embodiment, the node may detect an idle channel for at least AIFS[AC] plus RIFS [AC] before starting its backoff time counter or before starting transmission (e.g., in case of zero backoff time value).
In another example embodiment, an apparatus may be provided for wireless communication by a node. The apparatus may determine whether an amount of previous channel usage by the node is greater than a threshold value. The wireless node may start transmission over the channel after detecting an idle channel for at least an arbitration inter-frame space (AIFS)[AC] if the previous channel usage by the node is not greater than the threshold value. This may include, for example, starting a backoff time counter for the node after detecting an idle channel for at least AIFS [AC], if the previous channel usage by the node is not greater than the threshold value. Also, the node may start transmission over the channel after detecting an idle channel for at least an arbitration inter-frame space (AIFS[AC]) plus an additional delay period if the previous channel usage by the node is greater than the threshold value. This may include starting transmission over the channel, or starting a backoff time counter after detecting an idle channel for at least AIFS[AC] plus a relinquish inter-frame space (RIFS[AC]) if the previous channel usage by the node is greater than the threshold value,
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.
Referring to the Figures in which like numerals indicate like elements,
The various embodiments described herein may be applicable to a wide variety of networks and technologies, such as WLAN networks (e.g., IEEE 802.11 type networks), IEEE 802.16 WiMAX networks, WiMedia networks, Ultra Wide Band networks, cellular networks, radio networks, or other wireless networks. In another example embodiment, the various examples and embodiments may be applied, for example, to a mesh wireless network, where a plurality of mesh points (e.g., Access Points) may be coupled together via wired or wireless links. The various embodiments described herein may be applied to wireless networks, both in an infrastructure mode where an AP or base station may communicate with a station (e.g., communication occurs through APs), as well as an ad-hoc mode in which wireless stations may communicate directly via a peer-to-peer network, for example.
The term “wireless node” or “node,” or the like, may include, for example, a wireless station, such as a mobile station or subscriber station, an access point (AP) or base station, a relay station, a wireless personal digital assistant (PDA), a cell phone, an 802.11 WLAN phone, a WiMedia device, a WiMAX device, a wireless mesh point, or any other wireless device. These are merely a few examples of the wireless devices and technologies that may be used to implement the various embodiments described herein, and this disclosure is not limited thereto.
According to an example embodiment, a self-initiated relinquish mechanism may be provided. A wireless node, for example, may monitor its past usage of the channel or keep track of its previous channel usage, such as a percentage of previous channel usage over a specific measurement period or averaging time. If the node's amount of previous channel usage is greater than a threshold value, then the wireless node may delay a start of its backoff time counter by a delay period, described in this disclosure as a relinquish inter-frame space (RIFS), although the particular name for this additional delay period is not important since it may be implemented using different names in various technologies or standards. A different value for RIFS may be provided for each access category, for example.
In an example embodiment, the measurement period may be, for example, a predefined measurement period, or may be a measurement period based on an access category, such as a different measurement period for each access category. Likewise, in an example embodiment, the threshold value may be a predefined threshold value, or may be a threshold value based on an access category, such as a different threshold value for each access category. Also, the measurement period and threshold values may be measured in different units. For example, the measurement period and threshold values may be measured or provided in time, such as seconds, or timer units, or in bits or packets, such as a number of received bits or frames or packets, for example.
Thus, a wireless node may, for example, start its backoff time counter after detecting an idle channel for at least an arbitration inter-frame space (AIFS) if the node's previous channel usage is less than or equal to a threshold value. Otherwise, the wireless node may start its backoff time counter after AIFS plus RIFS if the node's previous channel usage is greater than the threshold value. In such a case, this may extend AIFS by a delay period RIFS before, for example, starting the decrementing of the node's backoff time counter in order to increase the likelihood that other wireless nodes will successfully contend for channel access or win the transmission opportunity (TXOP), according to an example embodiment. The use of the additional delay period, RIFS, may allow a node to effectively relinquish the channel to another node that may be attempting to access the channel, for example.
Referring to
A wireless node with a packet to transmit may monitor the channel (medium). Initially, the channel may be busy at 206. However, at 207, the channel becomes idle. If the channel is idle for a period of time equal to an arbitration inter-frame space AIFS[AC], the wireless node may generate a backoff time to decrease the probability of collision. The backoff time may be selected, for example, as a random value in the range [0, CW], where CW identifies the contention window size. The backoff time may typically be an integer indicating a number of backoff slots, for example.
According to an example embodiment, CW may initially be set to CWmin or the minimum contention window size. Thus, depending on the CWmin, the backoff time may be set to zero, or some other value, for example. The backoff time counter may be set to this backoff time. The contention window and random backoff time counter may use a discrete scale, measured in backoff slots, for example. If an attempt to access a channel is unsuccessful due to collisions, then the node may increase the CW (e.g., up to CWmax), select a new random backoff time between [0, CW] for the backoff time counter, and then may re-attempt to access the channel. This process may be repeated, with CW increasing after each collision or unsuccessful attempt, for example.
The wireless node may then determine whether its previous channel usage has exceeded a threshold value. For example, the wireless node may determine whether its previous channel usage or amount of time transmitting data over a measurement period exceeds a threshold value. The threshold value may be provided per AC, or a different threshold value for each AC, and the threshold values may vary based on a number of users of a channel or other conditions.
If the previous channel usage for the wireless node, e.g., over the measurement period, is not greater than the threshold value, then the wireless node may use the timing as shown in lower portion 202 of
Therefore, in the case shown as lower portion 202, the wireless node may start transmission over the channel after detecting an idle channel for at least an AIFS[AC] if the previous channel usage for the node is not greater than the threshold value. There may be a random backoff period provided as well, e.g., zero or more slots, before transmission.
On the other hand, if the previous channel usage for the wireless node is greater than the threshold value, then the wireless node may use the timing as shown in upper portion 204 of
According to an example embodiment, as shown in upper portion 204, the wireless node may start transmission over the channel after detecting an idle channel or medium for at least AIFS[AC] plus RIFS[AC] if the previous channel usage for the node is greater than the threshold value. There may be a random backoff period provided as well, e.g., zero or more slots, before transmission.
According to an example embodiment, a different RIFS[AC] may be provided for each AC. The RIFS may be a silent period, the length of which may enable other nodes with backoff counters of a same AC to access the channel, or to at least increase the probability that these other nodes will be able to access the channel. RIFS[AC] may be defined with the resolution of a clock or in steps such as backoff slots, etc.
There may be an efficiency penalty in some cases for the additional RIFS delay, especially in cases where the node adds the RIFS delay, but there is no other node attempting to use the channel, thereby introducing unnecessary delay. The efficiency penalty may be calculated or estimate as RIFS/Measurement period, for example. The measurement period may be decreased to allow relinquishment through additional RIFS delay to be performed more frequently. Thus, if there are a higher number of nodes competing for the channel or a significant number of collisions, for example, then the threshold value may be decreased, and/or the measurement period may be decreased, and/or the RIFS[AC] may be increased to better allow other stations to obtain access to the channel. According to an example embodiment, selecting a RIFS[AC] delay period that is shorter than a maximum wait time, such as CWmax, may decrease the likelihood of another node successfully obtaining the TXOP, but provides a lower efficiency cost or network delay in case other nodes are not trying to access the channel. The table below illustrates some example measurement periods (or averaging times), RIFS, and efficiency costs, for each of several different ACs. This table is merely an example, and other numbers may be used.
In the table above, the different access categories (ACs) may include, for example, BE (Best Effort), BK (Background), VI (Video) and VO (Voice). For example, VI and VO categories are a higher ACs (and thus higher priority) than the BE and BK categories. In the table above, the results, for example, may be calculated based on the input data to indicate the efficiency cost (or penalty) of using the RIFS [AC] for various access categories. As can be seen from the table, the efficiency cost or penalty is typically fairly small unless higher RIFS values are used near the RIFS-max.
As noted above, nodes may increase a contention window size after each collision or unsuccessful attempt to access a channel, for example. Similarly, according to another example embodiment, a node may increase RIFS[AC] after each unsuccessful attempt to relinquish the channel to another node. Once another node has obtained the TXOP, then RIFS[AC] may be reset to initial values, for example.
In an example embodiment, a wireless node may notify other nodes, e.g., by sending or broadcasting a message, that it intends to use RIFS during a next period of time. This may allow nodes to make decisions when to attempt to obtain channel access, or when to wake-up from a low power state and contend for the TXOP.
Another alternative embodiment will now be described. Starving nodes, or nodes that may have unsuccessfully attempted to obtain a TXOP, may typically consume significant power because they may sense the channel or medium regularly, although such nodes may not be able to transmit data. Thus, in an example embodiment, a node may generally remain in a low-power state, and then wait until after a beacon period has completed, or wait until after node reservations (such as for Distributed Reservation Protocol reservations) for transmission have completed, before waking from a low-power state and contending for channel access. Thus, in an example embodiment, such nodes waking and contending for a TXOP after a beacon period and/or reservation period may set their contention windows (CW) to CWmin, and/or set their random backoff time counters to zero or to low values based on a low or minimum CW, to improve the likelihood of obtaining channel access. Likewise, after the beacon period or reservation period, a wireless node having previous channel usage that is greater than a threshold may wait AIFS[AC] plus RIFS[AC] before transmitting, to increase the probability that another node will obtain the TXOP after the beacon period or reservation period.
In an example embodiment, use of the additional delay period, RIFS, may work well for lower priority traffic ACs, such as BE (best efforts) and BK. It may, in some cases, be less desirable to use RIFS for higher access categories, such as voice (VO) and video (VI) access categories, since these nodes may need to transmit a packet periodically, e.g., every 20 ms. However, this is just one example. The use of RIFS may be advantageously used for all ACs, or just some ACs, such as BE and BK, for example.
According to another embodiment, a wireless station or node that has used a channel resource more than a threshold amount may increase a value for its backoff time counter. For example, a wireless node that has exceeded a threshold usage value may increase a value of its backoff time counter by an AC (access category)-specific relinquish backoff value, Rbackoff[AC]. Thus, use of Rbackoff[AC] may provide a larger backoff timer value for those wireless nodes that have used the channel more than a threshold value, which may allow other wireless nodes better opportunity to obtain or acquire the transmission opportunity (TXOP).
For example, if a wireless node has a previous channel usage over an averaging or measurement period that does not exceed a threshold, then the node may use a standard backoff time counter value, which may be, for example:
Backoff[AC]=Rand(1 . . . CW[AC), if previous channel usage≦threshold. Thus, a value of the backoff time counter for the node may be a selected random value between 1 and an access-category specific contention window size. Contention window, and backoff time counter value may be measured, for example, as a number of discrete timer intervals or slots.
On the other hand, if the channel or medium usage over a measurement or averaging period for the node exceeds a threshold, then the backoff timer value for the node may be increased, e.g., beyond the standard backoff timer value, by an AC-specific relinquish backoff timer value, Rbackoff[AC].
Backoff[AC]=Rand(1 . . . CW[AC)+Rbackoff[AC], if previous channel usage>threshold. Thus, the backoff timer value may be increased in cases where a node's previous channel usage may have exceeded a threshold, for example.
The RIFS[AC], or relinquish inter-frame space to delay a start of a backoff time counter, and Rbackoff[AC] to increase a value of the backoff timer counter, may be used separately or together to delay a node's acquisition of a transmission opportunity (TXOP) or delay channel access.
As another example of operation 310, a node may determine that an amount of time the node is transmitting, e.g., over a measurement period (312), and then determine that the amount of time is greater than a threshold value (314).
At 320, the node may delay a start of a backoff time counter (e.g., delay a start of decrementing the backoff time counter) based on the determination. For example, operation 320 may include delaying a start of a backoff time counter by extending the arbitration inter-frame space (AIFS) for the node by a delay period (e.g., RIFS[AC]) in response to the determination (322).
At 420, the wireless node may start transmission over the channel after detecting an idle channel for at least an arbitration inter-frame space (AIFS)[AC] if the previous channel usage by the node is not greater than the threshold value. Operation 420 may include, for example: determining an access category for the node, determining an AIFS associated with the access category, or AIFS[AC], and starting a backoff time counter for the node after detecting an idle channel for at least AIFS [AC], if the previous channel usage by the node is not greater than the threshold value. If, for example, the contention window or CW is set to a low value or zero, the backoff time counter may be set to a low value or even zero, thereby allowing the node to start transmitting over the channel immediately after detecting idle channel for AIFS[AC]. Of course, backoff time counter may be set to other, e.g., non-zero, values, which may increase the backoff delay after AIFS[AC] before the node may start transmitting over the channel, for example.
At 430, a node may start transmission over the channel after detecting an idle channel for at least an arbitration inter-frame space (AIFS) plus an additional delay period if the previous channel usage by the node is greater than the threshold value. Operation 430 may, for example, include starting transmission over the channel after detecting an idle channel for at least AIFS [AC] plus a relinquish inter-frame space (RIFS[AC]) if the previous channel usage by the node is greater than the threshold value. The AIFS and RIFS may be provided for each of a plurality if access categories. Operation 430 may include, for example: determining an access category for the node, determining an AIFS associated with the access category or AIFS[AC], determining a RIFS associated with the access category or RIFS[AC], and starting a backoff time counter after a period of AIFS[AC]+RIFS[AC], such as after detecting an idle channel for at least AIFS[AC]+RIFS[AC], for example, if the previous channel usage by the node is greater than the threshold value.
Controller 604 may be programmable and capable of executing software or other instructions stored in memory or on other computer media to perform the various tasks and functions described above, such as one or more the tasks or methods described above in
In addition, a storage medium may be provided that includes stored instructions, when executed by a controller or processor that may result in the controller 604, or other controller or processor, performing one or more of the functions or tasks described above.
Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Implementations may implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program, such as the computer program(s) described above, can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps also may be performed by, and an apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the various embodiments.