1. Field of the Invention
This invention relates to a data communication system, and particularly to a system and method of load balancing in a wireless communication system including at least one access point.
2. Description of the Related Technology
Recently a variety of computer network systems have been widely used. Such network systems include a local area network (LAN), a wide area network (WAN), a wireless local area network (WLAN), a wireless personal area network (WPAN), a general packet radio service (GPRS) network and other wireless network systems. The network systems allow communication between various end terminals such as a personal computer (desktop, lap top, palm top), a mobile phone, or other portable communication devices. It is typical that the above network systems include at least one bridge element such as an access node (or access point) where user traffic enters and exits a communications network.
In most of the above networks, when an end terminal device transmits data, it encapsulates the data into a packet with the destination address at the header of the packet. The packet is then transmitted onto a network. All other connected devices read the address at the head of the packet, but a device will only read the entire packet including the data if it recognizes its own address in the header. Once the packet has been read, the device responds to the source (the source is also in the packet header). The response could tell the source that the data was received successfully, or that it was corrupt and re-transmission is necessary.
This packet transmission has been widely used because it allows a plurality of terminals on a network to send data at the same time and thereby share an interconnecting communication media. However, its use may be problematic when a network is heavily loaded. When the media is heavily congested, some access points on the network may also be overloaded with traffic. In this situation, some of the packets can be delayed or sometimes lost. This is particularly noticeable in networks operating at a high bit rate. Thus, there has been a need to provide load balancing of a network system.
One aspect of the invention provides a method of load balancing in a terrestrial wireless communication system including an access node. The method comprises i) communicating data wirelessly between the access node and a plurality of terminals via a plurality of channels, wherein the plurality of terminals and the access node form a wireless local area network, ii) determining, at the access node, an overloaded channel from the plurality of channels and iii) transferring, at the access node, a load from the overloaded channel to a less loaded channel of the plurality of channels.
Another aspect of the invention provides a method of load balancing in a wireless communication system including an access point. The method comprises i) providing a plurality of channels between the access point and a plurality of terminals such that the access point is in data communication with the plurality of terminals via the plurality of channels, ii) determining an overloaded channel from the plurality of channels based on at least one of: the number of packets pending in each of the channels and bandwidths which are currently being used in each of the channels. The method also comprises iii) selecting a link from the overloaded channel and iv) transferring the selected link to a less loaded channel of the plurality of channels based on at least one of: the quality of service level required for the selected link and a received signal strength indication (RSSI) value in the less loaded channel.
Another aspect of the invention provides a method of load balancing in a wireless communication system including an access point. The method comprises i) communicating data between the access point and a plurality of terminals via a plurality of channels, ii) calculating loads of each of the plurality of channels based on at least one of: the number of packets pending in each of the channels and bandwidths which are currently being used in each of the channels and iii) determining an overloaded channel from the plurality of channels based on the calculated loads. The method also comprises iv) selecting a link from the overloaded channel, v) selecting a new channel, to which the selected link is transferred, from the plurality of channels, wherein the new channel is less loaded than the overloaded channel, vi) determining the quality of service level required for the selected link and a received signal strength indication (RSSI) value in the new channel and vii) transferring the selected link to the new channel in case the determined RSSI value is equal to or greater than that of the selected link or greater than a predefined threshold RSSI value, and in case the quality of service level required for the selected link is met in the new channel.
Another aspect of the invention provides an apparatus for load balancing in a communication system including an access point. The apparatus comprises a control module and a memory. The control module is configured to i) communicate data wirelessly between the access point and a plurality of terminals via a plurality of channels, wherein the plurality of terminals and the access point form a wireless local area network, ii) determine an overloaded channel from the plurality of channels and iii) transfer a load from the overloaded channel to a less loaded channel of the plurality of channels. The memory is in data communication with the control module and is configured to store information to be used for the control module performing the load balancing.
Still another aspect of the invention provides a system for load balancing in a wireless communication system including at least one access node, each access node employing a plurality of channels. Each access node is configured to determine a load imbalance based on at least one of the number of packets pending in each of the plurality of channels and bandwidths which are currently being used in each of the plurality of channels, and wherein if there is an overloaded channel, the access node is configured to select a link from an overloaded channel, and transfer the selected link to a less loaded channel based on at least one of the quality of service level required for the selected link and a received signal strength indication (RSSI) value in the less loaded channel.
Still another aspect of the invention provides a system for load balancing in a terrestrial wireless communication system including an access node. The system comprises i) means for communicating data wirelessly between the access node and a plurality of terminals via a plurality of channels, wherein the plurality of terminals and the access node form a wireless local area network, ii) means for determining, at the access node, an overloaded channel from the plurality of channels and iii) means for transferring, at the access node, a load from the overloaded channel to a less loaded channel of the plurality of channels.
Yet another aspect of the invention provides a computer readable medium storing a program which performs a method of load balancing in a terrestrial wireless communication system including an access node. The method comprises i) communicating data wirelessly between the access node and a plurality of terminals via a plurality of channels, wherein the plurality of terminals and the access code form a wireless local area network, ii) determining, at the access node, an overloaded channel from the plurality of channels and iii) transferring, at the access node, a load from the overloaded channel to a less loaded channel of the plurality of channels.
The foregoing and other features of the invention will become more fully apparent from the following description and appended claims taken in conjunction with the following drawings, in which like reference numerals indicate identical or functionally similar elements.
Each access point 130-150, which is also typically referred to “an access node” or “a wireless bridge”, is in data communication with stations 132-134, 142-144 and 152-154, respectively. Each access point 130-150 is in data communication with the wireless switch 120. Each access point 130-150 comprises Airespace 1200, available from Airespace Inc., IronPoint, available from Foundry Networks, or Altitude 300 and Summit 300, available from Extreme Networks.
The wireless switch 120 is in data communication with the external server 110. The external (or management) server 110, which is an optional element in certain network configurations, may include management software that manages the system 100. The external server 110 may be connected with other network system (not shown).
Each of the stations 132-134, 142-144 and 152-154 is typically referred to as an end terminal or a user device. Each of the stations 132-134, 142-144 and 152-154 may include, for example, a personal computer (desktop, lap top, palm top), a mobile phone, or other portable communication devices such as a hand-held PC, a wallet PC and a personal digital assistant (PDA). The data communication between each access point 130-150 and each of the stations 132-134, 142-144 and 152-154 is typically performed over a single channel (channel 1, channel 2 and channel 3, respectively).
A description of the general operation of a typical network system, including a wireless switch and an access point, can be found, for example, at “http://www.airespace.com/products/AS—4000.php” which is incorporated by reference herein.
The system 100 of
If it is determined that channel 1 is overloaded and resources are available in other access points (access point 140 or 150), the wireless switch 120 sends a proprietary signal, which is not recognized by a communication standard, for example, IEEE 802.11 a/b/g, to the overloaded access point (access point 130). The access point 130 sends a message, which requests the associated stations 132 and 134 to switch to another access point (access point 140 or 150). The communication of the message between the access point 130 and the stations 132-134 may be implemented with either a standard signal or a proprietary signal.
The system 100 illustrated in
One aspect of the invention provides a load balancing system which does not require extra hardware equipment such as a wireless switch, or an external server, or additional software such as management software. In one embodiment of the invention, the access point acts as a local and centralized server which makes its own decision on load balancing based on information such as channel loads, quality of service (QoS) requirements and the received signal strength indication (RSSI) values of the associated channels in order to transfer a load from an overloaded channel to an underloaded channel.
One embodiment of the invention includes at least one access point, where each access point employs multiple channels. Each access point determines a load imbalance based on at least one of the number of packets pending in each of the multiple channels and the current bandwidth, e.g., measured in bits per second, in each of the channels. If there is an overloaded channel, the access point selects a link from the overloaded channel, and transfers the selected link to a new channel, which is a less loaded channel, based on at least one of the QoS required for the selected link and an RSSI value of the new channel. In one embodiment, the access point is programmed to perform the load balancing method according to embodiments of the invention without changing its hardware configuration.
In one embodiment of the invention, data communication within the system 200 and with other communication network is carried out using IEEE 802.11a/11b/11g, IEEE 802.15.3/15.3a or other wireless communication standards. The specification of IEEE 802.11a/11b/11g. can be found, for example, at http://standards.ieee.org/getieee802/802.11.html. The specification of IEEE 802.15.3/15.3a can be found, for example, at http://standards.ieee.org/getieee802/802.15.html. The specifications of IEEE 802.11a/11b/11g and 802.15.3/15.3a are incorporated herein by reference.
In one embodiment of the invention, the access point 210 includes a multiple channel medium access control (MC-MAC) based access point. The medium access control (MAC) is an effective methology that allows devices connected to a network system to share their interconnecting media. Due to the shared nature of the media, a MC-MAC based access point allows more than one device to send data at the same time. In one embodiment, the access point 210 can handle more than two channels, although only two channels (channel 1, 6) are shown in
Referring to
In one embodiment, the access point 210 determines which one of channels 1 and 6 is overloaded based on the number of packets pending in each of the channels 1 and 6. In another embodiment, the access point 210 determines an overloaded channel based on the currently used bandwidth in each channel. If there is an imbalance of a load in the channels, the access point 210 balances the overall load by transferring one or more links from the overloaded channel to an underloaded (or less loaded) channel.
In one embodiment, the access point 210 selects a link from an overloaded channel (for example, channel 6) and transfers the selected link to a less loaded channel (for example, channel 1). In another embodiment, the access point 210 selects a link from an overloaded channel (for example, channel 6) and swaps the selected link with a link of the new channel (for example, channel 1).
In one embodiment, the access point 210 transfers the selected link to a new channel or swaps the selected link with a link of the new channel if the QoS requirement for the selected link is met in the new channel. In another embodiment, the access point 210 transfers the selected link to a new channel or swaps the selected link with a link of the new channel if an RSSI value in the new channel or the RSSI value of a link of the new channel is equal to or greater than that of the old link, or greater than a threshold RSSI value.
The RSSI value can be determined based on the signal strength of a received packet at either access point 210 or each station 220-260. In one embodiment, the RSSI value can be obtained from the relationship, defined in each access point 210 or each station 220-260, between the received signal strengths and RSSI values. As an example, the received signal strength of “70 dB” can be assigned an RSSI value of “80” in one access point or station. As another example, the received signal strength of “70 dB” can be assigned an RSSI value of “100” in another access point or station. This can be implemented, for example, by a table lookup algorithm.
The QoS levels are generally included in the header section of a packet that the access point 210 receives. As discussed above, the RSSI value can be determined based on the signal strength of a received packet. In one embodiment, the memory 214 may include a random access memory (RAM), a programmable ROM, a flash memory, EEPROM and so on. In one embodiment, the control module 212 is in data communication with the memory 214 via a wireless communication standard protocol such as IEEE 802.11a/11b/11g. In another embodiment, the control module 212 stores such information and performs load balancing based on the information without using a memory.
In one embodiment, the control module 212 includes a processor configured to or programmed to perform the load balancing method according to embodiments of the invention such as a procedure illustrated in
In another embodiment, the control module 212 is implemented with a variety of computer platforms using a single chip or multichip microprocessors, digital signal processors, embedded microprocessors, microcontrollers, etc. In another embodiment, the control module 212 is implemented with a wide range of operating systems such as Unix, Linux, Microsoft DOS, Microsoft Windows 2000/9x/ME/XP, Macintosh OS, OS/2 and the like.
Referring to
Referring to
The numbers of pending packets in the links are 122, 34, 23, 123 and 20, respectively. The more pending packets, the more load in the link. The bandwidths which are currently being used in the links are 5, 2, 1, 6 and 2 Mbps, respectively. The links 1 and 2 are associated with channel 1 and the links 3 through 5 are associated with channel 6 as illustrated in
The QoS levels for the links are 1, 0, 2, 3 and 2, respectively. Quality of Service is a measure of network performance that reflects the network's transmission quality and service availability. QoS can come in the form of traffic policy in which the transmission rates are limited, thereby guaranteeing a certain amount of bandwidth will be available to applications (transmitted data). As discussed above, QoS level information is generally provided on the header of a received packet.
The level of QoS is determined from the type of services requested. IEEE 802.1D specifies 8 priority levels (0-7) where 0 is the lowest level and 7 is the highest level. For example, video data may be assigned the highest number. In contrast, text data or audio data may be assigned a relatively low number. In one embodiment, in order to determine a QoS level in a certain channel or link associated with a station, two parameters (average time delay and number of lost packets) are defined. For example, a high QoS level generally requires a relatively small amount of an average time delay (e.g., 5 mm seconds) and a minimum or no loss of packets (e.g., less than 1% of loss). In contrast, a low QoS level generally allows a relatively greater amount of an average time delay (e.g., 30 mm seconds) and a relatively greater amount of loss of packets (e.g., greater than 5% of loss).
In another embodiment, the levels of QoS requirements can be determined based on profiles. A profile is assigned to each application (video data, audio data or file, etc.) to be transmitted. In one embodiment, a profile has three parameters: bandwidth, number of lost packets and average time delay. Instead of determining individual parameters separately, the QoS requirements can be efficiently determined based on checking the profile assigned to each application. Each profile can be changed or updated.
The RSSI values for the links are 80, 67, 98, 34 and 45, respectively. RSSI generally indicates how well the local station receives the remote unit's transmission, typically measured in dBm. The higher the RSSI value, the more reliable the transmission performed. The examples of RSSI values illustrated in
In one embodiment, the control module 212 or the access point 210 is aware of the maximum bandwidth capacity of a channel since if a communication standard is determined for a channel, the maximum bandwidth capacity is automatically determined. In addition, the control module 212 or the access point 210 can obtain the bandwidth which is currently being used in a channel based on, for example, the number of pending packets.
Referring to
In one embodiment, each of the channels of the access point 210 adopts the same communication standard for data communication. For example, one of IEEE 802.11a or 11b or 11g is used for all of the channel communications. As discussed above, 802.11a and 11g can support 54 Mbps and 802.11b can support 11 Mbps. If the same standard is used for both of the channels 1 and 6 in
In another embodiment, each of the channels of the access point 210 uses a different communication standard for data communication. For example, IEEE 802.11b can be used for channel 1 communication and IEEE 802.11a or 11g can be used for channel 6 communications. In this situation, whether a channel is overloaded or not is determined based on the normalized values of the total loads of each of the channels. For example, if 8 Mbps is the total load of channel 1 (802.11b) and 34 Mbps is the total load of channel 6 (802.11a/11g), the normalized total loads for channels 1 and 6 are 8/11 (0.73) and 34/54 (0.63), respectively. From the normalized values, channel 1 is determined as relatively overloaded and channel 6 is determined as relatively underloaded.
The control module 212 or the access point 210 determines whether the access point 210 needs to offload a channel in order to balance the load (404). Referring to
If it is determined in procedure 404 that the access point 210 needs to offload a channel, the control module 212 or the access point 210 selects a link from the overloaded channel (for example, channel 6 in
The control module 212 or the access point 210 determines whether this selected link will be serviced with a required QoS in the new channel (channel 1) (408). As discussed above, two parameters (average time delay, loss of packets) are generally used to determine whether a required QoS is met or not. The control module 212 or the access point 210 checks whether there is availability of resources in a new channel to meet a required QoS based on the two parameters assuming that the selected link has been transferred to the new channel. In one embodiment, the control module 212 or the access point 210 determines whether the QoS level required for the selected link is met or not in the new channel.
For example, if there is a link, supporting a QoS level required for the selected link, in a new channel, the control module 212 or the access point 210 determines that the link of the new channel meets the QoS requirement. If it is determined in procedure 408 that the selected link will not be serviced with the required QoS, the control module 212 or the access point 210 selects another link in procedure 406.
The control module 212 or the access point 210 determines whether the transfer of this selected link (link 3) will cause imbalance in the load (410). For example, if it is assumed that link 3 (load: 1 Mbps) is selected and transferred to channel 1, since both of the channels will have the same total load (8 Mbps) after the transfer, this transfer is determined not to cause an imbalance in the load. If it is assumed that either link 4 or 5 is selected and transferred from channel 6 to channel 1, since the total load of each of the channels after the transfer is 13:3 or 9:7 (channel 1: channel 6), this transfer of link is determined to cause an imbalance in the load.
If it is determined in procedure 410 that the transfer of the selected link will not cause a load imbalance, the control module 212 or the access point 210 checks an RSSI value of the new channel (channel 1) or the RSSI value of an available link of the new channel (414). As discussed above, the RSSI value can be obtained from the header information (preamble) of a received packet. Thus, the load information showing RSSI may be, for example, updated on a packet-by-packet basis. In one embodiment, the control module 212 or the access point 210 determines whether the new RSSI value (an RSSI value of channel 1 or the RSSI value of an available link of channel 1) is equal to or greater than that of the selected link of the old channel (channel 6) (416). If link 3 is selected to be transferred, the new RSSI value needs to be equal to or greater than the RSSI value (98) of the link 3 of channel 6. In another embodiment, the control module 212 or the access point 210 determines whether the new RSSI value is greater than a threshold RSSI value (416). In one embodiment, if a communication standard changes, a threshold RSSI value also changes.
In one embodiment, if it is determined in procedure 416 that the new RSSI value is equal to or greater than an old RSSI value, or greater than a threshold RSSI value, the selected link is shifted from the old channel (channel 6) to the new channel (channel 1) (418). In one embodiment, the control module 212 or the access point 210 sends a disassociate message notifying that the station associated with the selected link is moved to the new channel so that the associated station releases all the resources and move to the less loaded channel. After the transfer, the new channel (channel 1) will have three links and the old channel (channel 6) will have two links. In another embodiment, the control module 212 or the access point 210 notifies associated stations that the selected link of the old channel is swapped with a link of the new channel as long as the swapping provides a balanced load in the access point 210.
If it is determined in procedure 410 that the transfer of a selected link will cause a load imbalance, the control module 212 or the access point 210 determines whether a load can be shifted from a new channel to an old channel (412). It is assumed that channel 1 includes links 1 and 2 (each link load is assumed 4 and 1, respectively) and channel 6 includes links 3-5 (each link load is assumed 2, 3 and 4, respectively). If link 4 (load: 3) is selected to be transferred from channel 6 to channel 1, the total load of channel 1 after the transfer will be 8 (4+1+3) and the total load of channel 6 will be 6 (2+4). Thus, this transfer will cause a load imbalance because channel 1 has the total load of 8 and channel 6 has the total load of 6. In this situation, the control module 212 or the access point 210 determines whether a load can be shifted from the new channel (channel 1) to the old channel (channel 6) after the first transfer. Since link 2 (load: 1) of channel 1 can be transferred to channel 6, the control module 212 or the access point 210 performs procedure 408. If it is determined in procedure 412 that a load cannot be shifted from the new channel to the old channel, the selected link will not be shifted from the old channel to the new channel (420).
In one embodiment, the access point 710 handles three different channels (channels 1, 3, 6) as shown in
In one embodiment, channel 1 includes links 1-2 in which 2 and 3 Mbps bandwidth are being used, respectively. Channel 3 includes links 3-4 in which 3 and 4 Mbps bandwidth are being used, respectively. Channel 6 includes links 5-7 in which 2, 4 and 3 Mbps bandwidth are being used, respectively. In one embodiment, the access point 710 determines that channel 6 is relatively overloaded compared to the other channels. In one embodiment, the access point 710 selects link 5, which has the least load, from channel 6 and transfers the selected link to channel 1, which is relatively underloaded after confirming that the new RSSI value is equal to or greater than the old RSSI value or greater than a (predefined) threshold RSSI value, and that the QoS requirement for the selected link is met in channel 1. This will result in the balance of the overall load (7, 7, 7) in the channels of the access point 710.
While the above description has pointed out novel features of the invention as applied to various embodiments, the skilled person will understand that various omissions, substitutions, and changes in the form and details of the device or process illustrated may be made without departing from the scope of the invention. Therefore, the scope of the invention is defined by the appended claims rather than by the foregoing description. All variations coming within the meaning and range of equivalency of the claims are embraced within their scope.