In accordance with the present invention, each node in a wireless mesh network may be aware of its connection status or connection ability to a destination within the network. This can be done through a signal indicator such as a connection status indicator (CSI). For illustrative purposes, an Internet application is used as an application of the present invention. However, those skilled in the art should know that such signal indicator or other indicating or signaling means such as flags may also be used in other applications to allow each node in a network to be aware of its connection status or connection ability to the rest of the nodes within the network.
Refer to
In accordance with the present invention, each peer node 121-124 and 131-134 may maintain a minimum set of close neighbors in its respective neighbor list. These close neighbors may help each other identify a function that can be done by each node. For example, a neighbor of peer node 122, such as peer node 121, may be able to relay a data packet transmitted by peer node 122. In another example, a neighbor of peer node 124, such as peer node 123, may be able to hear from peer node 124. In one embodiment, a group of neighbors may be formed by a probe packet, such as a slow probe packet, such that a gradient table may be built thereon later.
In accordance with the present invention, mesh gateways 111 and 112 may be defined as bridges between a traditional network, such as an Internet 150, and a wireless mesh network, such as peer-to-peer networks 120 and 130. Once information gets on mesh gateways 111 and 112, it is available on the Internet 150. Thus, mesh gateways 111 and 112 ensure connections to the Internet 150. As can be seen from
In a preferred embodiment, mesh gateway 111 may broadcast a connection signal indicator (CSI) to indicate to its peers, such as peer node 121, that it has a guaranteed connection to the Internet 150. In a preferred embodiment, the CSI may be implemented in mesh gateway 111 as an entry in a gradient table having mesh gateway 111 set as both the destination and the source. Furthermore, in the preferred embodiment, the distance to source is set to 0 hop in the gradient entry. In the preferred embodiment, mesh gateway 111 may utilize a probe packet, such as a fast probe packet, to indicate such CSI entry and thus initiate such CSI entry.
In accordance with the present invention, peer node 121 may add the CSI into its own routing tables and increase the distance to source to 1 hop as it receives the CSI from mesh gateway 111. In order to confirm its connectivity to the Internet 150, peer node 121 may try to establish a route to mesh gateway 111 based on the CSI. Additionally, peer node 121 may broadcast CSI to its own peers, such as peer nodes 122 and 124. Each of peer nodes 122 and 124 may also add the CSI into their own routing tables and increase the distance to source to 2 hops (i.e. through peer node 121 to mesh gateway 111) as they receive the CSI. Peer nodes 122 and 124 may then broadcast the CSI to for example peer node 123. Accordingly, peer node 123 may add the CSI into its own routing table and increase the distance to source to 3 hops (i.e. through peer node 122 or 124 to peer node 121 to mesh gateway 111).
In one embodiment, the same method can be repeated to each peer node in peer-to-peer mesh network 120 with n hops to mesh gateway 111. As long as all of peer nodes 121-124 within peer-to-peer mesh network 120 have the CSI in their routing table and are able to establish routing for the CSI entry (i.e. through ‘n’ number of hops), then all peer nodes 121-124 can communicate with all the other nodes within peer-to-peer mesh network 120 and get on the Internet 150.
In one preferred embodiment, the CSI entry may be identified as a routing table entry with the same source and destination address. However, if a wireless mesh node does not have a CSI entry or can not establish routing for the CSI entry, in a preferred embodiment, the node may start searching for additional peers, even at the expense of dropping existing peers, until it can receive the CSI entry from its peers and can establish routing for the CSI entry. In one embodiment, searching for additional peers may be terminated after at least one peer is found. Preferably, the search may be terminated after a predetermined number of peers are found. Alternatively, searching for additional peer may be terminated after no peer is found. Preferably, the search may be terminated after a predetermined number of failed attempts is counted. Alternatively, the search may be terminated after a predetermined period of time. In such a case, the termination may be regardless of any successful or failed attempt.
For example, peer node 123 in peer-to-peer mesh network 120 may not have a CSI entry in its routing table. Peer node 123 may send a request to the rest of the peer nodes 121, 122, and 124 for the CSI entry. Peer node 122 may send the CSI entry to the requesting peer node 123 first such that peer node 123 may update its routing table with the CSI entry received from peer node 122 with an incremented number of hop, namely 3 hops to mesh gateway 111. Peer node 123 may then try to establish routing for the CSI entry. If for any reason, the routing cannot be established, peer node 123 may send another request to the rest of peer nodes 121, 122 and 124 again for the CSI entry. In one example, peer node 123 may send a predetermined number of requests, such as 3 requests, to peer nodes 121, 122 and 124 for the CSI entry. If the peer node 123 does not receive any information from peer nodes 121, 122 and 124, or the routing cannot be established based on the information received from peer nodes 121, 122 and 124, then peer node 123 may stop sending the request. Alternatively, peer node 123 may also stop sending the request after the CSI entry information is received from for example 2 nodes, such as peer nodes 121 and 122. Alternatively, peer node 123 may stop sending the request after for example 30 seconds without receiving any response back from peer nodes 121, 122 and 124.
To avoid looping where a node continuously updates its routing table because all of its peers have CSI entries in their respective routing table, in a preferred embodiment, the CSI entry may only be received from nodes that are closer to the gateway, or a node ensuring a network connection, than the node itself. Take the example given above. If peer node 121 is 1 hop away from mesh gateway 111, peer node 122 is 2 hops away from mesh gateway, and peer node 123 is 3 hops away from mesh gateway 111, and peer node 123 has both peer node 121 and peer node 122 as its peers, then peer node 122 only receives the CSI from peer node 121 instead of peer node 123.
In a preferred embodiment, peer node 122 should never accept the CSI from the peer node 123 as long as peer node 122 has peer node 121 in its neighbor list. For example, if peer node 122 loses peer node 121 from its neighbor list, peer node 122 can then accept the CSI from peer node 123. Once peer node 122 accepts the CSI from peer node 123, peer node 122 becomes 4 hops away from mesh gateway 111, through peer node 123.
As mentioned before, the present invention may be extended to applications other than the Internet. For any network that is covered by a wireless peer-to-peer network, to avoid the cluster problem, in a preferred embodiment, one of the nodes within the network can be assigned the task of initiating a CSI-like entry for the whole network. Alternatively, a gateway-like connection, which guarantees a network connection to a destination, may take up the task of initiating a CSI-like entry for the whole network. Alternatively, each node within the network may broadcast its own signal indicating its connection to a destination connected to the network. Other nodes could then search for or request for this signal when attempting to connect to the destination, wherein the destination may be a node, a gateway or any hardware or software connected to the network.
Refer now to
As shown in FIG. 2., the method may start at step 200. Then at step 202, a peer node, such as peer node 122, may first determine if a CSI entry exist within itself. In a preferred embodiment, the CSI may be implemented as an entry in the routing table with mesh gateway 111 as both the destination and the source.
In one embodiment, if peer node 122 does not have such CSI entry, then peer node 122 may increase its transmit power at step 204. For example, peer node 122 may increase its probe power every slow probe period and assert BIT_1 in the message field of its slow probe request packet. Alternatively, peer node 122 may increase its search distance or bandwidth to cover a broader area in order to locate CSI.
Then, at step 206, peer node 122 may request to find a mesh node with the CSI. In one embodiment, if any nearby mesh nodes hear such request, peer node 122 may be included into the nearby mesh nodes' neighbor list. Peer node 122 may also be marked as the mesh node that requires the nearby mesh nodes to relay a data packet.
When the nearby mesh nodes, such as peer nodes 121 and 123, send out their respective CSI, peer node 122 may first determine if the nearby mesh nodes are closer to mesh gateway 111 than it is at step 208. In this example, peer node 121 is one hop away from mesh gateway 111, while peer node 123 is three hops away from mesh gateway 111. As a result, peer node 122 will choose peer node 121 to receive its respective CSI at step 216.
On the other hand, since peer node 123 is not closer to mesh gateway 111 than peer node 122, peer node 122 would determine if any other node in its neighbor list, such as peer node 121, exists at step 210. If peer node 121 exists in peer node 122's peer list, than peer node 122 will not accept the CSI from peer node 123 at step 214 since peer node 121 is closer to mesh gateway 111 than peer node 123. Consequently, going to mesh gateway 111 through peer node 121 is less costly for peer node 122.
However, if peer node 121 no longer exists in peer node 122's peer list, then peer node 122 would then receive the CSI from peer node 123 at step 212. Once the CSI is received by peer node 122, peer node 122 may increase the distance to source by one step 218. For example, in case where peer node 122 receives the CSI from peer node 123, the distance to source is increased to 4 hops by peer node 122.
At step 220, the CSI is added to the routing table of peer node 122. Then, at step 222, peer node 122 may broadcast its respective CSI to its peers such that its peer may request to relay any data packet to mesh gateway 111 through peer node 122.
Once the CSI is added into the routing table, peer node 122 may determine if a routing for such CSI entry can be established at step 224. If so, then peer node 122 may communicate with all other nodes within peer-to-peer mesh network 120 without forming any cluster. The method then ends at step 228.
However, if the routing cannot be established for the CSI entry at step 224, then the method may return to step 206 where peer node 122 may request to find another mesh node with a CSI. The method may repeat from step 206 to step 224 until a routing for a CSI entry can be established for peer node 122, and thus peer node 122 may communicate with all other nodes within peer-to-peer mesh network 120 without forming any cluster. Optionally, peer node 122 may stop requesting to find another mesh node with a CSI after for example a predetermined successful or failed attempt. The method then ends at step 228.
Although the invention has been described in considerable detail with reference to the preferred version thereof, other versions are within the scope of the present invention. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred version contained herein.
This application is related to and claims priority to U.S. provisional patent application, U.S. Provisional Application No. 60/843,298, filed on Sep. 11, 2006, by the applicants Chongjun Jiang et al., entitled “Methods to Avoid Cluster In A Wireless Mesh Network And The System Thereof”.
Number | Date | Country | |
---|---|---|---|
60843298 | Sep 2006 | US |