Patent Publication Number: US-11398946-B2

Title: Optimization of distributed Wi-Fi networks estimation and learning

Description:
CROSS-REFERENCE TO RELATED APPLICATION(S) 
     The present patent/application is a continuation of U.S. Pat. No. 10,554,482 filed Mar. 17, 2017, and entitled “OPTIMIZATION OF DISTRIBUTED WI-FI NETWORKS ESTIMATION AND LEARNING,” and which claims priority to U.S. Provisional Patent Application No. 62/310,613, filed Mar. 18, 2016, and entitled “OPTIMIZATION OF DISTRIBUTED WI-FI NETWORKS ESTIMATION AND LEARNING,” the contents of each is incorporated by reference. 
    
    
     FIELD OF THE DISCLOSURE 
     The present disclosure generally relates to wireless networking systems and methods. More particularly, the present disclosure relates to optimization of distributed Wi-Fi networks estimation and learning. 
     BACKGROUND OF THE DISCLOSURE 
     Wi-Fi networks (i.e., Wireless Local Area Networks (WLAN) based on the IEEE 802.11 standards) have become ubiquitous. People use them in their homes, at work, and in public spaces such as schools, cafes, even parks. Wi-Fi provides great convenience by eliminating wires and allowing for mobility. The applications that consumers run over Wi-Fi is continually expanding. Today people use Wi-Fi to carry all sorts of media, including video traffic, audio traffic, telephone calls, video conferencing, online gaming, and security camera video. Often traditional data services are also simultaneously in use, such as web browsing, file upload/download, disk drive backups, and any number of mobile device applications. In fact, Wi-Fi has become the primary connection between user devices and the Internet in the home or other locations. The vast majority of connected devices use Wi-Fi for their primary network connectivity. 
     Despite Wi-Fi&#39;s popularity and ubiquity, many consumers still experience difficulties with Wi-Fi. The challenges of supplying real-time media applications, like those listed above, put increasing demands on the throughput, latency, jitter, and robustness of Wi-Fi. Studies have shown that broadband access to the Internet through service providers is up 99.9% of the time at high data rates. However, despite the Internet arriving reliably and fast to the edge of consumer&#39;s homes, simply distributing the connection across the home via Wi-Fi is much less reliable leading to poor user experience. 
     Several issues prevent conventional Wi-Fi systems from performing well, including i) interference, ii) congestion, and iii) coverage. For interference, with the growth of Wi-Fi has come the growth of interference between different Wi-Fi networks which overlap. When two networks within range of each other carry high levels of traffic, they interfere with each other, reducing the throughput that either network can achieve. For congestion, within a single Wi-Fi network, there may be several communications sessions running. When several demanding applications are running, such as high definition video streams, the network can become saturated, leaving insufficient capacity to support the video streams. 
     For coverage, Wi-Fi signals attenuate with distance and when traveling through walls and other objects. In many environments, such as residences, reliable Wi-Fi service cannot be obtained in all rooms. Even if a basic connection can be obtained in all rooms, many of those locations will have poor performance due to a weak Wi-Fi signal. Various objects in a residence such as walls, doors, mirrors, people, and general clutter all interfere and attenuate Wi-Fi signals leading to slower data rates. 
     Two general approaches have been tried to improve the performance of conventional Wi-Fi systems. The first approach is to simply build more powerful single access points, in an attempt to cover a location with stronger signal strengths, thereby providing more complete coverage and higher data rates at a given location. However, this approach is limited by both regulatory limits on the allowed transmit power, and by the fundamental laws of nature. The difficulty of making such a powerful access point, whether by increasing the power, or increasing the number of transmit and receive antennas, grows exponentially with the achieved improvement. Practical improvements using these techniques lie in the range of 6 to 12 dB. However, a single additional wall can attenuate by 12 dB. Therefore, despite the huge difficulty and expense to gain 12 dB of link budget, the resulting system may not be able to transmit through even one additional wall. Any coverage holes that may have existed will still be present, devices that suffer poor throughput will still achieve relatively poor throughput, and the overall system capacity will be only modestly improved. In addition, this approach does nothing to improve the situation with interference and congestion. In fact, by increasing the transmit power, the amount of interference between networks actually goes up. 
     A second approach is to use repeaters or a mesh of Wi-Fi devices to repeat the Wi-Fi data throughout a location. This approach is a fundamentally better approach to achieving better coverage. By placing even a single repeater node in the center of a house, the distance that a single Wi-Fi transmission must traverse can be cut in half, halving also the number of walls that each hop of the Wi-Fi signal must traverse. This can make a change in the link budget of 40 dB or more, a huge change compared to the 6 to 12 dB type improvements that can be obtained by enhancing a single access point as described above. Mesh networks have similar properties as systems using Wi-Fi repeaters. A fully interconnected mesh adds the ability for all the repeaters to be able to communicate with each other, opening the possibility of packets being delivered via multiple hops following an arbitrary pathway through the network. 
     State of the art mesh or repeaters systems still have many limitations. Because the systems depend on localized control, they configure themselves to use the same frequency for all the backhaul communication between the repeaters or mesh nodes. This creates a severe system capacity problem. Consider a system that requires three hops through the network to get its packet to the destination. Since all three hops are on the same frequency channel, and because only one Wi-Fi radio can transmit at a time on a given channel among devices that are in range (where range is determined by the long range of the lowest supported data rate), only one hop can be active at a time. Therefore, for this example, delivering a packet via three hops would consume three times the airtime on the one channel as delivering the packet directly. In the first hop, when the packet is moving from the Wi-Fi gateway to the first mesh node, all the other links in the house would need to stay silent. Similarly, as the packet is later sent from the first mesh node to a second mesh node, no other Wi-Fi devices in the home could transmit. Finally, the same would be true as the packet is moved from the second mesh node to the final destination. In all, the use of three hop repeating has reduced the network capacity by a factor of three. And, as with the case of a single access point, the repeater or mesh approach does nothing to help with the problems of interference or congestion. As before, the technique actually increases interference, as a single packet transmission becomes three separate transmissions, taking a total of 3× the airtime, generating 3× the interference to neighboring Wi-Fi networks. 
     BRIEF SUMMARY OF THE DISCLOSURE 
     In an exemplary embodiment, a method for estimation and learning for optimization of a distributed Wi-Fi network performed by a cloud controller includes obtaining data associated with operation of the distributed Wi-Fi network; processing the obtained data; determining one or more of forecasts, predictions, trends, and interference for the distributed Wi-Fi network based on the processed data; and performing an optimization of the distributed Wi-Fi network based on the determined one or more forecasts, predictions, trends, and interference. The obtained data can be time-series data, and wherein the processing can include collating the time-series data across all nodes in the distributed Wi-Fi network and segmenting the time-series data into time periods with similar characteristics. The method can further include storing the obtained data in a plurality of time periods, wherein the determining can include determining the forecasts for a future time period by analyzing the stored obtained data for similar time periods as the future time period. The method can further include storing the obtained data in a plurality of time periods; and characterizing signal strengths to a plurality of nodes from which Wi-Fi client devices expect to require service in the plurality of time periods. The method can further include storing the obtained data in a plurality of time periods; and performing statistical analysis of the obtained data to predict a distribution of interference in the distributed Wi-Fi network in a future time period. 
     The method can further include storing the obtained data in a plurality of time periods, wherein the determining can include predictions of future locations of Wi-Fi client devices based on a trajectory determined from the stored obtained data. The method can further include storing the obtained data in a plurality of time periods; and analyzing the stored obtained data to detect anomalous behavior or bugs. The method can further include storing the obtained data in a plurality of time periods; and performing statistical analysis of the obtained data to predict loads client devices will place on a plurality of nodes in the distributed Wi-Fi network in a future time period. The processing can include analyzing client to node connection signal strengths and predicting future client to node connection signal strengths based on the obtained data, and wherein the determining can include identifying nodes that should not be allowed to accept clients based on the future client to node connection signal strengths. The processing can include learning a relationship between signal strength and data rate for a subset of devices in the distributed Wi-Fi network. The processing can include determining actual measured throughput between nodes and between nodes and clients in the distributed Wi-Fi network. 
     In another exemplary embodiment, a cloud controller configured for estimation and learning for optimization of a distributed Wi-Fi network includes a network interface communicatively coupled to the Wi-Fi network; one or more processors communicatively coupled to the network interface; and memory storing instructions that, when executed, cause the one or more processors to: obtain data associated with operation of the distributed Wi-Fi network; process the obtained data; determine one or more of forecasts, predictions, trends, and interference for the distributed Wi-Fi network based on the processed data; and perform an optimization of the distributed Wi-Fi network based on the determined one or more forecasts, predictions, trends, and interference. The obtained data can be time-series data, and wherein the processing can include collating the time-series data across all nodes in the distributed Wi-Fi network and segmenting the time-series data into time periods with similar characteristics. The memory storing instructions that, when executed, can further cause the one or more processors to store the obtained data in a plurality of time periods, wherein the forecasts are determined for a future time period by analyzing the stored obtained data for similar time periods as the future time period. The memory storing instructions that, when executed, can further cause the one or more processors to store the obtained data in a plurality of time periods; and characterize a signal strengths to a plurality of nodes from which Wi-Fi client devices expect to require service in the plurality of time periods. 
     The memory storing instructions that, when executed, can further cause the one or more processors to store the obtained data in a plurality of time periods; and perform statistical analysis of the obtained data to predict a distribution of interference in the distributed Wi-Fi network in a future time period. The memory storing instructions that, when executed, can further cause the one or more processors to store the obtained data in a plurality of time periods, wherein the predictions can include future locations of Wi-Fi client devices based on a trajectory determined from the stored obtained data. The memory storing instructions that, when executed, can further cause the one or more processors to store the obtained data in a plurality of time periods; and analyze the stored obtained data to detect anomalous behavior or bugs. The memory storing instructions that, when executed, can further cause the one or more processors to store the obtained data in a plurality of time periods; and perform statistical analysis of the obtained data to predict loads client devices will place on a plurality of nodes in the distributed Wi-Fi network in a future time period. 
     In a further exemplary embodiment, a non-transitory computer readable medium storing instructions configured to perform estimation and learning for optimization of a distributed Wi-Fi network, wherein the instructions, when executed, cause one or more processors to perform steps of obtaining data associated with operation of the distributed Wi-Fi network; processing the obtained data; determining one or more of forecasts, predictions, trends, and interference for the distributed Wi-Fi network based on the processed data; and performing an optimization of the distributed Wi-Fi network based on the determined one or more forecasts, predictions, trends, and interference. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present disclosure is illustrated and described herein with reference to the various drawings, in which like reference numbers are used to denote like system components/method steps, as appropriate, and in which: 
         FIG. 1  is a network diagram of a distributed Wi-Fi system with cloud-based control; 
         FIG. 2  is a network diagram of differences in operation of the distributed Wi-Fi system of  FIG. 1  relative to a conventional single access point system, a Wi-Fi mesh network, and a Wi-Fi repeater system; 
         FIG. 3  is a flowchart of a configuration and optimization process for the distributed Wi-Fi system of  FIG. 1 ; 
         FIG. 4  is a block diagram of inputs and outputs to an optimization as part of the configuration and optimization process of  FIG. 3 ; 
         FIG. 5  is a block diagram of functional components of the access point in the distributed Wi-Fi system of  FIG. 1 ; 
         FIG. 6  is a block diagram of functional components of a server, a Wi-Fi client device, or a user device which may be used with the distributed Wi-Fi system of  FIG. 1 ; 
         FIG. 7  is a flowchart of a data gathering process by an access point in the distributed Wi-Fi system; and 
         FIG. 8  is a flowchart of an estimation and learning process by a cloud controller for a Wi-Fi network such as the distributed Wi-Fi system. 
     
    
    
     DETAILED DESCRIPTION OF THE DISCLOSURE 
     Again, in various exemplary embodiments, the present disclosure relates to data gathering systems and methods to enable the optimization of distributed Wi-Fi networks. It is an objective of the systems and methods to provide a Wi-Fi network with superior performance relative to Wi-Fi networks with a single AP, with repeaters, or with multiple mesh nodes. The systems and methods include a distributed Wi-Fi system with a plurality of access points (nodes) which are self-optimizing based on cloud-based control. This self-optimization adapts the topology and configuration of the plurality of access points in real-time based on the operating environment. The plurality of access points communicate with one another via backhaul links and to Wi-Fi client devices via client links, and the each of the backhaul links and each of the client links may use different channels based on the optimization, thereby avoiding the aforementioned limitations in Wi-Fi mesh or repeater systems. In an exemplary aspect, the distributed Wi-Fi system includes a relatively large number of access points (relative to conventional deployments including Wi-Fi mesh or repeater systems). For example, the large number of access points can be 6 to 12 or more in a typical residence. With a large number of access points, the distance between any two access points is small, on a similar scale as the distance between an access point and Wi-Fi client device. Accordingly, signal strength is maintained avoiding coverage issues, and with the optimization of the topology and configuration, congestion and interference are minimized. Thus, the distributed Wi-Fi system addresses all three of the aforementioned limitations in conventional Wi-Fi systems. 
     Distributed Wi-Fi System 
     Referring to  FIG. 1 , in an exemplary embodiment, a network diagram illustrates a Referring to  FIG. 1 , in an exemplary embodiment, a network diagram illustrates a distributed Wi-Fi system  10  with cloud-based  12  control. The distributed Wi-Fi system  10  can operate in accordance with the IEEE 802.11 protocols and variations thereof. The distributed Wi-Fi system  10  includes a plurality of access points  14  (labeled as access points  14 A- 14 H) which can be distributed throughout a location, such as a residence, office, or the like. That is, the distributed Wi-Fi system  10  contemplates operation in any physical location where it is inefficient or impractical to service with a single access point, repeaters, or a mesh system. As described herein, the distributed Wi-Fi system  10  can be referred to as a network, a system, a Wi-Fi network, a Wi-Fi system, a cloud-based system, etc. The access points  14  can be referred to as nodes, access points, Wi-Fi nodes, Wi-Fi access points, etc. The objective of the access points  14  is to provide network connectivity to Wi-Fi client devices  16  (labeled as Wi-Fi client devices  16 A- 16 E). The Wi-Fi client devices  16  can be referred to as client devices, user devices, clients, Wi-Fi clients, Wi-Fi devices, etc. 
     In a typical residential deployment, the distributed Wi-Fi system  10  can include between 3 to 12 access points or more in a home. A large number of access points  14  (which can also be referred to as nodes in the distributed Wi-Fi system  10 ) ensures that the distance between any access point  14  is always small, as is the distance to any Wi-Fi client device  16  needing Wi-Fi service. That is, an objective of the distributed Wi-Fi system  10  is for distances between the access points  14  to be of similar size as distances between the Wi-Fi client devices  16  and the associated access point  14 . Such small distances ensure that every corner of a consumer&#39;s home is well covered by Wi-Fi signals. It also ensures that any given hop in the distributed Wi-Fi system  10  is short and goes through few walls. This results in very strong signal strengths for each hop in the distributed Wi-Fi system  10 , allowing the use of high data rates, and providing robust operation. Note, those skilled in the art will recognize the Wi-Fi client devices  16  can be mobile devices, tablets, computers, consumer electronics, home entertainment devices, televisions, or any network-enabled device. For external network connectivity, one or more of the access points  14  can be connected to a modem/router  18  which can be a cable modem, Digital Subscriber Loop (DSL) modem, or any device providing external network connectivity to the physical location associated with the distributed Wi-Fi system  10 . 
     While providing excellent coverage, a large number of access points  14  (nodes) presents a coordination problem. Getting all the access points  14  configured correctly and communicating efficiently requires centralized control. This control is preferably done on servers  20  that can be reached across the Internet (the cloud  12 ) and accessed remotely such as through an application (“app”) running on a user device  22 . The running of the distributed Wi-Fi system  10 , therefore, becomes what is commonly known as a “cloud service.” The servers  20  are configured to receive measurement data, to analyze the measurement data, and to configure the access points  14  in the distributed Wi-Fi system  10  based thereon, through the cloud  12 . The servers  20  can also be configured to determine which access point  14  each of the Wi-Fi client devices  16  connect (associate) with. That is, in an exemplary aspect, the distributed Wi-Fi system  10  includes cloud-based control (with a cloud-based controller or cloud service) to optimize, configure, and monitor the operation of the access points  14  and the Wi-Fi client devices  16 . This cloud-based control is contrasted with a conventional operation which relies on a local configuration such as by logging in locally to an access point. In the distributed Wi-Fi system  10 , the control and optimization does not require local login to the access point  14 , but rather the user device  22  (or a local Wi-Fi client device  16 ) communicating with the servers  20  in the cloud  12 , such as via a disparate network (a different network than the distributed Wi-Fi system  10 ) (e.g., LTE, another Wi-Fi network, etc.). 
     The access points  14  can include both wireless links and wired links for connectivity. In the example of  FIG. 1 , the access point  14 A has an exemplary gigabit Ethernet (GbE) wired connection to the modem/router  18 . Optionally, the access point  14 B also has a wired connection to the modem/router  18 , such as for redundancy or load balancing. Also, the access points  14 A,  14 B can have a wireless connection to the modem/router  18 . The access points  14  can have wireless links for client connectivity (referred to as a client link) and for backhaul (referred to as a backhaul link). The distributed Wi-Fi system  10  differs from a conventional Wi-Fi mesh network in that the client links and the backhaul links do not necessarily share the same Wi-Fi channel, thereby reducing interference. That is, the access points  14  can support at least two Wi-Fi wireless channels—which can be used flexibly to serve either the client link or the backhaul link and may have at least one wired port for connectivity to the modem/router  18 , or for connection to other devices. In the distributed Wi-Fi system  10 , only a small subset of the access points  14  require direct connectivity to the modem/router  18  with the non-connected access points  14  communicating with the modem/router  18  through the backhaul links back to the connected access points  14 . 
     Distributed Wi-Fi System Compared to Conventional Wi-Fi Systems 
     Referring to  FIG. 2 , in an exemplary embodiment, a network diagram illustrates differences in operation of the distributed Wi-Fi system  10  relative to a conventional single access point system  30 , a Wi-Fi mesh network  32 , and a Wi-Fi repeater network  33 . The single access point system  30  relies on a single, high-powered access point  34  which may be centrally located to serve all Wi-Fi client devices  16  in a location (e.g., house). Again, as described herein, in a typical residence, the single access point system  30  can have several walls, floors, etc. between the access point  34  and the Wi-Fi client devices  16 . Plus, the single access point system  30  operates on a single channel, leading to potential interference from neighboring systems. The Wi-Fi mesh network  32  solves some of the issues with the single access point system  30  by having multiple mesh nodes  36  which distribute the Wi-Fi coverage. Specifically, the Wi-Fi mesh network  32  operates based on the mesh nodes  36  being fully interconnected with one another, sharing a channel such as a channel X between each of the mesh nodes  36  and the Wi-Fi client device  16 . That is, the Wi-Fi mesh network  32  is a fully interconnected grid, sharing the same channel, and allowing multiple different paths between the mesh nodes  36  and the Wi-Fi client device  16 . However, since the Wi-Fi mesh network  32  uses the same backhaul channel, every hop between source points divides the network capacity by the number of hops taken to deliver the data. For example, if it takes three hops to stream a video to a Wi-Fi client device  16 , the Wi-Fi mesh network  32  is left with only ⅓ the capacity. The Wi-Fi repeater network  33  includes the access point  34  coupled wirelessly to a Wi-Fi repeater  38 . The Wi-Fi repeater network  33  is a star topology where there is at most one Wi-Fi repeater  38  between the access point  14  and the Wi-Fi client device  16 . From a channel perspective, the access point  34  can communicate to the Wi-Fi repeater  38  on a first channel, Ch. X, and the Wi-Fi repeater  38  can communicate to the Wi-Fi client device  16  on a second channel, Ch. Y. 
     The distributed Wi-Fi system  10  solves the problem with the Wi-Fi mesh network  32  of requiring the same channel for all connections by using a different channel or band for the various hops (note, some hops may use the same channel/band, but it is not required), to prevent slowing down the Wi-Fi speed. For example, the distributed Wi-Fi system  10  can use different channels/bands between access points  14  and between the Wi-Fi client device  16  (e.g., Chs. X, Y, Z, A), and, also, the distributed Wi-Fi system  10  does not necessarily use every access point  14 , based on configuration and optimization by the cloud  12 . The distributed Wi-Fi system  10  solves the problems of the single access point system  30  by providing multiple access points  14 . The distributed Wi-Fi system  10  is not constrained to a star topology as in the Wi-Fi repeater network  33  which at most allows two wireless hops between the Wi-Fi client device  16  and a gateway. Also, the distributed Wi-Fi system  10  forms a tree topology where there is one path between the Wi-Fi client device  16  and the gateway, but which allows for multiple wireless hops unlike the Wi-Fi repeater network  33 . 
     Wi-Fi is a shared, simplex protocol meaning only one conversation between two devices can occur in the network at any given time, and if one device is talking the others need to be listening. By using different Wi-Fi channels, multiple simultaneous conversations can happen simultaneously in the distributed Wi-Fi system  10 . By selecting different Wi-Fi channels between the access points  14 , interference and congestion are avoided. The server  20  through the cloud  12  automatically configures the access points  14  in an optimized channel hop solution. The distributed Wi-Fi system  10  can choose routes and channels to support the ever-changing needs of consumers and their Wi-Fi client devices  16 . The distributed Wi-Fi system  10  approach is to ensure Wi-Fi signals do not need to travel far—either for backhaul or client connectivity. Accordingly, the Wi-Fi signals remain strong and avoid interference by communicating on the same channel as in the Wi-Fi mesh network  32  or with Wi-Fi repeaters. In an exemplary aspect, the servers  20  in the cloud  12  are configured to optimize channel selection for the best user experience. 
     Configuration and Optimization Process for the Distributed Wi-Fi System 
     Referring to  FIG. 3 , in an exemplary embodiment, a flowchart illustrates a configuration and optimization process  50  for the distributed Wi-Fi system  10 . Specifically, the configuration and optimization process  50  includes various steps  51 - 58  to enable efficient operation of the distributed Wi-Fi system  10 . These steps  51 - 58  may be performed in a different order and may be repeated on an ongoing basis, allowing the distributed Wi-Fi system  10  to adapt to changing conditions. First, each of the access points  14  are plugged in and onboarded (step  51 ). In the distributed Wi-Fi system  10 , only a subset of the access points  14  are wired to the modem/router  18  (or optionally with a wireless connection to the modem/router  18 ), and those access points  14  without wired connectivity have to be onboarded to connect to the cloud  12 . The onboarding step  51  ensures a newly installed access point  14  connects to the distributed Wi-Fi system  10  so that the access point can receive commands and provide data to the servers  20 . The onboarding step  51  can include configuring the access point with the correct Service Set Identifier (SSID) (network ID) and associated security keys. In an exemplary embodiment, the onboarding step  51  is performed with Bluetooth or equivalent connectivity between the access point  14  and a user device  22  allowing a user to provide the SSID, security keys, etc. Once onboarded, the access point  14  can initiate communication with the distributed Wi-Fi system  10  to the servers  20  for configuration. 
     Second, the access points  14  obtain measurements and gather information to enable optimization of the networking settings (step  52 ). The information gathered can include signal strengths and supportable data rates between all nodes as well as between all nodes and all Wi-Fi client devices  16 . Specifically, the measurement step  52  is performed by each access point  14  to gather data. Various additional measurements can be performed such as measuring an amount of interference, loads (throughputs) required by different applications operating over the distributed Wi-Fi system  10 , etc. Third, the measurements and gathered information from the measurement step  52  is provided to the servers  20  in the cloud  12  (step  53 ). The steps  51 - 53  are performed on location at the distributed Wi-Fi system  10 . 
     These measurements in steps  52 ,  53  could include traffic load required by each client, the data rate that can be maintained between each of the nodes and from each of the nodes to each of the clients, the packet error rates in the links between the nodes and between the nodes and the clients, and the like. In addition, the nodes make measurements of the interference levels affecting the network. This includes interference from other cloud controlled distributed Wi-Fi systems (“in-network interferers”), and interference coming from devices that are not part of the controllable network (“out-of-network interferers). It is important to make a distinction between these types of interferers. In-network interferers can be controlled by the cloud system, and therefore can be included in a large optimization over all in-network systems. Out of network interferers cannot be controlled from the cloud, and therefore their interference cannot be moved to another channel or otherwise changed. The system must adapt to them, rather than changing them. These out-of-network interferers include Wi-Fi networks that are not cloud controlled and non-Wi-Fi devices that transmit in the frequencies used by Wi-Fi such as Bluetooth devices, baby monitors, cordless phones, etc. 
     Another important input is the delay of packets traversing the network. These delays could be derived from direct measurements, time stamping packets as they arrive into the Wi-Fi network at the gateway, and measuring the elapsed time as they depart at the final node. However, such measurement would require some degree of time synchronization between the nodes. Another approach would be to measure the statistics of delay going through each node individually. The average total delay through the network and the distribution of the delays given some assumptions could then be calculated based on the delay statistics through each node individually. Delay can then become a parameter to be minimized in the optimization. It is also useful for the optimization to know the time that each node spends transmitting and receiving. Together with the amount of information transmitted or received, this can be used to determine the average data rate the various links are sustaining. 
     Fourth, the servers  20  in the cloud  12  use the measurements to perform an optimization algorithm for the distributed Wi-Fi system  10  (step  54 ). The optimization algorithm outputs the best parameters for the network operation. These include the selection of the channels on which each node should operate for the client links and the backhaul links, the bandwidth on each of these channels that the node should use, the topology of connection between the nodes and the routes for packets through that topology from any source to any destination in the network, the appropriate node for each client to attach to, the band on which each client should attach, etc. 
     Specifically, the optimization uses the measurements from the nodes as inputs to an objective function which is maximized. A capacity for each link can be derived by examining the amount of data that has been moved (the load), and the amount of time that the medium is busy due to interference. This can also be derived by taking a ratio of the data moved across the link to the fraction of the time that the transmitting queue was busy. This capacity represents the hypothetical throughput that could be achieved if the link was loaded to saturation and was moving as much data as it possibly could. 
     Fifth, an output of the optimization is used to configure the distributed Wi-Fi system  10  (step  55 ). The nodes and client devices need to be configured from the cloud based on the output of the optimization. Specific techniques are used to make the configuration fast, and to minimize the disruption to a network that is already operating. The outputs of the optimization are the operational parameters for the distributed Wi-Fi system  10 . This includes the frequency channels on which each of the nodes is operating, and the bandwidth of the channel to be used. The 802.11ac standard allows for channel bandwidths of 20, 40, 80, and 160 MHz. The selection of the bandwidth to use is a tradeoff between supporting higher data rates (wide channel bandwidth), and having a larger number of different non-interfering channels to use in the distributed Wi-Fi system  10 . The optimization tries to use the lowest possible channel bandwidth for each link that will support the load required by the various user&#39;s applications. By using the narrowest sufficient throughput channels, the maximum number of non-interfering channels are left over for other links within the distributed Wi-Fi system  10 . 
     The optimization generates the outputs from the inputs as described above by maximizing an objective function. There are many different possible objective functions. One objective could be to maximize the total throughput provided to all the clients. This goal has the disadvantage that the maximum total throughput might be achieved by starving some clients completely, in order to improve the performance of clients that are already doing well. Another objective could be to enhance as much as possible the performance of the client in the network in the worst situation (maximize the minimum throughput to a client). This goal helps promote fairness but might trade a very large amount of total capacity for an incremental improvement at the worst client. A preferred approach considers the load desired by each client in a network, and maximizing the excess capacity for that load ratio. The optimization can improve the capacity, as well as shift the capacity between the two APs. The desired optimization is the one that maximizes the excess capacity in the direction of the ratio of the loads. This represents giving the distributed Wi-Fi system  10  the most margin to carry the desired loads, making their performance more robust, lower latency, and lower jitter. This strict optimization can be further enhanced by providing a softer optimization function that weighs assigning capacities with a varying scale. A high utility value would be placed on getting the throughput to be higher than the required load. Providing throughput to a client or node above the required load would still be considered a benefit, but would be weighted much less heavily than getting all the clients/nodes to the load they are requiring. Such a soft weighted optimization function allows for a more beneficial tradeoff of excess performance between devices. 
     Another set of optimization outputs defines the topology of the distributed Wi-Fi system  10 , meaning which nodes connect to which other nodes. The actual route through the distributed Wi-Fi system  10  between two clients or the client and the Internet gateway (modem/router  18 ) is also an output of the optimization. Again, the optimization attempts to choose the best tradeoff in the route. Generally, traversing more hops makes each hop shorter range, higher data rate, and more robust. However, more hops add more latency, more jitter, and depending on the channel frequency assignments, takes more capacity away from the rest of the system. 
     Sixth, learning algorithms can be applied to cloud-stored data for determining trends and patterns (step  56 ). Note, the servers  20  can store the measurements from the nodes, results from the optimizations, and subsequent measurements after associated optimizations. With this data, trends and patterns can be determined and analyzed for various purposes. Because reconfiguring a network takes time and is always at least partially disruptive to active communication, it is beneficial to configure the network for peak load, before that peak load arrives. By learning from the historical data that has already been captured, it is possible to predict the usage and interference that will occur at a future time. Other uses of learning on the captured data include identifying bugs and discovering bugs in the behavior of client devices. Once bugs in the behavior of client devices are discovered, it may be possible to work around those bugs using tools and commands from the infrastructure side of the network. 
     Seventh, the performance of the network can be assessed and reported to the user or to a service provider whose services are running over Wi-Fi (step  57 ). Eighth, an application (such as a mobile app operating on the user device  22 ) can provide a user visibility into the network operation (step  58 ). This would include the display of network activity and performance metrics. The mobile app can be used to convey information to the user, make measurements, and allow the user to control certain aspects of Wi-Fi the network operation. The mobile app also communicates to the internet over the cellular system to assist in onboarding the nodes when they are first being set up. The mobile phone app, utilizing the cellular system, also provides a way for the Wi-Fi network to communicate with the internet and cloud when the user&#39;s normal internet connection is not functioning. This cellular based connection can be used to signal status, notify the service provider and other users, and can even be used to carry data from the home to the internet during the time that the user&#39;s normal internet connection is malfunctioning. 
     The configuration and optimization process  50  is described herein with reference to the distributed Wi-Fi system  10  as an exemplary embodiment. Those skilled in the art will recognize the configuration and optimization process  50  can operate with any type of multiple node Wi-Fi system (i.e., a distributed Wi-Fi network or Wi-Fi system) including the Wi-Fi mesh network  32 , the Wi-Fi repeater network  33 , etc. For example, cloud-based control can also be implemented in the Wi-Fi mesh network  32 , the Wi-Fi repeater network  33 , etc. and the various systems and methods described herein can operate as well here for cloud-based control and optimization. Also, the terminology “distributed Wi-Fi network” or “Wi-Fi system” can also apply to the Wi-Fi mesh network  32 , the Wi-Fi repeater network  33 , etc. whereas the distributed Wi-Fi system  10  is a specific embodiment of a distributed Wi-Fi network. That is the distributed Wi-Fi system  10  is similar to the Wi-Fi mesh network  32 , the Wi-Fi repeater network  33 , etc. in that it does support multiple nodes, but it does have the aforementioned distinctions to overcome limitations associated with each. 
     Optimization 
     Referring to  FIG. 3 , in an exemplary embodiment, a block diagram illustrates inputs  60  and outputs  62  to an optimization  70 . The inputs  60  can include, for example, traffic load required by each client, signal strengths between nodes and between access points  14  (nodes) and Wi-fi client devices  16 , data rate for each possible link in the network, packet error rates on each link, strength and load on in-network interferers, and strength and load on out-of-network interferers. Again, these inputs are based on measurements and data gathered by the plurality of access points  14  and communicated to the servers  20  in the cloud  12 . The servers  20  are configured to implement the optimization  70 . The outputs of the optimization  70  include, for example, channel and bandwidth (BW) selection, routes and topology, Request to Send/Clear to Send (RTS/CTS) settings, Transmitter (TX) power, clear channel assessment thresholds, client association steering, and band steering. 
     Access Point 
     Referring to  FIG. 5 , in an exemplary embodiment, a block diagram illustrates functional components of the access point  14  in the distributed Wi-Fi system  10 . The access point  14  includes a physical form factor  100  which contains a processor  102 , a plurality of radios  104 , a local interface  106 , a data store  108 , a network interface  110 , and power  112 . It should be appreciated by those of ordinary skill in the art that  FIG. 5  depicts the access point  14  in an oversimplified manner, and a practical embodiment may include additional components and suitably configured processing logic to support features described herein or known or conventional operating features that are not described in detail herein. 
     In an exemplary embodiment, the form factor  100  is a compact physical implementation where the access point  14  directly plugs into an electrical socket and is physically supported by the electrical plug connection to the electrical socket. This compact physical implementation is ideal for a large number of access points  14  distributed throughout a residence. The processor  102  is a hardware device for executing software instructions. The processor  102  can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the mobile device  300 , a semiconductor-based microprocessor (in the form of a microchip or chip set), or generally any device for executing software instructions. When the access point  14  is in operation, the processor  102  is configured to execute software stored within memory or the data store  108 , to communicate data to and from the memory or the data store  108 , and to generally control operations of the access point  14  pursuant to the software instructions. In an exemplary embodiment, the processor  102  may include a mobile-optimized processor such as optimized for power consumption and mobile applications. 
     The radios  104  enable wireless communication in the distributed Wi-Fi system  10 . The radios  104  can operate according to the IEEE 802.11 standard. The radios  104  include address, control, and/or data connections to enable appropriate communications on the distributed Wi-Fi system  10 . As described herein, the access point  14  includes a plurality of radios to support different links, i.e., backhaul links and client links. The optimization  70  determines the configuration of the radios  104  such as bandwidth, channels, topology, etc. In an exemplary embodiment, the access points  14  support dual band operation simultaneously operating 2.4 GHz and 5 GHz 2×2 MIMO 802.11b/g/n/ac radios having operating bandwidths of 20/40 MHz for 2.4 GHz and 20/40/80 MHz for 5 GHz. For example, the access points  14  can support IEEE 802.11AC1200 gigabit Wi-Fi (300+867 Mbps). 
     The local interface  106  is configured for local communication to the access point  14  and can be either a wired connection or wireless connection such as Bluetooth or the like. Since the access points  14  are configured via the cloud  12 , an onboarding process is required to first establish connectivity for a newly turned on access point  14 . In an exemplary embodiment, the access points  14  can also include the local interface  106  allowing connectivity to the user device  22  (or a Wi-Fi client device  16 ) for onboarding to the distributed Wi-Fi system  10  such as through an app on the user device  22 . The data store  108  is used to store data. The data store  108  may include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, and the like)), nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, and the like), and combinations thereof. Moreover, the data store  108  may incorporate electronic, magnetic, optical, and/or other types of storage media. 
     The network interface  110  provides wired connectivity to the access point  14 . The network interface  104  may be used to enable the access point  14  communicate to the modem/router  18 . Also, the network interface  104  can be used to provide local connectivity to a Wi-Fi client device  16  or user device  22 . For example, wiring in a device to an access point  14  can provide network access to a device which does not support Wi-Fi. In an exemplary embodiment, all of the access points  14  in the distributed Wi-Fi system  10  include the network interface  110 . In another exemplary embodiment, select access points  14  which connect to the modem/router  18  or require local wired connections have the network interface  110 . The network interface  110  may include, for example, an Ethernet card or adapter (e.g., 10BaseT, Fast Ethernet, Gigabit Ethernet, 10 GbE). The network interface  110  may include address, control, and/or data connections to enable appropriate communications on the network. 
     The processor  102  and the data store  108  can include software and/or firmware which essentially controls the operation of the access point  14 , data gathering and measurement control, data management, memory management, and communication and control interfaces with the server  20  via the cloud. The processor  102  and the data store  108  may be configured to implement the various processes, algorithms, methods, techniques, etc. described herein. 
     Cloud Server and User Device 
     Referring to  FIG. 6 , in an exemplary embodiment, a block diagram illustrates functional components of the server  20 , the Wi-Fi client device  16 , or the user device  22  which may be used with the distributed Wi-Fi system  10 .  FIG. 6  illustrates functional components which can form any of the Wi-Fi client device  16 , the server  20 , the user device  22 , or any general processing device. The server  20  may be a digital computer that, in terms of hardware architecture, generally includes a processor  202 , input/output (I/O) interfaces  204 , a network interface  206 , a data store  208 , and memory  210 . It should be appreciated by those of ordinary skill in the art that  FIG. 6  depicts the server  20  in an oversimplified manner, and a practical embodiment may include additional components and suitably configured processing logic to support features described herein or known or conventional operating features that are not described in detail herein. 
     The components ( 202 ,  204 ,  206 ,  208 , and  210 ) are communicatively coupled via a local interface  212 . The local interface  212  may be, for example, but not limited to, one or more buses or other wired or wireless connections, as is known in the art. The local interface  212  may have additional elements, which are omitted for simplicity, such as controllers, buffers (caches), drivers, repeaters, and receivers, among many others, to enable communications. Further, the local interface  212  may include address, control, and/or data connections to enable appropriate communications among the aforementioned components. 
     The processor  202  is a hardware device for executing software instructions. The processor  202  may be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the server  20 , a semiconductor-based microprocessor (in the form of a microchip or chip set), or generally any device for executing software instructions. When the server  20  is in operation, the processor  202  is configured to execute software stored within the memory  210 , to communicate data to and from the memory  210 , and to generally control operations of the server  20  pursuant to the software instructions. The I/O interfaces  204  may be used to receive user input from and/or for providing system output to one or more devices or components. User input may be provided via, for example, a keyboard, touchpad, and/or a mouse. System output may be provided via a display device and a printer (not shown). I/O interfaces  204  may include, for example, a serial port, a parallel port, a small computer system interface (SCSI), a serial ATA (SATA), a fibre channel, Infiniband, iSCSI, a PCI Express interface (PCI-x), an infrared (IR) interface, a radio frequency (RF) interface, and/or a universal serial bus (USB) interface. 
     The network interface  206  may be used to enable the server  20  to communicate on a network, such as the cloud  12 . The network interface  206  may include, for example, an Ethernet card or adapter (e.g., 10BaseT, Fast Ethernet, Gigabit Ethernet, 10 GbE) or a wireless local area network (WLAN) card or adapter (e.g., 802.11a/b/g/n/ac). The network interface  206  may include address, control, and/or data connections to enable appropriate communications on the network. A data store  208  may be used to store data. The data store  208  may include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, and the like)), nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, and the like), and combinations thereof. Moreover, the data store  208  may incorporate electronic, magnetic, optical, and/or other types of storage media. In one example, the data store  208  may be located internal to the server  20  such as, for example, an internal hard drive connected to the local interface  212  in the server  20 . Additionally, in another embodiment, the data store  208  may be located external to the server  20  such as, for example, an external hard drive connected to the I/O interfaces  204  (e.g., SCSI or USB connection). In a further embodiment, the data store  208  may be connected to the server  20  through a network, such as, for example, a network attached file server. 
     The memory  210  may include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)), nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, etc.), and combinations thereof. Moreover, the memory  210  may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that the memory  210  may have a distributed architecture, where various components are situated remotely from one another but can be accessed by the processor  202 . The software in memory  210  may include one or more software programs, each of which includes an ordered listing of executable instructions for implementing logical functions. The software in the memory  210  includes a suitable operating system (O/S)  214  and one or more programs  216 . The operating system  214  essentially controls the execution of other computer programs, such as the one or more programs  216 , and provides scheduling, input-output control, file and data management, memory management, and communication control and related services. The one or more programs  216  may be configured to implement the various processes, algorithms, methods, techniques, etc. described herein, such as related to the optimization  70 . 
     Optimization of Distributed Wi-Fi Networks 
     Again, the optimization  70  receives inputs from the distributed Wi-Fi network, performs optimization, and provides outputs including operational parameters for the distributed Wi-Fi network. The inputs can include a plurality of traffic loads required by each Wi-Fi client device, the data rate for each possible link, packet error rates on each link, strength and load on in network interferers, and strength and load on out of network interferers. The outputs can include a plurality of channel and bandwidth (BW) selection, routes, and topology, Request to Send/Clear to Send (RTS/CTS) settings, Transmitter (TX) power, clear channel assessment, client association steering, band steering, Arbitration inter-frame spacing (AIFS), and Wi-Fi contention windows. The optimization can be based on the inputs to maximize an objective function which maximizes excess capacity for a load ratio considering a load desired by each Wi-Fi client device, and the outputs can include operational parameters for the Wi-Fi network based on the optimization. 
     Again, referring back to  FIG. 4 , the optimization  70  takes as inputs  60  measurements that are made by each of the access points  14  deployed throughout a location. These measurements could include, but are not limited to, the traffic load required by each client  16 , the data rate that can be maintained between each of the access points  14  and from each of the access points  14  to each of the clients  16 , the packet error rates in the links between the access points  14  and between the access points  14  and the clients  16 , etc. In addition, the access points  14  make measurements of the interference levels affecting the distributed Wi-Fi system  10 . This includes interference from other cloud controlled distributed Wi-Fi systems  10  (“in-network interferers”), and interference coming from devices that are not part of the controllable network (“out-of-network interferers”). It is important to make a distinction between these types of interferers. In-network interferers can be controlled by the cloud service, and therefore can be included in a large optimization over all in-network systems. Out of network interferers cannot be controlled by the cloud service, and therefore their interference cannot be moved to another channel or otherwise changed. The distributed Wi-Fi system  10  must adapt around them, rather than changing them. These out-of-network interferers include Wi-Fi networks that are not cloud controlled and non-Wi-Fi devices that transmit in the frequencies used by Wi-Fi such as Bluetooth devices, baby monitors, cordless phones, etc. A capacity for each link can be derived by examining the amount of data that has been moved (the load), and the amount of time that the transmitter was attempting to transmit. This can also be derived by taking a ratio of the data moved across the link to the fraction of the time that the transmitting queue was busy. This capacity represents the hypothetical throughput that could be achieved if the link was loaded to saturation and was moving as much data as it possibly could. 
     Another important input is the delay of packets traversing the distributed Wi-Fi system  10 . These delays could be derived from direct measurements, time stamping packets as they arrive into the distributed Wi-Fi system  10  at the gateway access point  14  (connected to the modem/router  18 ), and measuring the elapsed time as they depart at the access point  14 . However, such measurement would require some degree of time synchronization between the access points  14 . Another approach would be to measure the statistics of delay going through each access point  14  individually. The average total delay through the distributed Wi-Fi system  10 , and the distribution of the delays given some assumptions could then be calculated based on the delay statistics through each access point  14  individually. Delay can then become a parameter to be minimized in the optimization  70 . It is also useful for the optimization  70  to know the time that each access point  14  spends transmitting and receiving. Together with the amount of information transmitted or received, this can be used to determine the average data rate the various links are sustaining. 
     The outputs  62  of the optimization  70  are the operational parameters for the distributed Wi-Fi system  10 . This includes the frequency channels on which each of the access points  14  are operating, and the bandwidth of the channel to be used. The 802.11ac standard allows for channel bandwidths of 20, 40, 80, and 160 MHz. The selection of the bandwidth to use is a tradeoff between supporting higher data rates (wide channel bandwidth), and having a larger number of different non-interfering channels to use in the distributed Wi-Fi system  10 . The optimization  70  tries to use the lowest possible channel bandwidth for each link that will support the load required by the various user&#39;s applications. By using the narrowest sufficient throughput channels, the maximum number of non-interfering channels are left over for other links within the distributed Wi-Fi system  10 . 
     Another set of outputs  62  of the optimization  70  defines the topology of the distributed Wi-Fi system  10 , meaning which access points  14  connect to which other access points  14 . The actual route through the distributed Wi-Fi system  10  between two clients or the client and the internet gateway (the modem/router  18 ) is also an output of the optimization  70 . Again, the optimization  70  attempts to choose the best tradeoff in the route. Generally, traversing more hops makes each hop shorter range, higher data rate, and more robust. However, more hops add more latency, more jitter, and depending on the channel frequency assignments, takes more capacity away from the rest of the distributed Wi-Fi system  10 . The method of optimizing described later takes all this into account and comes up with the truly optimal arrangement. 
     The optimization  70  can also decide which links within the distributed Wi-Fi system  10  should use RTS/CTS protocols to prevent problems with hidden nodes and can adjust each access point&#39;s  14  transmit power level. Higher transmit power increases the data rate and throughput for links from that access point  14 , but creates more interference to other access points  14  in the distributed Wi-Fi system  10  and to neighboring systems. Closely associated with changing the transmit power, the optimization  70  can also set the clear channel assessment threshold at which it either defers to traffic on the airwaves or goes ahead and transmits on top of other transmissions. This is effectively a way to ignore transmissions from a neighboring network and not delay transmissions when conditions allow us to transmit on top of those other signals. 
     A large benefit in system performance can be obtained if the optimization  70  is allowed to choose which access points  14  each Wi-Fi client device  16  connects to in the home. This ability helps with several issues. First, Wi-Fi client devices  16  often do a poor job of roaming from an access point  14  they have been connected to, to an access point  14  that they may have moved closer to. These “sticky” clients will experience unnecessarily low throughput as they attempt to communicate with an access point  14  that is too far away. Another advantage to controlling client associations is to avoid congestion at particular access points  14  in the distributed Wi-Fi system  10 . For example, all the Wi-Fi client devices  16  in the home might be located closest to one particular access point  14 . Their throughput would be limited by the sharing of the total capacity of that one access point  14 . In this case, it would work better to force some of the Wi-Fi client devices  16  to associate with different access points  14 , even if those access points  14  are somewhat farther away. The capacity at each access point  14  is now shared among fewer Wi-Fi client devices  16 , allowing higher throughputs to each. Yet another reason to move Wi-Fi client devices  16  is to relieve congestion in the backhaul links. It is possible that even if the Wi-Fi client devices  16  spread themselves nicely between access points  14 , all of those access points  14  may, in turn, connect to a single access point  14  in the backhaul. In this case, the congestion will be in the backhaul. Again, moving the Wi-Fi client devices  16  to other access points  14 , that have a different path through the backhaul can relieve the congestion. 
     Closely related to steering where Wi-Fi client devices  16  associate, is steering which frequency band they connect on. In many systems and the preferred implementation, the access points  14  can operate simultaneously in more than one frequency band. For example, some access points  14  can operate in the 2.4 GHz and 5 GHz bands simultaneously. 
     The optimization  70  generates the outputs  62  from the inputs  60  as described herein by maximizing an objective function. There are many different possible objective functions. One objective could be to maximize the total throughput provided to all the Wi-Fi client devices  16 . This goal has the disadvantage that the maximum total throughput might be achieved by starving some Wi-Fi client devices  16  completely, in order to improve the performance to Wi-Fi client devices  16  that are already doing well. Another objective could be to enhance as much as possible the performance for the Wi-Fi client devices  16  in the network in the worst situation (maximize the minimum throughput to a Wi-Fi client device  16 ). This goal helps promote fairness, but might trade a very large amount of total capacity for an incremental improvement at the worst Wi-Fi client device  16 . 
     Data Gathering 
     Again, in various exemplary embodiments, the systems and methods provide techniques for gathering data and measurements in the distributed Wi-Fi system  10  in the configuration and optimization process  50  for use in the optimization  70 . As described herein, the measurements and gathered data from the access points  14  can be referred to as measurements or data collectively. This data can include, without limitation, traffic from/to different clients, signal strengths and data rates used from/to different clients, Wi-Fi channel conditions, performance experienced by different traffic flows, congestion levels on the access points  14 , etc. This data is reported to the cloud  12  to the servers  20  both periodically and in an event-driven fashion. The event-driven reporting can be based on crossing an absolute or relative threshold. Further, the reporting frequency can be dynamically adjusted based on thresholds or levels of the parameters being measured. The access points  14  can report the data as raw data, or when the volume of data is large, it can be compressed and reported through statistical measures such as the mean, median, distribution, etc. An objective of the data gathering is to perform the gathering and reporting while minimizing the impact on the performance of active traffic flows that are being carried by the access points  14 . 
     Referring to  FIG. 7 , in an exemplary embodiment, a flowchart illustrates a data gathering process  300  by an access point  14  in the distributed Wi-Fi system  10 . The data gathering process  300  includes obtaining on-channel scanning data while operating on a home channel in the distributed Wi-Fi system  10  (step  301 ); periodically or based on command from a cloud-based system switching off the home channel and obtaining off-channel scanning data for one or more off-channels (step  302 ); and providing measurement data based on the on-channel scanning data and the off-channel scanning to the cloud-based system for use in the optimization of the distributed Wi-Fi system  10  (step  303 ). As described herein, the home channel is a channel the associated radio  104  is presently operating on based on a current configuration (such as based on a previous optimization  70  or an initial configuration). The home channel can also be for client links or backhaul links. That is, the access point  14  can be operating on a home channel for communication with the clients  16  on a client link as well as on another home channel for communication with other access points  14  in the distributed Wi-Fi system  10 , i.e., backhaul links. The cloud-based system can be the servers  20  in the cloud  12 . 
     The data gathering process  300  can further include processing the on-channel scanning data and the off-channel scanning data to determine the measurement data (step  304 ). This processing is performed locally to the access point  14  to determine measurements which are then transmitted to the server  20 . In another exemplary embodiment, the access point  14  can merely transmit the on-channel scanning data and the off-channel scanning data as raw data without processing. However, the processing reduces bandwidth requirements over the distributed Wi-Fi system  10  for the data gathering process  300 . Also, the processing can simply include compressing the on-channel scanning data and the off-channel scanning data prior to transmission to the server  20 . The processing can include determining a division of time that the home channel is divided based on a combination of direct measurements and computations based on the direct measurements. The processing can include determining delays of packets over the distributed Wi-Fi system through one of direct measurements and statistics of delay at the access point. Finally, the data gathering process  300  can further include switching back to the home channel subsequent to the obtaining off-channel scanning data (step  305 ). 
     For illustration purposes, the data gathering process  300  is described with reference to the distributed Wi-Fi system  10 . Those skilled in the art will recognize the data gathering process  300  can also operate with another type of Wi-Fi systems such as the Wi-Fi mesh network  32 , the Wi-Fi repeater network  33 , etc. That is, the data gathering process  300  generally contemplates operation with any multiple access point  14 ,  34  system and can be implemented by the mesh nodes  36 , the access point  34 , the repeater  38 , etc. Again, the data gathering process  300  is advantageous for cloud-controlled Wi-Fi systems to able intelligent, remote control and optimization. 
     In an exemplary embodiment, the scanning for either on-channel scanning data or off-channel scanning data can be performed and reported at different channel bandwidths (e.g., 20, 40, 80. 160 MHz). For example, the on-channel scanning can be performed at a different channel bandwidth than what is currently configured on the home channel. Further, the off-channel scanning can be set at any of the different channel bandwidths. For example, the periodic scanning can rotate between the different channel bandwidths to provide the cloud-based system more representative details on how the Wi-Fi system is operating. 
     The measurement data can include a plurality of Received Signal Strength Indicators (RSSI), achievable data rates, capacity, load, error rates, delays, and fractions of time spent transmitting and receiving. The switching off can be determined based on a load of the access point  14 . For example, the process  300  can include monitoring a status of queues in the access point  14  to determine when the load is low for determining the switching off. The process  300  can further include notifying other access points in the distributed Wi-Fi system  10  of the switching off via one of a broadcast frame and an information element in the beacon, with an offset from a Timing Synchronization Function (TSF) timer. Optionally, the access point  14  is lightly loaded compared to at least one additional access point  14  in the distributed Wi-Fi system  10 , and wherein the access point  14  is configured to perform the obtaining off-channel scanning data for the at least one additional access point  14 . The access point  14  for the off-channel scanning data can send probe requests for a particular Service Set Identifier (SSID) to measure signal strengths to a particular neighbor to reduce the number of probe responses received. The access point  14  for the off-channel scanning data can send frames that spoof another in-network Basic Service Set (BSS) to elicit responses from neighboring access points and clients. The process  300  can further include receiving configuration data from the cloud-based system based on the optimization, wherein the providing measurement data is performed over a statistics channel, and the receiving configuration data is performed over a configuration channel different from the statistics channel. 
     In another exemplary embodiment, an access point  14  in the distributed Wi-Fi system  10  includes a plurality of radios communicating on the distributed Wi-Fi system; and a processor communicatively coupled to the plurality of radios and configured to cause one or more radios of the plurality of radios to obtain on-channel scanning data while operating on a home channel in the distributed Wi-Fi system; periodically or based on command from a cloud-based system cause the one or more radios to switch off the home channel and obtain off-channel scanning data for one or more off-channels; and providing measurement data based on the on-channel scanning data and the off-channel scanning data to the cloud-based system for use in the optimization of the distributed Wi-Fi system  10 . 
     In a further exemplary embodiment, the distributed Wi-Fi system  10  includes a plurality of access points  14  communicatively coupled to one another and at least one access point communicatively coupled to a gateway providing external communication for the distributed Wi-Fi system  10  and communication to a cloud-based system; wherein each of the plurality of access points  14  are configured to obtain on-channel scanning data while operating on a home channel in the distributed Wi-Fi system; periodically or based on command from a cloud-based system switch off the home channel and obtain off-channel scanning data for one or more off-channels; and provide measurement data based on the on-channel scanning data and the off-channel scanning data to the cloud-based system for use in the optimization of the distributed Wi-Fi system  10 . 
     In yet another exemplary embodiment, a method of gathering data by the access point  14 ,  34  or mesh node  36  or repeater  38  in a Wi-Fi system includes periodically or based on command from a cloud-based system performing one or more of i) obtaining on-channel scanning data while operating on a home channel and ii) switching off the home channel and obtaining off-channel scanning data for one or more off-channels; and providing measurement data based on one or more of the on-channel scanning data and the off-channel scanning data to the cloud-based system for use in the optimization of the Wi-Fi system, wherein the measurement data includes one or more of raw data and processed data. 
     In yet another exemplary embodiment, an access point  14 ,  34 , mesh node  36  or repeater  38  configured to gather data for optimization includes a plurality of radios communicating on the Wi-Fi system; and a processor communicatively coupled to the plurality of radios and configured to: periodically or based on command from a cloud-based system cause the one or more radios to one or more of i) obtain on-channel scanning data while operating on a home channel and ii) switch off the home channel and obtain off-channel scanning data for one or more off-channels; and provide measurement data based on the on-channel scanning data and the off-channel scanning data to the cloud-based system for use in the optimization of the distributed Wi-Fi system, wherein the measurement data includes one or more of raw data and processed data. 
     In yet another exemplary embodiment, a Wi-Fi system configured to gather data for optimization includes a plurality of access points communicatively coupled to one another and at least one access point communicatively coupled to a gateway providing external communication for the Wi-Fi system and communication to a cloud-based system; wherein each of the plurality of access points are configured to: periodically or based on command from a cloud-based system perform one or more of i) obtain on-channel scanning data while operating on a home channel and ii) switch off the home channel and obtain off-channel scanning data for one or more off-channels; and provide measurement data based on the on-channel scanning data and the off-channel scanning data to the cloud-based system for use in the optimization of the Wi-Fi system, wherein the measurement data includes one or more of raw data and processed data. 
     The access points  14  can periodically or upon receiving a command from the cloud  12  perform off-channel scans with the radio(s)  104  by briefly switching and monitoring a channel other than its home channel and at different channel widths (e.g. 20, 40, 80, and 160 MHz). During the scanning period, the access point  14  can collect information on the busyness of the channel both due to Wi-Fi and non-Wi-Fi transmissions and identify the occupancy levels due to each of the neighboring Basic Service Sets (BSSs). The access point  14  can also measure the signal strengths from neighboring access points  14  and non-associated clients  16  by receiving management frames such as beacons as well as data frames. In order to increase the efficiency of data collection from in-network access points  14  (ones that are part of the distributed Wi-Fi system  10 ) and clients  16 , the access point  14  performing the scan can send frames that spoof another in-network BSS to elicit responses from neighboring access points  14  and clients  16 . Alternatively, the neighboring in-network access points  14  can be instructed to transmit to their associated clients  16  eliciting responses that can, in turn, be measured by the scanning access point  14 . The access points  14  can also measure the Modulation and Coding Scheme (MCSs) being used between neighboring access points  14  and their clients  16 . 
     To optimize the distributed Wi-Fi system  10 , it is beneficial to know the signal strengths from all clients  16  to all access points  14 , each of which is a potential place for the clients  16  to associate with. However, some access points  14  have trouble receiving and recording the signal strength of clients  16  that are not associated with them. One way to circumvent this problem is to put the access point  14  doing the scan (whether off-channel or on-channel), into a multiple BSSID mode, and add the neighboring access points  14  BSSIDs to the access point list. Next the access point  14  should be configured not to send acknowledgments. This pair of actions will allow the access point  14  to silently listen to all the client transmissions, even transmissions from clients  16  that are not associated with that access point  14 . In an exemplary embodiment, a transmission can be triggered from a Wi-Fi client device  16  from which measurement is desired by the measuring access point  14  transmitting a packet to it from the access point  14  that the Wi-Fi client device  16  is already connected to, i.e., coordination between access points  14  to trigger the Wi-Fi client device  16  to transmit which a different access point  14  is listening to that Wi-Fi client device  16 . 
     While performing off-channel scans, the access point  14  is unable to transmit and receive on its home channel which could potentially disrupt the performance of traffic flows. To mitigate disruption, the access point  14  could perform scans only when they are idle or lightly loaded. Again, this can be based on monitoring a queue associated with the access point  14 . Indeed, the multiple access points  14  in a home could be leveraged to infer the interference at heavily loaded nodes from proximate idle or lightly loaded access points  14  whose measurements are highly correlated. In that case, the heavily loaded access point  14  would never need to go off-channel to scan, as surrounding lightly loaded access points  14  would do the off-channel scanning for it. Further, access points  14  could decide to skip or postpone scans based on estimating the probability of packet loss using information on the free memory available to buffer data that arrives during the scanning period. The access points  14  can also notify other in-network access points  14  of their planned absence using a broadcast frame or an information element in the beacon, with an offset from a Timing Synchronization Function (TSF) timer. This ensures that other in-network access points  14  will not attempt to transmit to the access point  14  when it is not on its home channel. Associated client devices  16  could even be forced to connect to a different access point  14  in the vicinity for the duration of the off-channel scan and transitioned back to the original access point  14  after the scan is complete. In order to reduce the amount of time the access point  14  is away from its home channel, it could scan channels sequentially, returning to its home channel between scans. The access points  14  could also perform directed scans by sending probe requests for a particular SSID to measure signal strengths to a particular neighbor. This reduces the amount of time the access point needs to spend off channel, but triggering a response quickly from the neighbor the access point is trying to learn about. In addition, sending probe requests to a particular SSID reduces number of probe responses received, thus reducing the overhead of transmissions and therefore interference on the channel generated by gathering the data. Further, the access point  14 , prior to switching off-channel, can move any associated clients  16  to other access points  14 . Also, this could be done by the cloud-based system. With no associated clients  16 , the access point  14  can perform off-channel scanning without network disruption. 
     While an access point  14  is on the home channel transmitting and receiving to associated clients  16  (or on the backhaul link transmitting and receiving to other access points  14 ), it measures the traffic transmitted to and received from each client  16  as well as the MCS rates used, the number of Media Access Control (MAC) Protocol Data Unit (MPDUs) in each aggregate, the packet error rate, the number of missing acknowledgements, etc. While on the home channel, the access point  14  can also listen to transmissions on that same channel that are associated with a different access point  14  operating on that same channel. While on the home channel, operating normally and serving any associated Wi-Fi client devices  16 , the access point  16  can also be gathering measurements on all devices operating on that same channel that is within radio range. This includes Wi-Fi client devices  16  as well as other access points  14 . 
     Another important piece of data to gather is the delay of packets traversing the network. These delays could be derived from direct measurements, time stamping packets as they arrive into the distributed Wi-Fi system  10  at the gateway (modem/router  18 ), and measuring the elapsed time as they depart at the final access point  14 . However, such measurement requires some degree of time synchronization between the access points  14 . Another approach would be to measure the statistics of delay going through each access point  14  individually. The average total delay through the distributed Wi-Fi system  10 , and the distribution of the delays given some assumptions could then be calculated based on the delay statistics through each access point  14  individually. Delay can then become a parameter to be minimized in the optimization  70 . These delays should be obtained or derived from the pathway to each client  16  in the distributed Wi-Fi system  10 . 
     The access point  14  measures the occupancy of the transmit queue, measuring the queue length, i.e., the backlog in the transmit queues over time as well as the queue utilization, i.e., the fraction of the time that the queue is non-empty. These measures are well correlated with the performance experienced by the traffic flows carried by the access point  14 . The maximum throughput that can be achieved by the access point  14  if the traffic it carried were to be scaled up can be determined as the ratio of the access point&#39;s  14  throughput to the queue utilization. 
     Optimization Based on Estimation and Learning 
     Referring to  FIG. 8 , in an exemplary embodiment, a flowchart illustrates an estimation and learning process  400  by a cloud controller for a Wi-Fi network such as the distributed Wi-Fi system  10 . Again, as described herein, access points  14  (nodes) collect and report statistical data such as the mean, variance, and histogram across a measurement interval for various parameters in a Wi-Fi system (step  401 ). These parameters include, but are not limited to, throughput, application type, signal strength from/to all the nodes in the network to the client consuming the traffic, capabilities of the client such as the number of spatial streams, channel widths, MCSs, etc. 
     The cloud controller is configured to process the collected and reported statistical data (step  402 ). The data is collected as a time-series and collated across all nodes in a location to capture a joint view of the load on the network. This data is used to segment time into periods with similar load characteristics, e.g., based on the day of the week, time of day, etc. Additionally, the data is used to determine a correlation structure across time, i.e., autoregressive characteristics. 
     The processed statistical data is used by the cloud controller to determine forecasts, predictions, trends, and/or interference (step  403 ). The forecasts can be then built for future time periods ranging from several minutes to several hours or days into the future where a representative set of probable loads (load predictions) is extracted using historical data from similar periods as well as data from the past. The load predictions include the volume of traffic as well as the type of applications and the potential data rates achievable to the Wi-Fi client devices  16  from the different nodes. This data is also used to infer the span of the network, i.e., to characterize the range of locations (identified by a vector of signal strengths to the network nodes) from which Wi-Fi client devices  16  require service. Identifying the span and boundary of the Wi-Fi network allows the optimization  70  of the operational parameters such as the transmit power, set of supported data rates, etc. The data is also used to identify redundant nodes in the network, nodes in the network that are poorly positioned, as well as cases where additional nodes are required to serve the load adequately. 
     Interference from out of the network is measured or inferred and collected as a time-series from all the nodes, on all channels. Both aggregate interference levels as well as interference from particular interfering access points  14  is tracked. The time-series data is segmented in time to determine periods with similar characteristics. Trend, seasonality, and autoregressive characteristics are extracted and used to predict the distribution of interference levels over future time periods ranging from several minutes to several hours or days. The interference data reported across nodes at a location is used to determine the correlation in the interference detected by different nodes in the location. Based on a correlation matrix, interference forecasts at a node can be improved by predictors that weight and combine measurements across all nodes. 
     Depending on the matrix of signal strengths between nodes and their associated clients, transmit activity of a neighboring node and receive activity from neighboring clients can have varying impact on the performance at a node. Time-series data is collected both on the transmit and receive activity as well as performance (packet error rate, queue utilization, capacity, queue lengths, packet delay, channel business, etc.). At any given time, the performance of a node is affected by the combined activity across all neighboring nodes and Wi-Fi client devices  16 . However, over time, the naturally varying activity levels allow the inference of the functions that govern the relationship between the activity of each neighboring node and different performance characteristics of a node. For instance, correlating packet errors and lost acknowledgments with the activity of a neighboring node or its clients allow the detection of hidden nodes. Similarly, relationships affecting packet delay, jitter, capacity, channel busyness each can be determined, thus building a relationship graph where edges between nodes are parameterized by weights or functions that determine the impact of activity at a node on performance at another. 
     The time series data collected on the vector of signal strengths between a client and all the nodes in the network enables the extraction of node trajectories, i.e., predicting future locations (in the space of signal strengths) of a node based on the trajectory in the recent past. This data is used to predict likely candidates for handoff in the near future. The trajectories of Wi-Fi client devices  16  are also used to classify clients based on their mobility characteristics, distinguishing for example between stationary, nomadic, mobile, and highly mobile clients. This classification is used to inform the choice of the frequency band as well as a serving node for the Wi-Fi client device  16 . 
     Data collected from Wi-Fi client devices  16  is also used to characterize and profile different clients and classify them into groups with similar characteristics. Data recorded on the signal strength measured from a client as well as MCS rates used by the client and MCS rates used by the node along with packet error rate information is used to infer and calibrate the relationship between signal strength and potential capacity between a client and node. Recorded data on the association and probe requests and handover of clients along with signal strength information between the client and the serving as well as non-serving access points  14  is used to classify the roaming, access point selection, and association behavior of client devices. 
     In addition, the data that has been transferred to the cloud  12  by the nodes can be analyzed to search for anomalous behavior or bugs. These bugs might be associated with the operation of the distributed Wi-Fi system  10 , or they might be associated with the behavior of particular Wi-Fi client devices  16 . Bugs or anomalous behaviors which are found can be associated with a particular type of client by examining the Media Access Control (MAC) address of the Wi-Fi client device  16  with the behavior. A mapping from MAC address to device type can be used to understand which device types are having which problems. By gathering statistics regarding behavior over a large number of networks, an extensive database of Wi-Fi client device  16  behaviors with accurate statistical prevalence can be formed. 
     The estimation and learning process  400  can allow the optimization  70  to be performed based on the determined forecasts, predictions, trends, and/or interference (step  404 ). All of the analyses described above can be accomplished using well-known machine learning algorithms and techniques. For example, the search for anomalous behavior can be done using various clustering algorithms, such as k-means, outlier detection, or multivariate normal distributions. This learning can be unsupervised (anomalous behavior is not known, looking for anything “out of the ordinary”), or supervised (correct and incorrect behaviors are known). 
     It will be appreciated that some exemplary embodiments described herein may include one or more generic or specialized processors (“one or more processors”) such as microprocessors; Central Processing Units (CPUs); Digital Signal Processors (DSPs): customized processors such as Network Processors (NPs) or Network Processing Units (NPUs), Graphics Processing Units (GPUs), or the like; Field Programmable Gate Arrays (FPGAs); and the like along with unique stored program instructions (including both software and firmware) for control thereof to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the methods and/or systems described herein. Alternatively, some or all functions may 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 or circuitry. Of course, a combination of the aforementioned approaches may be used. For some of the exemplary embodiments described herein, a corresponding device in hardware and optionally with software, firmware, and a combination thereof can be referred to as “circuitry configured or adapted to,” “logic configured or adapted to,” etc. perform a set of operations, steps, methods, processes, algorithms, functions, techniques, etc. on digital and/or analog signals as described herein for the various exemplary embodiments. 
     Moreover, some exemplary embodiments may include a non-transitory computer-readable storage medium having computer readable code stored thereon for programming a computer, server, appliance, device, processor, circuit, etc. each of which may include a processor to perform functions as described and claimed herein. Examples of such computer-readable storage mediums include, but are not limited to, a hard disk, 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), Flash memory, and the like. When stored in the non-transitory computer readable medium, software can include instructions executable by a processor or device (e.g., any type of programmable circuitry or logic) that, in response to such execution, cause a processor or the device to perform a set of operations, steps, methods, processes, algorithms, functions, techniques, etc. as described herein for the various exemplary embodiments. 
     Although the present disclosure has been illustrated and described herein with reference to preferred embodiments and specific examples thereof, it will be readily apparent to those of ordinary skill in the art that other embodiments and examples may perform similar functions and/or achieve like results. All such equivalent embodiments and examples are within the spirit and scope of the present disclosure, are contemplated thereby, and are intended to be covered by the following claims.