Predicted data rates for wireless roaming and selection
By predicting data rates, using machine learning models to select wireless networks and access points, the problem of selecting bad networks or access points in the prior art is solved, and high-performance wireless connection and roaming decisions are achieved.
Patent Information
- Application Number
- CN202380043526.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-02
- Filing Date
- 2023-05-25
- Publication Date
- 2024-12-27
AI Technical Summary
When selecting wireless networks and access points, the prior art rely on physical attributes such as signal strength and signal-to-noise ratio, and cannot effectively evaluate the connection performance, resulting in poor networks or access points that may be selected, resulting in suboptimal connection and user experience problems. .
Make network and access point selection decisions by predicting data rates, evaluate the performance of potential connections with multiple machine learning models, select access points with the highest predicted data rates, and roam when necessary to ensure high performance wireless connection.
It effectively avoids connection problems such as buffering and timeout, provides a high-performance wireless experience, and ensures the reliability of users' network selection and roaming decisions.
Smart Images

Figure CN119213814A_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to and the benefit of the filing date of U.S. Patent Application No. 17 / 830,559, filed on June 2, 2022, the entire disclosure of which is expressly incorporated herein by reference. This application is related to U.S. Patent Application No. 17 / 830,537, entitled “System and Method for Wireless Roaming,” filed on June 2, 2022, the entire disclosure of which is expressly incorporated herein by reference. Background Art
[0002] Making good network or access point selection decisions is critical for client computing devices such as tablets, netbooks or other laptops or mobile phones that typically operate wirelessly and rely on network connectivity to access information or stream content. In most densely populated environments, multiple networks may be visible to wireless devices, and many of these networks may have multiple access points for a given location. There are two main situations during which a wireless device must decide which wireless connection to initiate: automatic network selection and roaming. Automatic network selection or automatic connection occurs when an unconnected wireless device selects a network and a specific access point within that network to connect to. Wireless roaming occurs when a wireless device transitions from one access point to another or from one network to another, which may involve seeking better performance, such as having a stronger signal or a lower communication error rate. Both situations face the same challenge - deciding which network and access point are "best".
[0003] In order to select a network, existing means can compare the physical attributes of the connection options. This can involve scoring each option based on its signal strength, signal-to-noise (SNR) ratio, wireless channel, frequency band, or some combination of these. The decision can be made simply by selecting the option with the highest signal strength. However, these physical attributes are not always a good representation of wireless performance. Signal strength or signal-to-noise ratio does not determine the actual connection performance. A higher signal strength or signal-to-noise ratio in one connection option does not guarantee a higher throughput compared to another connection. In fact, until the connection is actually established, the connection performance can be evaluated. Therefore, existing means may lead to technical problems such as poor network or access point selection, resulting in suboptimal connections, unreliable connectivity, and / or unexpected user experiences, such as due to insufficient buffering of streaming apps, frozen video on conference calls, or timeouts waiting for browser search results. Summary of the invention
[0004] Various aspects of the present disclosure provide technical solutions to technical problems in network and / or access point selection. The technical solutions disclosed herein evaluate potential connections and use predicted data rates to make informed network and access point selection decisions. The prediction system can use multiple different machine learning models to predict data rates. For example, for different types of wireless devices, there may be a machine learning model associated with each firmware and hardware combination. This can enable wireless computing devices to avoid selecting access points that may have buffering, timeouts, or other connectivity issues.
[0005] According to one aspect, a network selection method is provided. The method includes: receiving, by one or more processors of a wireless device, at least one physical layer and link layer metric for each of a plurality of access points, each access point providing wireless network coverage for a location of the wireless device; predicting, by the one or more processors, a data rate for each access point before forming a wireless network connection with the access point, the predicted data rate estimating a rate at which data is transmitted from the wireless device to the access point once a network connection is formed; selecting, by the one or more processors, an access point having a highest predicted data rate from the plurality of access points; and instructing a transceiver of the wireless device to form a connection with the selected access point.
[0006] In one example, the method further includes performing a roaming scan to collect at least one physical and link layer metric for each of the plurality of access points. Predicting the data rate for each access point may be based on at least one physical and link layer metric for each access point. The at least one physical and link layer metric may include one or more of: signal strength, frequency band, mode, signal strength speed, signal-to-noise ratio, or historical data. In another example, the method may further include storing pre-processed information in a memory of the wireless device, the pre-processed information indicating a relationship between a given data rate and at least one physical and link layer metric detected when determining the given data rate. Predicting the data rate for each access point may be based on at least one physical and link layer metric associated with each access point and the pre-processed information.
[0007] The predicted data rate may approximate a data rate selected by firmware of the wireless device. The data rate may be selectable when forming a wireless network connection with an access point. A machine learning model trained on preprocessed information may be used to predict the data rate for each access point. The preprocessed information may include test data and production data. In one example, the wireless device may be connected to a current access point. The method may also include: determining a current data rate at which data is transmitted from the wireless device to the current access point; comparing the highest predicted data rate to the current data rate; and when the highest predicted data rate is higher than the current data rate, instructing a transceiver of the wireless device to form a connection with the selected access point.
[0008] According to another aspect, a method for determining roaming of a wireless device is provided. The method includes: when the wireless device is connected to a current access point, determining by one or more processors of the wireless device whether to consider roaming, the wireless device is within a network coverage area of multiple access points, the multiple access points including the current access point and at least one candidate access point; predicting by one or more processors a data rate of each candidate access point before forming a network connection with a selected one of the at least one candidate access point, the predicted data rate estimating the rate at which data will be transmitted from the wireless device to each corresponding candidate access point once the network connection is formed; comparing by one or more processors the data rate of the current access point with the predicted data rate of each candidate access point to select a target access point with the highest data rate; and when the target access point is not the current access point, determining by one or more processors to roam from the current access point to the target access point. In one example, the method may also include: when the target access point is not the current access point, roaming by a transceiver of the wireless device from the current access point to the target access point.
[0009] Predicting a data rate for each of the at least one candidate access point may be based on at least one physical and link layer metric associated with the candidate access point. The at least one physical and link layer metric may include one or more of: signal strength, frequency band, mode, signal strength speed, signal-to-noise ratio, or historical data. The method may also include performing a roaming scan to collect at least one physical and link layer metric for each of the at least one candidate access point. In one example, determining whether to consider roaming may include comparing a data rate of a current access point to a threshold.
[0010] The method may also include storing pre-processed information in a memory of the wireless device, the pre-processed information indicating a relationship between a given data rate and at least one physical and link layer metric detected when determining the given data rate. Predicting the data rate of each candidate access point may be performed using a machine learning model trained on the pre-processed information, the pre-processed information including test data and production data. Predicting the data rate of each candidate access point of at least one candidate access point may be based on at least one physical and link layer metric associated with the candidate access point and the pre-processed information.
[0011] In one example, determining whether to consider roaming may include evaluating at least one of: a signal strength of a current access point, system requirements of the wireless device, applications currently running on the wireless device, and historical connection performance.
[0012] Another aspect provides a wireless device within a network coverage area of multiple access points. The wireless device includes: a transceiver; and one or more processors operatively coupled to the transceiver. The one or more processors may be configured to: receive at least one physical and link layer metric for each of the multiple access points; predict a data rate for each access point before forming a network connection with the access point, the predicted data rate estimating the rate at which data is transmitted from the transceiver to the access point once the network connection is formed; select the access point with the highest predicted data rate; and instruct the transceiver to form a wireless connection with the selected access point.
[0013] In one example, the one or more processors may be configured to: perform a roaming scan to collect at least one physical and link layer metric for each of a plurality of access points. The one or more processors may predict a data rate for each access point based on the at least one physical and link layer metric for each access point. The at least one physical and link layer metric may include one or more of: signal strength, frequency band, mode, signal strength speed, signal to noise ratio, or historical data.
[0014] Yet another aspect provides a wireless device within a network coverage area of multiple access points. The wireless device includes: a transceiver; and one or more processors operatively coupled to the transceiver. The one or more processors may be configured to: determine whether to consider roaming when the transceiver is connected to a current access point among the multiple access points, the multiple access points including the current access point and at least one candidate access point; predict a data rate for each candidate access point before forming a network connection with a selected one of the candidate access points, the predicted data rate estimating the rate at which data will be transmitted from the transceiver to each corresponding candidate access point once the network connection is formed; compare the data rate of the current access point with the predicted data rate of each candidate access point to select a target access point with the highest data rate; and determine to roam from the current access point to the target access point when the target access point is not the current access point.
[0015] In one example, the one or more processors may be further configured to instruct the transceiver to roam from the current access point to the target access point when the target access point is not the current access point. The one or more processors may be configured to predict a data rate of each of the at least one candidate access point based on at least one physical and link layer metric associated with the candidate access point. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Figure 1 An example access point environment supporting wireless connectivity according to various aspects of the present disclosure is illustrated.
[0017] Figure 2A functional diagram of an example wireless device including a system for predicting data rates in accordance with aspects of the present disclosure is illustrated.
[0018] Figure 3 A flow chart showing an exemplary method of network selection according to aspects of the present disclosure is illustrated.
[0019] Figure 4A A functional diagram of another example wireless device including a system for deciding to roam according to aspects of the present disclosure is illustrated.
[0020] Figure 4B Another functional diagram of an example wireless device including a system for deciding to roam according to aspects of the present disclosure is illustrated.
[0021] Figure 5 A flow chart showing an exemplary method for deciding to roam according to aspects of the present disclosure is illustrated.
[0022] Figure 6 A flow chart showing another exemplary method for deciding to roam according to aspects of the present disclosure is illustrated.
[0023] Figure 7 A flow chart showing yet another exemplary method for deciding to roam according to aspects of the present disclosure is illustrated.
[0024] Figure 8 An example visualization 800 of a nonlinear multiple regression model in accordance with aspects of the present disclosure is illustrated.
[0025] Fig. 9 An example state-based roaming approach in accordance with aspects of the present disclosure is illustrated.
[0026] FIG. 10A to FIG. 10B Systems for use with various aspects of the present technology are illustrated. DETAILED DESCRIPTION
[0027] Aspects of the present technology use predicted data rates to perform network and / or access point selection by a wireless computing device. This can include modeling various firmware and hardware combinations that evaluate various characteristics and performance of communication links. The result is a reliable means for selecting networks and / or access points, thereby providing users with a high-performance wireless experience. One embodiment of the technical solution performs automatic network selection, which includes predicting the data rate of each access point within the wireless communication range of the wireless computing device, thereby selecting the access point with the highest predicted data rate, and automatically forming a connection with the selected access point. Another embodiment of the technical solution automatically makes a roaming decision about whether to roam from the current access point to which the wireless computing device is currently connected, which includes predicting the data rate of each candidate access point, comparing the data rate of the current access point with the predicted data rate of the candidate access point, thereby selecting the target access point with the highest data rate, and if the target access point is not the current access point, determining to roam to the target access point. The technical solution enables the wireless device to avoid buffering or timeout problems and flexibly supports different product builds with firmware / hardware configurations. The technical solution provides a reliable and accurate means to select networks and / or access points to ensure a high-performance wireless experience for users. The technical solution may benefit any item, wireless device or apparatus that implements automatic network selection and Wi-Fi roaming.The present technology will now be described with respect to the following exemplary systems and methods.
[0028] The term "access point" or "AP" is used to refer to a device through which a wireless device can connect to a basic service set ("BSS") within a wireless network. The term "current access point" is used to refer to an access point of which the wireless device is currently a part. The term "candidate access point" is used to refer to an available access point to which the wireless device can connect. Candidate access points may include the current access point. The wireless device may include a user's mobile phone, their tablet, netbook or other laptop PC, a wearable device (e.g., a smart watch or head-mounted display), etc. The term "basic service set" or "BSS" is used to refer to a subset of a network that includes an access point and its associated wireless device. The term "extended service set" or "ESS" is used to refer to one or more BSSs that form a larger single network. Unless otherwise specified, the term "roaming" used herein describes a situation where a wireless device moves from one BSS to another BSS within an ESS. The term "current BSS" is used to refer to a BSS of which the wireless device is currently a part. The term "candidate BSS" is used to refer to an available BSS that the wireless device can join. Candidate BSSs may include the current BSS. The term "non-candidate BSS" is used to refer to a BSS that is not a current or candidate. The term "exponentially weighted moving average" or "EWMA" is used to refer to a technique for averaging time series data where older data is given exponentially lower weights. This technique can be used to smooth out volatility in time series data, especially when the measure itself has uncertainty. 1. Overview
[0029] Figure 1 An example access point environment 100 supporting roaming according to aspects of the present disclosure is illustrated. The access point environment 100 may include multiple access points 102a, 102b, and 102c, each with its own corresponding BSS 104a, 104b, or 104c. Each access point or BSS may provide network coverage for one or more wireless devices located within a corresponding geographic coverage area. For example, a first access point 102a or its corresponding BSS 104a may provide network coverage for wireless devices 110a, 110b, and 110c. A second access point 102b or its corresponding BSS 104b may provide network coverage for wireless devices 110a, 110d, and 110e. A third access point 102c or its corresponding BSS 104c may provide network coverage for wireless devices 110a, 110f, and 110g. Each wireless device may be configured to connect to an access point or BSS. The coverage areas of different access points or BSSs may overlap. A wireless device in an overlapping area may form a connection with any of the overlapping access points or BSSs. Figure 1As shown, the wireless device 110a may communicate with any of the access points 102a, 102b, and 102c or corresponding BSSs (eg, the first BSS 104a, the second BSS 104b, and the third BSS 104c). Different arrangements in other examples are possible. 2. BSS Data Rate Prediction System
[0030] refer to Figure 2 , the wireless device 110a may include a BSS data rate prediction system 202. The prediction system 202 may be implemented by instructions stored in the memory 204. The modules and instructions within the prediction system 202 may be executable by one or more processors 206. The prediction system 202 may predict the data rate of the access point or BSS before forming a network connection between the wireless device 110a and the access point of the BSS. The data rate may refer to a physical layer (PHY) rate. In this document, "data rate" and "PHY rate" may be used interchangeably. The data rate may represent the speed at which data is transmitted between the wireless device and the access point of the BSS. The data rate may be measured in, for example, megabits per second (Mbps). The data rate may be used as a performance metric of the access point or BSS, indicating the quality of its physical layer connection. The higher the data rate, the better the connection quality of the access point or BSS. For example, an access point or BSS with a data rate of 400 Mbps performs better than an access point or BSS with a data rate of 200 Mbps.
[0031] The data rate may refer to the rate at which data is transmitted from the wireless device to the access point of the BSS, i.e., the transmission (TX) data rate. In one example, the TX rate may refer to the transmission physical layer (TX PHY) data rate. The TX PHY data rate may not be known until the firmware of the wireless device selects the data rate after a connection is established between the wireless device and the access point or BSS. In conventional arrangements, the algorithm used by the firmware to select the data rate may be complex and proprietary. In such arrangements, the upper layers of the WLAN stack may not understand how the firmware selects the data rate, and may not be able to predict how the firmware will select the data rate before the connection is formed.
[0032] Unlike existing approaches, the prediction system 202 is configured to predict the data rate of the access point or BSS before forming a network connection between the wireless device 110a and the access point of the BSS. The predicted data rate may be very close to the data rate that the firmware running on the wireless device 110a will select when forming a connection with the access point or BSS. The prediction system 202 can predict the data rate of the access point or BSS based on data associated with the access point or BSS, including one or more of the following: signal strength, signal strength speed, signal-to-noise ratio (SNR), frequency band, 802.11 mode and historical data and other possibilities. Signal strength can refer to exponentially weighted moving average (EWMA) signal strength, which can be measured in decibels per milliwatt (dBm). SNR can refer to EWMA SNR. Signal strength speed can refer to the rate of change of EWMA signal strength over time, and can be measured in dBm / s. 802.11 mode can refer to the Wi-Fi standard under which the access point operates, which determines the theoretical maximum speed of the connection. Historical data may include any of the above data collected over a period of time. Some of the above data may be collected when observing an access point or BSS via one or more roaming scans. Roaming scans allow client devices to observe the signal characteristics of an access point or BSS, including signal strength, frequency band, and signal-to-noise ratio, as well as 802.11 mode. Multiple roaming scans allow client devices to calculate changes in signal strength over time, or signal strength velocity. In one example, the wireless device 110a may perform several bursts of active scans for one or more access points or BSSs to collect time series data for EWMA and velocity calculations for each access point or BSS. 2.1 Machine Learning Model
[0033] The prediction system 202 can implement one or more machine learning models 212 to perform data rate prediction. According to one aspect, the model 212 can be a multivariate nonlinear regression model. For example, the machine learning model 212 can use a Transformer type architecture, a convolutional neural network (CNN), a recurrent neural network (RNN), a long short-term memory (LSTM) network, or a combination thereof. Other machine learning architectures can be used as long as they support multivariate nonlinear regression. The machine learning model 212 can be trained with pre-processed information 210 including, for example, test data and production data. Figure 2 As shown, pre-processed information 210 may be stored in memory 204 .
[0034] There may be different types of preprocessing. In one example, preprocessing may include filtering out idle rates. When a device has no data to send, its rate may drop to a certain idle value. These idle rates may not represent the true link capacity. If such idle rates are not removed in advance, preprocessing may be used to filter them out. Thus, the machine learning model 212 may be trained with a data set that does not contain idle rates.
[0035] Training the machine learning model 212 can include inputting a set of physical property values of training examples from the preprocessed data into the machine learning model 212 and processing them to generate a corresponding predicted data rate for each set of physical property values. Each predicted data rate is compared with a corresponding true value data rate in the preprocessed data, for example using a loss function such as an L2 loss function. Based on the comparison, the parameters of the machine learning model 212 are updated. For example, an optimization process such as stochastic gradient descent can be applied to the loss function to determine the parameter update. The process of updating the parameters of the machine learning model 212 can be repeated until a threshold condition is met, such as reaching a threshold number of training cycles and / or a threshold performance of a test data set.
[0036] Test data may refer to data collected through testing before a product is released. Test data may include physical property values of a BSS and corresponding data rates selected by a test wireless device when connected to an access point of the BSS. Test data may be collected from tests performed on wireless devices with different hardware. Hardware tests may include rate and range tests, customized PHY rate tests, and the like. In one example, during automated testing, a test wireless device may be repeatedly connected to an access point of a BSS with different arrangements of physical property values. Physical properties may represent radio frequency properties of a connection. Physical properties may include, but are not limited to, signal strength, signal strength speed, SNR, frequency band, mode, and / or wireless channel. After each connection, the physical property values and the data rate selected by the firmware of the test wireless device may be added to the preprocessed information to train the machine learning model 212.
[0037] Production data may refer to data collected after a product is released. Production data may include indicators of an access point or BSS and a corresponding data rate selected by the firmware of a wireless device when connected to an access point of the BSS. Production data may be collected from wireless devices in the field. For example, when a wireless device is connected to an access point or BSS, the wireless device may record the data rate selected by its firmware and an indicator of the access point or BSS connection statistics when the data rate is selected. The indicator may include a radio frequency metric for the access point or BSS connection. The indicator may include, but is not limited to, signal strength, SNR, frequency band, mode, noise, and wireless channel, etc. The selected data rate and an indicator of the access point or BSS connection statistics may then be added to the preprocessed information to train the machine learning model 212. This may be done periodically or upon request of one or more devices operating in the field. The machine learning model 212 may be trained at the wireless device, or may be trained by a backend system and then sent to the wireless device for use by the prediction system 202. An example machine learning training architecture is further described below.
[0038] Once trained using the preprocessed information, the machine learning model 212 can be used by the prediction system 202 to predict the data rate of the access point or BSS, even before the wireless device 110a forms a network connection with the access point or BSS. The predicted data rate can indicate that the firmware running on the wireless device 110a will select whether the wireless device 110a is to connect to the access point or BSS. The predicted data 214 can be stored in the memory 204. The machine learning model 212 can predict the data rate based on one or more physical and link layer metrics of the access point or BSS. The physical layer can refer to the open system interconnection (OSI) model physical layer, and its metrics can include signal strength and frequency, etc. Link layer metrics can include 802.11 mode and data rate, etc. The physical and link layer metrics can include one or more of the following data related to the access point or BSS obtained through one or more roaming scans: signal strength, SNR, frequency band, wireless channel and mode, etc. In one example, the machine learning model 212 can predict the data rate based on signal strength or SNR or a combination thereof. By relying on signal strength and signal-to-noise ratio, alone or in combination, the machine learning model 212 can generate accurate predictions of data rates.
[0039] The data rate predicted by the machine learning model 212 can represent a direct, objective measure of the potential performance of the access point or BSS, serving as an indication of the potential connection quality of the access point or BSS. 2.2 Network selection process based on predicted data rate
[0040] In one example, the wireless device 110a may participate in an automatic network selection process. During this process, the wireless device 110a may automatically perform a roaming scan to capture data or physical and link layer metrics of each surrounding access point or BSS. The prediction system 202 may predict the data rate of each access point or BSS based on the physical and link layer metrics of each access point or BSS, and compare all access points or BSSs based on their predicted data rates. To ensure that the wireless device 110a will receive the best connection quality, the prediction system 202 may select the access point or BSS with the highest predicted data rate and instruct the transceiver 208 to establish a connection with the selected access point or BSS.
[0041] Figure 3 A flow chart depicting an exemplary automatic network selection process based on predicted data rates is presented. At 302, one or more processors 206 of a wireless device 110a may receive at least one physical and link layer metric for each of a plurality of access points or BSSs via a transceiver 208. Each access point or BSS may provide network coverage for a location where the wireless device 110a resides. At 304, the processor 206 may predict the data rate of each access point or BSS before forming a network connection with a given access point or BSS. The predicted data rate may estimate the rate at which data will be transmitted from the wireless device 110a or the transceiver 208 of the wireless device 110a to the access point or BSS once a network connection is formed. At 306, the processor 206 may select the BSS with the highest predicted data rate from the plurality of access points or BSSs. At 308, the processor 206 may instruct the transceiver to form a connection with the selected access point or BSS.
[0042] The data rate may be a physical layer rate. The processor 206 may perform a roaming scan to collect at least one physical and link layer metric for each of the plurality of access points. The processor 206 may predict the data rate of each access point based on at least one physical and link layer metric for each access point. The at least one physical and link layer metric may include one or more of the following: signal strength, frequency band, mode, signal strength speed, signal-to-noise ratio, and historical data. The memory 204 may store pre-processed information indicating a relationship between a data rate and at least one physical and link layer metric detected when determining the data rate. The processor 206 may predict the data rate of each access point or BSS based on at least one physical and link layer metric associated with the access point or BSS and the pre-processed information. The predicted data rate may approximate a data rate selected by the firmware of the wireless device, wherein the firmware selects the data rate when forming a wireless network connection with the access point.
[0043] In one embodiment, the wireless device may connect to the current access point. The processor 206 may determine the current data rate at which data is transmitted from the wireless device to the current access point. The processor 206 may compare the highest predicted data rate with the current data rate. The processor 206 may instruct the transceiver of the wireless device to form a connection with the selected access point when the highest predicted data rate is higher than the current data rate. 2.3 Other Examples of Machine Learning Models
[0044] In some examples, the prediction system 202 may have multiple different machine learning models 212 for predicting data rates. For example, the prediction system 202 may have a machine learning model 212 for each firmware and hardware combination of a wireless device or for each device classification. Given a device classification of the wireless device 110a (e.g., laptop, smart phone, smart speaker, smart display, etc.), the prediction system 202 may select an appropriate machine learning model 212 to perform data rate prediction.
[0045] Different machine learning models may be used for different physical environments. For example, one machine learning model may predict the data rate for outdoor connections, such as when the wireless device 110a is located in an outdoor environment. Another machine learning model may predict the data rate for indoor connections, such as when the wireless device 110a is located in an indoor environment.
[0046] In another example, the prediction system 202 may implement a machine learning model that predicts the data rate of each access point or BSS and calculates a score for each access point or BSS based on the predicted data rate. The machine learning model 212 may adjust the score by taking into account different situations. For example, the signal strength and / or SNR of an access point or BSS may vary greatly depending on whether the wireless device 110a is positioned indoors or outdoors. If the wireless device 110a is positioned outdoors, the machine learning model may increase the score of the access point or BSS, and if the wireless device 110a is positioned indoors, the machine learning model may decrease the score (or vice versa, depending on the scenario). The prediction system 202 may compare access points or BSSs based on their scores and select the access point or BSS with the highest score to form a connection.
[0047] In yet another example, the prediction system 202 may have different machine learning models for different connection scenarios. For example, as discussed in Section 2.2, the prediction system 202 may have a first machine learning model for predicting the data rates of all surrounding access points or BSSs when the wireless device 110a is not connected to any access point or BSS. The prediction system 202 may have a second machine learning model for predicting data rates during a roaming determination process. When the wireless device 110a is connected to the current access point or BSS, the wireless device 110a may assess the need for roaming by determining whether there are any other access points or BSSs that will provide better connection quality than the current access point or BSS. The second machine learning model may predict the data rate of each candidate access point or BSS. The predicted data rates of the candidate access points or BSSs may then be compared with the data rate of the current access point or BSS to determine whether there are any candidate access points or BSSs that exceed the performance of the current access point or BSS, in which case the wireless device 110a may choose to roam from the current access point or BSS to the candidate access point or BSS. Section 3 below provides an example implementation for making roaming decisions. 3. Improved BSS evaluation system
[0048] Figure 4A Another embodiment 400a of a wireless device 110a is illustrated, wherein the BSS data rate prediction system 202 may form part of a BSS evaluation system 400 for making roaming decisions. The wireless device 110a may make a roaming decision when it is currently connected to an access point or BSS. For example, initially, the transceiver 208 of the wireless device 110a may establish a connection with a first access point to join a first BSS such as BSS 104a while residing at a location covered by other access points 102b and 102c or their corresponding BSSs such as BSS 104b and 104c. The first access point 102a may be considered as a current access point, while the other access points 102b and 102c may be considered as candidate access points. The first BSS 104a may be considered as a current BSS, while the other BSSs 104b and 104c may be considered as candidate BSSs.
[0049] The evaluation system 400 can evaluate the adequacy of the current access point or BSS, compare the current access point or BSS with the candidate access points or BSSs, select a target access point or BSS for roaming based on the comparison, and ultimately make a roaming decision. Once the evaluation system 400 decides to roam to a candidate access point or BSS such as the access point 102b or its corresponding BSS 104b, the transceiver 208 can then roam from the current access point 102a (or its corresponding BSS 104a) to the candidate access point 102b (or its corresponding BSS 104b).
[0050] An example evaluation system is described in co-pending application No. 17 / 830,537, entitled “System and Method for Wireless Roaming”. For example, with respect to roaming decisions, the system may also evaluate the current connection, evaluate candidate connections, and then make an evaluation based on specific criteria. This may include determining a quality score for each connection and automatically deciding to roam to the connection with the highest quality score. When evaluating the current connection, the system may consider various aspects such as signal strength, system requirements, user needs (e.g., based on the type of application being run), and / or historical connection performance. User needs may be determined based on the application currently running on the wireless device. For example, a computing device may have one or more of the following applications in progress: an ongoing podcast download or media streaming, an ongoing large file transfer, or an ongoing cloud game. User needs may affect the quality score of the connection. For example, podcast downloads, media streaming, and large file transfers may value the stability of the connection, resulting in the quality score being significantly affected by the stability of the connection. On the other hand, cloud gaming may value the latency of the connection, resulting in the quality score being significantly affected by the latency of the connection. When evaluating candidate connections, similar information may be considered as long as the information is available for different connections. Here, there may be little historical connection performance information available for some candidates because these candidates may not have been used by the wireless device within a particular time range (e.g., the past 12 hours, the past 7 days, or other historical time range), resulting in their quality scores being reduced. Based on these evaluations, the system can combine the prediction means described herein to assess the advantages and disadvantages of changing from the current connection to a different connection. For example, roaming to a connection that has performed well in the past may carry less downlink risk or be less likely to cause disruption to the user, while roaming when the app involves latency-dependent tasks (e.g., streaming a movie or other content) is more likely to cause disruption (and therefore has a higher "risk").
[0051] exist Figure 4BIn one example 400b shown, the evaluation system 400 may be part of a wireless local area network (WLAN) implementation 402, which may include a WLAN management module 404 and a WLAN specification and driver implementation 406. The evaluation system 400 may perform a roaming scan or a burst of several active scans to discover any candidate access points or BSSs within the communication range of the wireless device 110a. The evaluation system 400 may include a scan manager 422 for managing the frequency of roaming scans. The evaluation system 400 may also include a storage network manager 410 to track information related to each access point or BSS including the current access point or BSS and each candidate access point or BSS. The storage network manager 410 may have a data structure 412 (maintained in the memory 204) dedicated to each access point or BSS to store the connection quality data associated with each access point or BSS. The connection quality data stored in the data structure 412 may include one or more of: data 414 associated with Open Systems Interconnection (OSI) layer 1, data 416 associated with OSI layer 2, data 418 associated with OSI layer 3, and data 420 associated with a wireless local area network (WLAN) management module. Figure 4A In the illustrated example 400a, data structure 412 may include OSI layer 1 data 414, OSI layer 2 data 416, and OSI layer 3 data 418. Figure 4B In the illustrated example 400 b , the data structure 412 may include OSI layer 1 data 414 , OSI layer 2 data 416 , OSI layer 3 data 418 , and WLAN management module data 420 .
[0052] The OSI layer 1 data 414 may include physical layer data, including but not limited to EWMA signal strength, signal strength speed, EWMA SNR, channel, and channel bandwidth. Scanning may be used to collect the OSI layer 1 data 414. In one example, for the current access point or BSS, the state machine 424 at the WLAN management module 404 may obtain the OSI layer 1 data 414 at regular intervals, such as every second. For any candidate access point or BSS, the WLAN management module 404 may collect its OSI layer 1 data 414 when the candidate access point or BSS is observed in a roaming scan. The evaluation system 400 may perform bursts of several active scans for some of the candidate access points or BSSs to collect time series data for EWMA and speed calculations. The state machine may implement a state-based roaming approach as discussed further below.
[0053] OSI layer 2 data 416 may include link layer data, including but not limited to data rates, radio resource management (RRM) reports, and BSS transition management (BTM) indications. OSI layer 2 data 416 may be collected from reports provided by the firmware. RRM reports may contain data for any access point or BSS reporting thereon, such as channels, frequencies, etc. Prediction system 202 may rely on the data contained in the RRM reports to predict the data rates of candidate access points or BSSs.
[0054] When the wireless device 110a is connected to the current access point or BSS, the data rate of the current access point or BSS can be observed by the state machine 424 and stored in the data structure 412. During the connection, the data rate of the current access point or BSS may change significantly. For example, when the wireless device is idle and has no data to send, the data rate can drop to a very low level. The evaluation system 400 can filter out the idle rate so that the data rate is only considered when the data is actually flowing. Once filtered, the remaining data rate values can then be smoothed using an exponentially weighted moving average (EWMA). Sometimes, it may not be possible to obtain metrics at perfect intervals. For example, when the wireless device is idle, some of the periodic metrics of the data rate can be discarded. Therefore, the evaluation system 400 can weight older data even if it is the most recent available data. The evaluation system 400 can use time in the EWMA weights, rather than the number of metrics. The amount of weight that a new metric has in the average can be proportional to the time since the last adjustment of the metric.
[0055] Based on the above calculations, data structure 412 can store an exponentially weighted moving average physical layer (EWMA PHY) rate, including an exponentially weighted moving average or smoothed transmit physical layer (EWMA TX PHY) rate, for the current access point or BSS. The EWMA PHY rate or the EWMA TX PHY rate can be relied upon as the data rate of the current access point or BSS when evaluating the adequacy of the current access point or BSS, and / or when comparing the current access point or BSS to any candidate access point or BSS during a roaming determination process.
[0056] The OSI layer 3 data 418 may include network layer data such as current Internet reachability, historical Internet reachability, and gateway reachability, among other possibilities. The OSI layer 3 data 418 may be collected primarily through feedback from other system components including, but not limited to, a network stack and network policy, among other possibilities. In one example, the OSI layer 1 data 414, OSI layer 2 data 416, and OSI layer 3 data 418 may be collected and / or updated without reliance on the WLAN management module 404 or its components.
[0057] The WLAN management module data 420 may include historical data for each connection, such as time for connection, connection duration, disconnection reason, disconnection signal strength, and average TX PHY rate, etc. The WLAN management module data 420 may be collected by a state machine 424 .
[0058] The evaluation system 400 may periodically monitor and update the data structure 412 for each access point or BSS. The state machine 424 may periodically update the data structure 412 for the current access point or BSS 104a. For a candidate access point or BSS, the evaluation system 400 may update its data structure 412 after a roaming scan or after receiving an RRM report if the RRM report contains information related to the candidate access point or BSS. The evaluation system 400 may evaluate the adequacy of the current access point or BSS 104a based on its data rate, such as the EWMA PHY rate or EWMA TX PHY rate described above. For example, if the data rate indicates that the current connection is poor or has degraded connection quality based on a comparison with a certain tunable threshold, or indicates that the current connection may become poor in the near future, the evaluation system 400 may decide that roaming needs to be considered. An example of a data rate indicating a poor connection may be a data rate of 30 Mbps on a connection that is theoretically capable of 300 Mbps. An example of a data rate indicating that the connection is degrading could be a data rate drop from 100 Mbps to 75 Mbps to 50 Mbps and on. An example tunable threshold could be to consider roaming when below 50 Mbps, which could be adjusted up or down.
[0059] Once the evaluation system 400 determines that roaming should be considered, the evaluation system 400 can then evaluate the candidate access points or BSSs to identify whether there are any candidate access points or BSSs that will provide a better connection than the current access point or BSS. If the evaluation system 400 identifies a candidate access point or BSS that is better than the current access point or BSS, the evaluation system 400 can continue to roam to the candidate access point or BSS. On the other hand, if no candidate access point or BSS is better than the current access point or BSS, the evaluation system 400 can decide not to roam. The evaluation system 400 can evaluate the candidate access points or BSSs based on the predicted data rates of the candidate access points or BSSs generated by the prediction system 202. The prediction system 202 can predict the data rate of each candidate access point or BSS based on data contained in the data structure 412 of each candidate access point or BSS, including but not limited to signal strength, frequency band, mode, signal strength speed, signal-to-noise ratio, and historical data. The evaluation system 400 can store the predicted data rates of the candidate access points or BSSs in their corresponding data structures 412.
[0060] The evaluation system 400 can compare all access points or BSSs based on their data rates, such as comparing the data rate of the current access point or BSS with the predicted data rate of the candidate access point or BSS. As discussed above, the data rate of the current access point or BSS can refer to the EWMA PHY rate or EWMATX PHY rate of the current access point or BSS. The evaluation system 400 can select the access point or BSS with the highest data rate. If the data rate of the current access point or BSS is greater than the predicted data rate of each candidate access point or BSS, then the evaluation system 400 selects the current access point or BSS. On the other hand, if the predicted data rate of the candidate access point or BSS is greater than the data rate of the current access point or BSS, and is also greater than the predicted data rate of each remaining candidate access point or BSS, then the evaluation system 400 selects the candidate access point or BSS with the highest predicted data rate. Once an access point or BSS is selected, if the access point or BSS is the current access point or BSS, the evaluation system 400 may continue to maintain the connection with the current access point or BSS and decide not to roam anywhere. On the other hand, if the selected access point or BSS is a candidate access point or BSS instead of the current access point or BSS, the evaluation system 400 may initiate roaming to the selected candidate access point or BSS.
[0061] Figure 5 A flowchart depicting an example process for making a roaming decision is presented. At 502, one or more processors 206 may determine whether to consider roaming when the wireless device 110a is connected to a current access point or BSS, for example by implementing a BSS evaluation system. The wireless device may be within a network coverage area of multiple access points or BSSs. The multiple access points or BSSs may include a current access point or BSS and at least one candidate access point or BSS. At 504, the processor 206 may predict the data rate of each candidate access point or BSS before forming a network connection with the candidate access point or BSS, for example by implementing a BSS data rate prediction system. The predicted data rate may estimate the rate at which data is transmitted from the wireless device to the candidate access point or BSS once the network connection is formed. At 506, the processor 206 may compare the data rate of the current access point or BSS with the data rate of each candidate access point or BSS to select a target access point or BSS with the highest data rate. At 508, processor 206 can determine to roam from the current access point or BSS to the target access point or BSS when the target access point or BSS is not the current access point or BSS.
[0062] The processor 206 may instruct the transceiver 208 to roam from the current access point or BSS to the target access point or BSS when the target access point or BSS is not the current access point or BSS. The processor 206 may predict the data rate of each candidate access point or BSS based on at least one physical and link layer metric associated with each candidate access point or BSS. The at least one physical and link layer metric may include one or more of the following: signal strength, frequency band, mode, signal strength speed, SNR, and historical data. The processor 206 may perform a roaming scan to collect at least one physical and link layer metric of each candidate access point in at least one candidate access point. The processor 206 may determine whether to consider roaming by comparing the data rate of the current access point or BSS with a threshold. The memory 204 may store pre-processed information indicating a relationship between a data rate and at least one physical and link layer metric detected when determining a data rate. The processor 206 may predict the data rate of each candidate access point or BSS based on at least one physical and link layer metric associated with each candidate access point or BSS and the pre-processed information.
[0063] Figure 6 A flowchart illustrating another example process for determining roaming is presented. At 602, the memory 204 may record data associated with each of a plurality of access points or BSSs within a communication range of the wireless device 110a. The plurality of access points or BSSs may include a current access point or BSS to which the wireless device 110a is connected and at least one candidate access point or BSS. At 604, one or more processors 206 may determine a data rate of the current access point or BSS. At 606, the processor 206 may determine whether to consider roaming by evaluating the data rate of the current access point or BSS. At 608, the processor 206 may predict a data rate of each of at least one candidate access point or BSS before forming a network connection with the candidate access point or BSS. The processor 206 may predict a data rate of each candidate access point or BSS based on at least one physical and link layer metric of the candidate access point or BSS. The predicted data rate may estimate a rate at which data is transmitted from the wireless device to the candidate access point or BSS once a network connection is formed. At 610, processor 206 may select a target access point or BSS having a highest data rate from the plurality of access points or BSSs. At 612, processor 206 may determine to roam from a current access point or BSS to a target access point or BSS when the target access point or BSS is not the current access point or BSS.
[0064] In another embodiment, the evaluation system 400 may not rely on the data rate of the access point or BSS, but instead perform access point or BSS evaluation and make roaming decisions by ranking the access points or BSS based on the connection quality data stored in the data structure 412 of each access point or BSS. The evaluation system 400 may rank all access points or BSSs including the current access point or BSS and all candidate access points or BSSs based on the connection quality data of the access point or BSS, and select the access point or BSS with the highest ranking. If the current access point or BSS has the highest ranking, the evaluation system 400 selects the current access point or BSS. If the selected access point or BSS is the current access point or BSS, the evaluation system 400 may not initiate roaming. If the selected access point or BSS is not the current access point or BSS, the evaluation system 400 may initiate roaming to the selected access point or BSS. In one embodiment, the data structure 412 of each access point or BSS may include its historical ranking record.
[0065] Figure 7 A flow chart illustrating yet another example process for determining roaming is presented. At 702, the memory 204 may record connection quality data associated with each of a plurality of access points or BSSs. At 704, the one or more processors 206 may determine whether to consider roaming when the wireless device 110a is connected to a current access point or BSS. At 706, the processor 206 may rank the plurality of access points or BSSs based on the recorded connection quality data of the plurality of access points or BSSs. At 708, the processor 206 may select a target access point or BSS having the highest ranking from the plurality of access points or BSSs. At 710, the processor 206 may determine to roam from the current access point or BSS to the target access point or BSS when the target access point or BSS is not the current access point or BSS.
[0066] As described above, according to one aspect, the model may employ multivariate nonlinear regression. Figure 8 An example visualization 800 of a nonlinear multiple regression model with two independent variables is illustrated. The visualization plots data rate along a first axis, signal-to-noise ratio along a second axis, and received signal strength indication (RSSI) along a third axis perpendicular to the other two axes. As shown, the higher the RSSI and the higher the signal-to-noise ratio, the higher the potential data rate. Given the RSSI and signal-to-noise ratio observed for an access point or BSS, the model can be used to predict the data rate that will be achieved by connecting to that access point or BSS. 9. Example System Components
[0067] The memory 204 may be a database storing information accessible by the processor 206, including, but not limited to, instructions and data that may be executed or otherwise used by the processor (e.g., to implement modules of the prediction system 202 and / or the evaluation system 400). The memory may be of any type capable of storing information accessible by the processor, including computing device readable media. The memory may be a non-transitory computer readable medium such as a hard drive, a memory card, an optical disk, a solid state, etc. The system may include different combinations of the foregoing, whereby different portions of the instructions and data are stored on different types of media. The instructions may be any set of instructions to be executed directly by the processor (such as machine code) or any set of instructions to be executed indirectly (such as a script). For example, the instructions may be stored as computing device code on a computing device readable medium. In this regard, the terms "instructions", "modules", and "programs" may be used interchangeably herein. The instructions may be stored in an object code format for direct processing by the processor, or in any other computing device language, including scripts or independent source code module sets that are interpreted on demand or compiled in advance.
[0068] Processor 206 may be any conventional processor, such as a commercially available GPU, CPU, TPU, etc. Alternatively, each processor may be a dedicated device, such as an ASIC or other hardware-based processor. Figure 2 The processor and memory are functionally shown as being located within the same box, but such means may actually include multiple processors, computing devices, or memories that may or may not be stored within the same physical housing. Similarly, the memory may be a hard drive or other storage medium located in a housing different from the housing of the processor. Therefore, references to a processor or computing device will be understood to include references to a collection of processors or computing devices or memories that may or may not operate in parallel.
[0069] Each wireless device 110a-g may include one or more components typically used in connection with a computing device, such as the processor and memory described above, and a user interface subsystem for receiving input from a user and presenting information (e.g., text, images, and / or other graphical elements) to the user. The user interface subsystem may include one or more user inputs (e.g., at least one front (user) camera, mouse, keyboard, touch screen, and / or microphone) and one or more display devices (e.g., a monitor with a screen or any other electrical device operable to display information (e.g., text, images, and / or other graphical elements)). Other output devices such as speakers may also provide information to the user. Example wireless devices include, but are not limited to, mobile phones, laptop computers, wearable computing devices (e.g., smart watches or head-mounted displays), smart home devices such as smart displays or speakers, desktop PCs, and other possibilities. Each wireless device may be mobile or fixed.
[0070] Each BSS 104a-c may support a network. The network may include various configurations and protocols, including short-range communication protocols such as Bluetooth™, Bluetooth LE™, the Internet, the World Wide Web, an intranet, a virtual private network, a wide area network, a local network, a private network using one or more company-proprietary communication protocols, Ethernet, Wi-Fi, and HTTP, and various combinations of the foregoing. Such communications may be facilitated by any device capable of transferring data to and from other computing devices, such as a modem and a wireless interface. 10. Example of state-based roaming approach
[0071] Fig. 9 An example 900 of a state-based roaming approach that can be employed by the state machine 224 and executed by the processor 206 is illustrated. Here, solid-line boxes indicate different states, containers indicate data sources, solid-line arrows indicate state transitions, and dashed-line arrows indicate data flows. States include a connected state 902, an evaluate current connection state 904, an evaluate candidate connection state 906, an evaluation state 908, a roaming state 910, and a connecting state 912. Data source 914 provides data to the evaluate current connection state 904, and data source 916 provides data to the evaluate current connection state 906.
[0072] When in the connected state 902, the station (client device) is wirelessly connected to the serving BSS (e.g., Figure 1 BSS 104a). One or more other BSSs (e.g., Figure 1902. In some embodiments, the state of the present invention may be a state of being connected to the connected state 902. In some embodiments, the state of the present invention may be a state of being connected to the connected state 902. In some embodiments, the state of the present invention may be a state of being connected to the connected state 902. In some embodiments, the state of the present invention may be a state of being connected to the connected state 902. In some embodiments, the state of the present invention may be a state of being connected to the connected state 902. In some embodiments, the state of the present invention may be a state of being connected to the connected state 902. In some embodiments, the state of the present invention may be a state of being connected to the connected state 902. In some embodiments, the state of the present invention may be a state of being connected to the connected state 902.
[0073] When it is determined that the current connection is insufficient, as indicated by arrow 922, the state transitions to the Evaluate Connected state 906. Here, data from the data source 916 is evaluated. The data may include one or more scan signal data, historical data, BTM indications, etc. After the evaluation, the state machine advances to the Evaluate state 908, as indicated by dashed arrow 924, where the data flow includes the current connection evaluation and the reason for roaming (if applicable). At box 908, the evaluation can evaluate the potential harm of roaming to a candidate access point or BSS and the expected improvement brought by roaming, such as described in the various scenarios and examples above. Here, if the system (e.g., Figure 2 If the BSS assessment system 202 determines that roaming is not the current best option, then the state returns to the connected state 902 as indicated by arrow 926.
[0074] However, when it is determined that roaming is the best option at the moment, then the state transitions to the roaming state 910 as indicated by arrow 928. Once roaming is complete, the state transitions to the connecting state 912, which includes the selected roaming candidate data, as indicated by dashed arrow 930. From here, using the roaming candidate data, the state will enter the connecting state 902. 11. Example Machine Learning Training Architecture
[0075] Training may be performed on one or more tensor processing units (TPUs), CPUs, or other computing architectures to implement the models discussed herein. According to one aspect, model 212 may be a multivariate nonlinear regression model. Fig. 10A and Fig. 10B An example computing architecture is shown in FIG. Fig. 10A and Fig. 10B1000 , which includes multiple computing devices and databases connected via a network. For example, computing device 1002 can be a cloud-based server system. Databases 1004, 1006, and 1008 can store, for example, test data, production data, and / or trained machine learning models, respectively. The server system can access the database via network 1010. Wireless devices on site can collect production data and receive trained models, and can include one or more of a desktop computer 1012, a laptop or tablet PC 1014, a mobile phone 1016, a smart watch or other wearable device 1018, a residence assistant device 1020, and / or a smart speaker 1022. These devices are merely exemplary.
[0076] like Fig. 10B As shown, each of computing devices 1002 and 1012-1022 may include one or more processors, memory, data, and instructions. The memory stores information accessible by one or more processors, including instructions and data (e.g., machine learning models) that can be executed or otherwise used by the processor. The memory can be any type capable of storing information accessible by a processor, including computing device readable media.
[0077] Devices 1002 and 1012-1020 may include all components typically used in connection with a computing device, such as the processor and memory described above, and a user interface subsystem for receiving input from a user and presenting information (e.g., text, images, and / or other graphical elements) to the user. The user interface subsystem may include one or more user inputs (e.g., at least one front (user) camera, mouse, keyboard, touch screen, and / or microphone) and one or more display devices (e.g., a monitor having a screen or any other electrical device operable to display information (e.g., text, images, and / or other graphical elements)). Other output devices such as speakers may also provide information to the user. Devices such as smart speakers 1022 may not have a display screen, or may only use LEDs or other lights to intuitively present information to the user.
[0078] Wireless devices 1012-1022 may communicate with backend computing systems (e.g., server 1002) via one or more networks, such as network 1010. Networks and intermediate nodes may include various configurations and protocols, including short-range communication protocols, such as Bluetooth™, Bluetooth LE™, the Internet, the World Wide Web, an intranet, a virtual private network, a wide area network, a local network, a private network using one or more company-proprietary communication protocols, Ethernet, WiFi, and HTTP, and various combinations of the foregoing. Such communications may be facilitated by any device capable of transferring data to and from other computing devices, such as a modem and a wireless interface.
[0079] In one example, computing device 1002 may include one or more server computing devices having multiple computing devices, such as a load balancing server farm or a cloud computing system, which exchange information with different nodes of a network to receive, process, and send data to and from other computing devices. For example, computing device 1002 may include one or more server computing devices that can communicate with any of computing devices 1012-1022 via network 1010, for example, to receive production data from these devices and share models after the models are trained.
[0080] Although the technology has been described herein with reference to specific embodiments, it should be understood that these embodiments are only illustrative of the principles and applications of the technology. Therefore, it should be understood that various modifications may be made to the illustrative embodiments, and other arrangements may be designed without departing from the spirit and scope of the technology as defined by the appended claims.
Claims
1. A network selection method, comprising: receiving, by one or more processors of a wireless device, at least one physical and link layer metric for each of a plurality of access points, each access point providing wireless network coverage for a location of the wireless device; predicting, by the one or more processors, a data rate for each access point prior to forming a wireless network connection with the access point, the predicted data rate estimating a rate at which data will be transmitted from the wireless device to the access point once the network connection is formed; selecting, by the one or more processors, an access point having a highest predicted data rate from the plurality of access points; as well as The transceiver of the wireless device is instructed to form a connection with the selected access point.
2. The method of claim 1, further comprising: performing a roaming scan to collect the at least one physical and link layer metric for each of the plurality of access points, Wherein predicting the data rate of each access point is based on the at least one physical and link layer metric of each access point.
3. The method of claim 1, wherein: The at least one physical and link layer metric includes one or more of: signal strength, frequency band, mode, signal strength speed, signal to noise ratio, or historical data.
4. The method of claim 1, further comprising storing pre-processed information in a memory of the wireless device, the pre-processed information indicating a relationship between a given data rate and at least one physical and link layer metric detected in determining the given data rate.
5. The method of claim 4, wherein: Predicting the data rate for each access point is based on the at least one physical and link layer metric associated with the access point and the pre-processed information.
6. The method of claim 1, wherein: The predicted data rate approximates a data rate selected by firmware of the wireless device, which data rate can be selected when forming the wireless network connection with the access point.
7. The method of claim 1, wherein: Predicting the data rate for each access point is performed using a machine learning model trained on the pre-processed information, the pre-processed information including test data and production data.
8. The method of claim 1, wherein: The wireless device is connected to a current access point, and the method further comprises: determining a current data rate at which data is transmitted from the wireless device to the current access point; comparing the highest predicted data rate to the current data rate; and When the highest predicted data rate is higher than the current data rate, the transceiver of the wireless device is instructed to form a connection with the selected access point.
9. A method for determining roaming of a wireless device, comprising: determining, by one or more processors of the wireless device, whether to consider roaming when the wireless device is connected to a current access point, the wireless device being within a network coverage area of a plurality of access points, the plurality of access points including the current access point and at least one candidate access point; predicting, by the one or more processors, a data rate for each candidate access point prior to forming a network connection with a selected one of the at least one candidate access point, the predicted data rate estimating a rate at which data will be transmitted from the wireless device to each respective candidate access point once the network connection is formed; comparing, by the one or more processors, a data rate of the current access point with a predicted data rate of each candidate access point to select a target access point having a highest data rate; as well as When the target access point is not the current access point, the one or more processors determine to roam from the current access point to the target access point.
10. The method of claim 9, further comprising: When the target access point is not the current access point, the transceiver of the wireless device roams from the current access point to the target access point.
11. The method of claim 9, wherein: Predicting the data rate for each of the at least one candidate access point is based on at least one physical and link layer metric associated with the candidate access point.
12. The method of claim 11, wherein: The at least one physical and link layer metric includes one or more of: signal strength, frequency band, mode, signal strength speed, signal to noise ratio, or historical data.
13. The method of claim 11, further comprising: A roaming scan is performed to collect the at least one physical and link layer metric for each of the at least one candidate access point.
14. The method of claim 9, wherein: Determining whether to consider roaming includes comparing the data rate of the current access point to a threshold.
15. The method of claim 9, further comprising storing pre-processed information in a memory of the wireless device, the pre-processed information indicating a relationship between a given data rate and at least one physical and link layer metric detected in determining the given data rate.
16. The method of claim 15, wherein: Predicting the data rate for each candidate access point is performed using a machine learning model trained on the pre-processed information, the pre-processed information comprising test data and production data.
17. The method of claim 14, wherein: Predicting the data rate for each of the at least one candidate access point is based on at least one physical and link layer metric associated with the candidate access point and the pre-processed information.
18. The method of claim 9, wherein: Determining whether to consider roaming includes evaluating at least one of: a signal strength of the current access point, system requirements of the wireless device, applications currently running on the wireless device, and historical connection performance.
19. A wireless device within a network coverage area of multiple access points, comprising: Transceiver; as well as one or more processors operatively coupled to the transceiver, the one or more processors configured to: receiving at least one physical and link layer metric for each access point of the plurality of access points; predicting a data rate for each access point prior to forming a network connection with the access point, the predicted data rate estimating a rate at which data will be transmitted from the transceiver to the access point once the network connection is formed; Selecting the access point with the highest predicted data rate; as well as The transceiver is instructed to form a wireless connection with the selected access point.
20. The wireless device of claim 19, wherein: The one or more processors are configured to: performing a roaming scan to collect the at least one physical and link layer metric for each of the plurality of access points, wherein the one or more processors predict the data rate of each access point based on the at least one physical and link layer metric of each access point.
21. The wireless device of claim 20, wherein: The at least one physical and link layer metric includes one or more of: signal strength, frequency band, mode, signal strength speed, signal to noise ratio, or historical data.
22. A wireless device within a network coverage area of multiple access points, comprising: Transceiver; as well as one or more processors operatively coupled to the transceiver, the one or more processors configured to: determining whether to consider roaming when the transceiver is connected to a current access point among a plurality of access points, the plurality of access points including the current access point and at least one candidate access point; predicting a data rate for each candidate access point prior to forming a network connection with a selected one of the candidate access points, the predicted data rate estimating a rate at which data will be transmitted from the transceiver to each respective candidate access point once the network connection is formed; comparing the data rate of the current access point with the predicted data rate of each candidate access point to select a target access point having the highest data rate; as well as When the target access point is not the current access point, it is determined to roam from the current access point to the target access point.
23. The wireless device of claim 22, wherein: The one or more processors are further configured to instruct the transceiver to roam from the current access point to the target access point when the target access point is not the current access point.
24. The wireless device of claim 22, wherein: The one or more processors are configured to predict the data rate of each candidate access point based on at least one physical and link layer metric associated with each of the at least one candidate access point.
Citation Information
Patent Citations
System and Method for Wireless Roaming
US20230396978A1
Predictive Data Rates for Wireless Roaming and Selection
US20230397098A1
Cited By
Wireless roaming method and device based on multi-factor weight fusion
CN121547833A
Electronic device and method for wireless communications, and computer-readable storage medium
WO2026166401A1
