# Patent

## Title
Apparatus and method for detecting hidden nodes in a wireless network

## Abstract

A wireless network comprises a plurality of nodes. An access point wirelessly communicates with the plurality of nodes, generates a table comprising a list of the plurality of nodes, and transmits the table to a first node of the plurality of nodes. The first node determines a hidden status of a second node in the table relative to the first node.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of U.S. patent application Ser. No. 10/085,683 filed on Feb. 26, 2002. The disclosure of the above application is incorporated herein by reference.


FIELD OF THE INVENTION
The present invention relates to wireless networks, and more particularly to wireless communications between nodes in a wireless network.
BACKGROUND OF THE INVENTION
Referring now to FIG. 1, a typical wireless network 10 is shown. The wireless network 10 includes an access point 12, a plurality of wireless nodes 14-1, 14-2, . . . , and 14-n, and an external network 18. A communications link 20 connects the access point 12 to the external network 18. In the wireless network 10, the wireless nodes 14 communicate with each other and/or with the external network 18 through the access point 12.
For example, when the node 14-1 wants to communicate with the node 14-2, the node 14-1 sends a message to the access point 12. The access point 12 retransmits the message to the node 14-2. The node 14-2 sends a response to the access point 12, which retransmits the response to the node 14-1.
The access point 12 maintains a table including a current list of nodes 14 that are operating in the wireless network 10. The table also includes media access control (MAC) and Internet protocol (IP) addresses and an active/inactive status of each node 14. The access point 12 transmits the table to the nodes 14 when new nodes 14 are added or when other changes to the table occur. All of the nodes 14 are located relative to the access point 12 to allow communications with the access point 12. As described above, the nodes 14 of the wireless network 10 do not directly communicate with other nodes 14. In other words, the packet transmitted by a node must be retransmitted by the access point, which ineffectively uses available bandwidth and reduces throughput.
SUMMARY OF THE INVENTION
A wireless network according to the present invention includes a plurality of nodes that transmit and receive radio frequency (RF) signals. An access point transmits and receives radio frequency (RF) signals and wirelessly communicates with the plurality of nodes. The access point generates a table containing a list of nodes operating in the wireless network and transmits the table to the nodes. A first node receives the table and determines a hidden status of a second node in the table.
In still other features, the first node communicates directly with the second node if the second node has a not hidden status and communicates with the second node through the access point if the second node has a hidden status.
In yet other features, the first node determines the hidden status of other nodes in the table when the access point sends a new table. The first node broadcasts an acknowledgement request to the other nodes in the wireless network when the new table is received. The first node sets the hidden status of the other nodes equal to hidden if a response to the acknowledgement is not received within a predetermined period. The first node sets the hidden status of the other nodes equal to not hidden if a response to the acknowledgement is received within the predetermined period.
In still other features, the first node updates the hidden status of a third node if the first node receives a signal from the third node. The first node includes an aging timer for other nodes in the table. The first node updates the hidden status of the other nodes if the aging timer of the other node expires.
Further areas of applicability of the present invention will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples, while indicating the preferred embodiment of the invention, are intended for purposes of illustration only and are not intended to limit the scope of the invention.



BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will become more fully understood from the detailed description and the accompanying drawings, wherein:
FIG. 1 is a functional block diagram of a wireless network according to the prior art;
FIG. 2 is a functional block diagram of a wireless network according to the present invention;
FIG. 3 is a functional block diagram of a node according to the present invention;
FIG. 4 is a functional block diagram of an access point according to the present invention;
FIG. 5 is a flowchart illustrating steps of a method for operating the wireless network according to the present invention;
FIG. 6 is a flowchart illustrating steps for initializing nodes according to the present invention;
FIG. 7 is a functional block diagram of a wireless network according to the present invention; and
FIG. 8 is a flowchart illustrating steps of an alternate method for operating the wireless network according to the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The following description of the preferred embodiment(s) is merely exemplary in nature and is in no way intended to limit the invention, its application, or uses.
In the conventional wireless network 10 of FIG. 1, the sending node 14 does not directly communicate with the receiving node 14 in the wireless network 10. In other words, the transmitted packet from the sending node 14 must be retransmitted by the access point 12, which ineffectively uses available bandwidth and reduces throughput.
A first node is “hidden” from a second node in a wireless network if both nodes operate in the same wireless network 10 but the second node cannot receive transmissions from the first node. When the first node 14 is hidden from the second node 14, there is no possibility that the first node 14 can directly communicate with the second node 14. Therefore, the access point 12 must be used. The receiving node 14 may, however, be capable of directly receiving transmissions from the sending node 14. In this situation, the nodes are not hidden and communications between the nodes 14 can be made directly if modifications are made to the wireless network 10 in accordance with the present invention. In this situation, the second transmission between the access point 12 and the receiving node 14 is redundant.
In the exemplary wireless network of FIG. 1, the node 14-1 is capable of receiving transmissions from the nodes 14-2, 14-3, 14-4, and 14-6. In other words, the nodes 14-2, 14-3, 14-4, and 14-6 are not hidden from the node 14-1. On the other hand, the first node 14-1 cannot receive transmissions from the nodes 14-5, 14-7 and 14-8. The nodes 14-5, 14-7 and 14-8 are hidden from node 14-1. Nodes 14 that are not hidden from each other have the potential to directly communicate with one another. In the conventional wireless network 10, however, nodes 14 that are not hidden from each other cannot directly communicate without the access point 12. The nodes 14 do not know the hidden status of the other nodes 14 in the wireless network 10.
Referring now to FIG. 2, a wireless network 40 according to the present invention is shown. The wireless network 40 includes an access point 42, a plurality of wireless nodes 44-1, 44-2, . . . , and 44-n, and an external network 48. The nodes 44 communicate with the access point 12 via radio frequency (RF) signals. A communications link 50 connects the access point 42 to the external network 48. The communications link 50 may be a wired connection (such as category 5 cable), a wireless connection (using RF signals), an optical link using fiber optic cable, and/or any other suitable communications link.
In the wireless network 40, the wireless nodes 44 are capable of communicating in a conventional manner with each other through the access point 42 and/or with the external network 48 through the access point 42. More specifically, when the node 44-1 communicates with the node 44-2, the nodes 44-1 sends a message to the access point 42. The access point 42 retransmits the message to the node 44-2. The node 44-2 sends a response to the access point 42, which retransmits the response to the node 44-1. The access point 42 maintains a table including an up-to-date list of all nodes 44 that are operating in the wireless network 40. The table includes the media access control (MAC) and Internet protocol (IP) addresses of the nodes 44. The table also includes the active/inactive status of each node 44.
In addition to the conventional communications through the access point 42, two nodes 44 that are not hidden from each other may communicate directly without the access point 42. To accomplish direct communications, the nodes 44 determine the hidden status of other nodes in the wireless network 40 as will be described further below.
During initialization or at other times such as during an idle period, the access point 42 broadcasts a table containing a list of active nodes 44 that are present in the wireless network 40. The table also contains the media access control (MAC) and Internet protocol (IP) addresses for all of the nodes 44 in the wireless network 40. The access point 42 broadcast the table to all nodes 44 whenever there is a change to the table. Possible changes include additions or deletions of nodes 44 to/from the table and changes to the MAC or IP addresses of any node 44 in the table. Upon receiving the table, the nodes 44 generate a random backoff number. The random backoff number is used by the node 44 as a time delay for retransmission to reduce collisions.
Referring now to FIG. 3, the nodes 44 are shown in further detail. The nodes 44 include a transmitter and a receiver that are collectively identified at 51 and one or more antennas 52. The nodes 44 further include a processor 54 that executes software, memory 56 such as read-only memory, random access memory, flash memory, or other suitable electronic storage, and an input/output (I/O) interface 60. The nodes may also be discrete circuits, application specific integrated circuits or any other suitable electronic circuit.
Referring now to FIG. 4, the access point 42 is shown in further detail. The access point 42 includes one or more transmitters and receivers that are collectively identified at 70 and one or more antennas 74. The access point 42 further includes a processor 76 that executes software, memory 80 such as read-only memory, random access memory, flash memory, or other suitable electronic storage, and an I/O interface 84. The access point 42 may be an application specific integrated circuit, a discrete circuit or any other electronic circuit. The access point 42 further includes a receive packet counter 86, a transmit packet counter 90, and a cumulative packet byte counter 92. A network bandwidth utilization calculator 96 communicates with one or more of the counters 86, 90 and 92 to generate a bandwidth utilization calculation or estimate. The access point 42 transmits the network bandwidth utilization calculations to the nodes of the wireless network 40.
Referring now to FIG. 5, steps for controlling the wireless network 40 are generally identified at 100. Control begins with step 102. In step 106, the nodes 44 determine whether there is a new node or a new table available from the access point 42. If there is, control continues with step 110 and executes a node initialization subroutine for all nodes. The node initialization subroutine of step 110 is illustrated further in conjunction with FIG. 6. The node initialization subroutine determines the hidden status of other nodes 44 in the wireless network 40 with respect to a given node 44.
A node 44 may move from the original location to a new location within the wireless network 40. The move, however, will not change the table that is maintained by the access point 42 or stored by the nodes 44. To address this condition, each node 44 assigns an aging factor to the hidden and unhidden nodes on its table. If the aging factor associated with a node expires, the source node 44 sends a new inquiry to the aged node 44 to update the hidden status of the aged node 44.
In step 114, a loop is initiated by the source node I. In step 116, the source node I determines whether it has received a signal from the node i. If the source node I receives a signal from node i, control continues with step 120. In step 120, the source node I determines whether the node i is hidden. If the node i is hidden, the source node I sets the node i to not hidden in step 124 and continues with step 126. Otherwise, control continues from step 120 directly to step 126. In step 126, the source node resets an aging timer for node i. Control continues from step 126 back to step 114. Steps are repeated by the source node I for other nodes in the wireless network 40.
If a signal is not received from node i, the source node I determines whether the aging timer for node i has expired in step 128. If not, control loops back to step 114. Otherwise, if the aging timer has expired, the source node I performs the node I initialization subroutine for node i in step 130.
Referring now to FIG. 6, the node I initialization subroutine is shown generally at 150. Control begins with step 152. In step 153, the nodes 44 generate random backoff numbers, which are used by the nodes 44 as a time delay for retransmission when the nodes 44 detect a collision. In step 154, the source node I begins a loop. In step 156, the source node I determines whether the loop of step 154 is complete. If it is, control returns to the method of FIG. 5 in step 158. Otherwise, the source node I determines whether traffic is idle in step 160. If not, control loops back to step 150 until traffic is idle. Otherwise, the source node I sends an acknowledgment request in step 162. In a preferred embodiment, the acknowledgement request is an address resolution protocol (ARP) packet. In step 164, the source node I determines whether a response has been received. If a response has been received, control continues with step 166 where the hidden status of node i is set equal to not hidden. If no response is received, control continues with step 168 where the status of the node i is set equal to hidden. Control continues from steps 166 and one 168 to step 170 where the aging timer for node I is reset.
To minimize the impact of the present invention on the performance of the wireless network 40, the messages are preferably sent out during idle traffic periods. The access point 42 identifies the idle periods. The access point 42 includes the receive and transmitter packet counters 86 and 90 and a cumulative packet byte counter 92. The access point 42 calculates the utilization of network bandwidth and conveys this information to all of the nodes 44. Preferably, the network utilization is transmitted during idle periods. The idle periods are preferably defined as utilization of less than 10 percent.
In the conventional wireless network 10, if the first node 14-1 communicates with the second node 14-2, the first node 14-1 transmits the message through the access point 12 to the second node 14-2. As can be appreciated, each message is transmitted by both the first node 14-1 and the access point 12. The nodes 14-1 and 14-2 do not know which of the other nodes 14 are hidden or not hidden.
Referring now to FIG. 7, nodes 204-1 and 204-2 in the exemplary wireless network 200 of the present invention are hidden from nodes 204-7 and 204-8. The nodes 204 in the wireless network 200 know the hidden status of other nodes. Therefore, node 204-1 can directly communicate with node 204-2 without the intermediary of the access point 202. Likewise, node 204-7 can directly communicate with node 204-8 without the intermediary of the access point 202. Since the nodes 204-1 and 204-2 are hidden from the nodes 204-7 and 204-8, the communication of nodes 204-1 and 204-2 can be conducted simultaneously with the communication of nodes 204-7 and 204-8. As can be appreciated, the present invention reduces redundant traffic on the wireless network 200 by at least 50 percent, which effectively doubles throughput. A node 204 is only required to communicate through the access point 202 if the node 204 is communicating with a hidden node 204 or with the external network 208. The bandwidth utilization factor is preferably stored and/or displayed in real time on each of the nodes 204 to allow a user to troubleshoot or perform routine maintenance of the wireless network 200.
Referring now to FIG. 8, an alternate method for operating the wireless network according to the present invention is shown generally at 250. The alternate method provides the functionality of the method set forth above in FIGS. 5 and 6. In addition, the alternate method handles situations where a first node of the wireless network is capable of receiving broadcasts from a second node in the wireless network but the second node is not capable of receiving broadcasts from the first node. In this situation, the first node is hidden with respect to the second node and the second node is not hidden with respect to the first node. In other words, the hidden status of these nodes is not a mirror image.
In step 252, control begins. In step 256, the access point determines whether traffic is idle. If not, control loops back to step 256. When traffic is idle as determined in step 256, the access point transmits a node list to all of the nodes in the wireless network in step 260. In step 262, random backoff numbers are generated by each node. A first timer in each node is reset. Based on the backoff number, the nodes broadcast an acknowledgement request in step 264. For example, a node having the lowest (or highest) backoff number broadcasts first followed by a node having the next lowest (or highest) backoff number. Still other ways of staging the nodes using the random backoff number or other suitable methods will be apparent to skilled artisans.
In step 264, each sending node sends an acknowledgment request to other nodes in the wireless network. In step 266, the sending node sets a hidden status of other nodes equal to not hidden if a response to the acknowledgment request is received by the sending node. In step 270, control determines whether the first timer is up. If not, control loops back to step 264. Otherwise, control continues with step 272 where each node generates a random backoff number. A second timer in each node is reset. In step 274, the sending nodes broadcast an updated node list including the hidden status of the other nodes relative to be sending node.
In step 276, the nodes determine whether an updated list has been received from another node. If an updated list is received, control continues with step 278 wherein the hidden status of the node is updated if necessary. Otherwise, control continues with step 280 and determines whether the second timer is up. If not, control loops to step 276. Otherwise control ends in step 282.
For example, a wireless network includes first, second and third nodes. The access point broadcasts a list containing the first, second and third nodes. The third node generates the lowest backoff number and broadcasts the acknowledgement request. The third node receives a response from the first node but not the second. The second node has the next highest backoff number and broadcasts the acknowledgement request. The second node receives a response from the first node but not the third node. The first node has the highest backoff number and broadcasts the acknowledgement request. The first node receives a response from the third node but not the second node.
The first node generates a first list including the second node (hidden) and the third node (not hidden). The second node generates a second list including the first node (not hidden) and the third node (hidden). The third node generates a third list including the first node (not hidden) and the second node (hidden).
The nodes generate a second random backoff number. The second node has the lowest second backoff number. The second node broadcasts the second list. The first node receives the second list and compares the second list to the first list. The hidden status of the second node on the first list is hidden. The hidden status of the second node on the second list is not hidden. Therefore, the hidden status of the second node on the first list is not changed.
The first node has the next lowest second backoff number. The first node broadcasts the first list. The second node receives the first list and compares the first list to the second list. The hidden status of the first node on the second list is not hidden. The hidden status of the first node on the first list is hidden. Therefore, the hidden status of the first node on the second list is changed from not hidden to hidden. The third node is handled in a similar manner. As can be appreciated, the alternate method ensures that the hidden status of the nodes are mirror images.
Those skilled in the art can now appreciate from the foregoing description that the broad teachings of the present invention can be implemented in a variety of forms. Therefore, while this invention has been described in connection with particular examples thereof, the true scope of the invention should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, the specification and the following claims.

