The present disclosure relates to a method and system for load balancing in wireless computer networking.
In most wireless computer networks, users connect to the wireless network through base stations, referred to herein as access points (“APs”), and the service set identifiers (“SSID”) of those APs. U.S. patent application Ser. No. 13/068,395 teaches a system and method for Wi-Fi load balancing, which uses a common or Beacon SSID (as defined therein) and switches Wi-Fi client from the Beacon SSID to another SSID. There is a need for other approaches for switching from one SSID to another SSID, wherein load balancing and network management occurs on an AP.
In one aspect, the present invention is a computer networking system for load balancing, which comprises: a first computing device; one or more first access points, wherein each of the one or more first access points has a service set identifier; and a network management device having at least one memory with at least one region for storing executable program code, and at least one processor for executing the program code stored in the memory. When the program code is executed, it performs the following: receives a request from the first computing device to access a network, wherein the request is received via a signal associated with a first service set identifier; receives loading information, wherein the loading information includes information associated with at least one of the one or more first access points; determines, from the loading information, a least loaded access point, wherein the least loaded access point is one of the one or more first access points that is associated with a smallest quantity of one or more second computing devices; and sends a service set identifier associated with the least loaded access point.
In another aspect, the present invention is a method for load balancing a computer networking system, which comprises the following: receiving, by a network management device, a request from a first computing device to access a network, wherein the request is received via a signal associated with a first service set identifier, and wherein the network management device having at least one memory with at least one region for storing executable program code and at least one processor for executing the program code stored in the memory; receiving, by the network management device, loading information, wherein the loading information includes information associated with at least one of one or more first access points, and wherein each of the one or more first access points has a service set identifier; determining, by the network management device, from the loading information, a least loaded access point, wherein the least loaded access point is one of the one or more first access points that is associated with a smallest quantity of one or more second computing devices; and sending, by the network management device, a service set identifier associated with the least loaded access point.
In one aspect, the present invention is a computer networking system for load balancing, which comprises: a first computing device; one or more first access points, wherein each of the one or more first access points has a service set identifier; a network management device having at least one memory with at least one region for storing executable program code, and at least one processor for executing the program code stored in the memory. When the program code is executed, it performs the following: receives a request from the first computing device to access a network, wherein the request is received via a signal associated with a first service set identifier; receives loading information, wherein the loading information includes information associated with at least one of the one or more first access points; generates, from the information received, a list comprising at least one of the one or more first access points able to support a connection with the first computing device; and sends the list to the first computing device.
In another aspect, the present invention is a method for load balancing a computer networking system, which comprises the following: receiving, by a network management device, a request from a first computing device to access a network, wherein the request is received via a signal associated with a first service set identifier, and wherein the network management device having at least one memory with at least one region for storing executable program code and at least one processor for executing the program code stored in the memory; receiving, by the network management device, loading information, wherein the loading information includes information associated with at least one of the one or more first access points, and wherein each of the one or more first access points has a service set identifier; generating, by the network management device, from the information received, a list comprising at least one of the one or more first access points able to support a connection with the first computing device; and sending, by the network management device, the list to the first computing device.
In one aspect, the present invention is a computer networking system, which comprises: at least one memory having at least one region for storing executable program code; at least one processor for executing the program code stored in the memory; means for receiving a request from a first computing device to access a network, wherein the request is received via a signal associated with a first service set identifier; means for receiving loading information, wherein the loading information includes information associated with at least one of one or more first access points, and wherein each of the one or more first access points has a service set identifier; means for determining, from the loading information, a least loaded access point, wherein the least loaded access point is one of the one or more first access points that is associated with a smallest quantity of one or more second computing devices; and means for sending a service set identifier associated with the least loaded access point.
Example embodiments of the disclosure will be described by way of example only and with reference to the drawings, in which:
The drawings are exemplary, not limiting. Items that are labelled with the same reference number in multiple figures refer to the same item throughout the figures.
The objective for using a common service set identifier (“SSID”) or Beacon SSID is to identify the presence of certain Wi-Fi service providers, and switching a client from the Beacon SSID and another SSID on the same or different AP. Load balancing of the wireless network in the same coverage area is achieved by distributing client or bandwidth loading depending on overall or individual loading of APs. This distributing is performed by switching or “swinging” Wi-Fi clients from the Beacon SSID to another SSID of a different or the same AP via a daemon program or system application on the Wi-Fi client system. As used herein, “SSID” refers to either or both a name that identifies a particular 802.11-based wireless LAN and a 802.11-based wireless LAN.
Various embodiments of the present invention will now be described in greater detail with reference to the drawings.
In the preferred embodiment, the APs are at least Wi-Fi access points (sometimes referred to as “wireless routers”) operating in accordance with IEEE 802.11-based standards and connected to other devices or elements via wireless or wired connections.
Beacon SSID: The Beacon SSID is used by the Daemon, also known as a system application, to communicate with the Asset Access Controller (“AAC”) and as a medium for information regarding which SSID to connect or transfer in order to access the Internet. The Beacon SSID may operate according to IEEE 802.11-based standards.
In one aspect, the Beacon SSID operates on a communications port for authentication and communication with the AAC. For example, the communications port used for the Beacon SSID may be port 1812.
In another aspect, the communications port for the Beacon SSID may not be used for an Internet connection. Here, access to port 80 (http), port 8080 (alternate http), port 21 (ftp) and other communications ports may be blocked or limited.
In yet another aspect, the Beacon SSID may be open (i.e., without Wi-Fi encryption); or encrypted using Wired Equivalent Privacy (WEP) or Wi-Fi Protected Access (WPA), or employ other forms of wireless networking security.
Client Personal Equipment and Daemon: Client Personal Equipment (“CPE”), also known as a Wi-Fi client, may be a cellular phone, smart phone, tablet, portable computer, desktop computer, laptop computer, game console, personal media player, handheld computing device, portable gaming device, or similar devices, and is not limited to microprocessor-based devices.
The Daemon is installed, loaded, residing, or running on a CPE. When a CPE attempts to access the Internet, the Daemon scans for a Beacon SSID. The Daemon will then authenticate with the AAC via the Beacon SSID. The Daemon's authentication with AAC may use or be based on the authentication protocols associated with the IEEE 802.11 standard (e.g., WPA based protocols, WEP protocols, hardware security token, central radius server etc.). The Daemon will then receive an SSID from the AAC which may be different from the Beacon SSID. The Daemon may also receive an access password for establishing an Internet connection via that different SSID. The Daemon will instruct, operate, or direct the Wi-Fi device, application or driver on the CPE to establish a connection to the Internet using the access password.
In one aspect, the password associated with the WEP, WPA or other wireless networking security for the Beacon SSID, if any, may be different from any password or token used in connection with the Daemon's authentication with the AAC.
In another aspect, the different SSID may be open (i.e., without Wi-Fi encryption); or encrypted using WEP or WPA, or employ other forms of wireless networking security. Where WEP, WPA or other form of security is used for the different SSID, the password associated with the WEP, WPA or other form of security, may be different from the access password for establishing a connection to the Internet.
Asset Access Controller: The AAC incorporates the network management functionalities of both (1) determining whether a CPE is permitted to access the Internet (this process is also known as “access control” or “authentication”), and (2) determining which AP a CPE can connect to (this process is also known as “asset control”). The AAC can be part of a “Thick AP” (i.e., an ordinary AP with at least the added functionalities of an AAC) to control a “cluster” of APs (e.g., Thick AP 110 in
A “cluster” of APs is a group of APs whose wireless signal coverages substantially overlap. For example, in
The AAC maintains information regarding (1) how many APs are in a cluster; (2) client loading for each AP; and (3) bandwidth loading for each AP. The AAC can pull or update information regarding the number of CPEs or bandwidth loading of an AP. Such information may be organized in an “asset list” or “asset table.” In another embodiment, the AAC may also maintain information related to the amount of data uploaded, amount of data downloaded, total connection time or other usage statistics associated with CPEs or users. In such an embodiment, the AAC can pull or receive such usage statistics from the APs.
When the AAC receives a request for access to the Internet from a Daemon on a CPE, the AAC will review its asset table to determine which APs have sufficient capacity to accept or support a new CPE connection, or in other words, sufficient capacity to not cause an imbalance in the client loading of Wi-Fi network nor an overloading in an AP. An AP with sufficient capacity to accept or support new CPE connections is referred to herein as an “available AP.” The AAC will then provide the Daemon with the SSID of an available AP to switch to, or a list of available APs to switch to. In another embodiment, the AAC may also review, search, access and/or process its asset table to determine which AP is loaded with the least number of clients or bandwidth (referred to herein as the “least loaded” AP). In such an embodiment, the AAC will then provide the Daemon with the SSID of the least loaded AP.
Embodiments of the present invention of System 100 will be further described with reference to
In one embodiment, Thick AP 110 may be the only device in Cluster 140 to provide DHCP and/or authentication services. In another embodiment, APs 120, 122, 124 and/or 126 may have Dynamic Host Configuration Protocol (DHCP) and/or authentication capabilities. In yet another embodiment APs 120, 122, 124 and 126 may communicate with, provide access to, or access Internet 105 via Thick AP 110. In yet another embodiment, APs 120, 122, 124 and 126 may directly communicate with, provide access to, or access Internet 105.
While
Thick AP 110 operates Beacon SSID 115. In addition, each AP shown in
At Step 240, Thick AP 110 will communicate with each AP in System 100 to retrieve client and/or bandwidth loading information for each AP. Next, at Step 250, Thick AP 110 will determine which AP in Cluster 140 is servicing the least number of CPEs based on the loading information received. By way of example, AP 122 may be the AP with the least number of CPEs connected to it.
Next, at Step 260, Thick AP 110 will then send to Daemon 135 via Beacon SSID 115 the SSID of AP 122 (i.e. SSID_122) and an access password. The access password may be fixed, in accordance with WEP or WPA, a one time password (“OTP”), a one time certificate (“OTC”) or blank. Next, at Step 270, Daemon 135 will instruct or operate the Wi-Fi driver or application on CPE 130 to switch over to SSID_122 and connect to the Internet using the access password. Process 200 then proceeds from Step 270 and ends at Step 280. In this manner, the network management functions of the Thick AP can facilitate the even or balanced distribution of the clients or bandwidth in System 100.
In another embodiment, Thick AP 110 may determine which AP in Cluster 140 is servicing the least amount of bandwidth, and send the SSID of that AP and an access password to Daemon 135.
In another embodiment, System 100 may be deployed in an enclosed area where the number of clients or bandwidth load is more than a single AP may effectively or efficiently handle. Multi-cluster setups can be used for different areas of the network.
In another embodiment, SSID_112 may be open (i.e., without Wi-Fi encryption); or encrypted using WEP or WPA, or employ other forms of wireless networking security. Where WEP, WPA or other form of security is used for SSID_112, the password associated with the WEP, WPA or other form of security may be different from the access password in Steps 260 and 270.
In another example, Thick AP 110 may be the AP that is least loaded in System 100. In such an example, at Step 260, Thick AP 110 will then send to Daemon 135 via Beacon SSID 115 SSID_110 and an access password. Then, at Step 270, Daemon 135 will instruct or operate the Wi-Fi driver or application on CPE 130 to switch over to SSID_110 and connect to the Internet using the access password. Process 200 then proceeds from Step 270 to Step 280 and ends.
In
Once CPE 130 is authenticated, Thick AP A310 will communicate with each AP in Cluster A340 to retrieve client and/or bandwidth loading information for each AP in Cluster A340. This communication may be via Router 350. Based on the information received, Thick AP A310 will determine which AP in Cluster A340 is servicing the least number of CPEs. By way of example, AP A322 is the AP with the least number of CPEs connected to it.
Thick AP A310 will then send to Daemon 135 the SSID of AP A322 (e.g. SSID_322) and an access password. Daemon 135 will then instruct or operate the Wi-Fi driver or application on CPE 130 to switch over to SSID_322 and connect to the Internet using the access password. In this manner, the network management functions of Thick AP A310 can facilitate the even or balanced distribution of the clients or bandwidth in Cluster A340 of System 300.
Each AP is connected to Router 450, which is in turn connected to Internet 105. In another embodiment, Router 450 may be a switch. AAC 460 is connected to both Router 450 and Internet 105. AAC 460 maintains information regarding Clusters A440 and B440, as well as the APs within each cluster. AAC 460 also maintains client and/or bandwidth loading information for each AP in System 400. Such information may be obtained or updated using a pull method, whereby AAC 460 checks or requests the client or bandwidth loading information for each AP on an ad hoc or periodic basis. Such information may also be obtained or updated using a push method where each AP sends its client or bandwidth loading information at a fixed interval. Communications between AAC 460 and the APs in System 400 may be via Router 450.
When CPE 430 is within Cluster A440, Daemon 435 detects Beacon SSID A415 operated by AP A422. Daemon 435 then connects to Beacon SSID A415 to communicate with AP A422, and then authenticate itself. Once CPE 430 is authenticated, and because the request was forwarded by an AP in Cluster A440, AAC 460 will communicate with each AP in Cluster A440 to retrieve client and/or bandwidth loading information of each AP in Cluster A440. Based on the loading information received, AAC 460 will determine which AP in Cluster A440 is servicing the least number of CPEs. AAC 460 will then send to Daemon 435 the SSID of the least loaded AP and an access password. Daemon 435 will then instruct or operate the Wi-Fi driver or application on CPE 430 to switch over to the SSID of the least loaded AP and connect to the Internet using the access password. In this manner, the network management functions of AAC 460 can facilitate the even or balanced distribution of the clients or bandwidth in System 400.
In this example, the loading and bandwidth information of the APs in System 400 are as follows:
Reference will now be made for
AAC 460 will then send SSID_A420 information and an access password to Daemon 435 via Beacon SSID 415 (Data Transmissions 506 and 507). Daemon 435 will then instruct or operate the Wi-Fi driver or application on CPE 430 to switch over to SSID_A420, thereby establishing a Wi-Fi connection with AP A420 via SSID_A420 (Data Transmission 508). Daemon 435 will then authenticate with AAC 460 using the access password provided by AAC 460 (Data Transmissions 508 and 509), and AAC 460 may notify Daemon 435 that CPE 430 is authorized to access Internet 105 (Data Transmissions 508 and 509). CPE 430 will then be able to access Internet 105 over AP A420 (Data Transmissions 510 and 511). Thus, the client loading of System 400 will be balanced.
In this Example 2, the loading and bandwidth information of the APs in System 400 are as follows:
When Daemon 438 of CPE 432 detects Beacon SSID A415, Daemon 438 will connect to Beacon SSID A415 to communicate with AP A422, and then authenticate itself. Once CPE 432 has been authenticated, AAC 460 will communicate with each AP in Cluster A440 to retrieve client and/or bandwidth loading information of each AP in Cluster A440. Here, it will obtain the information shown in Table 3, and determine which AP is servicing the least number of CPEs. In this case, the system is evenly balanced in terms of client loading, and AAC 460 may send the SSID of any of the AP to Daemon 438 for CPE 432 to connect to.
Bandwidth Balancing
In another embodiment, in selecting which AP for CPE 432 to connect to, AAC 460 may further determine which AP is servicing the least amount of bandwidth. For example, with reference to
In yet another embodiment, in determining which AP is least loaded, AAC 460 may prioritize bandwidth loading over CPE loading. Thus, in such an embodiment, in Example 1 of System 400, AAC 460 would determine that AP A424—with a bandwidth loading of 2 Mpbs as shown in Table 2—is the least loaded AP. Thus, AAC 460 would send SSID_A424 and a password to Daemon 435 in Data Transmissions 506 and 507.
One or ordinary skill in the art will appreciate that Internet 105 or the Internet in any of the embodiments described herein may be replaced with any computing network, intranet etc. In such an instance, the embodiments will operate in substantially the same manner.
Any of the embodiments described herein may also use authentication techniques and protocols described in U.S. patent application Ser. No. 13/068,395.
The foregoing description of the embodiments has been provided for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure. Individual elements or features of a particular embodiment are generally not limited to that particular embodiment, but, where applicable, are interchangeable and can be used in a selected embodiment, even if not specifically shown or described. The same may also be varied in many ways. Such variations are not to be regarded as a departure from the disclosure, and all such modifications are intended to be included within the scope of the disclosure.
This application is a continuation-in-part of co-pending U.S. patent application Ser. No. 13/068,395, filed May 20, 2011, entitled “Method and System of Intelligently Load Balancing of Wi-Fi Access Point Apparatus in a WLAN,” which itself is a continuation-in-part of co-pending U.S. patent application Ser. No. 13/043,226, filed Mar. 8, 2011, entitled “Method and System for Data Offloading in Mobile Communications.” Each of these co-pending applications are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 13068395 | May 2011 | US |
Child | 13199451 | US | |
Parent | 13043226 | Mar 2011 | US |
Child | 13068395 | US |