English:
[0001] Wireless access points (APs) are hardware devices that provide the ability for wireless client stations to connect to wired communications networks. For instance, an AP may connect directly to a wired Ethernet connection and then provide a plurality of wireless connections for wireless client stations to utilize the wired connection (e.g., using radio frequency or other near-field communication links). In this way, an AP may provide access to the wired connection for a plurality of wireless client stations.
[0002] Many APs are built to support a standard for sending and receiving data using the frequencies of these wireless connections. As an example, an AP may be built to support the Institute of Electrical and Electronics Engineers (IEEE) 802.1 1 standards.
[0004] FIG. 2 illustrates a flow diagram of an example method for selecting a wireless access point via which to connect to a wired network; and
[0005] FIG. 3 illustrates a flow diagram of another example method for selecting a wireless access point via which to connect to a wired network.
[0006] The present disclosure broadly describes an apparatus, method, and non-transitory computer-readable medium for selecting a wireless access point (AP) based on signal strength and network congestion. A wireless client station seeking to connect to a wired communications network may have a choice of several APs via which it can connect. In many cases, the wireless client station will simply connect via the AP from which it is receiving the strongest signal or from which it first receives a signal. This approach disregards other factors, such as network congestion, which can affect the performance of the connection. For instance, as discussed above, an AP may provide access to the wired network for a plurality of wireless client stations. As such, it is possibly for the AP to become overloaded if too many wireless client stations seek to use its wireless connections at the same time to connect to the wired network.
[0007] Examples of the present disclosure consider performance metrics that allows a wireless client station to evaluate which of a plurality of candidate APs will provide the best wireless connection to a wired communications network. In one example, the candidate APs broadcast beacons, or signals which the wireless client station can detect and from which the wireless client station can extract various metrics. These metrics may include, for instance, a received signal strength indicator (RSSI), a Quality of Service enhanced basic service set (QBSS) information element, and/or a coding or data date. By considering at least signal strength and network congestion, the wireless client station may be able to better determine which of the candidate APs is best equipped to provide the best connection to the wired communications network. Thus, in effect, the wireless client station may perform client-side load balancing of the candidate APs.
[0008] FIG. 1 depicts a high-level block diagram of an example network 100 in which examples of the present disclosure are implemented. As shown in FIG. 1 , the network 100 connects wireless client stations 106i-106n(hereinafter collectively referred to as "wireless client stations 106") with a wired communications network 102.
[0009] The wired communications network 102 may functionally comprise a fixed mobile convergence (FMC) network, e.g., an IP Multimedia Subsystem (IMS) network. In addition, wired communications network 102 may functionally comprise a telephony network, e.g., an Internet Protocol/Multi-Protocol Label Switching (IP/MPLS) backbone network utilizing Session Initiation Protocol (SIP) for circuit-switched and Voice over Internet Protocol (VoIP) telephony services. Wired communications network 102 may also further comprise a broadcast television network, e.g., a traditional cable provider network or an Internet Protocol Television (IPTV) network, as well as an Internet Service Provider (ISP) network.
[0010] A plurality of wireless access points (APs) 104i-104n(hereinafter collectively referred to as "APs 104" or "access points 104") are connected to the network 102 via respective wired connections 1 16i-1 16n(hereinafter collectively referred to as "wired connections 1 16"). Although the APs 104 in FIG. 1 are all illustrated as being connected to the same network 102, in other examples one or more of the APs 104 may be connected to other networks (i.e. , other than the network 102). In one example, one or more of the APs 104 may comprise a standalone device that connects to the network 102 via one or more routers (e.g., wired Ethernet routers and/or IEEE 802.1 1 (Wi-Fi) routers). In another example, one or more of the APs 104 may be integrated into a router that connects directly to the network 102.
[0011] Each of the APs 104 provides one or more wireless connections 1 181- 1 18P(hereinafter collectively referred to as "wireless connections 1 18"), e.g., using radio frequency or other near field communication links. The wireless connections 1 18 allow the wireless client stations 106 to utilize the wired connections 1 16 to the network 102.
[0012] In one example each of the wireless client stations 106 may comprise any subscriber/customer endpoint device configured for wireless communication such as a laptop computer, a Wi-Fi device, a Personal Digital Assistant (PDA), a mobile phone, a smartphone, an email device, a computing tablet, a messaging device, a gaming console, a smart watch, a set top box, a digital media player, and the like. In one embodiment, any one or more of the wireless client stations 106 may have both WiFi and non-WiFi access capabilities and may further have wired communication and networking capabilities. For example, one or more of the wireless client stations 106 may be equipped with an application to send control signals to APs 104 and other devices via a wireless communication device such as an infrared transmitter or transceiver, a transceiver for IEEE 802.1 1 based communications (e.g. , Wi-Fi), IEEE 802.15 based communications (e.g. , "Bluetooth", "ZigBee", etc.), and so forth, where the wireless client stations 106 are similarly equipped to receive such a signal
[0013] One of these wireless client stations 106 is illustrated in further detail in FIG. 1 . In particular, wireless client station 106i depicts a high-level block diagram of an example wireless client station that can be transformed into a machine capable of performing the functions described herein. Notably, no computer or machine currently exists that performs the functions as described herein. As a result, the examples of the present disclosure modify the operation and functioning of a general-purpose computer to allow the user of a wireless client station 106i to select a wireless AP for network access, as disclosed herein. Any of the wireless client station 106 illustrated in FIG. 1 may be configured in a manner similar to the wireless client station 106i .
[0014] As depicted in FIG. 1 , the wireless client station 106i comprises a hardware processor element 108, e.g., a central processing unit (CPU), a microprocessor, or a multi-core processor, a memory 1 10, e.g., a temporary memory such as random access memory (RAM) and/or read only memory (ROM), a load balancing module 1 14 for selecting a wireless AP through which to connect to the network 102, and various input/output (I/O) devices 1 12, e.g., storage devices, including but not limited to, one or more of: a tape drive, a floppy drive, a hard disk drive or a compact disk drive, a wireless communication device such as a receiver or a transmitter, a speaker, a display, a speech synthesizer, an output port, an input port and a user input device, such as a keyboard, a keypad, a mouse, a microphone, and the like. In some examples, load balancing module 1 14 may be implemented as a process executable by hardware processor element 108.
[0016] It should be noted that the present disclosure can be implemented by machine readable instructions and/or in a combination of machine readable instructions and hardware, e.g., using application specific integrated circuits (ASIC), a programmable logic array (PLA), including a field-programmable gate array (FPGA), or a state machine deployed on a hardware device, a host computing system or any other hardware equivalents, e.g., computer readable instructions pertaining to the method(s) discussed below can be used to configure a hardware processor to perform the blocks, functions and/or operations of the below disclosed methods.
[0017] In one example, instructions and data for the present module 1 14 for load balancing, e.g. , machine readable instructions can be loaded into memory 1 10 and executed by hardware processor element 108 to implement the blocks, functions or operations as discussed below in connection with the methods 200 and 300. For instance, the module 1 14 may include a plurality of programming code components, including a signal strength index component 120 and/or a performance evaluation component 122.
[0018] The signal strength index component 120 may be configured compute the strength of a signal received from a wireless AP 104, for example as discussed in connection with FIGs. 2-3. For instance, the signal strength index component 120 may be configured to compute a received signal strength indicator (RSSI). The performance evaluation component 122 may be configured to evaluate the relative performances of a plurality of wireless APs 104 in range of the wireless client station 106i , for example as discussed in connection with FIGs. 2-3. For instance, the performance evaluation component 122 may compute respective performance metrics for the wireless APs 104 and identify which of the wireless APs 104 offers the best performance, based on the performance metrics.
[0019] Furthermore, when a hardware processor executes instructions to perform "operations", this could include the hardware processor performing the operations directly and/or facilitating, directing, or cooperating with another hardware device or component, e.g., a co-processor and the like, to perform the operations.
[0020] The processor executing the machine readable instructions relating to the below described method(s) can be perceived as a programmed processor or a specialized processor. As such, the present module 1 14 for load balancing, including associated data structures, of the present disclosure can be stored on a tangible or physical (broadly non-transitory) computer-readable storage device or medium, e.g., volatile memory, non-volatile memory, ROM memory, RAM memory, magnetic or optical drive, device or diskette and the like. More specifically, the computer-readable storage device may comprise any physical devices that provide the ability to store information such as data and/or instructions to be accessed by a processor or a computing device such as a computer.
[0021] Those skilled in the art will realize that the network 100 may be implemented in a different form than that which is illustrated in FIG. 1 , or may be expanded by including additional endpoint devices, access networks, network elements, application servers, etc. without altering the scope of the present disclosure.
[0022] FIG. 2 illustrates a flow diagram of a method 200 for selecting a wireless access point via which to connect to a wired network. The method 200 may be performed, for example, by one of the wireless client stations 106 of FIG. 1 . As such, reference may be made in the discussion of the method 200 to components of the wireless client stations 106i of FIG. 1. However, such references are made for the sake of example, and are not intended to be limiting.
[0023] The method 200 begins in block 202. In block 204, an I/O device 1 12 of the wireless client station I O61 (e.g., an antenna of a network interface controller) detects a first signal emitted by a first wireless AP, such as the wireless AP 104i of FIG. 1 and a second signal emitted by a second wireless AP, such as the wireless AP 104nof FIG. 1. In one embodiment, the first and second signals may also be referred to as "beacons" or "beacon frames." The beacon frames are transmitted periodically by the APs 104 to announce the capabilities and configurations of the local area networks (LANs) supported by the APs 104.
[0024] In block 206, the load balancing module 1 14 (potentially in cooperation with the processor 108) extracts a first set of data from the first signal. The first set of data includes information about the capabilities and configurations of the LAN supported by the first wireless AP 104i. In one example, the first set of data includes information about the signal strength of the first wireless AP 104i and the congestion of the LAN supported by the first wireless AP 104i. In one example, information about the signal strength may be computed as a received signal strength indicator (RSSI). For instance, the RSSI may be proportional to the power received at the wireless client station's antenna (e.g., how well the wireless client station I O61 can "hear" the first wireless AP 104i). Thus, although RSSI represents signal strength, it is a relative index rather than an absolute measure.
[0025] In one example, information about network congestion may be extracted from a Quality of Service enhanced basic service set (QBSS) information element in an IEEE 802.1 1 e signal. The QBSS information element may contain one or more of the following sets of information: (1 ) station count (e.g., the number of wireless client stations currently associated with the first wireless AP 104i); (2) channel utilization (e.g., the percentage of time that the first wireless AP 104i sensed the medium was busy); and (3) available admission capacity (e.g., the remaining amount of medium time available via explicit admission control). In one example, QBSS load is extracted from the signals when AP Quality of Service (QoS) is supported and provides the load information.
[0026] In one example, other data that may be extracted from the first signal in block 204 includes data about the coding rate or data rate, which is correlated with signal strength. Other data may also include any other metrics that may indicate faster data rates (e.g., faster download and/or upload speeds). For instance, assuming the APs 104 are connected to different networks (e.g., not all of the APs 104 are connected to the network 102), this other data could include data such as the first wireless AP's connection type and/or backend network connectivity (e.g., connection speeds of fiber optic versus Ethernet versus direct subscriber line, etc.).
[0027] In block 208, the load balancing module 1 14 (potentially in cooperation with the processor 108) computes a first performance metric for the first wireless AP 104i . In one example, the first performance metric is computed using the first set of data extracted in block 206. For instance, in one example, the first performance metric is computed using signal strength and network congestion. The various metrics of signal strength and network congestion may be normalized and/or weighted, and the performance metric computed as a sum of these normalized and/or weighted metrics (i.e. , as a weighted sum). For instance, a metric indicative of signal strength may be multiplied by a first weight, and a metric indicative of network congestion may be multiplied by a second weight. These two weighted values may then be added together to produce a first weighted sum that is the first performance metric. If both the first weight and the second weight are the same (e.g. , 1 ), then the individual metrics are essentially unweighted. In one example, the weights are hard-coded into the wireless client station 106i (e.g., into the load balancing module 1 14), but in other examples the weights may be adjustable or even user configurable.
[0028] In a further example, the historical performance for the first wireless AP 104i could also be taken into account when computing the first performance metric. For instance, the first wireless AP 104i may have proven in the past to provide lackluster rates (e.g., outside the scope of the known metrics) once connected, despite exhibiting high performance metrics. Thus, a weighting could be applied to account for the observed discrepancy between the first wireless AP's past performance metrics and past observed performance.
[0029] In block 210, the load balancing module 1 14 (potentially in cooperation with the processor 108) extracts a second set of data from the second signal. The second set of data includes information about the capabilities and configurations of the LAN supported by the second wireless AP 104n. In one example, the second set of data includes information about the signal strength of the second wireless AP 104nand the congestion of the LAN supported by the second wireless AP 104n. In one example, information about the signal strength and network congestion may be computed as discussed above. In a further example, other data that may be extracted from the second signal in block 204 includes data about the coding rate or data rate, as well as any other metrics that may indicate faster data rates (e.g., faster download and/or upload speeds).
[0030] In block 212, the load balancing module 1 14 (potentially in cooperation with the processor 108) computes a second performance metric for the second wireless AP 104n. In one example, the second performance metric is computed using the second set of data extracted in block 210. For instance, in one example, the second performance metric is computed using signal strength and network congestion.
[0031] In block 214, the load balancing module 1 14 (potentially in cooperation with the processor 108) determines that the first performance metric is greater (e.g., better on some scale) than the second performance metric. For instance, the first performance metric may comprise a number that is greater than the second performance metric on some scale. In another example, the first performance metric may comprise a number that is lower on some scale than the second performance metric. In another example, where the first wireless AP 104i has been observed in the past to provide performance that is not commensurate with the first performance metric, the second wireless AP 104nmay be selected instead.
[0033] The method 200 ends in block 218.
[0034] FIG. 3 illustrates a flow diagram of another method 300 for selecting a wireless access point via which to connect to a wired network. In one example, the method 300 is a more detailed version of the method 200. Thus, the method 300 may be performed, for example, by one of the wireless client stations 106 of FIG. 1 . As such, reference may be made in the discussion of the method 200 to components of the wireless client stations I O61of FIG. 1. However, such references are made for the sake of example, and are not intended to be limiting.
[0035] The method 300 begins in block 302. In block 204, an I/O device 1 12 of the wireless client station I O61 (e.g., an antenna of a network interface controller) detects first and second signals emitted by first and second wireless APs, respectively. The first and second wireless APs may be APs such as the wireless APs 104 illustrated in FIG. 1.
[0036] In block 306, the load balancing module 1 14 (potentially in cooperation with the processor 108) extracts first and second sets of data from the first and second signals, respectively. The first and second sets of data include information about the capabilities and configurations of the LANs supported by the first and second wireless APs. In one example, the first and second sets of data include information about the respective signal strengths of the first and second wireless APs and the congestion of the LANs supported by the first and second wireless APs. The first and second sets of data may be determined or computed as described above.
[0037] In block 308, the load balancing module 1 14 (potentially in cooperation with the processor 108) computes first and second performance metrics for the first and second wireless APs, respectively. In one example, the first and second performance metrics are computed as described above, using the first an second sets of data, respectively.
[0038] In block 310, the load balancing module 1 14 (potentially in cooperation with the processor 108) selects the first wireless AP, based on a determination that the first performance metric is greater (on some scale) than the second performance metric.
[0039] In block 312, an I/O device 1 12 of the wireless client station 106i (e.g., an antenna of a network interface controller) initiates a connection to the first wireless AP.
[0040] In block 314, an I/O device 1 12 of the wireless client station 106i (e.g., an antenna of a network interface controller) detects a third signal emitted by a third wireless AP.
[0041] In block 316, the load balancing module 1 14 (potentially in cooperation with the processor 108) extracts a third set of data from the third signal. The third set of data includes information about the capabilities and configurations of the LAN supported by the third wireless AP. In one example, the third set of data includes information about the signal strength of the third wireless AP and the congestion of the LAN supported by the third wireless AP.
[0042] In block 318, the load balancing module 1 14 (potentially in cooperation with the processor 108) computes a third performance metric for the third wireless AP. In one example, the third performance metric is computed in the same way that the first and second performance metrics were computed in block 308 (but using the third set of data). In one example, block 318 may also include recomputing the first and/or second performance metric.
[0043] In block 320, the load balancing module 1 14 (potentially in cooperation with the processor 108) determines whether the third performance metric is greater (e.g., better on some scale) than the first performance metric.
[0044] If the load balancing module 1 14 concludes in block 320 that the third performance metric is not greater than the first performance metric, then the method 300 proceeds to block 322. In block 322, the connection to the first wireless AP is maintained.
[0045] If, however, the load balancing module 1 14 concludes in block 320 that the third performance metric is greater than the first performance metric, then the method 300 proceeds to block 324. In block 324, a connection is initiated to the third wireless AP. In one example, a connection is not made to the third wireless AP unless the third performance metric provides some threshold amount of improvement over the first performance metric. For instance, the connection may not be made to the third wireless AP unless the improvement in performance is at least twenty percent (or some other amount) relative to the performance of the first wireless AP. This will prevent wireless client devices from continuously switching APs over time.
[0046] The method 300 ends in block 326, once the load balancing module 1 14 has determined whether to remain connected to the first wireless AP or connect to the third wireless AP. In operation, however, the method 300 may not end, but continuously iterate through steps 314-324 as new signals are detected from the wireless APs within range of the wireless client station. For instance, the performances of the available wireless APs may change over time, new wireless APs may become available, or previously available wireless APs may become unavailable. Iterating through at least portions of the method 300 allows the wireless client station to continuously and dynamically evaluate which wireless AP will offer the best performance at any given time and to switch from one wireless AP to another wireless AP when doing so may offer an improvement in performance.
[0047] It should be noted that although not explicitly specified, some of the blocks, functions, or operations of the methods 200 and 300 described above may include storing, displaying and/or outputting for a particular application. In other words, any data, records, fields, and/or intermediate results discussed in the methods can be stored, displayed, and/or outputted to another device depending on the particular application. Furthermore, blocks, functions, or operations in FIGs. 2-3 that recite a determining operation, or involve a decision, do not imply that both branches of the determining operation are practiced. In other words, one of the branches of the determining operation may not be performed, depending on the results of the determining operation.
[0048] It will be appreciated that variants of the above-disclosed and other features and functions, or alternatives thereof, may be combined into many other different systems or applications. Various presently unforeseen or unanticipated alternatives, modifications, or variations therein may be subsequently made which are also intended to be encompassed by the following claims.