## Claims

1. A wireless network, comprising:
a plurality of nodes; and
an access point configured to i) wirelessly communicate with the plurality of nodes, ii) generate a table comprising a list of the plurality of nodes, and iii) transmit the table to a first node of the plurality of nodes,
wherein the first node is configured to determine a hidden status of a second node in the table relative to the first node,
wherein the hidden status indicates the second node is hidden if the second node is connected to the wireless network and is not configured to communicate directly with the first node, and
wherein the hidden status indicates the second node is not hidden if the second node is connected to the wireless network and is configured to communicate directly with the first node.

2. The wireless network of claim 1, wherein the first node is configured to determine the hidden status for new nodes in the table when the access point sends a new table.

3. The wireless network of claim 2, wherein the first node is configured to broadcast an acknowledgement request to the other nodes in the wireless network when the new table is received.

4. The wireless network of claim 3, wherein the first node is configured to i) set the hidden status of the other nodes equal to hidden if a response to the acknowledgement request is not received within a predetermined period and ii) set the hidden status of the other nodes equal to not hidden if a response to the acknowledgement is received within the predetermined period.

5. The wireless network of claim 3, wherein the acknowledgement request is sent during idle periods.

6. The wireless network of claim 1, wherein the first node is configured to update the hidden status of a third node if the first node receives a signal from the third node.

