Embodiments described herein relate generally to wireless communication methods and apparatus and more specifically to facilitating channel allocation by access points in a wireless network.
Wireless Local Area Networks (WLAN or Wi-Fi) are used by smartphones and mobile computing devices. The growing popularity and proliferation of such devices has led to wireless local area networks becoming more and more congested. It is expected that future Wi-Fi deployments will be highly dense, featuring heavy traffic load and overlapping basic service sets (OBSS). It is expected that the proximity between neighbouring access points (APs) will continue to shrink. Such developments are likely to lead to a significant increase in inter-cell or inter-AP interference, which may degrade the system performance to unacceptable levels.
To address the heavy load and OBSS issues, channel allocation is a key technique, where the available channels are allocated to avoid or mitigate the interference. Depending on the network deployment, there are two possible scenarios: centralized control and uncoordinated/unplanned deployments. The first assumes cooperation among the APs. However, the majority of APs actually operate under the latter regime wherein each AP is running independently and belong to different administrative entities.
In the following, embodiments will be described with reference to the drawings in which:
In an embodiment, a wireless communication method in an access point of a wireless network is disclosed. The access point comprises at least one wireless interface operable to communicate on one of a plurality of channels. The method comprises monitoring each of the plurality of channels, wherein monitoring a monitored channel from the plurality of channels comprises switching the wireless interface to the monitored channel; receiving a plurality of indications, each transmitted by a second access point on the monitored channel and indicating an aggregate traffic level calculated by the respective second access point; and storing an indication of the highest aggregate traffic level received for the monitored channel; comparing the stored highest aggregate traffic levels for the plurality of channels; selecting as a communication channel, the channel from the plurality of channels having the smallest stored highest aggregate traffic level; and communicating over the communication channel.
In an embodiment, receiving a plurality indications comprises receiving a plurality of beacon frames and extracting an indication of an aggregate traffic level from each of the beacon frames.
In an embodiment, a wireless communication method in an access point of a wireless network is disclosed. The method comprises receiving indications from other access points over a communication channel of the wireless network, the received indications each indicating a traffic level on the communication channel of a respective other access point; calculating an aggregate traffic level from the received indications; and transmitting an indication of the aggregate traffic level on the communication channel.
In an embodiment, ransmitting an indication of the aggregate traffic level on the communication channel comprises transmitting a beacon frame on the communication channel, the beacon frame comprising the indication of the aggregate traffic level.
In an embodiment, the beacon frame further comprises an indication of the traffic level on the communication channel of the access point.
In an embodiment, calculating the aggregate traffic level from the received indications comprises calculating the sum of the traffic levels on each of the other access points.
In an embodiment an access point for a wireless network is disclosed. The access point comprises a wireless network interface configured to receive indications on a communication channel from other access points, the received indications each indicating a traffic level on the communication channel of a respective other access point; and a calculation module configured to calculate an aggregate traffic level from the received indications. The wireless network interface is further configured to transmit an indication of the aggregate traffic level on the communication channel.
In an embodiment, the wireless network interface is configured to transmit a beacon frame on the communication channel, the beacon frame comprising the indication of the aggregate traffic level.
In an embodiment, the beacon frame further comprises an indication of the traffic level on the communication channel of the access point.
In an embodiment, the wireless network interface is configured to receive beacon frames transmitted by the other access points and the access point further comprises a monitoring module configured to extract the received indications from the beacon frames.
In an embodiment, an access point for a wireless network is disclosed. The access point comprises a wireless interface operable to communicate on one of a plurality of channels, a channel selection module configured to control the wireless network interface to receive signals on a monitored channel from the plurality of channels; a monitoring module configured to monitor the monitored channel and extract indications, each transmitted by other access points on the monitored channel and indicating an aggregate traffic level calculated by the respective other access point; a memory configured to store the highest aggregate traffic level received for each of a plurality of monitored channels; and a calculation module configured to compare the stored highest aggregate traffic levels for the plurality of monitored channels, wherein the channel selection module is configured to select as a communication channel, the channel from the plurality of channels having the smallest stored highest aggregate traffic level.
In an embodiment, the access point further comprises a communication module configured to control the wireless network interface to communicate on the communication channel.
In an embodiment, the access point further comprises a second wireless network interface and a communication module configured to control the second wireless network interface to communicate on the communication channel.
In an embodiment, the monitoring module is configured to extracting an indication of an aggregate traffic level from beacon frames transmitted by the respective other access points.
The wireless network interface 110 is operable to send and receive signals using the antenna 115 on one or more of a plurality of radio frequency channels defined in a radiofrequency spectrum. The channel selection module 120 selects which of the radio frequency channels the wireless network interface 110 uses. The communication module 130 controls the wireless network interface 110 to send and receive signals according to a communication protocol, for example, to client STAs as described above in relation to
The methods carried out by the modules of the AP 100 are described in more detail below.
Embodiments of the present invention allow APs to select a channel which minimises or reduces the interference from other APs operating in its vicinity. This is achieved by including traffic information in beacon frames transmitted by the APs. Each AP broadcasts its traffic state via the beacon frame. The traffic state may be a function of the level of traffic that the AP has been handling over a window of time. When an AP receives beacons from other APs in the vicinity operating on the same channel, it extracts traffic state information of those other APs and stores the extracted traffic state information in a table and then discards these beacon frames. By computing an aggregate function on these traffic state values the AP can determine the potential interference from these neighbouring cells. Therefore, in addition to advertising its own traffic state, it will also advertise this aggregate value via the beacon frame.
In step S402, the wireless network interface 110 of the AP 100 receives beacon frames from other APs in the vicinity operating on the same channel, in the following this channel is referred to as the operating channel. In the example shown in
In step S404, the calculation module 150 of the AP 100 calculates an aggregate traffic level from the individual traffic levels included in beacon frames received on the operating channel. The aggregate traffic level may be calculated by summing the traffic levels received from each of the other APs in the vicinity.
The aggregate traffic level may be the sum of the traffic levels reported by each of the neighbouring APs. The aggregate traffic level may also include the traffic level on the AP itself.
In step S406, the AP 100 transmits a beacon frame including an indication of the aggregate traffic level calculated in step S404. The beacon frame also includes an indication of the traffic level on the AP 100.
In step S610, the monitoring module 140 monitors each channel in turn.
Once all of the channels have been monitored, an indication of the highest aggregate traffic level for each channel is stored in the memory 160 of the AP. The method then moves to step S620. In step S620, the channel having the lowest value for the highest aggregate traffic level is selected as a communication channel.
In step S630, the channel selection module 120 switches the wireless network interface 110 to the communication channel.
In step S640, the AP communicates with its clients using the communication channel.
In step S706, it is determined whether an entry exists in a table stored in the memory 160 for the AP from which the beacon frame originated. If an entry for the AP does exist, the method moves to step S708 in which the traffic state entry in the table is updated with the new value read from the beacon. If an entry does not exist for the AP, the method moves to step S710 in which a new entry is created for the AP and the traffic state information is recorded against the new entry.
Following steps S708 and S710, the method moves to step S712. In step S712, the aggregate value traffic level value tagg read from the beacon is compared with a value maxTrafficRecentWindow which is stored in the memory 160 of the AP. The value maxTrafficRecentWindow is a statistic maintained over a fixed window of time. It is set to 0 at the beginning of each window.
During normal course of operation when AP has already chosen its operating channel and is serving clients, the AP may receive beacons from neighbouring APs operating on the same channel as itself. It will then compare the tagg reported by these APs with the maxTrafficRecentWindow. If higher, it updates the maxTrafficRecentWindow by assigning it this tagg value. This additional window based measurement is mainly to track the state of the operating channel in real time on a short time scale.
If the value of tagg read from the beacon is not greater than the value maxTrafficRecentWindow, the method returns to step S702 in which protocol processing takes place. If the value of tagg read from the beacon is greater than the value maxTrafficRecentWindow, the method moves to step S714. In step S714, the value of maxTrafficRecentWindow is updated with the value of tagg read from the beacon. Following step S714, the method returns to step S702 in which protocol processing takes place.
The value maxTrafficRecentWindow is used during normal operation to track the state of the channel that the AP is operating on.
In step S802, protocol processing takes place. In step S804, the AP determines whether a periodic timer has fired. The periodic timer sets the length of the window for which the value of maxTrafficRecentWindow is stored. If the periodic timer has not fired, the method returns to step S802 in which protocol processing takes place. If the periodic timer has fired the method moves to step S806. In step S806, the value of maxTrafficRecentWindow is reset, and the method returns to step S802.
If the beacon timer has expired, the method moves to step S904. In step S904, the calculation module 150 calculates the traffic state ti for the AP over the recent time window. The calculation module also calculates the aggregate traffic state tagg of all neighbouring APs using the table stored in the memory 160. The calculated values of the traffic state ti and the aggregate traffic state tagg of all neighbouring APs are inserted into a beacon with an identifier of the AP as shown in
In step S1002, the AP is switched on. When the AP powers on, it tunes to the first non-overlapping channel in step S1004. The AP dwells on this channel for a fixed period of time, gathers information on this channel and moves onto the next when the dwell timer expires. In step S1006, the AP switches to the channel to be monitored, starts the dwell timer and sets the value of max_tagg for the monitored channel to zero.
In step S1008 the AP listens for beacon frames to capture the state of the neighbourhood on the monitored channel. The AP determines whether a beacon has been received from any AP on the monitored channel. If a beacon has been received on the monitored channel, the method moves to step S1010. In step S1010, the traffic state and aggregate traffic value tagg from the beacon are recorded in the memory of the AP. In step S1012, the aggregate traffic value tagg from the beacon is compared with the stored maximum aggregate traffic value observed for the monitored channel. If the aggregate traffic value from the beacon is greater than the stored maximum aggregate traffic value observed for the monitored channel then the method moves to step S1014 in which the stored maximum aggregate traffic value observed for the monitored channel is updated with the aggregate traffic value from the beacon. The method then moves to step S1016. If the aggregate traffic value from the beacon is not greater than the stored maximum aggregate traffic value observed for the monitored channel then the method moves to step S1016 without updating the stored maximum aggregate traffic value observed for the monitored channel.
If in step S1008, no beacon is received, the method moves to step S1016. In step S1016, the AP determines whether the dwell timer has expired. If the dwell timer has not expired, the method moves to step S1018 in which the AP continues to listen for beacons on the monitored channel, and the method continues to step S1008 as described above.
If in step S1016, the AP determines that the dwell timer has expired, the method moves to step S1020. The AP will maintain statistics for each non-overlapping channel over a certain window. The length of the window may be equal to the dwell time on the channel or longer. Upon expiration of the dwell time counter, the AP will move to the next channel and repeat the above process. This process will continue until the AP completes scanning all the non-overlapping channels.
In step S1020, the AP determines whether all channels have been monitored. If there are still remaining channels to be monitored, the method moves to step S1022. In step S1022, the next channel is selected as the monitored channel and the method returns to step S1006 in which monitoring of the new monitored channel starts. If in step S1020, it is determined that all channels have been monitored, the method moves to step S1024.
In step S1024, the maximum aggregate traffic values for each of the channels are compared. The channel having the lowest maximum aggregate traffic value is selected as the communication channel for the AP. The AP then switches to the communication channel and normal operation starts. In step S1026, protocol processing takes place with the communication channel used for communication.
Embodiments are envisaged for use in dense OBSS environments. Therefore, there is a high likelihood of finding traffic on each channel and therefore for whatever short period of time an AP dwells on a channel that is being monitored, it will record some activity and therefore be able to gather some statistics on its potential neighbourhood on the channel being monitored.
Assuming that an AP has a single radio card or wireless network interface, it will, every either periodically or when it is idle, temporarily listen to other channels to keep potential interference information on these up to date. This process is described below with reference to
In step S1102, the AP determines that it is idle and starts the channel traffic information update process. In step S1104, the AP switches to a channel to be monitored to update information on the monitored channel. In step S1106, the AP switches to the channel to be monitored, starts the dwell timer and sets the value of max_tagg for the monitored channel to zero.
The method then moves to step S1108 in which the AP listens for beacons on the monitored channel. When a beacon is received on the monitored channel the method moves to step S1110. When no beacon is received, the method moves to step S1116.
In step S1110, the traffic state and aggregate traffic value tagg from the beacon are recorded in the memory of the AP. In step S1112, the aggregate traffic value tagg from the beacon is compared with the stored maximum aggregate traffic value observed for the monitored channel. If the aggregate traffic value from the beacon is greater than the stored maximum aggregate traffic value observed for the monitored channel then the method moves to step S1114 in which the stored maximum aggregate traffic value observed for the monitored channel is updated with the aggregate traffic value from the beacon. The method then moves to step S1116. If the aggregate traffic value from the beacon is not greater than the stored maximum aggregate traffic value observed for the monitored channel then the method moves to step S1116 without updating the stored maximum aggregate traffic value observed for the monitored channel.
In step S1116, the AP determines if the dwell timer has expired. If the dwell timer has not expired, the method moves to step S1118 and the AP continues to listen for beacons on the monitored channel, and the method returns to step S1108. If the dwell timer has expired, the method moves to step S1120.
In step S1120, the AP switches back to the operating channel and stores the recorded maximum aggregate traffic value observed for the monitored channel in the memory. The next time a temporary scan is performed, a different channel is chosen as the monitored channel. The method moves to step S1122 in which protocol processing takes place.
As described above, when any new statistics are gathered, previously held records will be updated. In embodiments, an AP may adopt a more reactive approach, e.g., monitor only when it experiences bad performance to identify if better alternatives are available.
The AP may switch its operating communication channel under different circumstances. For example, a switch of communication channel may take when a scan of neighbouring channels indicates availability of promising alternatives compared to the operating channel. Alternatively a switch of channel may be triggered when the level of interference it is experiencing goes up in comparison to what it was when the operating channel was chosen, this could be detected by the retransmission rate going up. Since each AP is dynamically monitoring and maintaining up to date information on different channels, at any given point in time, it can choose the one that promises to offer the best performance.
Since each node makes decisions independently in a distributed manner, there is no need for a centralised controller. In embodiments, when operating in a dense environment, whilst it may be likely that all of the channels are busy, the AP will resort to choosing the path of least resistance.
AP 1, the third AP 3, the fourth AP 4, the fifth AP5 and the sixth AP 6. Therefore the second AP 2 stores indications of the traffic levels t1, t3, t4, t5 and t6 of these APs. The other APs operating on the first channel, channel X store indications of the traffic levels on the APs from which they can receive beacons.
The seventh AP 7 stores indications of the traffic levels on the eighth AP 8 and the ninth AP 9. Similarly, the other APs operating on the second channel, channel Y store indications of the traffic levels on the APs from which they can receive beacons. As shown in
Further as shown in
As shown in
The seventh AP 7 stores state information from beacons received on channel X during temporary monitoring. This state information includes identifiers of the APs, the individual traffic levels on these APs and the aggregate traffic levels calculated by each of these APs. As shown in
As the example described above illustrates, an AP, in this case the seventh AP can quickly determine information about alternative operating channels from the aggregate traffic levels included in beacons transmitted by APs operating on those other channels.
An advantage of advertising the aggregate traffic state as heard by an AP, is that this can significantly reduce the information gathering time. Any AP that switches to a channel for monitoring and picks up beacons from certain APs is likely to see similar levels of potential interference to those APs. Therefore the AP need not wait to receive information from all possible APs around it but can quickly get a rough snapshot of the state of the channel by listening to a single beacon. This also means that the AP can quickly gather aggregate information in such a short time frame as beacons are sent on average every 100/500 ms depending on the frequency configured in the APs. Using this approach, an AP can build a picture of neighbouring channels and choose a channel which offers the potential for least interference.
In an embodiment, a variant of the proposed approach could employ aggregating the traffic state received from all neighbours instead of using the aggregate reported by each neighbour.
Additionally, to avoid synchronisation between neighbours, i.e. each neighbour acting at the same time, randomisation can be introduced. For example, instead of monitoring each channel sequentially, each AP could randomly select a channel such that it scans each of the available channels at least once per cycle. Moreover, randomisation can also be introduced during the channel switch process. For example, in a scenario where two or more neighbours are on the same channel, it is desirable if they don't act at the same time. That is, two APs switch channel at the same time to eventually land up on another channel which happens to be the same. To avoid such simultaneous switching, APs could randomise their decision when faced with a channel switch option, for example, pick a random number from a distribution and decide a course of action if this random number is less than some threshold.
The specific embodiments are presented schematically. The reader will appreciate that the detailed implementation of each embodiment can be achieved in a number of ways. For instance, a dedicated hardware implementation could be designed and built. On the other hand, a processor could be configured with a computer program, such as delivered either by way of a storage medium (e.g. a magnetic, optical or solid state memory based device) or by way of a computer receivable signal (e.g. a download of a full program or a “patch” update to an existing program) to implement the management unit described above in relation to the embodiments. Besides these two positions, a multi-function hardware device, such as a DSP, a FPGA or the like, could be configured by configuration instructions.
Whilst certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel devices, and methods described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the devices, methods and products described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/GB2015/050342 | 2/9/2015 | WO | 00 |