Abstract:
Embodiments of the present invention solve problems experienced by mesh networks concerning loop formation where two nodes are connected by both a wired and wireless link. The present invention prevents or ‘breaks’ a loop that that would otherwise result in continually repeating and delayed network data transmission.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    The present application is a division and claims the priority benefit of U.S. patent application Ser. No. 12/947,800 filed Nov. 16, 2010, which claims the priority benefit of U.S. provisional application No. 61/261,612 filed Nov. 16, 2009, the disclosure of which incorporate herein by reference. 
         [0002]    The present application is related to U.S. patent application Ser. No. 12/008,715 filed Jan. 11, 2008 and entitled “Determining Associations in a Mesh Network.’ The disclosure of the aforementioned applications is incorporated by reference. 
     
    
     BACKGROUND OF THE INVENTION 
       [0003]    1. Field of the Invention 
         [0004]    The present invention generally relates to wired and wireless communication networks and more particularly to establishing a mesh network with wired and wireless links. 
         [0005]    2. Description of Related Art 
         [0006]    A mesh network allows for communication of information through multiple nodes, which may be distributed over a wide area. The multiple nodes allow for an information packet to travel through multiple routes to a given receiving node or device. The nodes in a mesh network may communicate through wired (e.g. Ethernet) or wireless connections (e.g., IEEE 802.x). 
         [0007]    In a lightweight mesh network, a single wired node may serve as an access point (e.g., a base station). The base station may be in communication with multiple wireless receiving nodes. Each node may have an internal mesh basic service set (MBSS). Each MBSS in the mesh network may have a unique basic service set identifier (BSSID) but share an identical service set identifier (SSID) and/or pre-shared key (PSK). A node may identify another node in the network by reference to that node&#39;s BSSID. The transmission of an information packet from one node to another may be referred to as a hop. Each of the nodes in a mesh network may connect with one another through one or more hops. For example, a first receiving node, or child node, receives information from a parent node via one hop. 
         [0008]    A mesh network where all nodes are directly connected to one other may be referred to as a fully connected network. A mesh network where only some nodes are connected to all other or a subset of nodes may be referred to as a partially connected network. Information transmission in a fully connected network may take only one hop (e.g., from a originating node to a destination child node). In a partially connected mesh network, however, information transmission may require multiple hops through multiple nodes. If there is one node is not directly connected to a particular destination node, transmission of information from the origin to the destination may require passage through an intermediate node (or nodes) thereby invoking at least a two hop transmission. 
         [0009]    In a network composed of wireless and wired links, an information packet may be transmitted to a receiving node or device through multiple nodes over wireless and/or wired connections. Where two nodes are connected by a wireless and a wired link (e.g., an 802.x and an Ethernet connection), the wired link may serve as an alternate route by which the information packet may travel; the wireless connection may be the primary means of packet delivery. The particular route taken by an information packet may be determined by various available routing algorithms at the originating and/or intermediate nodes. Routing algorithms generally seek to transmit and allow for the delivery of information packets to a destination node as quickly and efficiently as possible. 
         [0010]    Determining a route in a partially connected network or wired and wireless connections presents a difficult optimization problem. Routing algorithms may have to determine how a node learns what other nodes are available, with which of the other node(s) to associate, which associations allow for the quickest and most efficient information transfer, and the reliability of those connections. Some routing algorithms may determine or require that a receiving node be associated with particular route(s) and/or particular parent node(s). 
         [0011]    Various circumstances may nevertheless require that a route be changed for a given receiving node. For example, an intermediate transmission node may fail whereby the receiving node and/or parent node has to associate with a different intermediate node. Other circumstances requiring a change in routing may include changes in network traffic volume, changes in data rates, security requirements, and even changes in environmental conditions that might affect the network (e.g., the weather). 
         [0012]    Another problem experienced by a mesh network is loop formation. A loop can form where two nodes are connected by both a wired and wireless link. Since an information packet can travel through any of the two links between the two nodes, it is possible that once a packet is transmitted to a receiving node via the wired link, the packet can be transmitted back to the sending node via the wireless link or vice versa. A loop may be formed resulting in data transmission that continually repeats between two nodes. The result is delays in data transmission and decreased network capacity. 
       SUMMARY OF THE INVENTION 
       [0013]    An exemplary system for determining role assignment is also provided. The system includes a gateway that is connected to a first node. The gateway is configured to allow a first node access to another device or network and is also configured to receive and respond to a message sent by the first node. The message requests a response from the gateway and the gateway is configured to receive and respond to the message sent by the first node. 
         [0014]    Another exemplary embodiment of the present invention includes a method for determining role assignment in a hybrid mesh network. A node in the network sends a message to a gateway via an Ethernet connection. The message to the gateway requests the gateway to respond. Based on the gateway&#39;s response and a detectable presence of a wired beacon on the Ethernet connection, the node then determines whether the node has a direct or indirect connection with the gateway. Where the node has a direct connection to the gateway, the node communicates with the gateway without requiring an uplink connection to another node. Where the node has indirect connection to the gateway, the node communicates with the gateway via an uplink connection with another node. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]      FIG. 1  illustrates a hybrid mesh network implemented in an urban setting. 
           [0016]      FIG. 2  illustrates a hybrid mesh network including a root node, intermediate nodes, and end user devices. 
           [0017]      FIG. 3  illustrates a node that may be implemented in a hybrid mesh network. 
           [0018]      FIG. 4  illustrates a method for breaking a loop between two nodes in a hybrid mesh network. 
           [0019]      FIG. 5  illustrates a method for determining role assignment in a hybrid mesh network. 
       
    
    
     DETAILED DESCRIPTION 
       [0020]      FIG. 1  illustrates a hybrid mesh network  100  implemented in an urban setting. Hybrid mesh network  100  can operate in an urban setting in various structures including commercial or residential buildings  101 - 103 . Hybrid mesh network  100  may be a mesh network that includes both wired nodes  120  and  125  and wireless nodes  110 ,  115 ,  130 , and  135 . Route  140  may be a wired route (e.g. Ethernet) between nodes  120  and  125 . Alternatively, the wired route can be a dedicated point-to-point microwave link that provides an Ethernet abstraction. A route may also be wireless as is the case with routes  145 ,  150 ,  155 ,  160 ,  165 , and  170 . The illustrated routes ( 140 - 170 ) demonstrate the variety of possible routes and associations between the nodes. 
         [0021]    Hybrid mesh network  100  may allow for the transmission of various electromagnetic waves, including wireless radio signals. Hybrid mesh network  100  may be an IEEE 802.11 (Wireless LAN), IEEE 802.16 (WiMax), or other IEEE standards based network. Hybrid mesh network  100  may be local, proprietary, or part of a larger wide-area or metropolitan area network (WAN or MAN). Certain security protocols or encryption methodologies may be used to ensure the security of data exchanges over network  100 . 
         [0022]      FIG. 2  illustrates a hybrid mesh network  200  including a root node  210 , intermediate nodes  220 A- 220 G, and end user devices  230 A- 230 B. A hybrid network  200  like that of  FIG. 2  may be established in an urban setting like that illustrated in  FIG. 1 . Routes  290 ,  292 , and  294  are wired routes between nodes  220 A- 220 B,  220 C- 220 D, and  220  D- 220 E, respectively. Where two nodes are connected by wired and wireless routes, the wired route may serve as another uplink option for the nodes in the network  200 . Hybrid mesh network  200  can support more than one wired network segment at different levels in the topology.  FIG. 2  illustrates various possibilities for node associations and routing. For example, information may be transmitted between root  210  and user device  230 A by way of wireless route  282  to node  220 B, then node  220 A by way of wired route  290 , followed by a hop to node  220 C by way of wireless route  250  and on to user device  230 A by way of wireless route  260 . The same origin to destination may be achieved by way of node  220 B and node  220 C using only wireless routes  282 ,  255 , and  260  (i.e., omitted the wired transmission to node  220 A by way of route  290 ). Network  200  may have certain redundancies in order to maintain optimal network connectivity. For example, each node may be connected to at least two nodes in order to maintain connection during a failure in a transmission path. 
         [0023]    Root node  210  of  FIG. 2  may be a wired backhaul gateway that provides other nodes and devices in the network  200  with access to another network such as the Internet. Backhaul throughput is the throughput between a node and the root node  210 . Root node  210  may advertise an infinite backhaul throughput to other nodes and devices in the network  200 . 
         [0024]    Root node  210  may be an access point, a proxy server, and/or a firewall server. Root node  210  may be implemented such that it can withstand a failure in its transmission path. For example, if the backhaul throughput of root node  210  fails, root node  210  may establish a wireless upstream connection with another root node (not shown) in the network  200  to maintain network connectivity for all downstream nodes and devices. If backhaul throughput is restored, root node  210  can then revert back to being a root node for optimal performance instead of wirelessly communicating with said other root node. Nodes  220 A- 220 G may include a variety of wired and/or wireless transceiver devices distributed over a particular geographic area, which may be as local as the interior of a building or expansive as a metropolitan area and surrounding environs (e.g., the urban environment of  FIG. 1 ). 
         [0025]    Each of nodes  220 A- 220 G may receive information transmitted over a route including root node  210 . For example, nodes  220 A,  220 B,  220 F and  220 G may receive information directly from root node  210  whereas information sent to node  220 C may have to pass through node  220 A or  220 B. Wireless link  240  illustrates a wireless connection between node  220 A and root node  210 . Node  220 A is, in turn, a parent node to node  220 C through wireless link  250  as is node  220 B by way of wireless link  255 . Nodes  220 A and  220 B are connected via wired link  290  in addition to wireless link  245 . Nodes  220 A and  220 B can receive and/or transmit information through either link. 
         [0026]    Some nodes in network  200  may automatically associate with root node  210 . Alternatively, nodes may associate with a parent node based on, for example, uplink throughput. For example, node  220 C may consider associating with various candidate nodes in an effort to communicate with root node  210 . The candidate nodes for such a communications link include nodes  220 A and  220 B. Using information concerning both backhaul and local throughput for each of the candidate nodes, node  220 C may calculate an uplink throughput for each candidate node. An uplink throughput of a candidate node is an approximate throughput from the root node  210  to the calculating node (e.g., node  220 C) if that node were to associate with a particular candidate node. Based on the uplink throughput calculated for each candidate node, the calculating node seeking an uplink association (e.g., node  220 C) may determine which of the candidate nodes offers optimal uplink throughput, which may be representative of the highest uplink throughput. 
         [0027]    Network nodes  220 A- 220 G may also be used to transmit information to a user device. User devices  230 A-B may be used by end users to receive information transmitted through network  200 . User devices  230 A-B may include wireless enabled devices such as laptops and smart phones. Information from another network, such as the Internet, may be transmitted through mesh network  200  to a user device, such as user device  230 A. For example, root node  210  can transmit information from the Internet to user device  230 A through nodes  220 A and  220 C. To transmit information from root node  210  to user device  230 A through the aforementioned hops would require using wireless link  240  to node  220 A, then wireless link  250  to node  220 C, and finally, wireless link  260  to user device  230 A. Other user devices (e.g., user device  230 B) may receive information through different routes. As illustrated in  FIG. 2 , user device  230 B is connected to node  220 F, which is connected to root node  210  over wireless link  280 . 
         [0028]      FIG. 3  illustrates a node that may be implemented in a hybrid mesh network. Node  220 A may be implemented in a wireless network like that discussed in the context of  FIG. 2  and/or  FIG. 1 . Node  220 A may include antenna elements  310 A-K, a processor  320 , memory  330 , a communication device  340 , and an antenna element selector device  350 . Node  220 A may learn about local throughput and backhaul throughput from other candidate nodes using information sent and received by way of antenna elements  310 A-K. The throughput information may be stored in memory  330 . Using the information stored in memory  330 , processor  320  determines an uplink throughput for each candidate node. Antenna elements  310 A-K may then create a wireless association with the candidate node based on the determined uplink throughput and the operation of the antenna element selector device  350 . 
         [0029]    Node  220 A may include a plurality of individually selectable antenna elements  310 A-K like those disclosed in U.S. Pat. No. 7,292,198 for a “System and Method for an Omnidirectional Planar Antenna Apparatus,” the disclosure of which is incorporated herein by reference. When selected, each of the individual antenna elements produces a directional radiation pattern with gain (as compared to an omni-directional antenna). Although antenna elements  310 A-K are symmetrically positioned along the outer edges of node  220 A in  FIG. 3 , the positioning of antenna elements  310 A-K is not limited to a circular arrangement; the antenna elements  310 A-K can be positioned or arranged in a variety of ways on node  220 A. 
         [0030]    Antenna elements  310 A-K may include a variety of antenna systems used to receive and transmit data packets wirelessly. The antenna element  310 A can receive packet data, Transmission Control Protocol (TCP) data, User Datagram Protocol (UDP) data, as well as feedback and other informational data from another node using an IEEE 802.xx wireless protocol. One or more wireless links may be created by antenna element  310 A to allow for data transmission between node  220 A and various other nodes in hybrid mesh network  100 . For example, node  220 A may be associated with one or more parent node(s); further, node  220 A may act as a parent node with associated receiving nodes. In some embodiments, node  220 A may be associated with only one parent node. Node  220 A may operate similarly to those wireless devices disclosed in U.S. patent publication number 2006-0040707 for a “System and Method for Transmission Parameter Control for an Antenna Apparatus with Selectable Elements,” the disclosure of which is incorporated by reference. 
         [0031]    Node  220 A learns about various candidate nodes in a network by using antenna elements  310 A-K to periodically send out background traffic. For example, antenna element  310 A may send out probe requests, which may be received by various candidate nodes. Where node  220 A is already associated with a parent node, antenna element  310 A may send out probe requests only to certain candidate nodes, such as candidate nodes highly ranked in memory  330  (described below). Antenna element  310 A may also limit the probe requests to those candidate nodes whose backhaul throughput is the same or higher than the backhaul throughput of the parent node. 
         [0032]    The candidate nodes may send probe responses, which may be received by antenna element  310 A. A candidate node in a network may advertise backhaul throughput information concerning the throughput between the candidate node and the root node  210 . Receiving the backhaul information in response to its probe request, antenna element  310 A may then provide such information concerning the candidate node to memory  330  and/or processor  320 . In addition, antenna element  310 A may request and receive local throughput information. Local throughput is an approximate measure of the throughput between the candidate node and node  220 A. Antenna element  310 A may use a signal, such as TxCtrl, to provide local throughput information based on results of transmission attempts to a candidate node. 
         [0033]    Antenna element  310 A may further emit a beacon to advertise the backhaul throughput of node  220 A to other nodes in hybrid mesh network  100 . Other nodes in hybrid mesh network  100  attempting to learn about mesh traffic can send out their own probe requests which may be received by antenna element  310 A. In some embodiments, antenna element  310 A may be provided with an uplink throughput associated with the parent node of node  220 A. Antenna element  310 A may then advertise that uplink throughput as the backhaul throughput of node  220 A. The other nodes may receive that backhaul information in response to their own probe requests and may use that backhaul information to determine whether to associate with node  220 A. 
         [0034]    Processor  320  may execute a routing algorithm to calculate the uplink throughput by using local and backhaul throughput information. The uplink throughput may be ranked in memory  330 ; memory  330  may also receive updated information concerning the other nodes. Updated information concerning local or backhaul throughput, for example, may result in updated uplink throughput. 
         [0035]    Other information may be stored in memory  330  and subsequently used. For example, information concerning optimal or detrimental antenna configurations, attempted transmissions, successful transmissions, success ratio, received signal strength indicator (RSSI), and various associations between the same may be stored in memory  330  and used in conjunction with or instead of pure throughput calculations to determine an optimized mesh network connection. Information concerning noise floor, channel, transmission or round-trip delay, channel utilization, and interference levels may also be used. 
         [0036]    Processor  320  executes a variety of operations. The processor  320  may comprise a microcontroller, a microprocessor, or an application-specific integrated circuit (ASIC). The processor  320  may execute programs stored in the memory  330 . Using the information in memory  330 , processor  320  executes the appropriate routing and/or other algorithms determines with which of the candidate nodes to associate with node  220 A. The determination may be based on the uplink throughput of the candidate nodes. For example, processor  320  may determine uplink throughputs for each candidate node in hybrid mesh network  100 . Uplink throughput may be closely approximated using backhaul and local throughput information. An approximation may be derived using the following formula: 1/(1/local throughput+1/backhaul throughput). The uplink throughput determined for each candidate node may also be stored in memory  330 . By comparing the uplink throughput information, processor  320  determines which candidate node to associate with node  220 A. For example, the candidate node with the highest uplink throughput may be chosen to be parent node to node  220 A. 
         [0037]    Processor  320  may also include a centralized management controller (not shown). The centralized management controller may be integrated or operate in conjunction with processor  320  albeit physically separate from the same. The controller may monitor a feature or aspect of the network or node including but not limited to how network topology changes over time, overall network performance, and node failure events. A node may report to the controller and the controller can in turn monitor radio channel assignment and various metrics including but not limited to the number of hops from a candidate node to a root node, route speed, route bandwidth, and load associated with the node. Information about a particular node or aspect of the network may be stored in memory  330  and processed by processor  320 . The information stored in memory  330  may further include each node&#39;s BSSID, SNR, and local and backhaul throughput or may include load information, the number of hops from a candidate node to the root node, and radio channel information. The controller can also control network topology and form an arbitrary topology. 
         [0038]    The centralized management controller may also monitor and control radio channel assignment. A first node in the network may be assigned to a radio channel that is different than a channel assigned to a second node. The option of assigning different radio channels to different nodes can improve network capacity by reducing co-channel interference. 
         [0039]    A change in radio channel may be implemented on a root node and propagated down the topology in a matter of seconds according to standard protocols. The centralized management controller may also automatically scan and monitor different radio channels to determine an optimal radio channel. Once the controller finds an optimal radio channel, the change is implemented at the root node and propagated downwards. A user or client may also access the controller and manually select an optimal radio channel for a particular root node. 
         [0040]    Memory  330  may store various executable instructions, algorithms, and programs. Memory  330  stores information concerning local throughput between wnode  220 A and various candidate nodes in hybrid mesh network  100 . The information stored in memory  330  may be used to determine an approximate uplink throughput from the root node  210  to node  220 A. An exemplary memory  330  may detail information concerning a candidate node including BSSID, signal-to-noise ratio (SNR) of last probe response, local throughput, backhaul throughput, and determined uplink throughput. In some embodiments, the stored information may be ranked, for example, by uplink throughputs from highest to lowest. Memory  330  may be dynamic due to accumulation of information. 
         [0041]    Information in memory  330  may be updated such that processor  320  may determine that another candidate node has a higher uplink throughput. As a result, processor  320  may direct antenna element  310 A to disconnect from a current parent node and to connect instead to the other candidate node with the higher uplink throughput. In some embodiments, the uplink throughput of the other candidate node must exceed the uplink throughput of the current parent by a certain amount before processor  320  will instruct antenna element  310 A to re-associate with the new candidate node. Heuristics may also be involved in determining whether disassociation/re-association occurs. 
         [0042]    The memory  330  may also store transmission schedules, which may specify transmit instructions including physical layer transmission rates for a communication device  340  and antenna configurations for the antenna element  310 A. The transmissions schedule may also include additional information such as transmit power. The transmission schedule may be embodied as a program for execution by low-level hardware or firmware. The transmission schedule may also be embodied as a set of transmission metrics that allow for ‘tuning’ of transmission and retransmission processes in a more efficient manner. 
         [0043]    Node  220 A may also include a communication device  340  for converting data at a physical data rate and for generating and/or receiving a corresponding RF signal. The communication device  340  may include, for example, one or more radio modulator/demodulators for converting data received by the node  220 A (e.g., from a router) into the RF signal for transmission to one or more of the receiving user devices  230 A-B. The communication device  340  may also comprise circuitry for receiving data packets of video from the router and circuitry for converting the data packets into 802.11 compliant RF signals. Various other hardware and/or software devices and/or elements may be integrated with communication device  340  (e.g., physical integration or a communicative coupling) as to allow for the processing and/or conversion of various other data formats into 802.xx compliant RF signals. 
         [0044]    The processor  320  controls the communication device  340  to select a physical data rate (i.e., one of the multiple physical data rates). The processor  320  controls the physical data rate at which the communication device  340  converts data bits into RF signals for transmission via the antenna element  310 A. The selection of a physical data rate may be associated with a particular antenna configuration, and/or other transmission parameters (e.g., transmit power) in the context of a transmission schedule. 
         [0045]    Antenna element selector device  350  operates to selectively couple one or more of the antenna elements  310 A-K to the communication device  340 . Various embodiments of an antenna elements  310 A-K and the antenna element selector device  350  are disclosed in U.S. patent application Ser. Nos. 11/010,076; 11/022,080; and 11/041,145, the disclosures of which are incorporated herein by reference. 
         [0046]    The antenna element selector device  350  may be coupled to the processor  320  to allow, for example, selection from among multiple radiation patterns. The processor  320  controls the antenna element selector device  350  to select an antenna configuration (i.e., one of the multiple radiation patterns) of the antenna element  310 A. The antenna selector device  350  may accept and respond to information (instructions) related to a transmission schedule with regard to the selection of a particular antenna configuration. 
         [0047]      FIG. 4  illustrates a method  400  for breaking a loop between two nodes in a hybrid mesh network. More specifically, the method  400  of  FIG. 4  illustrates the breaking of a loop for a node connected via a wired link and wireless link in said network. The steps of the process of  FIG. 4  may be embodied in hardware or software including a non-transitory computer-readable storage medium including instructions executable by a processor of a computing device. The steps identified in  FIG. 4  (and the order thereof) are exemplary and may include various alternatives, equivalents, or derivations thereof including but not limited to the order of execution of the same. 
         [0048]    At step  410 , a first node detects the presence of a second node in the hybrid mesh network through the Ethernet connection. The second node may be a root node, upstream node, parent node or ancestor node. Wired nodes (or nodes with a wired connection) send periodic broadcasts (wired beacons) over their corresponding Ethernet connection. A first node detects a second node on the Ethernet if the first node receives wired beacons from the second node. An embodiment of the present invention may encapsulate wired beacons within a standard VLAN frame with a pre-configured VLAN_ID. Wired beacons could be encapsulated in other types of packets as long as they could be transported over the Ethernet and could be identified by the access point as wired beacons to be consumed by the access point and not be forwarded over the wireless link. 
         [0049]    At step  420 , the first node determines whether the first node and the second node are connected via an Ethernet connection. Once the second node is detected, it may be automatically assumed to be connected, and proceed to step  430  to suspend the wireless connection. Embodiments of the present invention may recognize that the Ethernet link may not be the best connection available for optimal performance. For example, an Ethernet connection may support 10 Mbps whereas a wireless 802.11n link can support up to 300 Mbps. In such an instance, the access points may suspend the Ethernet link in favor of the wireless link due to better throughput estimate. 
         [0050]    Even if the Ethernet link is suspended, the first node may continue to receive wired beacons. The suspension could be achieved by suspending the necessary packet forwarding logic between the wired and wireless interfaces to break loops. Through such an implementation, an access point can keep listening to the Ethernet interface(s) and listen for wired beacons. 
         [0051]    At step  430 , wireless communication between the first node and the second node is suspended based on the determination that the first node and the second node are connected via the Ethernet connection. Communication between the first node and the second node then commences by way of the Ethernet connection. The suspension of wireless communication between the first node and second node prevents loop formation. Suspension of wireless communication may also occur upon the detection through the Ethernet of a gateway in the network, a root node, a parent or ancestor node, or the appearance of a source packet on multiple ports. 
         [0052]    Wireless communication may also be suspended upon the determination that a particular node in the LAN or within a cluster of nodes has the highest approximation of uplink throughput to the root node. For example, a first node and second may be connected by a wired and wireless link. The approximation of uplink throughput information of the second node may be received by the first node as a result of a probe request. The first node may alternatively receive the approximation of uplink throughput of the second node via a broadcast, multicast or unicast addressing, or any other method of disseminating throughput information. Such message or broadcast could be sent on a periodic basis or according to a schedule. The first node may compare the received approximation of uplink throughput to local throughput and the node with the optimal (or highest) approximation of uplink throughput is determined. 
         [0053]    The processor  320  may determine that the second node has a lesser approximation of uplink throughput to the root node than the approximation of uplink throughput of the first node to the root node. In such scenario, the first node has the highest approximation of uplink throughput between the two nodes and the first node suspends wireless communication with the second node. The first node may then send a message or broadcast to all other nodes in the LAN or within a cluster of nodes that it has the highest approximation of uplink throughput to the root node. 
         [0054]    At step  440 , wired communication between the first node and second node commences by way of the wired connection. 
         [0055]      FIG. 5  illustrates a method  500  for determining role assignment in a hybrid mesh network. The steps of the process of  FIG. 5  may be embodied in hardware or software including a non-transitory computer-readable storage medium including instructions executable by a processor of a computing device. The steps identified in  FIG. 5  (and the order thereof) are exemplary and may include various alternatives, equivalents, or derivations thereof including but not limited to the order of execution of the same. 
         [0056]    At step  510 , a node may send out a message (e.g., using Address Resolution Protocol) to a gateway via a wired connection. For example, a first node may use a gateway detection mechanism to send out a message to the gateway to elicit a response from it. The message or broadcast could be sent on a periodic basis or according to any other schedule. 
         [0057]    At step  520 , the node determines whether the node has direct or indirect connection with the gateway based on the gateway response to the message and a detectable presence of a wired beacon on the Ethernet connection. The gateway may or may not send a response and the node may or may not receive a response from the gateway. In any instance where the node receives a response from the gateway or where the presence of a wire beacon is detected, such response or information may be stored in memory  330  and processed by processor  320 . If the node does not receive a response from the gateway within a certain period of time, the node determines that there is an indirect connection between the node and the gateway (e.g. the transmission path to the gateway traverses at least one hop). The node may then communicate with the gateway via an uplink connection with another node at step  530 . 
         [0058]    If the node receives a response from the gateway and a wired beacon is detected, the node may determine that there is an indirect connection between the node and the gateway. The node may communicate with the gateway via an uplink connection with another node at step  530 . If the node receives a response from the gateway and a wired beacon is not detected, the node may determine that there is a direct connection between the node and gateway (e.g. the transmission path to the gateway does not traverse a hop). The node may then communicate with the gateway without requiring an uplink connection to another node at step  540 . 
         [0059]    In step  540 , wireless communication between the second node and an upstream node is suspended after the processor  320  determines that the second node has a lesser approximation of uplink throughput to the root node than the approximation of uplink throughput of the first node to the root node. 
         [0060]    The present invention may be implemented in the context of core and access networks. A hybrid mesh may be an access network that provides wireless clients communication access to the core network, which then provides access to other networks such as the Internet. A root node in such a network provides wireless access to the core network. A gateway in the core network then provides access to another network such as the Internet. The core network may include backhaul links, which could be wired (Ethernet) or wireless (microwave or point to point), or even another independent hybrid mesh network. Chains of hybrid mesh networks can be created to establish more than two levels thereby extending core v. access heirarchys in the network. 
         [0061]    Other network routes may be used besides wired and 802.x wireless networks. For example, in addition to multiple 802.x radios (e.g., a 5 GHz and a 2 GHz radio), other point-to-point links may used such as microwave, Bluetooth, and fiber. Such links could be used to improve capacity and/or serve as a redundant link for failovers. 
         [0062]    While the present invention has been described in connection with a series of illustrative embodiments, these descriptions are not intended to limit the scope of the invention to the particular forms set forth herein. To the contrary, the present descriptions are intended to cover such alternatives, modifications, and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims and otherwise appreciated by one of ordinary skill in the art.