7. The wireless network of claim 1, wherein the first node includes an aging timer for other nodes in the table and wherein the first node is configured to update the hidden status of one of the other nodes if the aging timer of the other node expires.

8. The wireless network of claim 1, wherein the access point further includes a transmit packet counter configured to count transmit packets generated by the access point.

9. The wireless network of claim 8, wherein the access point further includes a receive packet counter configured to count receive packets received by the access point.

10. The wireless network of claim 9, wherein the access point further includes a cumulative packet byte counter.

11. The wireless network of claim 10, wherein the access point includes a network bandwidth utilization calculator.

12. The wireless network of claim 1, wherein the table further includes at least one address for each of the plurality of nodes and an active/inactive status of each of the plurality of nodes.

13. The wireless network of claim 1, wherein the second node is configured to i) determine a hidden status of the first node and ii) generate a second list, and wherein the first node broadcasts a first list comprising the second node and the hidden status of the second node to the second node.

14. The wireless network of claim 13, wherein the second node is configured to compare the hidden status of the second node on the first list to the hidden status of the first node on the second list.

15. The wireless network of claim 14, wherein the second node is configured to set the hidden status of the first node on the second list equal to hidden if the hidden status of the first node on the second list is not hidden and the hidden status of the second node on the first list is equal to hidden.

