Abstract:
A machine-implementable method of optimizing the performance of a wireless network includes collecting, with a first discovery component of the wireless network, a first set of information describing at least one transmission characteristic of each access point of a first set of at least one access points within a detection area of the first discovery component. Each access point of the first set transmits data over a respective channel of a set of channels. The method further includes determining, based on the first-set information, an optimal channel of the set of channels, the optimal channel having associated therewith the lowest probability of interference with the channels over which the access points of the first set are transmitting.

Description:
PRIORITY CLAIM 
       [0001]    This application claims priority from U.S. Provisional Patent Application No. 60/949,622, filed Jul. 13, 2007, entitled “METHOD FOR OPTIMIZING A WIRELESS NETWORK BY SURVEYING WIRELESS CHANNEL DENSITY,” which is hereby incorporated by reference in its entirety as if fully set forth herein. 
     
    
     FIELD OF THE INVENTION 
       [0002]    Embodiments of the present invention are directed generally toward wireless computer networks, and more specifically to determination and implementation of optimal settings for such networks. 
       BACKGROUND OF THE INVENTION 
       [0003]    Computers have become commonplace tools in modern society, and many businesses and residences now have one or more computing devices. In a small business, for example, some employees may each use a desktop computer or laptop computer. Some employees may even use more portable computers such as personal digital assistants or “smart” wireless telephones. Similarly, with a family sharing a residence, each family member may have his or her personal computer, or the family members may share one or more computers. Further, both small businesses and personal residences may include various computing appliances that incorporate or otherwise interact with computers. For example, a home residence may include a refrigerator, a “Voice over Internet Protocol” telephone, a digital music server, a digital camera, or an environmental control system that includes or interacts with a computer. 
         [0004]    In order to optimize the use and flexibility of these computing devices, a business or family may link them together to form a small private network. Typically, each of the computing devices is connected to a router through a network adapter. The router then “routes” packets of data to and from each computing device. With this type of small private network, the router can in turn be connected to one or more larger private networks or a public network, such as the Internet. By sending and receiving messages through the router, each networked computing device may then communicate with computing devices outside of the private network. In this arrangement, the router serves as a “gateway” device that provides a gateway to and from the private network. Wireless gateway devices are often referred to as “access points.” 
         [0005]    While this type of small or “home” network can provide enhanced utility for its member computing devices, even a small network can be very difficult for a non-technical person to set up and maintain. 
         [0006]    IEEE 802.11, also known by the term Wi-Fi, denotes a set of Wireless LAN/WLAN standards developed by working group 11 of the IEEE LAN/MAN Standards Committee (IEEE 802). The 802.11 family currently includes six over-the-air modulation techniques that all use the same protocol. The most popular techniques are those defined by the b, a, g and n amendments to the original standard. 
         [0007]    802.11b, 802.11g, and 802.11n standards use the 2.40 GHz (gigahertz) band, operating (in the United States) under Part 15 of the FCC Rules and Regulations. Because of this choice of frequency band, 802.11b and 802.11g equipment can encounter interference from microwave ovens, cordless telephones, Bluetooth devices, and other appliances using this same band. 
         [0008]    802.11b and 802.11g—as well as 802.11n when using the 2.4 GHz band—divide the 2.4 GHz spectrum into 14 overlapping, staggered channels whose center frequencies are 5 megahertz (MHz) apart. The 802.11b, and 802.11g standards do not specify the width of a channel; rather, they specify the center frequency of the channel and a spectral mask for that channel. The spectral mask for 802.11b requires that the signal be attenuated by at least 30 dB from its peak energy at ±11 MHz from the center frequency, and attenuated by at least 50 dB from its peak energy at ±22 MHz from the center frequency. An example of such an energy signature associated with a given channel is shown in  FIG. 1 . 
         [0009]    In the USA, only channels 1-11 of the 14 available channels are used. As each channel is overlapped and staggered 5 MHz apart, the full range of energy signatures can be plotted as shown in  FIG. 2 . 
         [0010]    A common approach for configuring a wireless network is to operate the network on Channels 1, 6 or 11. These channels are each 25 MHz apart and so have the lowest amount of impact on each other, as is shown in  FIG. 3 . The large majority of routers shipping in the USA are hard-coded to channel 6 as the default channel. 
         [0011]    When considering the performance characteristics of a particular computer in a home network environment, users are typically concerned with factors such as:
       How fast can I stream video content from the internet to this wireless enabled device?   How fast do web pages load?   How fast can I transfer files between computers on my network?       
 
         [0015]    The speed at which transfer can occur on a wireless network is gated by many factors, including but not limited to the signal strength between the laptop and router, and the amount of overlapping transmissions from other nearby wireless access points. 
         [0016]    Generally speaking, improving the signal strength from a given wireless device is affected by proximity to the access point it is communicating with. A typical consumer can grasp this concept, and can locate their access point in a desirable location to improve signal strength. Determining the amount of overlapping transmissions from other nearby wireless devices, however, is more difficult and beyond the comprehension of an average consumer. 
       BRIEF SUMMARY OF THE INVENTION 
       [0017]    An embodiment of the invention includes a machine-implementable method of optimizing the performance of a wireless network includes collecting, with a first discovery component of the wireless network, a first set of information describing at least one transmission characteristic of each access point of a first set of at least one access points within a detection area of the first discovery component. Each access point of the first set transmits data over a respective channel of a set of channels. The method further includes determining, based on the first-set information, an optimal channel of the set of channels, the optimal channel having associated therewith the lowest probability of interference with the channels over which the access points of the first set are transmitting. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWING 
         [0018]    Preferred and alternative embodiments of the present invention are described in detail below with reference to the following figures: 
           [0019]      FIG. 1  is an illustration of an energy signature associated with a wireless channel; 
           [0020]      FIG. 2  is an illustration of a full range of wireless-channel energy signatures; 
           [0021]      FIG. 3  is a second illustration of a full range of wireless-channel energy signatures; 
           [0022]      FIG. 4  is a functional block diagram of a network operating environment in which an embodiment of the present invention may be implemented; 
           [0023]      FIG. 5  is a functional block diagram of an operating environment in which an embodiment of the present invention may be implemented; 
           [0024]      FIG. 6  is a flowchart illustrating a process according to an embodiment of the invention; and 
           [0025]      FIGS. 7-9  are schematic illustrations of a density array according to an embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0026]    An embodiment of the invention aids a proprietor of a wireless network in configuring the network by scanning the access points in the vicinity of the network and selecting the channel with the lowest probability of encountering overlapping transmissions. 
         [0027]    Embodiments and elements thereof may incorporate or otherwise employ features described in U.S. Provisional Patent Application No. 60/634,432, filed Dec. 7, 2004, entitled “Network Management” and naming Steve Bush et al. as inventors, and U.S. patent application Ser. No. 11/297,809, filed on Dec. 7, 2005, entitled “Network Management” and naming Steve Bush et al. as inventors, which applications, along with U.S. Provisional Patent Application No. 60/789,522, filed Apr. 4, 2006, entitled “Network Management,” U.S. patent application Ser. No. 10/916,642, filed on Aug. 10, 2004, entitled “Service Licensing And Maintenance For Networks,” U.S. patent application Ser. No. 11/457,783, filed on Jul. 14, 2006, entitled “Network Device Management,” and U.S. patent application Ser. No. 11/457,763, filed on Jul. 14, 2006, entitled “Network Device Setup Utility,” are incorporated entirely herein by reference. 
         [0028]    Various embodiments of the invention may be implemented within and by a wireless local-area, or otherwise small, network.  FIG. 4  illustrates an example of this type of small network. The network  101  may include a variety of different computing devices or “nodes”. For example, the network  101  may include one or more laptop computers  103 A, one or more desktop computers  103 B, and one or more personal digital assistants  103 C. In addition to these computers, the network  101  may also include one or more computing appliances, which are not as versatile as a conventional programmable computer, but which nonetheless may be configured to exchange data over a network. Such network appliances may include, for example, one or more printers  103 D and one or more cameras  103 , as illustrated in  FIG. 4 . Other small networks that can be used with various aspects of the invention may include any suitable computing devices, such as telephones that exchange voice information in data packets (sometimes generically referred to as “Voice over Internet Protocol (VoIP) telephones), digital video recorders, televisions, streaming media players, and digital music servers, among others. 
         [0029]    Each of these networked devices  103  communicates, either directly or indirectly, with a gateway device  105 . In turn, the gateway device  105  typically will communicate with an external device or network. An external network may be another private network, or it may be a public network, such as the Internet  107 . Thus, a gateway device is a device that can steer electronic data from one network to another network. Typically, a gateway device serves as a node on two incompatible networks (i.e., networks that use different communication protocol formats) and it can convert data from one network&#39;s communication protocol format into the other network&#39;s communication protocol format. As used herein, the term “small network” refers to a network made up of networked devices that each employ the same network address to communicate with the same gateway device, together with the gateway device itself. 
         [0030]    The network devices  103  may be connected to the gateway device  105  using any suitable communication medium. For example, in the illustrated network  101 , the desktop computers  103 B are connected to the gateway device  105  through a hard-wired connection  109 A (such as an Ethernet cable), while the laptop computer  103 A is connected to the gateway device  105  through a IEEE 802.11 wireless connection  109 B and the personal digital assistant  103 C is connected to the gateway device  105  through a Bluetooth wireless connection  109 C. 
         [0031]    It should be appreciated that, as used throughout this application, the term “connect” and its derivatives (e.g., connection, connected, connects) includes both direct and indirect connections. Thus, with the network illustrated in  FIG. 4 , the laptop computer  103 A may be connected to the gateway device  105  using a wireless transceiver incorporated into the laptop computer  103 A and a wireless transceiver incorporated into the gateway device  105 . Alternately, the laptop computer  103 A may be connected to the gateway device  105  using a wireless transceiver external to the laptop computer  103 , the gateway device  105 , or both. 
         [0032]    Typically, the gateway device  105  will be a router. As will be appreciated by those of ordinary skill in the art, a router routes data packets from the networked devices  103  to an external device or network. With some networks, however, the gateway device  105  alternately may be a computer performing router functions, a hub, a bridge, or “layer-3” switch. As will also be appreciated by those of ordinary skill in the art, the computing devices or “nodes” making up the network  101  can communicate with the gateway device  105  using one or more defined communication protocols, such as the Transmission Control Protocol (TCP) and the Internet Protocol (IP). 
         [0033]    With these communication protocols, each computing device  103  and gateway device  105  in the network  101  can be assigned a logical address. For example, if the network  101  is connected to the Internet  107  through an Internet service provider, the Internet service provider can assign the gateway device  105  a logical Internet Protocol (IP) address. The Internet service provider may also provide the gateway device  105  with a block of logical Internet Protocol (IP) addresses for the gateway device  105  to reassign to each network device  103 . Alternatively, the gateway device  105  can itself assign a range of logical Internet Protocol (IP) addresses to each network device  103 , and then use a translation operation (e.g., a Network Address Translation (NAT) operation) to route data packets that it receives to the appropriate network device  103 . This type of logical address typically is unrelated to the particular computing device to which it is assigned. Instead, a logical address identifies the relationship of that computing device to other computing devices in the network. 
         [0034]    In addition to a logical address, each network device typically can also have a physical address. For example, most computing devices capable of communicating over a network, including routers, employ a network adapter with a media access control (MAC) address. This type of physical address is assigned to a network adapter according to standards (referred to as Project 802 or just 802 standards, which are incorporated entirely herein by reference) set forth by the Institute of Electrical and Electronic Engineers (IEEE). More particularly, these standards define a 48-bit and 64-bit physical address format for network devices. The first 14 bits of the address are assigned by the IEEE Registration Authority, and uniquely identify the manufacturer of the network adapter. The remaining bits are then assigned by the manufacturer to uniquely identify each network adapter produced by the manufacturer. Consequently, the physical address of a network adapter is unique across all networks unless manually changed by the user. The physical address is unique to the network adapter, and is independent of a computing device&#39;s relationship to other computing devices in a network. Thus, the physical address does not change over time or between uses in different networks. 
         [0035]    A network may include both virtual devices and physical devices. Physical network devices can then include both computer devices and computing appliance devices. A “computer” may generally be characterized as a device that can be programmed to perform a number of different, unrelated functions. Examples of computers can thus include programmable personal computers, such as desktop computers and laptop computers. In addition, programmable media-purposed computers (e.g., “media adapters and servers”), network attached storage devices, programmable entertainment-purposed computers (e.g., video game consoles), some programmable personal digital assistants and some telephones (such as wireless “smart” telephones) may be characterized as computers in a network. A “computing appliance” then may generally be characterized as a device that is limited to primarily performing only specific functions. Examples of a computing appliance may thus include, for example, printers, cameras, telephones that exchange voice information in data packets (sometimes generically referred to as “Voice over Internet Protocol (VoIP) telephones or telephone adapters), digital video recorders, televisions, voice over Internet protocol (VoIP) adapters, print servers, media adapters, media servers, photo frames, data storage servers, routers, bridges and wireless access points. 
         [0036]    As will be appreciated by those of ordinary skill in the art, there may be no clear defining line between “computer” network devices and “computing appliance” network devices in a network. For example, a sophisticated print server may be programmable to additionally or alternately function as a data storage server, while a programmable media-purposed computer or programmable personal digital assistant may have restricted functionality due to limited memory, input devices or output devices. Accordingly, as used herein, the term “computer” can refer to any network device that is capable of implementing a network management tool according to one or more aspects of the invention, such as a personal programmable computer. The term “computer appliance” then can refer to a network device that typically cannot implement a network management tool according to at least one aspect of the invention without additional augmentation. The term “computing device” is then used herein to include both computers and computing appliances. 
         [0037]    With conventional networks located in a home, small office or other local environment, a network management tool according to various aspects of the invention can be implemented on a programmable personal computer, such as a desktop or laptop computer. A general description of this type of computer will therefore now be described. 
         [0038]    An illustrative example of such a computer  201  as may be present in the network  101  described above is illustrated in  FIG. 5 . As seen in this figure, the computer  201  has a computing unit  203 . The computing unit  203  typically includes a processing unit  205  and a system memory  207 . The processing unit  205  may be any type of processing device for executing software instructions, but can conventionally be a microprocessor device. The system memory  207  may include both a read-only memory (ROM)  209  and a random access memory (RAM)  211 . As will be appreciated by those of ordinary skill in the art, both the read-only memory (ROM)  209  and the random access memory (RAM)  211  may store software instructions for execution by the processing unit  205 . 
         [0039]    The processing unit  205  and the system memory  207  are connected, either directly or indirectly, through a bus  213  or alternate communication structure to one or more peripheral devices. For example, the processing unit  205  or the system memory  207  may be directly or indirectly connected to additional memory storage, such as the hard disk drive  215 , the removable magnetic disk drive  217 , the optical disk drive  219 , and the flash memory card  221 . The processing unit  205  and the system memory  207  also may be directly or indirectly connected to one or more input devices  223  and one or more output devices  225 . The input devices  223  may include, for example, a keyboard, touch screen, a remote control pad, a pointing device (such as a mouse, touchpad, stylus, trackball, or joystick), a scanner, a camera or a microphone. The output devices  225  may include, for example, a monitor display, television, printer, stereo, or speakers. 
         [0040]    Still further, the computing unit  203  can be directly or indirectly connected to one or more network interfaces  227  for communicating with a network. This type of network interface  227 , also sometimes referred to as a network adapter or network interface card (NIC), translates data and control signals from the computing unit  203  into network messages according to a communication protocol, such as the Transmission Control Protocol (TCP), the Internet Protocol (IP), and the User Datagram Protocol (UDP). These protocols are well known in the art, and thus will not be described here in more detail. An interface  227  may employ any suitable connection agent for connecting to a network, including, for example, a wireless transceiver, a power line adapter, a modem, or an Ethernet connection. 
         [0041]    It should be appreciated that one or more of these peripheral devices may be housed with the computing unit  203  and bus  213 . Alternately or additionally, one or more of these peripheral devices may be housed separately from the computing unit  203  and bus  213 , and then connected (either directly or indirectly) to the bus  213 . Also, it should be appreciated that both computers and computing appliances may include any of the components illustrated in  FIG. 5 , may include only a subset of the components illustrated in  FIG. 5 , or may include an alternate combination of components, including some components that are not shown in  FIG. 5 . 
         [0042]    It should be noted that, while a general description of a programmable personal computer was provided above, various aspects of the invention may be implemented on any desired device capable of supporting embodiments of the invention. For example, with some aspects of the invention, a network management tool may be implemented on special purposed programmable computers, such as a programmable media or entertainment-purposed computers, or personal digital assistants. Accordingly, the above description of a programmable personal computer should be understood as illustrative rather than limiting. 
         [0043]    A computing appliance may have any combination of the components of the computer  201  discussed above. More typically, however, a computing appliance can be simpler to optimize the performance of a specific function, and thus may have only a subset of these components. For example, a computing appliance may have only a computing unit  203 , an input device  223  or an output device  225 , and a network interface  227 . As will be apparent from the following description, however, a computing appliance will have sufficient computing resources to implement a desired embodiment of the invention in order to provide information to or receive information from a client operating on a separate computing device. 
         [0044]    As earlier alluded to, the conventional wisdom when configuring a wireless network is to select channels 1, 6 or 11. As these channels are in the center and at both extremes of the frequency spectrum, their energies overlap less than any other combination of channels. This guideline assumes, however, an ideal situation where all neighboring access points adhere to the same convention. In real-world situations this is rarely the case. More often than not, there may be neighboring access points on any random collection of channels other than 1, 6, or 11. It should also be noted that concurrent activity on overlapping channels causes significant degradation in performance over any one of such channels. 
         [0045]    An embodiment of the invention employs an algorithm to determine the potential for overlapping transmissions that may interfere with a given network. As is discussed in further detail herein, an embodiment causes an access point or other capable polling device of a network to scan for all broadcasting access points in the vicinity of the network. It evaluates each access point by its signal strength and channel spread impact and calculates a density array that characterizes the entire channel-frequency spectrum. A final pass of the density array is performed to determine the channel with the lowest potential for interfering overlap. 
         [0046]    More specifically, and referring now to  FIG. 6 , a process  600  according to an embodiment of the invention is illustrated. The process  600  is illustrated as a set of operations shown as discrete blocks. The process  600  may be implemented in any suitable hardware, software, firmware, or combination thereof. As such the process  600  may be implemented in computer-executable instructions that can be transferred from one computer (not shown) to a second computer, such as a device on network  101 , via a communications medium, such as Internet  107 . Additionally, the process  600  can be implemented, for example, in any device  103 ,  105  of the network  101 . The order in which the operations are described is not to be necessarily construed as a limitation. 
         [0047]    At a block  610 , the creation of a density array  710  ( FIG. 7 ) commences with the dividing of each channel (represented schematically in  FIGS. 7-9  as a set of staggered blocks  720 ) into multiple partitions (represented schematically in  FIGS. 7-9  as a set of staggered blocks  730 ), each of which represents a predetermined frequency range such as, for example, 5 MHz. 
         [0048]    At a block  620 , information is gathered on all detectable access points. For example, one or more devices  103 ,  105  of the network  101  can detect, in a conventional manner, all access points broadcasting in the general vicinity of the network  101 . Of specific interest in this detection/gathering function is the channel over which each access point is transmitting and the signal strength of such transmissions as measured at the detecting device  103 ,  105 . 
         [0049]    For purposes of the following illustrative example, and referring to Table 1 below, consider a case in which there are only 3 access points detectable by the detecting device  103 ,  105  and that would thus presumptively impact the wireless operation of network  101 . For simplification of the example, and as a proxy for the actual Received Signal Strength Indication (RSSI) dBM value, we can assign values of 1-5 to the signal strength where 1==poor and 5==excellent: 
         [0000]    
       
         
               
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                   
                 Signal 
                   
               
               
                 Access Point Name 
                 Strength 
                 Channel 
               
               
                   
               
             
             
               
                 Fish 
                 4 
                 7 
               
               
                 Dog 
                 2 
                 1 
               
               
                 Cat 
                 5 
                 6 
               
               
                   
               
             
          
         
       
     
         [0050]    At a block  630 , for each access point found, the associated impact is recorded by calculating and assigning to the density array  710  weighted impact-value data. In an embodiment, the impact-value data is calculated using the following equation: 
         [0000]      Value=RSSI*DM 
         [0000]    where “RSSI” is the signal strength of the access point and “DM” is a distance modifier applied to weight partitions according to their distance from the center of a corresponding channel. In the illustrated example, the inner 5 MHz partitions representing the frequency ranges closest to the frequency center of the channel are assigned a DM of 1.0 (i.e., 100%), while the outer partitions representing the frequency ranges farthest from the frequency center of the channel are assigned a DM of 0.75 (i.e., 75%). 
         [0051]    As such, and referring to  FIG. 7 , an embodiment can first add the impact-value data of the Fish network to the density array  710 . Accordingly, values of 4 (i.e., the signal strength of 4 multiplied by the DM of 1) are assigned to the inner partitions  740   a,    740   b,  and values of 3 (i.e., the signal strength of 4 multiplied by the DM of 0.75) are assigned to the outer partitions  750   a,    750   b  associated with channel 7. 
         [0052]    In a similar manner, and referring to  FIGS. 8 and 9  respectively, the impact-value data of the Dog network and the Cat network are added to the density array  710 . 
         [0053]    Once the density array is filled in, at a block  640 , the optimal channel on which the network  101  should operate is determined. In turn, to determine the optimal channel, a set of sums  760  of the weighted impact values associated with partitions of each respective frequency range is determined, as sequentially illustrated in  FIGS. 7-9 . Subsequently, a set of numerical ratings  770  is calculated for each respective channel. The numerical rating  770  of a particular channel is the respective sum of the sums  760  of the weighted impact values associated with partitions of the particular channel. The channel with the lowest rating (in the example illustrated in  FIGS. 7-9 , channel 11) is the channel least likely to encounter interference. In an embodiment, if two or more channels are tied for lowest rating, the channel with the lower-rated one or pair of neighboring contiguous channels may be selected. 
         [0054]    An embodiment of the invention described above contemplates measuring the optimal channel for operating a single wireless device. For a given home network, a user might roam from room to room with their laptop, so a single test involving one device and the access point might not yield the optimal results for all devices on the network. 
         [0055]    As such, an embodiment contemplates concurrently performing density analyses based on information gathered by all devices in the network having detection capability. Each density array can be reported back to a master PC or other network device, which can combine (via superimposition, for example) or otherwise analyze the arrays to determine the best available channel for the network as a whole. 
         [0056]    While embodiments of the invention have been described with respect to specific examples including presently preferred modes of carrying out the invention, those skilled in the art will appreciate that there are numerous variations and permutations of the above described systems and techniques that fall within the spirit and scope of the invention as described herein. For example, while examples in this document generally refer to channels in the 2.4 GHz spectrum, it should be understood that one or more embodiments of the invention are applicable to 5 GHz or any spectrum that is sub-dividable into channels. Additionally, an embodiment of the invention described elsewhere herein calculates “potential” channel conflict/overlap, not actual conflict, based at least in part on the signal strength of access points. Signal strength alone is not always an indicator of interference as there may be no traffic across the access point at the time such access point is analyzed. As such, an embodiment includes performing period speed tests on a newly selected channel, adjusting channels, and taking new measurements to determine best throughput.