Wireless communications, such as those conducted over wireless local area networks (WLANs), can employ a variety of modulation and coding schemes (MCS), each of which may provide a different balance between transmission data rate and reliability. The optimal MCS for a wireless device to use may vary over time, e.g., with environmental factors and/or transmission needs of an application executing at the wireless device. Discovery of an optimal MCS may interfere with ongoing communications at the wireless device.
The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views, together with the detailed description below, are incorporated in and form part of the specification, and serve to further illustrate embodiments of concepts that include the claimed invention, and explain various principles and advantages of those embodiments.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.
The apparatus and method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.
Examples disclosed herein are directed to a method in a computing device, including: establishing an association with an base station; in response to establishing the association, transmitting an unencrypted message to the base station using a data rate selected according to an optimization sequence; receiving, from the base station, an acknowledgement to the unencrypted message; based on the acknowledgement, selecting an active data rate; and in response to selecting the active data rate, sending encrypted data to the base station using the active data rate.
Additional examples disclosed herein are directed to a computing device, comprising: a wireless communications interface; and a processor configured to: establish an association with an base station via the communications interface; in response to establishing the association, transmit an unencrypted message to the base station using a data rate selected according to an optimization sequence; receive, from the base station, an acknowledgement to the unencrypted message; based on the acknowledgement, select an active data rate; and in response to selecting the active data rate, send encrypted data to the base station using the active data rate.
Each AP can include an enclosure housing one or more controllers, transceivers, antenna assemblies, and the like. A given network, identified by a service set identifier (SSID), can be implemented by a plurality of APs. For example, the APs 104 together can implement a WLAN with a given SSID, e.g., to extend the coverage area of the WLAN beyond the coverage area achievable with a single AP 104. Client devices within the network, such as a wireless computing device 108 (e.g., a mobile computer, a smartphone, a mobile printer, a barcode scanner, a tablet computer, or the like), can roam between the APs 104 implementing the network, e.g., according to signal strength, congestion, band preferences at the client device 108, and the like.
The client device 108 is illustrated as having established a connection 112 with the AP 104-1. As the device 108 travels, e.g., in a direction 116, the device 108 may approach an outer extent of a coverage area 120-1 (e.g., an area or volume over which the device 108 can establish a connection with the AP 104-1) associated with the AP 104-1, and enter a coverage area 120-2 associated with the AP 104-2. When the device 108 approaches the outer extent of the coverage area 120-1 and enters the coverage area 120-2, the device 108 may detect a roaming condition (also referred to as a roam trigger), such as a reduction in signal strength (e.g., a Received Signal Strength Indicator, or RSSI) from the AP 104-1. In response to detecting the roam trigger, the device 108 can collect data identifying other access points, such as the AP 104-2, to be evaluated as candidates for roaming. Each other AP 104 may have a distinct identifier (e.g., a Basic Service Set Identifier or BSSID). The identifier of each AP 104 can include a Media Access Control (MAC) address. Having collected the data identifying candidate APs 104 for roaming, the device 108 can be configured to select a destination AP 104 for roaming, according to various factors such as the capabilities supported by each AP 104, signal strength associated with each AP 104, and the like.
Certain internal components of the device 108 are also illustrated in
The device 108 also includes a communications interface 142, enabling the device 108 to establish connections with WLANs, such as the network implemented by the APs 104. The communications interface 142 can therefore include any suitable combination of transceivers, antenna elements, and corresponding control hardware enabling communications with the APs 104. In some examples, the application 138 resides within the communications interface 142 and is executed by a controller of the communications interface 142 distinct from the processor 130. The processor 130, memory 134, and communications interface 142 can be implemented as components of a system-on-chip (SoC) assembly, in some examples. In the discussion below, it will be understood that functions described as being performed by the device 100 or by the processor 130 can be performed by either or both of the processor 130, and a controller of the communications interface 142.
The device 108 can include further components (not shown), including output devices such as a display, a speaker, and the like, as well as input devices such as a keypad, a touch screen, a microphone, and the like.
To communicate over the WLAN implemented by the APs 104, e.g., with another computing device (not shown), the device 108 can be configured to transmit data to an AP 104, e.g., for further transmission to the other computing device. When the device 108 transmits such data, e.g., application-level data such as voice and/or video data for a voice and/or video call in progress with the other computing device, the device 108 encodes and modulates wireless transmissions to the AP 104 according to a selected one of a plurality of modulation and coding schemes (MCS), each defining parameters by which data is to be manipulated for wireless transmission. For example, in 802.11-based WLANs, the device 108 can select an MCS index value between zero and eleven, with each index value representing a different set of modulation and encoding parameters, for each frame or packet to be transmitted. Each modulation and coding scheme enables transmission of data at a certain rate (e.g., as a volume of data per second). An MCS with a higher data rate is also generally less robust to environmental interference and other factors that may disrupt wireless communications. In other words, selecting an MCS for data to be transmitted may involve balancing speed against robustness.
While transmitting data over the connection 112, the device 108 may adjust the MCS used over time, e.g., to adapt to a changing wireless environment as the device 108 moves physically, as network congestion levels change, and the like. When the device 108 roams to the AP 104-2, the MCS selected for use in transmitting data to the AP 104-1 may no longer be suitable, because the physical location, operational capabilities, and the like, of the AP 104-2 differ from those of the AP 104-1. Determining a suitable MCS to transmit data to the AP 104-2 may consume sufficient time to negatively impact ongoing application-level activities at the device 108, such as the above-mentioned voice or video call. MCS are also referred to herein as data rates for simplicity.
Turning to
A time period 220 elapsed between establishment of the association between the device 108 and the AP 104-2, and the re-establishment of application-level traffic 216, may be sufficiently long to negatively affect time-sensitive applications such as voice and/or video calls. The device 108 is therefore further configured, as discussed below, to implement a process for accelerated data rate selection, which may reduce the time period 220 and mitigate impacts from roaming on time-sensitive applications.
Turning to
At block 305, the device 108 is configured to initiate a roaming process, e.g., from the AP 104-1 to the AP 104-2 as noted earlier in connection with
In response to establishing an association with the AP 104-2, the device 108 can be configured to perform a handshake process or other suitable mechanism to obtain one or more encryption keys, at block 315. The performance of block 315 can include, for example, a four-way handshake with the AP 104-2 to generate and store encryption keys including a PTK and a GTK, or any other suitable set of encryption keys, according to the configuration of the WLAN implemented by the APs 104 and the capabilities of the device 108.
The performance of block 315, e.g., between the initiation of the handshake and the installation of the encryption keys at the device 108, may consume a period of time between about five milliseconds and about forty milliseconds. For example, the performance of block 315 may consume about twenty milliseconds. During the performance of block 315, the device 108 does not transmit application-level data to the AP 104-2, because such data cannot yet be encrypted.
The device 108 is configured, e.g., simultaneously with at least a portion of the performance of block 315, to perform additional functionality for selecting a data rate to be used once the transmission of application-level data resumes after block 315 is complete. In other words, during the brief delay in application-level communications caused by the generation and installation of encryption keys at block 315, the device 108 is configured to at least initiate, and in some cases complete, a data rate selection mechanism. The selection of a suitable data rate contemporaneously with the generation and storage of encryption keys can reduce the total delay (e.g., the time period 220 shown in
As described below, the device 108 is configured to select a data rate by transmitting one or more unencrypted messages to the AP 104-2, using one or more data rates selected according to an optimization sequence. Based on acknowledgements received to those unencrypted messages, the device 108 is configured to select an active data rate from the optimization sequence. When the transmission of encrypted data begins after installation of encryption keys, the active data rate is used.
At block 320, e.g., substantially simultaneously with the initiation of block 315, the device 108 is configured to set a current data rate, according to an optimization sequence. The optimization sequence defines a sequence of data rates, e.g., expressed as MCS index values. The data rates specified by the optimization sequence are used in sequence by the device 108 to transmit unencrypted messages to the AP 104-2. When a transmission yields no acknowledgement from the AP 104-2, the device 108 is configured to use the next data rate in the sequence. When a transmission does yield an acknowledgement from the AP 104-2, the device 108 is configured to set the data rate used for that transmission as the active data rate, to be used for encrypted data transmissions once block 315 is complete.
In some examples, the optimization sequence begins at a maximum data rate, e.g., MCS 11, and specifies descending data rates for use if the initial (maximum) data rate does not yield an acknowledgement from the AP 104-2. The device 108 is therefore configured, in this example, to set the current data rate to MCS 11 at block 320. At block 325, the device 108 is configured to send an unencrypted message to the AP 104-2, using the current data rate set at block 320. The unencrypted message transmitted at block 325 can be, for example, a null frame (e.g., a data frame with a header and trailer, but no payload) such as a quality of service (QOS) null frame. The use of null frames at block 325 can mitigate the impact of such transmissions on network medium usage, for example.
At block 330, the device 108 is configured to determine whether the AP 104-2 has acknowledged the unencrypted message sent at block 325. As will be understood by those skilled in the art, the AP 104-2 is configured to send an acknowledgement frame in response to messages received from the device 108. The device 108 can be configured to determine whether such an acknowledgement has been received within a timeout period of the transmission at block 325 (e.g., 1 millisecond, although a wide variety of other timeout periods can also be employed).
A negative determination at block 330 indicates that the AP 104-2 may not have received the message from block 325. When the determination at block 330 is negative, the device 108 proceeds to block 335. At block 335, the device 108 is configured to adjust the current data rate according to the optimization sequence mentioned earlier. For example, the adjustment can include decrementing the current data rate, e.g., from MCS 11 to MCS 10. Having adjusted the current data rate, the device 108 is configured to repeat block 325, transmitting an unencrypted message such as a further QoS null frame, using the current data rate (e.g., MCS 10 in this example). The device 108 then repeats the determination at block 330.
The data rate used for unencrypted messages sent at repeated performances of block 325 is therefore adjusted to provide increased reliability, at the expense of lower throughput, until the device 108 receives an acknowledgement of an unencrypted message from the AP 104-2. When the determination at block 330 is affirmative (e.g., when an acknowledgement is received at the device 108 to the message from block 325), the device 108 is configured to proceed to block 340. At block 340, the device 108 is configured to set the current data rate used at the most recent performance of block 325 as an active data rate, for use when transmission of application-layer data is resumed at block 345, following completion of block 315 (e.g., when encryption keys have been installed at the device 108 and the AP 104-2).
The device 108 is therefore configured to cycle through blocks 325, 330, and 335, reducing the current data rate with each cycle, until the AP 104-2 acknowledges an unencrypted message. In some examples, if blocks 325, 330, and 335 are repeated a sufficient number of times to traverse the entire optimization sequence (e.g., from MCS 11 down to MCS 0), and the determination at block 330 remains negative, the device 108 is configured to proceed to block 340 with the final data rate in the sequence (e.g., MCS 0) set as the active data rate.
Turning to
As shown in
The device 100 is configured to determine, at block 330, whether an acknowledgement has been received from the AP 104-2 within a timeout period 408. As shown in
The device 108 is therefore configured to repeat block 325, after adjusting the initial data rate at block 335. In the illustrated example, the device 108 transmits a further unencrypted message 412, using a data rate corresponding to MCS 10 (e.g., decremented by one position in the sequence 404). Again, the device 108 does not receive an acknowledgement to the message 412 within the timeout period 408, and the determination at block 330 is therefore negative. The device 108 is therefore configured to adjust the current data rate again, e.g., to MCS 9 according to the sequence 404, and to send a further unencrypted message 416 to the AP 104-2. The device 108 then receives, within the timeout period 408, an acknowledgement 420 of the message 416. The acknowledgement 420 indicates that the AP 104-2 successfully received the message 416, and that the data rate used for the message 416 is therefore likely to be sufficiently reliable for transmitting data to the AP 104-2 under the current network conditions.
The device 108 can therefore store the current data rate used for the message 416 (e.g., MCS 9) as the active data rate, for use when the transmission of application-level data 216 resumes after the handshake 208 is complete. As will now be apparent from
In other implementations, the device 108 can be configured to determine whether a threshold number and/or portion of acknowledgements have been received at block 330 before proceeding to block 335 or block 340. For example, turning to
In this example, the determination at block 330 may be affirmative only when both a first message 512 using MCS 10 yields an acknowledgement 52160, and a second message 520 using MCS 10 yields an acknowledgement 524. In other examples, the determination at block 330 can include whether a threshold portion of unencrypted messages at a certain data rate were acknowledged (e.g., at least half of the messages at a given data rate, or any other suitable portion).
In the foregoing specification, specific embodiments have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present teachings.
The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.
Moreover in this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” “has”, “having,” “includes”, “including,” “contains”, “containing” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises, has, includes, contains a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by “comprises . . . a”, “has . . . a”, “includes . . . a”, “contains . . . a” does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises, has, includes, contains the element. The terms “a” and “an” are defined as one or more unless explicitly stated otherwise herein. The terms “substantially”, “essentially”, “approximately”, “about” or any other version thereof, are defined as being close to as understood by one of ordinary skill in the art, and in one non-limiting embodiment the term is defined to be within 10%, in another embodiment within 5%, in another embodiment within 1% and in another embodiment within 0.5%. The term “coupled” as used herein is defined as connected, although not necessarily directly and not necessarily mechanically. A device or structure that is “configured” in a certain way is configured in at least that way, but may also be configured in ways that are not listed.
Certain expressions may be employed herein to list combinations of elements. Examples of such expressions include: “at least one of A, B, and C”; “one or more of A, B, and C”; “at least one of A, B, or C”; “one or more of A, B, or C”. Unless expressly indicated otherwise, the above expressions encompass any combination of A and/or B and/or C.
It will be appreciated that some embodiments may be comprised of one or more specialized processors (or “processing devices”) such as microprocessors, digital signal processors, customized processors and field programmable gate arrays (FPGAs) and unique stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the method and/or apparatus described herein. Alternatively, some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic. Of course, a combination of the two approaches could be used.
Moreover, an embodiment can be implemented as a computer-readable storage medium having computer readable code stored thereon for programming a computer (e.g., comprising a processor) to perform a method as described and claimed herein. Examples of such computer-readable storage mediums include, but are not limited to, a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a ROM (Read Only Memory), a PROM (Programmable Read Only Memory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory) and a Flash memory. Further, it is expected that one of ordinary skill, notwithstanding possibly significant effort and many design choices motivated by, for example, available time, current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such software instructions and programs and ICs with minimal experimentation.
The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.