16. A wireless network, comprising:
a plurality of nodes; and
an access point configured to i) wirelessly communicate with the plurality of nodes, ii) generate a table comprising a list of the plurality of nodes, and iii) transmit the table to a first node of the plurality of nodes,
wherein the first node is configured to determine a hidden status of a second node in the table relative to the first node, and
wherein the first node is configured to generate a backoff number, wherein the backoff number is associated with a delay.

17. A method for operating a wireless network, the method comprising:
providing wireless communication for a plurality of nodes using an access point;
generating a table comprising the plurality of nodes;
transmitting the table from the access point to a first node in the table; and
determining a hidden status of a second node in the table relative to the first node,
wherein the hidden status indicates the second node is hidden if the second node is connected to the wireless network and is not configured to communicate directly with the first node, and
wherein the hidden status indicates the second node is not hidden if the second node is connected to the wireless network and is configured to communicate directly with the first node.

18. The method of claim 17 further comprising determining the hidden status for new nodes in the table using the first node when the access point sends a new table to the first node.

19. The method of claim 18, wherein the first node broadcasts an acknowledgement request to the other nodes in the wireless network when the new table is received.

20. The method of claim 19, further comprising:
setting the hidden status of the other nodes equal to hidden if a response to the acknowledgement request is not received within a predetermined period; and
setting the hidden status of the other nodes equal to not hidden if a response to the acknowledgement is received within the predetermined period.

21. The method of claim 19, wherein the acknowledgement request is sent during idle periods.

22. The method of claim 17, further comprising updating the hidden status of a third node if the first node receives a signal from the third node.

23. The method of claim 17, further comprising providing an aging timer that is associated with the first node for other nodes in the table.

24. The method of claim 23, further comprising updating the hidden status of one of the other nodes if the aging timer of the other node expires.

25. The method of claim 17, further comprising counting transmit packets generated by the access point.

26. The method of claim 25, further comprising counting receive packets received by the access point.

27. The method of claim 26, further comprising calculating network bandwidth utilization.

28. The method of claim 17, wherein the table generated by the access point further includes at least one address for each of the plurality of nodes and an active/inactive status of each of the plurality of nodes.

29. The method of claim 17, further comprising:
determining a hidden status of the first node using the second node;
using the first node, generating a first list comprising the second node and the hidden status of the second node;
using the second node, generating a second list comprising the first node and the hidden status of the first node; and
broadcasting the first list using the first node.

30. The method of claim 29, further comprising:
using the second node, comparing the hidden status of the second node on the first list to the hidden status of the first node on the second list.

31. The method of claim 30, further comprising:
using the second node, setting the hidden status of the first node equal to hidden if the hidden status of the first node on the second list is not hidden and the hidden status of the second node on the first list is equal to hidden.

32. A method for operating a wireless network, the method comprising:
providing wireless communication for a plurality of nodes using an access point;
generating a table comprising the plurality of nodes;
transmitting the table from the access point to a first node in the table; and
determining a hidden status of a second node in the table relative to the first node
wherein the first node generates a backoff number, wherein the backoff number is associated with a delay.