The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further purposes and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, where:
a-b are flow-charts of exemplary steps taken to minimize signal interference caused by the computer described in
With reference now to
After determining which access point (AP 2) is communicating with the offensive wireless device (the second wireless device Client B), the first wireless device Client A sends a message to the first access point AP 1, requesting that the first access point AP 1 contact the second access point AP 2 with an instruction for the second wireless device (Client B) to switch channels and access points (block 308), preferably to a third access point that is on another channel. For example, an instruction may be sent to Client B instructing Client B to switch to Channel 11, using access point AP 3. In one embodiment, this instruction is sent only after a determination has been made that the in-band noise is coming from another IEEE 802.11x compliant device, which is transmitting a Wi-Fi signal. That is, the instruction is sent only after a determination has been made that the in-band noise is not from a non-IEEE 802.11x device (i.e., a Bluetooth™ device, a cordless phone, a microwave oven, etc.), but rather is made by an IEEE 802.11x device, such as a laptop computer that is Wi-Fi enabled. This determination is performed by analyzing a noise pattern generated by the offensive wireless device (e.g., Client B), and then mapping known patterns for 802.11x devices to determine that the device is or is not an 802.11x device. Thus, referring again to query block 306, if a determination is made that the interference is NOT from an IEEE 802.11x device (i.e., a Bluetooth™ device, a cordless phone, a microwave oven, etc.), then the process ends (terminator block 310).
In another embodiment, the instruction to switch channels and access points is sent only if the second wireless device detects a lower signal strength from the third access point (e.g., AP 3) than from the first access point (e.g., AP 1) or the second access point (e.g., AP 2). Such a requirement (contacting an access point that has a lower signal strength) is contrary to standard connection protocols, which direct a wireless device to whichever device has the strongest signal. However, in the problem described above, Client B may be receiving a strong signal from AP 1, which leads to the in-band noise to Client A caused by Client B attempting to communicate with AP 1. Therefore, Client B will be directed to communicate with a more distant (having a weaker signal) access point. The process ends at terminator block 310.
Note that in one embodiment, control of the switching from one access point to another access point with a different channel can be managed by reporting the in-band noise condition experienced by the first wireless device to a central control site, which then automatically rebalances all access points (including the second and third access points) to correct the in-band noise problem.
Referring now to
Note that, as described with
With reference now to
Client computer 402 is able to wirelessly communicate with a Wireless Local Area Network (WLAN) 450 via an access point 428 using a wireless network interface 430, which is coupled to system bus 406. WLAN 450 (such as WLAN 100 shown in
A hard drive interface 432 is also coupled to system bus 406. Hard drive interface 432 interfaces with a hard drive 434. In a preferred embodiment, hard drive 434 populates a system memory 436, which is also coupled to system bus 406. Data that populates system memory 436 includes client computer 402's operating system (OS) 438 and application programs 444.
OS 438 includes a shell 440, for providing transparent user access to resources such as application programs 444. Generally, shell 440 is a program that provides an interpreter and an interface between the user and the operating system. More specifically, shell 440 executes commands that are entered into a command line user interface or from a file. Thus, shell 440 (as it is called in UNIX®), also called a command processor in Windows®, is generally the highest level of the operating system software hierarchy and serves as a command interpreter. The shell provides a system prompt, interprets commands entered by keyboard, mouse, or other user input media, and sends the interpreted command(s) to the appropriate lower levels of the operating system (e.g., a kernel 442) for processing. Note that while shell 440 is a text-based, line-oriented user interface, the present invention will equally well support other user interface modes, such as graphical, voice, gestural, etc.
As depicted, OS 438 also includes kernel 442, which includes lower levels of functionality for OS 438, including providing essential services required by other parts of OS 438 and application programs 444, including memory management, process and task management, disk management, and mouse and keyboard management.
Application programs 444 include a browser 446. Browser 446 includes program modules and instructions enabling a World Wide Web (WWW) client (i.e., client computer 402) to send and receive network messages to the Internet using HyperText Transfer Protocol (HTTP) messaging, thus enabling communication with the Internet.
Application programs 444 in client computer 402's system memory also include an Interference Minimizing Program (IMP) 448. ET 448 includes code for implementing the processes described above in
The hardware elements depicted in client computer 402 are not intended to be exhaustive, but rather are representative to highlight essential components required by the present invention. For instance, client computer 402 may include alternate memory storage devices such as magnetic cassettes, Digital Versatile Disks (DVDs), Bernoulli cartridges, and the like. These and other variations are intended to be within the spirit and scope of the present invention.
The present invention thus presents a method for minimizing in-band noise from a nearby wireless device. In one embodiment, the method includes the steps of detecting, at a first wireless device that communicates with a Wireless Local Area Network (WLAN) via a first access point, a signal interference that is caused by a second wireless device that communicates with the WLAN via a second access point, wherein the first and second access points communicate with their respective first and second wireless devices via a same channel; and minimizing the signal interference by sending an instruction to the second wireless device to switch to a third access point, wherein the third access point uses a different channel than the channel that is used by the first and second access points. In on embodiment, the signal interference is an in-band radio frequency interference, and the method further includes the steps of determining if the in-band radio frequency interference is from an IEEE 802.11x compliant transmitting client device or is from another noise source; and performing the minimizing step only if the in-band radio frequency interference is from an IEEE 802.11x compliant transmitting client device. The instruction, which was sent instructing the second wireless device to switch to the third access point, may sent from the first access point to the second wireless device via the second access point, and the first access point may identify the second access point by reading a header of a data packet sent by the second wireless device. In another embodiment, the first and second wireless devices are in a peer-to-peer configuration, and wherein the instruction, which was sent instructing the second wireless device to switch to the third access point, is sent directly from the first wireless device to the second wireless device. The first and/or second wireless devices may be laptop computers. In another embodiment, the second wireless device switches to the third access point only if the second wireless device detects a lower signal strength from the third access point than from the second access point. In another embodiment, the method includes the further steps of, in response to determining that a third access point is not available to the second wireless device, causing the second wireless device to listen for data transmission activity between the first wireless device and the first access point; and permitting transmission activity to and from the second wireless device only during periods in which the second wireless device detects is a lack of activity between the first wireless device and the first access point.
It should be understood that at least some aspects of the present invention may alternatively be implemented in a computer-useable medium that contains a program product. Programs defining functions on the present invention can be delivered to a data storage system or a computer system via a variety of signal-bearing media, which include, without limitation, non-writable storage media (e.g., CD-ROM), writable storage media (e.g., hard disk drive, read/write CD ROM, optical media), system memory such as but not limited to Random Access Memory (RAM), and communication media, such as computer and telephone networks including Ethernet, the Internet, wireless networks, and like network systems. It should be understood, therefore, that such signal-bearing media when carrying or encoding computer readable instructions that direct method functions in the present invention, represent alternative embodiments of the present invention. Further, it is understood that the present invention may be implemented by a system having means in the form of hardware, software, or a combination of software and hardware as described herein or their equivalent.
While the present invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention. Furthermore, as used in the specification and the appended claims, the term “computer” or “system” or “computer system” or “computing device” includes any data processing system including, but not limited to, personal computers, servers, workstations, network computers, main frame computers, routers, switches, Personal Digital Assistants (PDA's), telephones, and any other system capable of processing, transmitting, receiving, capturing and/or storing data.