中文:
[0001]无线接入点(AP)是提供针对无线客户端站连接到有线通信网络的能力的硬件设备。例如,AP可以直接连接到有线以太网连接,并且然后为无线客户端站提供(例如,使用射频或其他近场通信链路)多个无线连接以利用有线连接。以这种方式,AP可以为多个无线客户端站提供对有线连接的接入。
[0002]构建许多AP以支持使用这些无线连接的频率来发送和接收数据的标准。作为示例,可以构建AP以支持电气和电子工程师协会(IEEE)802.11标准。
[0004]图2图示了用于选择经由其连接到有线网络的无线接入点的示例方法的流程图;以及
[0005]图3图示了用于选择经由其连接到有线网络的无线接入点的另一个示例方法的流程图。
[0006]本公开宽泛地描述了用于基于信号强度和网络拥塞来选择无线接入点(AP)的装置、方法和非暂时性计算机可读介质。寻求连接到有线通信网络的无线客户端站可以具有对多个AP的选择,无线客户端站可以经由该多个AP进行连接。在许多情况下,无线客户端站将仅仅经由无线客户端站正在从其中接收最强信号或者无线客户端站从其中首先接收信号的AP进行连接。该方法忽略了其他因素(诸如,网络拥塞),这可能会影响连接的性能。例如,如上面讨论的,AP可以为多个无线客户端站提供对有线网络的接入。由此,如果过多无线客户端站寻求同时使用AP的无线连接来连接到有线网络,则对于AP而言,有可能变得过载。
[0007]本公开的示例考虑允许无线客户端站评估多个候选AP中的哪个将提供对有线通信网络的最佳无线连接的性能度量。在一个示例中,候选AP对无线客户端站可以检测到并且无线客户端站可以从其中提取各种度量的信号或信标进行广播。这些度量可以包括例如:接收信号强度指示符(RSSI)、服务质量增强型基本服务集(QBSS)信息元素、和/或编码或数据日期。通过考虑至少信号强度和网络拥塞,无线客户端站可能能够更好地确定候选AP中的哪个最有资格提供对有线通信网络的最佳连接。因此,实际上,无线客户端站可以实行候选AP的客户端侧负载平衡。
[0008]图1描绘了其中实现了本公开的示例的示例网络100的高级框图。如图1中所示,网络100将无线客户端站1061-106n(下文统称为“无线客户端站106”)与有线通信网络102连接。
[0009]有线通信网络102可以在功能上包括固定移动融合(FMC)网络,例如IP多媒体子系统(IMS)网络。附加地,有线通信网络102可以在功能上包括电话网络,例如利用针对电路交换式和互联网协议语音(VoIP)电话服务的会话发起协议(SIP)的互联网协议/多协议标签交换(IP/MPLS)骨干网络。有线通信网络102还可以进一步包括广播电视网络,例如传统的有线电视提供商网络、或互联网协议电视(IPTV)网络、以及互联网服务提供商(ISP)网络。
[0010]多个无线接入点(AP)1041-104n(下文统称为“AP 104”或“接入点104”)经由相应的有线连接1161-116n(下文统称为“有线连接116”)连接到网络102。尽管图1中的AP 104全部被图示为连接到同一网络102,但是在其他示例中,AP 104中的一个或多个可以连接到其他网络(即,除了网络102之外的网络)。在一个示例中,AP 104中的一个或多个可以包括经由一个或多个路由器(例如,有线以太网路由器和/或IEEE 802.11(Wi-Fi)路由器)连接到网络102的独立设备。在另一示例中,AP 104中的一个或多个可以集成到直接连接到网络102的路由器中。
[0011]每个AP 104例如通过使用射频或其他近场通信链路来提供一个或多个无线连接1181-118p(下文统称为“无线连接118”)。无线连接118允许无线客户端站106利用对网络102的有线连接116。
[0012]在一个示例中,每个无线客户端站106可以包括被配置用于无线通信的任何订户/客户端点设备,诸如膝上型计算机、Wi-Fi设备、个人数字助理(PDA)、移动电话、智能电话、电子邮件设备、计算平板设备、消息设备、游戏控制台、智能手表、机顶盒、数字媒体播放器等等。在一个实施例中,无线客户端站106中的任何一个或多个可以具有WiFi和非WiFi接入能力两者,并且可以进一步具有有线通信和联网能力。例如,无线客户端站106中的一个或多个可以配备有用于经由无线通信设备向AP 104和其他设备发送控制信号的应用,该无线通信设备诸如红外发射器或收发器、用于基于IEEE 802.11的通信(例如,Wi-Fi)、基于IEEE802.15的通信(例如,“蓝牙”、“ZigBee”等)的收发器等等,其中无线客户端站106被类似地配备成接收这种信号。
[0013]在图1中进一步详细地图示了这些无线客户端站106中的一个。特别地,无线客户端站1061描绘了示例无线客户端站的高级框图,该示例无线客户端站可以变换成能够实行本文中描述的功能的机器。值得注意的是,当前不存在实行如本文中描述的功能的计算机或机器。因此,本公开的示例修改了通用计算机的操作和运作,以允许无线客户端站1061的用户选择用于网络接入的无线AP,如本文中公开的那样。图1中图示的任何无线客户端站106可以用与无线客户端站1061类似的方式来配置。
[0014]如在图1中描绘的,无线客户端站1061包括:硬件处理器元件108(例如,中央处理单元(CPU)、微处理器、或多核处理器)、存储器110(例如,诸如随机存取存储器(RAM)和/或只读存储器(ROM)之类的暂时性存储器)、用于选择通过其连接到网络102的无线AP的负载平衡模块114、以及各种输入/输出(I/O)设备112(例如,存储设备),其包括但不限于下述各项中的一个或多个:磁带驱动器、软盘驱动器、硬盘驱动器或致密盘驱动器、无线通信设备(诸如,接收器或发射器)、扬声器、显示器、话音合成器、输出端口、输入端口和用户输入设备(诸如,键盘、小键盘、鼠标、传声器等等)。在一些示例中,负载平衡模块114可以被实现为可由硬件处理器元件108执行的过程。
[0016]应当注意的是,本公开可以通过机器可读指令和/或以机器可读指令和硬件的组合的方式来实现,例如,使用专用集成电路(ASIC)、可编程逻辑阵列(PLA)(包括现场可编程门阵列(FPGA))、或被部署在硬件设备上的状态机、主机计算系统或任何其他硬件等同物,例如,与下面讨论的(一个或多个)方法有关的计算机可读指令可以用于将硬件处理器配置成实行下面公开的方法的框、功能和/或操作。
[0017]在一个示例中,用于负载平衡的现有模块114的指令和数据(例如,机器可读指令)可以被加载到存储器110中,并且由硬件处理器元件108执行以实现如下面结合方法200和300所讨论的框、功能或操作。例如,模块114可以包括多个编程代码组件,该多个编程代码组件包括信号强度指数组件120和/或性能评估组件122。
[0018]信号强度指数组件120可以被配置成计算从无线AP 104接收到的信号的强度,例如,如结合图2-3讨论的那样。例如,信号强度指数组件120可以被配置成计算接收信号强度指示符(RSSI)。性能评估组件122可以被配置成评估在无线客户端站1061的范围内的多个无线AP 104的相对性能,例如,如结合图2-3讨论的那样。例如,性能评估组件122可以基于性能度量来计算无线AP 104的相应性能度量,并且标识无线AP 104中的哪个提供最佳性能。
[0019]此外,当硬件处理器执行指令以实行“操作”时,这可以包括:硬件处理器直接实行该操作,和/或促进、指导另一硬件设备或组件(例如,协处理器等等)实行该操作或与其协作以实行该操作。
[0020]执行与下面描述的(一个或多个)方法有关的机器可读指令的处理器可以被认为是经编程的处理器或专用处理器。由此,本公开的用于负载平衡的现有模块114(包括相关联的数据结构)可以被存储在有形或物理(宽泛地为非暂时性)计算机可读存储设备或介质(例如,易失性存储器、非易失性存储器、ROM存储器、RAM存储器、磁性或光学驱动器、设备或磁盘等等)上。更具体地,计算机可读存储设备可以包括提供存储信息(诸如,由处理器或计算设备(诸如计算机)访问的数据和/或指令)的能力的任何物理设备。
[0021]本领域技术人员应当认识到,网络100可以用与图1中图示的形式不同的形式来实现,或者可以在不更改本公开的范围的情况下通过包括附加端点设备、接入网络、网络元件、应用服务器等来扩展。
[0022]图2图示了用于选择经由其连接到有线网络的无线接入点的方法200的流程图。可以例如由图1的无线客户端站106之一来实行方法200。由此,可以在方法200的讨论中参考图1的无线客户端站1061的组件。然而,这种参考是出于示例的目的而做出的,并且不意图是限制性的。
[0023]方法200在框202中开始。在框204中,无线客户端站1061的I/O设备112(例如,网络接口控制器的天线)检测由第一无线AP(诸如,图1的无线AP 1041)发射的第一信号、以及由第二无线AP(诸如,图1的无线AP 104n)发射的第二信号。在一个实施例中,第一和第二信号还可以被称为“信标”或“信标帧”。信标帧由AP 104周期性地发射,以宣告由AP 104支持的局域网(LAN)的能力和配置。
[0024]在框206中,负载平衡模块114(潜在地与处理器108协作)从第一信号提取第一组数据。该第一组数据包括:关于由第一无线AP1041支持的LAN的能力和配置的信息。在一个示例中,该第一组数据包括:关于第一无线AP 1041的信号强度和由第一无线AP 1041支持的LAN的拥塞的信息。在一个示例中,可以将关于信号强度的信息计算为接收信号强度指示符(RSSI)。例如,RSSI可以与在无线客户端站的天线处接收到的功率(例如,无线客户端站1061可以在什么程度上“听到”第一无线AP 1041)成比例。因此,尽管RSSI表示信号强度,但它是相对指数而不是绝对量度。
[0025]在一个示例中,可以从IEEE 802.11e信号中的服务质量增强型基本服务集(QBSS)信息元素提取关于网络拥塞的信息。QBSS信息元素可以包含以下信息集合中的一个或多个:(1)站计数(例如,当前与第一无线AP 1041相关联的无线客户端站的数量);(2)信道利用率(例如,第一无线AP 1041感测到介质繁忙的时间的百分比);以及(3)可用的准入容量(例如,经由显式准入控制而可用的介质时间的剩余量)。在一个示例中,当AP服务质量(QoS)被支持时,从信号提取QBSS负载,并且QBSS负载提供负载信息。
[0026]在一个示例中,可以在框204中从第一信号提取的其他数据包括:关于编码率或数据率的数据,其与信号强度相关。其他数据还可以包括:可以指示更快数据率的任何其他度量(例如,更快的下载和/或上载速度)。例如,假设AP 104连接到不同网络(例如,并非全部AP104都连接到网络102),该其他数据可以包括:诸如第一无线AP的连接类型和/或后端网络连接性(例如,光纤对比以太网对比直接订户线等的连接速度)之类的数据。
[0027]在框208中,负载平衡模块114(潜在地与处理器108协作)计算第一无线AP 1041的第一性能度量。在一个示例中,使用在框206中提取的第一组数据来计算第一性能度量。例如,在一个示例中,使用信号强度和网络拥塞来计算第一性能度量。可以对信号强度和网络拥塞的各种度量进行归一化和/或加权,并且将性能度量计算为这些归一化和/或加权的度量的总和(即,作为加权和)。例如,指示信号强度的度量可以乘以第一权重,并且指示网络拥塞的度量可以乘以第二权重。然后,可以将这两个加权值加在一起以产生作为第一性能度量的第一加权和。如果第一权重和第二权重两者相同(例如,1),则各个度量基本上是不加权的。在一个示例中,将权重硬编码到无线客户端站1061中(例如,硬编码到负载平衡模块114中),但是在其他示例中,权重可以是可调整的或甚至是用户可配置的。
[0028]在进一步的示例中,还可以在计算第一性能度量时考虑第一无线AP 1041的历史性能。例如,尽管第一无线AP 1041展现出高性能度量,但是第一无线AP 1041在过去可能已被证明一旦连接就提供低迷的速率(例如,在已知度量的范围之外)。因此,可以应用加权来计及第一无线AP的过去性能度量与过去观察到的性能之间的观察到的差异。
[0029]在框210中,负载平衡模块114(潜在地与处理器108协作)从第二信号提取第二组数据。该第二组数据包括:关于由第二无线AP104n支持的LAN的能力和配置的信息。在一个示例中,该第二组数据包括:关于第二无线AP 104n的信号强度和由第二无线AP 104n支持的LAN的拥塞的信息。在一个示例中,可以如上面讨论的那样来计算关于信号强度和网络拥塞的信息。在进一步的示例中,可以在框204中从第二信号提取的其他数据包括:关于编码率或数据率的数据、以及可以指示更快的数据率的任何其他度量(例如,更快的下载和/或上载速度)。
[0030]在框212中,负载平衡模块114(潜在地与处理器108协作)计算第二无线AP 104n的第二性能度量。在一个示例中,使用在框210中提取的第二组数据来计算第二性能度量。例如,在一个示例中,使用信号强度和网络拥塞来计算第二性能度量。
[0031]在框214中,负载平衡模块114(潜在地与处理器108协作)确定第一性能度量比第二性能度量更大(例如,在某种程度上更好)。例如,第一性能度量可以包括在某种程度上大于第二性能度量的数字。在另一示例中,第一性能度量可以包括在某种程度上低于第二性能度量的数字。在另一示例中,在过去已经观察到第一无线AP 1041提供与第一性能度量不相称的性能的情况下,可以替代地选择第二无线AP 104n。
[0033]方法200在框218中结束。
[0034]图3图示了用于选择经由其连接到有线网络的无线接入点的另一方法300的流程图。在一个示例中,方法300是方法200的更详细的版本。因此,可以例如由图1的无线客户端站106之一来实行方法300。由此,可以在方法200的讨论中参考图1的无线客户端站1061的组件。然而,这种参考是出于示例的目的而做出的,并且不意图是限制性的。
[0035]方法300在框302中开始。在框204中,无线客户端站1061的I/O设备112(例如,网络接口控制器的天线)检测分别由第一和第二无线AP发射的第一和第二信号。第一和第二无线AP可以是诸如图1中图示的无线AP 104之类的AP。
[0036]在框306中,负载平衡模块114(潜在地与处理器108协作)分别从第一和第二信号提取第一和第二组数据。第一和第二组数据包括:关于由第一和第二无线AP支持的LAN的能力和配置的信息。在一个示例中,第一和第二组数据包括:关于第一和第二无线AP的相应信号强度以及由第一和第二无线AP支持的LAN的拥塞的信息。可以如上面描述的那样来确定或计算第一和第二组数据。
[0037]在框308中,负载平衡模块114(潜在地与处理器108协作)分别计算第一和第二无线AP的第一和第二性能度量。在一个示例中,分别使用第一和第二组数据如上面描述的那样来计算第一和第二性能度量。
[0038]在框310中,负载平衡模块114(潜在地与处理器108协作)基于第一性能度量(在某种程度上)大于第二性能度量的确定来选择第一无线AP。
[0039]在框312中,无线客户端站1061的I/O设备112(例如,网络接口控制器的天线)发起对第一无线AP的连接。
[0040]在框314中,无线客户端站1061的I/O设备112(例如,网络接口控制器的天线)检测由第三无线AP发射的第三信号。
[0041]在框316中,负载平衡模块114(潜在地与处理器108协作)从第三信号提取第三组数据。该第三组数据包括:关于由第三无线AP支持的LAN的能力和配置的信息。在一个示例中,该第三组数据包括:关于第三无线AP的信号强度和由第三无线AP支持的LAN的拥塞的信息。
[0042]在框318中,负载平衡模块114(潜在地与处理器108协作)计算第三无线AP的第三性能度量。在一个示例中,以与在框308中计算第一和第二性能度量相同的方式来计算第三性能度量(但是使用第三组数据)。在一个示例中,框318还可以包括重新计算第一和/或第二性能度量。
[0043]在框320中,负载平衡模块114(潜在地与处理器108协作)确定第三性能度量是否比第一性能度量更大(例如,在某种程度上更好)。
[0044]如果负载平衡模块114在框320中断定第三性能度量不大于第一性能度量,则方法300前进到框322。在框322中,维持对第一无线AP的连接。
[0045]然而,如果负载平衡模块114在框320中断定第三性能度量大于第一性能度量,则方法300前进到框324。在框324中,发起对第三无线AP的连接。在一个示例中,不做出对第三无线AP的连接,除非第三性能度量提供了超过第一性能度量的某阈值改进量。例如,可以不做出对第三无线AP的连接,除非性能中的改进相对于第一无线AP的性能为至少百分之二十(或某个其他量)。这将防止无线客户端设备随时间而连续地切换AP。
[0046]一旦负载平衡模块114已经确定是保持连接到第一无线AP还是连接到第三无线AP,方法300就在框326中结束。然而,在操作中,当从无线客户端站的范围内的无线AP检测到新信号时,方法300可以不结束,而是连续地迭代通过步骤314-324。例如,可用无线AP的性能可能随时间而改变,新的无线AP可能变得可用,或者先前可用的无线AP可能变得不可用。迭代通过方法300的至少一部分允许无线客户端站连续地且动态地评估哪个无线AP将在任何给定时间处提供最佳性能,以及当从一个无线AP切换到另一个无线AP可以提供性能中的改进时允许无线客户端站这样做。
[0047]应当注意的是,尽管未明确指定,但是上面描述的方法200和300的框、功能或操作中的一些可以包括针对特定应用的存储、显示和/或输出。换句话说,取决于特定应用,可以将方法中讨论的任何数据、记录、字段和/或中间结果存储、显示和/或输出到另一个设备。此外,记载确定操作或涉及决策的图2-3中的框、功能或操作并不暗示确定操作的两个分支都被实践。换句话说,取决于确定操作的结果,可以不实行确定操作的分支中的一个。
[0048]应当领会的是,上面公开的和其它的特征和功能的变体或其替换方案可以被组合到许多其它不同的系统或应用中。随后可以做出各种当前未预见或未意料到的替换方案、修改或其中的变型,它们也意图被所附权利要求涵盖。