WO2021094834A1 - Systems and methods for operating tree-based wireless networks - Google Patents

Systems and methods for operating tree-based wireless networks Download PDF

Info

Publication number
WO2021094834A1
WO2021094834A1 PCT/IB2020/000998 IB2020000998W WO2021094834A1 WO 2021094834 A1 WO2021094834 A1 WO 2021094834A1 IB 2020000998 W IB2020000998 W IB 2020000998W WO 2021094834 A1 WO2021094834 A1 WO 2021094834A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
nodes
child
network
router
Prior art date
Application number
PCT/IB2020/000998
Other languages
French (fr)
Inventor
Pinchas Ziv
Reuven Cohen
Eran Ben-Shmuel
Alexander Bilchinsky
Original Assignee
Juganu Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Juganu Ltd. filed Critical Juganu Ltd.
Priority to EP20886788.7A priority Critical patent/EP4059312A1/en
Publication of WO2021094834A1 publication Critical patent/WO2021094834A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Definitions

  • the present invention relates generally to tree-based wireless networks, and in various embodiments more specifically to approaches for efficiently and reliably routing a multicast packet in such networks.
  • the present invention relates to approaches for fast connectivity recovery in tree-based distance-vector routing protocols.
  • One commonly used wireless network has a tree-based structure. This network architecture is often deployed in device networks organized or governed by controllers. For example, tree-based wireless networks are often used when a controller controls a group of network members (or “nodes”); each group member will be reachable via a path across the wireless tree, enabling a point-to-multipoint communication (P2MP) (such as from the controller to some or all of the nodes) and multipoint-to-point communication (MP2P) (such as from some or all of the nodes to the controller).
  • P2MP point-to-multipoint communication
  • MP2P multipoint-to-point communication
  • Common applications include controlled lighting systems, city -wide automatic meter-reading systems, and other municipal and commercial device networks.
  • the wireless network may use various random-access algorithms to access the wireless channels.
  • a “carrier-sense multiple access with collision avoidance” (CSMA/CA) algorithm may be used to access a radio channel for packet delivery (in accordance with, e.g., the IEEE 802.15.4 and 802.11 standards).
  • CSMA/CA carrier-sense multiple access with collision avoidance
  • a root- originated group packet may be delivered in the tree network using various approaches. For example, referring to FIG. 1 A, one conventional approach for delivering a packet containing a target group identifier and packet payload from a tree root to a target group is to “flood” the entire tree and broadcast the packet to all nodes thereon. Each node, upon receipt of the broadcast packet, may re-broadcast the received multicast message.
  • ARQ automatic request repeat
  • MAC medium access control
  • ACKs medium access control acknowledgments
  • Another conventional approach for delivery of a packet from the tree root to the target group is by individual unicasting.
  • the root may generate (or receive from a network-management system) a unicast message containing a target multicast group identifier.
  • unicasting generally applies the ARQ procedure in standard MAC protocols, all nodes along the path(s) to the target node(s) deliver the message as a unicast message with acknowledgement. As a result, the probability that the message will reach the target node is higher than with unacknowledged delivery via broadcasting. But this approach has its own deficiencies.
  • a node when a node transmits a packet to a group of N nodes associated therewith in the tree network, at least N unicast packets with N acknowledgements have to be delivered to the group of nodes; such a scheme increases the packet load and is wasteful of network resources. The situation may be aggravated when delivery fails, as each node that failed to receive the packet may require unicast redelivery.
  • Another conventional approach for delivery of a packet is by multicasting. For example, referring to FIG. 1C, multicast delivery may be performed via unicasting followed by broadcasting.
  • the root node 112 first delivers the message to the “first” node 114 via unicasting; subsequently, the node 114 broadcasts the message to the sub-trees 116, 118 containing the target group members therebelow.
  • first node refers to the node that receives messages via unicasting. While multicast approaches may effectively save network bandwidth, like broadcast they do not employ the ARQ procedure in standard MAC protocols; thus, some packets may not reach one or more members of the targeted group of nodes.
  • link-state routing protocols require every node to construct a map of connectivity to the network such that each node can independently calculate the best logical path from it to every possible destination node in the network. A collection of the best paths then forms a routing table for each node to use.
  • Another routing approach involves a distance-vector routing algorithm that allows each node to share its routing table with its neighbors.
  • distance-vector routing protocols assign weights to each link in the network and computes a “distance” to a destination by summing the weights along each possible path.
  • Distance-vector routing protocols require each node to maintain the distance from itself to each possible destination and the neighbor through which to reach that destination. Whenever the network topology changes, each node in distance-vector routing protocols transmits new distance vectors to each of its neighbors, thereby allowing each neighbor to recalculate its routing table.
  • distance-vector routing protocols are their smaller bandwidth overhead. This is particularly important in wireless mesh networks where hundreds or thousands of nodes are included and the available bandwidth is too small to run the link state routing protocols. But the distance-vector routing protocols have their own deficiencies. For example, the recovery time after a link (or connectivity) failure between two nodes may be relatively long; and the longer the recovery time is, the longer other network activities are halted (due to the large bandwidth being consumed by the recovery process). Typically, the long recovery time results from a routing loop created by a node that chooses another next- hop neighbor to connect with after the node loses connectivity to its neighbor that serves as the next hop towards a destination. For example, referring to FIG.
  • node B may lose its connectivity to its parent node A; node B may then search for a new parent node to re-establish the connectivity to the tree network.
  • node B may receive offers from all its neighboring nodes (e.g., nodes D, E and G). But because node B knows that nodes D and E are child nodes, node B will not accept their offers. Node B, however, may not know that node G is a child node of node D and may thus accept node G to be its new parent node; this then creates a routing loop 152 as depicted. [0011]
  • Various approaches have been proposed to avoid creation of a routing loop.
  • the routing protocol for low-power and lossy networks allows node B to dismiss its entire subtree; each node in the subtree can subsequently choose a new parent node.
  • node B upon losing the connectivity to node A, dismisses its subtree including nodes D, E and G.
  • Node E may then choose node C as its new parent node; and subsequently, nodes B, D and/or G may choose node E as their new parent node.
  • dismissing the entire subtree prevents the nodes in the subtree from communicating to the gateway for a long time.
  • dismissing a subtree with many nodes may result in a very long recovery time.
  • Another approach for avoiding a routing loop in a tree network involves the use of a “path vector” — i.e., each node, when making an offer to its neighboring node, includes a description of the route it utilizes to reach the root node of the tree.
  • a “path vector” i.e., each node, when making an offer to its neighboring node, includes a description of the route it utilizes to reach the root node of the tree.
  • node G may specify its route to node A as A-B-D-G.
  • node B receives the offer from node G with the description, it can recognize that node G cannot be its new parent node as this would create a routing loop. While this approach may decrease the likelihood of creating a routing loop, it cannot guarantee that the tree can recover from the connectivity failure.
  • FIG. 1 each node, when making an offer to its neighboring node, includes a description of the route it utilizes to reach the root node of the tree.
  • the path-vector approach cannot provide such a solution. Moreover, the path-vector approach cannot guarantee that no routing loops will be created. For example, referring to FIG. IF, assuming the links from node B to node A and from node C to node A both fail (this may be possible due to a wireless interference near node A), when the path-vector approach is implemented, node B may choose node C as its new parent node and node C may choose node E as its parent new node; as a result, a routing loop 154 is created.
  • the present invention relates to approaches for efficiently and reliably delivering a packet to a target group of nodes in a tree-based wireless network by using a broadcast- with-ARQ frame that includes the packet and a string of bits; each bit in the string corresponds to a link identifier of a child node to which the parent node transmits the packet.
  • the parent node creates the link identifier and transmits it to the child node, e.g., for storage in a database of or associated with the child node.
  • the parent node may generate the string of bits based on the link identifiers of the child nodes to which the packet is transmitted.
  • the most significant bit (MSB) position in the generated string may correspond to the highest number of the link identifiers; as the bit position moves away from the MSB, the corresponding number of the link identifier may decrease until the least significant bit (LSB) position corresponds to the lowest number of the link identifier.
  • the parent node may then transmit the packet and the string of bits via the broadcast-with-ARQ frame in the MAC layer to its associated child nodes.
  • the child nodes may retrieve their link identifiers from the databases and process the frame to acquire the binary values in the bit positions associated with their link identifiers. If the bit values are zero (i.e., “CLEAR”), the child nodes are not required to respond with acknowledgments (ACKs) to the parent nodes. If, however, the bit values are non-zero (i.e., “SET”), the child nodes are required to report the ACKs to the parent node.
  • each child node determines its reporting time of the response ACK based on its corresponding bit position in the string and an ACK duration (which is defined by the transmission duration of the ACK and the time interval between successive ACKs). Subsequently, each child node can report the ACK to the parent node at the computed reporting time. Thereafter, each child node may act as a parent node to create a string of bits based on the link identifiers of its associated child nodes and deliver the received packet and the created string of bits via a new broadcast-with-ARQ frame to its associated child nodes (or a selected group of its child nodes). This procedure may be implemented by the network nodes along the path to the target node(s).
  • various embodiments herein may efficiently deliver the packet from the parent node to all of its associated child nodes in a broadcasting manner (or to a selected group of child nodes in a multicasting manner).
  • the child nodes can determine whether and when to report the ACKs to the parent node based on the bit positions associated with their link identifiers in the string, the parent node can easily identify the child nodes that should have but did not receive the packet and, based thereon, retransmit the packet thereto (e.g., using the ARQ procedure in a unicasting manner).
  • approaches described herein may reliably deliver the packet to the target group of nodes in the wireless tree network.
  • the present invention relates to approaches for promptly recovering from a connectivity failure in a tree-based distance- vector routing protocol by assigning a rank number to each node in the network.
  • the rank number is assigned based on a number of intermediate nodes (or “hops”) traversed by a packet transmitted from the corresponding node en route to the root node using the distance-vector routing protocol. For example, a node having a smaller number of hops to the root node may have a smaller rank number than a node having a larger number of hops to the root node.
  • the node may search for a new parent node that has a rank number smaller than its own.
  • the node may associate itself with the new parent node to reconnect to the tree network. If, however, the new parent node is not identified immediately, the node may “freeze” the nodes in its subtree by broadcasting a message to its child nodes, which then broadcast the same freezing message to their child nodes and so on until the freezing message propagates down the entire subtree.
  • a “frozen” node can neither offer to be a parent node of another node nor accept any new node as its child node.
  • the node losing connectivity to its parent node may perform a second search for the new parent node that has a smaller rank number than the node. If the new parent node is found within a predetermined time period (e.g., 10 seconds or 20 seconds), the node may associate itself with the new parent node so as to reconnect to the network; subsequently, the node may transmit an updated beacon message to its child nodes to unfreeze the subtree. If, however, the new parent node cannot be identified within the predetermined time period, the node may increase its rank number to infinity and transmit this information to its child nodes to cause dismissal of the child nodes.
  • a predetermined time period e.g. 10 seconds or 20 seconds
  • the child nodes may proceed with the same search(es) performed by their previous parent node — i.e., performing (i) the search immediately after being dismissed and, if necessary, (ii) the second search within the predetermined time period in order to reconnect to the network. Again, if a new parent node cannot be identified in both searches within the predetermined time periods, the child nodes may dismiss the child nodes associated therewith.
  • various embodiments herein do not dismiss the entire subtree immediately after a node loses its connectivity to the parent node in the network. Rather, only the child nodes of the node that loses connectivity may be dismissed after a new parent node cannot be identified, for example, in two rounds of searches. In addition, because the node losing connectivity only searches for a new parent node that has a smaller rank number than its own, the node cannot choose any of the child nodes in its subtree to be the new parent node; this thereby avoids creation of a routing loop in the network.
  • no child nodes in the subtree of the node that loses connectivity may be frozen during the second search, no child nodes in the subtree can offer to be the parent node or accept the node as their new child node. This may further ensure that no routing loops are created in the network.
  • the invention pertains to a method of routing a packet in a network having multiple cells each supporting communication among multiple transceiver nodes therein and being capable of receiving and transmitting the packet; each cell includes a parent node and one or more child nodes.
  • the method includes (a) for each cell, establishing and storing an identifier table having one or more link identifiers associated with the one or more child nodes; (b) upon receiving a packet, generating a string of one or more bits based at least in part on the link identifier(s); and (c) transmitting the packet and the string to the child node(s).
  • the pack and the string in step (c) are transmitted in a broadcasting manner.
  • the method may further include receiving ACK(s) from the child node(s). The child node(s) may transmit the ACK(s) only when the value(s) of the bit(s) is non-zero.
  • one or more of the cells include multiple child nodes and each of the identifier tables in these cells includes multiple link identifiers, each associated with one of the child nodes; in addition, the string generated in step (b) includes multiple bits, each corresponding to one of the link identifiers.
  • the most-significant bit (MSB) position in the string corresponds to the highest number of the link identifiers, and as the bit position moves away from the MSB, the corresponding number of the link identifier decreases.
  • the method may further include receiving at least some ACKs from at least some of the child nodes; each of the child nodes transmits the ACK at a transmitting time based at least in part on the bit position associated with its link identifier in the string.
  • the transmitting time associated with each of the child nodes is further based at least in part on a transmission duration of the ACK and a time interval between two successive ACKs.
  • the method may further include, upon determining that the ACK from one of the child nodes is not received at the transmitting time associated therewith, retransmitting the packet to the child node.
  • the invention relates to a router for handling packets in a network.
  • the router includes memory for storing an identifier table having multiple link identifiers and multiple child nodes, each of the link identifiers being associated with one of the child nodes of the router; and a routing module configured to (a) upon receiving a packet, generate a string of one or more bits based at least in part on one or more of the link identifiers; and (b) transmit the packet and the string to the child node(s) associated with the link identifier(s).
  • the routing module is further configured to transmit the pack and string in a broadcasting manner.
  • the routing module may be further configured to receive an ACK from the child node.
  • the child node transmits the ACK only when a value of the bit associated therewith is non-zero.
  • the string generated in step (a) includes multiple bits, each corresponding to one of the link identifiers. The MSB position in the string may correspond to the highest number of the link identifiers, and as the bit position moves away from the MSB, the corresponding number of the link identifier may decrease.
  • the routing module may be further configured to receive at least some ACKs from at least some of the child nodes; each of the child nodes transmits the ACK at a transmitting time based at least in part on the bit position associated with its link identifier in the string. Further, the transmitting time associated with each of the child nodes may be further based at least in part on a transmission duration of the ACK and a time interval between two successive ACKs.
  • the routing module is further configured to, upon determining that the ACK from one of the child nodes is not received at the transmitting time associated therewith, retransmit the packet to the child node.
  • Another aspect of the invention relates to a network system for routing a packet in a network having multiple cells each supporting communication among multiple transceiver nodes therein and being capable of receiving and transmitting the packet; each cell includes a parent node and one or more child nodes.
  • the system includes memory for storing an identifier table having one or more link identifiers associated with the one or more child nodes; and one or more network management systems associated with one or more of the transceiver nodes.
  • the network management system(s) may be configured to (a) upon receiving a packet, generate a string of one or more bits based at least in part on the link identifier(s); and (b) transmit the packet and the string to the child node(s).
  • the network management system(s) is further configured to transmit the pack and string in a broadcasting manner.
  • the network management system(s) may be further configured to receive ACK(s) from the child node(s). The child node(s) may transmit the ACK(s) only when the value(s) of the bit(s) is non-zero.
  • one or more of the cells include multiple child nodes and each of the identifier tables in these cells includes multiple link identifiers, each associated with one of the child nodes; in addition, the string generated in step (a) includes multiple bits, each corresponding to one of the link identifiers.
  • the most-significant bit (MSB) position in the string corresponds to the highest number of the link identifiers, and as the bit position moves away from the MSB, the corresponding number of the link identifier decreases.
  • the network management system(s) may be further configured to receive at least some ACKs from at least some of the child nodes; each of the child nodes transmits the ACK at a transmitting time based at least in part on the bit position associated with its link identifier in the string. Further, the transmitting time associated with each of the child nodes may be further based at least in part on a transmission duration of the ACK and a time interval between two successive ACKs.
  • the network management system(s) may be further configured to, upon determining that the ACK from one of the child nodes is not received at the transmitting time associated therewith, retransmit the packet to the child node.
  • the invention pertains to a method of recovering a connectivity failure in a network including multiple cells each (i) supporting communication among multiple transceiver nodes, (ii) being capable of receiving and transmitting a packet and (iii) being associated with a parent node and one or more child node.
  • the method includes (a) assigning a rank number to each of the nodes; (b) upon detecting a connectivity failure of one of the nodes to its parent node, searching for a new parent node based at least in part on the rank numbers assigned to the nodes; and (c) upon identifying the new parent node within the first predetermined time period (e.g., a transmission time of three beacon messages), reconnecting the node to the network by associating it with the new parent node.
  • the rank number is assigned based at least in part on a number of intermediate nodes traversed by the packet transmitted from the node en route to a root node in the network using a distance-vector routing protocol.
  • the new parent node may have a rank number smaller than that of the node.
  • the method further includes, upon determining that the new parent node is not identified within the first predetermined time period, transmitting a message from the node to the child node(s) associated therewith so as to freeze activities thereof.
  • the method may further include, thereafter, searching for the new parent node for the second predetermined time period (e.g., between 10 seconds and 20 seconds).
  • the method further includes, upon identifying the new parent node within the second predetermined time period, (i) reconnecting the node to the network by associating it with the new parent node and/or (ii) updating the rank number associated with the node based at least in part on the rank number associated with the new parent node.
  • the method may further include transmitting an update message from the node to the child node(s) associated therewith so as to unfreeze the activities thereof.
  • the method further includes, upon determining that the new parent node is not identified within the second predetermined time period, (i) increasing the rank number associated with the node and (ii) transmitting an update message from the node to the child node(s) associated therewith so as to disconnect the child node(s) therefrom. Additionally, the rank number associated with the node may be increased to infinity.
  • the router includes an assignment module configured to assign a rank number to the router; a search module configured to detect a connectivity failure of the router to its parent node and thereupon to search for a new parent node within the first predetermined time period (e.g., a transmission time of three beacon messages) and based at least in part on the rank number assigned to the router; and a connection module configured to detect identification of the new parent node by the search module and to responsively associate the router with the new parent node so as to reconnect the router to the network.
  • the first predetermined time period e.g., a transmission time of three beacon messages
  • the rank number is assigned based on a number of intermediate nodes traversed by a packet transmitted from the router en route to a root node in the network using a distance-vector routing protocol.
  • the new parent node may have a rank number smaller than that of the router.
  • the connection module may be further configured to detect failure of the search module to identify the new parent node and to responsively transmit a message from the router to one or more child nodes associated therewith so as to freeze activities thereof.
  • the search module may be further configured to search for the new parent node for the second predetermined time period (e.g., between 10 seconds and 20 seconds) after the activities of the child node(s) are frozen.
  • the connection module may be further configured to detect identification of the new parent node within the second predetermined time period and to responsively (i) associate the router with the new parent node so as to reconnect the router to the network and/or (ii) cause the assigning module to update the rank number associated with the router based at least in part on the rank number associated with the new parent node.
  • connection module is further configured to transmit an update message to the child node(s) associated so as to unfreeze the activities thereof.
  • the connection module may be further configured to detect failure to identify the new parent node within the second predetermined time period and to responsively (i) increase the rank number associated with the router and (ii) transmit an update message to the child node(s) so as to disconnect the child node(s) from the router.
  • the rank number associated with the router is increased to infinity.
  • the invention relates to a network system for recovering a connectivity failure in a network having multiple cells each (i) supporting communication among multiple transceiver nodes, (ii) and being capable of receiving and transmitting a packet and (iii) being associated with a parent node and one or more child nodes.
  • the system includes memory for storing multiple rank numbers each associated with one of the nodes in the network; multiple network management systems each associated with one of the nodes and being configured to (i) detect a connectivity failure of the system- associated node, (ii) search for a new parent node based at least in part on the rank numbers assigned to the nodes in the network, and (iii) upon identifying the new parent node within the first predetermined time period (e.g., a transmission time of three beacon messages), associate the system-associated node to the new parent node.
  • the first predetermined time period e.g., a transmission time of three beacon messages
  • the rank number is assigned based on a number of intermediate nodes traversed by the packet transmitted from the node that has the connectivity failure en route to a root node in the network using a distance-vector routing protocol.
  • the new parent node may have a rank number smaller than that of the node having the connectivity failure.
  • the network management system may be further configured to determine that the new parent node is not identified within the first predetermined time period and to thereupon cause transmission of a message from the system-associated node to the child node(s) associated therewith so as to freeze activities thereof.
  • the network management system may be further configured to search for the new parent node of the system-associated node for the second predetermined time period (e.g., between 10 seconds and 20 seconds) after the activities of the child node(s) are frozen.
  • the network management system is further configured to, upon identifying the new parent node within the second predetermined time period, (i) associate the system-associated node with the new parent node and/or (ii) update the rank number associated with the system-associated node based at least in part on the rank number associated with the new parent node.
  • the network management system may be further configured to cause transmission of a message from the system-associated node to the child node(s) associated therewith so as to unfreeze the activities thereof.
  • the network management system may be further configured to, upon determining that the new parent node is not identified within the second predetermined time period, (i) increase the rank number of the system-associated node and (ii) cause transmission of an update message from the system-associated node to the child node(s) associated therewith so as to disconnect the child node(s) therefrom.
  • the rank number associated with the system-associated node may be increased to infinity.
  • FIGS. 1A-1C depict various conventional approaches for delivery of a packet from a root node to a target group of nodes in a tree-based wireless network
  • FIGS. ID- IF depict various conventional approaches for recovering from a connectivity failure in a tree-based distance- vector routing protocol
  • FIG. 2 conceptually illustrates an exemplary tree-based wireless network having multiple network nodes in accordance with various embodiments
  • FIG. 3 conceptually depicts an identifier table including a list of link identifiers and optional MAC addresses corresponding to the child nodes of a parent node in accordance with various embodiments;
  • FIG. 4 conceptually depicts an exemplary string of bits contained in a broadcast- with-ARQ frame for representing the child nodes of a parent node in accordance with various embodiments
  • FIG. 5 is a flow chart illustrating an exemplary approach for efficiently and reliably delivering a packet to a target group of nodes in a tree-based wireless network in accordance with various embodiments
  • FIG. 6 depicts a rank number associated with each node in a tree-based wireless network in accordance with various embodiments
  • FIG. 7A depicts an exemplary connectivity failure in a tree-based wireless network in accordance with various embodiments
  • FIG. 7B depicts an exemplary recovered tree-based wireless network after a connectivity failure in accordance with various embodiments; and [0046] FIG. 8 is a flow chart illustrating an exemplary approach for promptly recovering from a connectivity failure in a tree-based distance-vector routing protocol in accordance with various embodiments..
  • FIG. 2 conceptually illustrates an exemplary tree-based wireless network 200 comprising multiple network nodes 202, each including one parent node and one child node, for multicast routing of messages such as group packets across the network 200 in accordance herewith.
  • the parent node contained in node 204 may transmit a packet to the child nodes contained in nodes 206-210, and the child nodes contained in node 206 may receive the packet from the parent node contained in node 204.
  • Each group packet may include a payload (e.g., a data packet) and routing information (such as target bit identifier vectors, target multicast group IDs, etc.) as described in PCT Publication No.
  • each group packet may be delivered via a special MAC layer frame (called “broadcast-with- ARQ frame”) that includes a string of bits representing the child nodes with which the parent node is associated as further described below.
  • a special MAC layer frame called “broadcast-with- ARQ frame”
  • each network node 202 is a member of a transceiver “cell,” i.e., a discrete geographic region having fixed-location transceivers on, for example, lighting poles.
  • a transceiver cell typically includes a “parent” node (e.g., the parent node contained in node 204) and one or more child nodes (e.g., the child nodes contained in nodes 206-210).
  • each of the parent and child nodes may include one transceiver.
  • the parent node is the “owner” of the cell node(s); a child node may be associated with only one parent node at a time.
  • the child nodes connect to their parent nodes via a “wireless tree branch.”
  • the child node(s) in a cell are within the radio transmission range of the parent node and vice versa.
  • the parent node and its child nodes are within a one-hop distance from each other.
  • a data packet can be delivered in a “downlinked” manner — i.e., from the parent node to its child node(s) (e.g., using broadcasting to all child nodes, multicasting to a selected subset of the child nodes, or unicasting to a specific child node) and/or in an “uplinked” manner — i.e., from a child node to its associated parent node using, for example, unicasting.
  • the child node may discard the data packet.
  • the parent node may discard the data packet.
  • each node acts as both a parent node and a child node.
  • the parent node is an entity contained in a node that acts as a cell parent; and the other cell members are child nodes of the parent node located one hop away from the parent node.
  • the child node is an entity contained in a node and is a cell member “owned” by a parent in another node (e.g., one-hop distance away that acts as the parent).
  • the tree-based wireless network 200 may be constructed dynamically using one or more conventional protocols and algorithms.
  • the network 200 is constructed as a spanning tree that interconnects each network node via a unique path to the tree root node. The same path may connect the tree root node to a network node.
  • the network 200 is constructed as multiple spanning trees with appropriate identifiers per tree; each tree (and thereby its associated identifier) supports a unique path between the tree root node and a network node on that tree.
  • a downlink data packet that “originates” from the tree root node may traverse a path across the tree that includes a collection of the network nodes wirelessly interconnected from the parent node of one network node to a child node within the parent’s cell (i.e., one hop away).
  • the destination network node can be reached via multiple hops.
  • the path from the root node to the target node is always the same; in other words, the path acts as a “virtual circuit” for a data packet to be delivered from the root node to a target node.
  • the virtual circuit may maintain the in-order delivery of packets, but does not guarantee that all delivered packets will reach the destination.
  • an uplink message may be delivered from a node to the root node via traversing a path therebetween.
  • the uplink message may propagate along the wireless branches — i.e., from the originating child node (e.g., a child contained within node X) to its associated parent node (e.g., the parent contained within node Y), then internally propagate from the receiving parent node to the child node contained within the same node (e.g., node Y), then propagate further up to the parent node (e.g., contained within node Z) associated with the child node within node Y, and so on.
  • the originating child node e.g., a child contained within node X
  • its associated parent node e.g., the parent contained within node Y
  • the parent node e.g., contained within node Z
  • each node contains two radio transceivers: one used by the parent within the node to send and/or receive data packets from the associated child node(s) and the other used by a child node within the node to send and/or receive data packets from the associated parent in another node.
  • the tree structure may enable (i) each network node to deliver an uplink message directed to the tree root node (using e.g., MP2P) via a path determined by the tree structure, and (ii) the root node to deliver a downlink message to a selected node (using e.g., P2MP) via a path determined by the tree structure.
  • a collection of network nodes that have the same capability may form a group.
  • Each network node may be a member of (and thereby support) one or more groups.
  • a node may be a member of a city wide sensor group and a member of a group corresponding to a specific type of street lighting controller.
  • the group members may be distributed across the tree structure in any fashion.
  • the group members may be concentrated in a geographical area (e.g., light controllers distributed in a specific neighborhood) or may be distributed citywide (e.g., air-quality sensors distributed across a city).
  • the geographical location of one group may or may not overlap with that of another group.
  • the tree-based network 200 can (but need not necessarily) be optimized for a certain group delivery. In one embodiment, the tree-based network 200 is constructed with various optimization rules without considering the possible group distributions.
  • the wireless tree network 200 further includes a network management system (NMS) 212 to control one or more gateways that act as tree root nodes to the tree-based network.
  • NMS network management system
  • the NMS 212 may generate a message (e.g., a group packet) to the tree root(s) which then transmits the message to a specific network node or to a group of network nodes.
  • the NMS 212 may be equipped with memory having a database to store information associated with the tree root nodes, network nodes and groups reachable via the corresponding tree roots.
  • each node 202 in the network 200 includes an individual NMS 214 having one or more modules (e.g., a routing module 215) for performing various functions (such as generating a string of bits, configuring the packet and string of bits as a the broadcast-with-ARQ frame, delivering the broadcast- with-ARQ frame to all its associated child nodes (if broadcasting) or a selected group of its associated child nodes (if multicasting), receiving the broadcast-with-ARQ frame from its parent node, determining whether and when to transmit an ACK to its parent node, reporting the ACK at the determined time, etc.) as further described below.
  • modules e.g., a routing module 215
  • modules e.g., a routing module 215
  • functions such as generating a string of bits, configuring the packet and string of bits as a the broadcast-with-ARQ frame, delivering the broadcast- with-ARQ frame to all its associated child nodes (if broadcasting) or a selected group of its associated child nodes (if multi
  • the NMS 214 includes a rank-number-assignment module 216 for assigning a rank number to each node in the network and/or increasing the rank number to infinity, a search module 218 for searching for a new parent node, and a connection module 220 for associating the node to the new parent node and/or broadcasting a message to its child node(s) to cause “freezing” thereof, etc. as further described below.
  • the NMS 214 may be equipped with memory having a database to store information associated with the parent node and child nodes (e.g., an identifier table including a list of link identifiers and optional MAC addresses corresponding to the child nodes).
  • the database stores a rank number of the node 202 with which the NMS 214 is associated and the parent node and child nodes associated with the node 202.
  • the NMS 212/214 may include or consist essentially of a computing device, e.g., a server, which executes various program modules to perform methods in accordance with embodiments of the present invention.
  • the memory may include or consist essentially of one or more volatile or non-volatile storage devices, e.g., random-access memory (RAM) devices such as DRAM, SRAM, etc., read-only memory (ROM) devices, magnetic disks, optical disks, flash memory devices, and/or other solid-state memory devices to store information associated with the tree root nodes and network nodes.
  • RAM random-access memory
  • ROM read-only memory
  • magnetic disks magnetic disks
  • optical disks optical disks
  • flash memory devices and/or other solid-state memory devices to store information associated with the tree root nodes and network nodes.
  • the packet is delivered via a broadcast- with- ARQ frame 222.
  • the broadcast-with-ARQ frame 222 may include a string of bits (or link identifiers); each bit corresponds to a child node associated with the parent node.
  • the network node 302 may include an identifier table 304 having a list of link identifiers 306 and optional MAC addresses 308 corresponding to the child nodes 310, 312, 314 associated therewith.
  • the parent node 302 may assign the link identifier to each child node based on its order of association with the parent node.
  • the parent node 302 may assign the child nodes 310, 312, 314 with link identifiers of 0, 1, 2, respectively.
  • the NMS associated with the node 302 may generate a string 316 of bits based on the list of link identifiers 306 and subsequently configure the packet and the string of bits 316 as a broadcast-with-ARQ frame for delivery.
  • the number of bits in the string 316 is equal to the number of child nodes (or a selected group of child nodes) with which the parent node 302 is associated.
  • the bit positions in the string may correspond to the link identifiers of the child nodes.
  • the string 316 may include 3 bits corresponding to the link identifiers of child nodes 310, 312, 314; the MSB position in the string may correspond to the highest number of the link identifiers (i.e., 2 corresponding to child node 314).
  • the corresponding number of the link identifier may decrease until the LSB position corresponds to the lowest number of the link identifier (i.e., 0 corresponding to the child node 310).
  • the parent node 302 may communicate the link identifiers (and, in one embodiment, their associated bit positions in the string 316) to the child nodes 310-314, which then store the information in the databases of their associated memory.
  • the NMS associated with the parent node 302 may set the bit values in the string 316 to indicate whether the child nodes are required to report ACKs upon receipt of the broadcast- with- ARQ frame 222. For example, when the value in a bit position is set with a non-zero value (or “SET,” for ease of reference herein), the child node associated with the bit position is required to transmit an ACK to the transmitting parent node upon receiving the broadcast-with-ARQ frame 222. If, however, the value in a bit position of the string is set with the zero value (or “CLEAR,” for ease of reference herein), the child node associated with the bit position is not required to transmit an ACK to the parent node upon receiving the frame 222.
  • SET non-zero value
  • the bit values in the string 316 corresponding to the child nodes 310, 312, 314 are 1, 1, 0, respectively.
  • the child nodes 310, 312 are required to transmit ACKs to the parent node 302, while the child node 314 is not.
  • the bit values in the string 316 may be set by the parent node for each broadcast or multicast of the packet. Alternatively, the bit values set for one broadcast/multicast may be utilized for the subsequent broadcast(s)/multicast(s).
  • all child nodes 310-314 communicate with the parent node 302 via the same radio channel (i.e., the parent node 302 and child nodes 310-314 are tuned to the same radio channel).
  • each child node Upon receiving the broadcast-with-ARQ frame 222, each child node immediately processes the frame 222 to acquire the bit value in the bit position associated with its link identifier and, based thereon, determine whether to report an ACK to the parent node 302.
  • FIG. 4 depicts an exemplary string 402 contained in the broadcast-with- ARQ frame 222 having 8 bits of values, ⁇ 1, 0, 0, 1, 1, 1, 0, 1 ⁇ , corresponding to 8 child nodes 404-418 of a parent node 420.
  • the child nodes 404-418 may access their databases to retrieve their link identifiers (and, in one embodiment, their bit positions) and process the frame 222 to acquire the bit values in their associated bit positions. In this example, child nodes 404-418 determine that their bit positions in the string 402 are 1-8, respectively. Based on the bit values, child nodes 404,
  • 410, 412, 414, 418 determine that they are required to report the ACKs to the parent node 420 as the bit values in their associated positions are SET, while child nodes 406, 408, 416 determine that they are not required to report the ACKs as the bit values in their associated positions are CLEAR.
  • transmission time of the ACKs from the child nodes is scheduled by the parent node 420 based on the string of bits transmitted therefrom.
  • the child nodes may transmit the ACKs in accordance with the order of their associated bit positions in the string 402.
  • transmission of the ACKs may start from the child node 404, followed by the child node 410, followed by the child node 412, followed by the child node 414, and finally followed by the child node 418.
  • the ACK reported from each child node is the same and has a fixed length, L. Thus, based on the data rate, R.
  • the time interval, At between two successive ACKs from two reporting child nodes is also fixed.
  • the interval, At is typically set by the parent node and may be shorter than the interframe gap of a standard MAC layer within which the channel can be “idle” without being considered for usage by other irrelevant entities (as typically implemented in the CSMA/CA access scheme); this may advantageously allow the ACKs from different child nodes to be transmitted in succession with no interruption or collisions with other entities that attempt to access the same channel using the CSMA/CA channel access scheme.
  • the child node 404 may transmit the response ACK by the MAC layer immediately following receipt of the broadcast-with-ARQ frame 222 (following appropriate frame processing) such that there is no need to reacquire the radio channel for the ACK delivery.
  • the child nodes 410, 412, 414, 418 may transmit their ACKs at time K, 2 K, 3 K, 4 K, respectively. Because all child nodes are in synchronization per reception of the frame 222 from their parent node 420, this approach may advantageously avoid collision of the response ACKs from the reporting child nodes.
  • one or more of the child nodes may not receive the broadcast- with-ARQ frame 222, but this does not affect transmissions of the ACKs from other child nodes. This is because the reporting time of the ACK for each node is based on the bit position that is associated with the link identifier of the child node; the reporting time is unaffected regardless whether and how many child nodes fail to report the ACKs resulting from missing receipt of the broadcast-with-ARQ frame 222.
  • various embodiments herein can efficiently and reliably route a packet to a target group of nodes in a tree-based wireless network by configuring a broadcast- with-ARQ frame to include the packet and a string of bits that represent the child nodes (or a selected group of the child nodes) which the parent node delivers the broadcast-with-ARQ frame to.
  • the child nodes Upon receipt of the frame, the child nodes can determine whether and when to report the ACKs to the parent node based on the contents of the string and the assigned link identifiers.
  • this approach may efficiently utilize a single broadcast/multicast to transmit the packet to a target group of nodes, thereby avoiding the need of inefficient multiple unicasts.
  • the delivery time of the packet may be beneficially shortened and the bandwidth gain may be increased with the number of the target child nodes (since the parent node delivers a broadcast frame instead of multiple unicast frames). Further, this approach may reliably deliver the packet as the parent node can expect an ACK from each targeted child node, and may employ standard ARQ procedure in case that the ACK is not received at the expected time. For example, the parent node may transmit the packet in a unicasting manner with acknowledgement to the child nodes that were expected to, but did not, respond with ACKs.
  • the parent node may configure an updated broadcast- with-ARQ frame that has an updated list of child nodes (e.g., including the child nodes that were expected to, but did not, respond with ACKs) and broadcast the updated broadcast-with- ARQ frame to the child nodes on the updated list.
  • an updated list of child nodes e.g., including the child nodes that were expected to, but did not, respond with ACKs
  • FIG. 5 illustrates an exemplary approach 500 for delivering a packet to a target group of nodes in a tree-based wireless network in accordance herewith.
  • the parent node establishes an identifier table 304 having a list of link identifiers and optional MAC addresses corresponding to its associated child nodes.
  • the link identifier corresponding to each child node is assigned based on its order of association with the parent node.
  • the parent node transmits the link identifiers to the corresponding child nodes, which then store the information in their associated databases in memory.
  • the parent node upon receiving a packet, generates a string of bits, each bit corresponding to a link identifier of a child node to which the parent node delivers the packet.
  • the MSB position in the string may correspond to the highest number of the link identifiers; as the bit position moves away from the MSB, the corresponding number of the link identifier may decrease until the LSB position corresponds to the lowest number of the link identifier.
  • the total number of bits in the string indicates the number of child nodes with which the parent node is associated and to which it transmits the packet.
  • the parent node may configure the packet and the string of bits as a broadcast-with-ARQ frame and deliver the configured frame via a MAC layer to its associated child nodes.
  • the child nodes may process the frame to acquire the bit values in the bit positions associated with their link identifiers (step 510).
  • the child nodes are not required to respond ACKs to the parent nodes (step 512); the child nodes may then act as a parent node to create another string of bits based on the link identifiers of it associated child nodes (step 506) and configure the received packet and the string of bits as a new broadcast-with-ARQ frame and deliver the newly configured frame via a MAC layer to its associated child nodes (step 508). If, however, the bit values are SET, the child nodes are required to report ACKs to the parent nodes. In one embodiment, each child node determines its reporting time of the ACK based on its corresponding bit position in the string of bits and the ACK duration, T (step 514).
  • each child node can transmit an ACK to the parent node based on the computed reporting time (step 516).
  • the child nodes may, again, act as a parent node to create a string of bits based on the link identifiers of its associated child nodes (step 506) and configure the received packet and the string of bits as a new broadcast-with-ARQ frame and deliver the newly configured frame to its associated child nodes (step 508).
  • Steps 502-516 may be performed by each node along the path to the target node(s).
  • the broadcast-with-ARQ frame 222 and the string of bits described above are implemented only when the packet is delivered in a broadcasting or multicasting manner. If the packet is delivered in a unicasting manner, the standard MAC procedures can be implemented. In addition, the total time that the parent node may wait for receiving the ACKs before transmitting another message may depend on the number of the target child nodes which are required to report. Further, the approaches described herein for efficiently and reliably delivering a packet to a target group of nodes can be implemented in any wireless network that has an underlying logical tree-based structure. In addition, these approaches do not require the tree to be static.
  • the tree structure may occasionally change; the approaches described herein can automatically adapt to the new network topology. For example, as described above, when anew child node joins the network and needs to broadcast/multicast a packet to its associated child nodes, the parent node which the new child node is associated with may assign a new link identifier to the new child node and may include the new link identifier when creating a new string of bits for delivering a new packet.
  • each node when or after being associated with the tree network, is assigned with a rank number.
  • the rank number is assigned based on a number of nodes (or “hops”) traversed by a packet transmitted from the node en route to the root node using a distance-vector routing protocol. For example, referring to FIG. 6, nodes 604, 606, which are the child nodes of a root node 602 (and thereby directly communicate with the root node 602) may be assigned with a rank number of 1.
  • nodes 608, 610 (which are the child nodes of node 604) and node 612 (which is the child node of node 606) require two hops to reach the root node 602, they may be assigned with a rank number of 2.
  • the rank numbers may be stored in the databases associated with the nodes.
  • node v after a node, v, loses its connectivity to its parent node, the node does not immediately dismiss its entire subtree. Rather, node v may first search for a new parent node that has a smaller rank number than node v (i.e., having fewer hops to the root node than node v). If such a new parent node is identified immediately, the searching node v can associate itself with the new parent node to reconnect to the network; the recovery process is then considered complete. Optionally, node v may update its rank number based on the rank number of the newly associated parent node.
  • node v may transmit the updated rank number to its child nodes so that they can update their own rank numbers accordingly.
  • the term “immediately” refers to a relatively short amount of time, such as a time interval for transmitting 3 beacon messages (or, in some embodiments, 5 beacon messages). If, however, the new parent node having a smaller rank number than the searching node cannot be identified immediately, the searching node v may “freeze” its entire subtree and thereby prevent nodes in the frozen subtree from accepting new child nodes.
  • the searching node v freezes its subtree by periodically broadcasting a freeze message to its child node(s); each child node, upon receiving the message, changes its status to frozen such that it can neither offer to be a parent node nor accept a new child node.
  • the child nodes may periodically broadcast the same beacon message to their own child nodes indicating their frozen status, which then causes the receiving child nodes to freeze as well; this message propagates “down the tree” until all nodes in the subtree of node v are frozen.
  • node v after freezing its subtree, performs a second search for the new parent node that has a smaller rank number than node v.
  • node v is given a predetermined time interval (e.g., 10 seconds or, in some embodiments, 20 seconds) to perform the second search.
  • the predetermined time interval for the second search may be longer than that for the first search as the second search may require node v to scan multiple channels and/or identify beacon messages from the potential new parent node.
  • node v may associate itself with the new parent node to regain connectivity to the tree network. Subsequently, node v may transmit an updated beacon message to its child nodes to unfreeze the entire subtree. Again, node v may optionally update its rank number based on the rank number of the newly associated parent node and then transmit the updated information to its child nodes for updating their rank numbers accordingly. If, however, the new parent node cannot be identified within the predetermined time interval, node v may increase its rank number to infinity and broadcast this information to its child nodes via an updated beacon message. In some embodiments, node v stops transmitting the beacon messages after a few (e.g., 5 or 10) messages have been sent.
  • the child nodes after receiving the updated message and/or after they stop receiving the message from node v, determine that node v can no longer serve as their parent node (i.e., the child nodes are now dismissed). Each child node may then proceed with the same searching procedure that node v performed to find a new parent node — i.e., each child node may perform the first (or immediate) search (and the second search if no parent node is identified in the first search) for a new parent node that has a smaller rank number than the child node as described above.
  • the child node finds the new parent node immediately (e.g., within a transmission time of 3 beacon messages), it does not freeze the subtree and the connectivity recovery is considered complete after the child node is associated with its new parent node. If, however, the new parent node cannot be identified immediately in the first search, the child node may freeze its subtree and subsequently perform the second search. Again, if the new parent node can be identified in the second search within the predetermined time interval (e.g., 10 seconds or 20 seconds), the child node may associate itself with the new parent node.
  • the predetermined time interval e.g. 10 seconds or 20 seconds
  • the child node may increase its rank number to infinity and transmit this information to its child nodes to dismiss them, which then can perform the first search (and the second search if necessary) for a new parent node.
  • various embodiments herein do not require the node that loses connectivity to its parent node to dismiss its entire subtree immediately for recovery. Rather, only the child nodes of the node losing connectivity may be dismissed if the new parent node cannot be identified in, for example, two rounds of searches.
  • the node (e.g., node v) losing connectivity to its parent node may search only for a new parent node with a smaller rank number, the searching node cannot choose any of the child nodes in its subtree to be the new parent node; this thereby avoids creation of a routing loop in the network.
  • no child nodes in the subtree of the node e.g., node v
  • node v cannot receive any offers from the child nodes in its subtree; this further ensures that no routing loops are created in the network.
  • FIG. 7A depicts an exemplary connectivity failure in a tree-based network 400 where both nodes B and C lose connectivity to their parent node A. Assuming neither node B nor node C can immediately find a new parent node having a smaller rank number than their own, they may freeze their associated subtrees 702, 704 and perform the second search for the new parent node. Assuming that the new parent node cannot be identified within the predetermined time (e.g., 10 seconds) in the second search, both nodes B and C may increase their rank numbers to infinity and dismiss their associated child nodes D, E, F. Thereafter, nodes D, E (which are the child nodes of node B) and F (which is the child node of node C) may search for new parent nodes in the same manner as nodes B and C. Referring to FIG.
  • node F upon associating with node A, node F may unfreeze its subtree (which is empty in FIGS. 7A and 7B) and optionally update its rank number based on the rank number of node A.
  • node C may choose node F as its new parent node and optionally update its rank number; and nodes B and E may choose node C as their new parent node and, again, optionally update their rank numbers based on the new tree network 710.
  • FIG. 8 illustrates an exemplary approach 800 for promptly recovering from a connectivity failure in a tree-based distance- vector routing protocol in accordance herewith.
  • a rank number is assigned to each node in the network; the assigned rank number is stored in a database associated with the corresponding node. In one embodiment, the rank number is assigned based on a number of intermediate nodes (or hops) traversed by a packet transmitted from the corresponding node en route to the root node using the distance- vector routing protocol.
  • the node may search for a new parent node based on the rank numbers assigned to the nodes in the network. For example, the new parent node may have a rank number smaller than the node that lost connectivity.
  • the node may associate itself with the new parent node so as to regain connectivity to the network (step 806).
  • the node may optionally update its rank number based on the rank number of the newly associated parent node and then transmit this information to its child nodes to update their ranks numbers accordingly.
  • the node may freeze its subtree (step 808). For example, the node may broadcast a “freeze” message to its child nodes, which then change their status to frozen and broadcast the same message to their child nodes.
  • This message may propagate down the tree until all nodes in the subtree are frozen. Once the subtree is frozen, the node losing connectivity to its parent may perform a second search for a new parent node (step 810). If a new parent node is identified within a predetermined time period (e.g., 10 seconds or 20 seconds), the node may associate itself with the new parent node and transmit an updated beacon message to its child nodes to unfreeze the subtree (step 812). Again, the node may then optionally update its rank information based on the rank number of the newly associated parent node and transmit the updated information to its child nodes, enabling them to update their rank number accordingly.
  • a predetermined time period e.g. 10 seconds or 20 seconds
  • the node may increase its rank number to infinity and transmit this information to its child nodes to cause dismissal thereof (step 814). Thereafter, the newly dismissed nodes may perform steps 804-814 to reconnect to a new parent node or dismiss their associated child nodes.
  • the approaches described above for assigning a rank number to a node in the tree network are exemplary only; any suitable approach may be used and all are thus within the scope of the invention.
  • the approaches described herein for promptly recovering from a connectivity failure in the tree-based distance-vector routing protocol can be implemented in any wireless network that has an underlying logical tree-based structure. Further, these approaches do not require the tree to be static. If the network is dynamic, the tree structure may occasionally change; the approaches described herein can automatically adapt to the new network topology.
  • the NMS 212/214 described herein may include one or more modules (e.g., a routing module 215, a rank-number-assignment module 216, a search module 218, a connection module 220, etc.) implemented in hardware, software, or a combination of both for performing the functions described above (e.g., steps in FIGS. 5 and 8).
  • the functions are provided as one or more software programs
  • the programs may be written in any of a number of high level languages such as PYTHON, FORTRAN, PASCAL, JAVA, C, C++, C#, BASIC, various scripting languages, and/or HTML.
  • the software can be implemented in an assembly language directed to the microprocessor resident on a target computer; for example, the software may be implemented in Intel 80x86 assembly language if it is configured to run on an IBM PC or PC clone.
  • the software may be embodied on an article of manufacture including, but not limited to, a floppy disk, a jump drive, a hard disk, an optical disk, a magnetic tape, a PROM, an EPROM, EEPROM, field- programmable gate array, or CD-ROM.
  • Embodiments using hardware circuitry may be implemented using, for example, one or more FPGA, CPLD or ASIC processors.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Approaches for routing a packet in a network having multiple cells each comprising a parent node and one or more child nodes include establishing and storing an identifier table including one or more link identifiers associated with the child node(s); upon receiving the packet, generating a string of one or more bits based at least in part on the link identifier(s); and transmitting the packet and the generated string to the child node(s).

Description

SYSTEMS AND METHODS FOR OPERATING TREE-BASED WIRELESS NETWORKS
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims priority to and the benefit of U.S. Provisional Application Nos. 62/933,626 and 62/933,627 (both filed on November 11, 2019), the entire disclosures of which are hereby incorporated by reference.
TECHNICAL FIELD
[0002] The present invention relates generally to tree-based wireless networks, and in various embodiments more specifically to approaches for efficiently and reliably routing a multicast packet in such networks. In addition, the present invention relates to approaches for fast connectivity recovery in tree-based distance-vector routing protocols.
BACKGROUND
[0003] Recent developments in Internet and mobile communication technologies provide diverse multimedia services, which may be delivered almost instantaneously over vast distances. The proliferation of compact portable electronic devices such as notebook computers, mobile phones and tablets have necessitated deployment of such services, which tend to be very data-intensive, over wireless networks.
[0004] One commonly used wireless network has a tree-based structure. This network architecture is often deployed in device networks organized or governed by controllers. For example, tree-based wireless networks are often used when a controller controls a group of network members (or “nodes”); each group member will be reachable via a path across the wireless tree, enabling a point-to-multipoint communication (P2MP) (such as from the controller to some or all of the nodes) and multipoint-to-point communication (MP2P) (such as from some or all of the nodes to the controller). Common applications include controlled lighting systems, city -wide automatic meter-reading systems, and other municipal and commercial device networks.
[0005] The wireless network may use various random-access algorithms to access the wireless channels. For example, a “carrier-sense multiple access with collision avoidance” (CSMA/CA) algorithm may be used to access a radio channel for packet delivery (in accordance with, e.g., the IEEE 802.15.4 and 802.11 standards). In addition, a root- originated group packet may be delivered in the tree network using various approaches. For example, referring to FIG. 1 A, one conventional approach for delivering a packet containing a target group identifier and packet payload from a tree root to a target group is to “flood” the entire tree and broadcast the packet to all nodes thereon. Each node, upon receipt of the broadcast packet, may re-broadcast the received multicast message. But because no automatic request repeat (ARQ) procedure is employed — i.e., no usage of medium access control (MAC) acknowledgments (ACKs), broadcasting the packet utilizing standard MAC protocols (e.g., IEEE 802.11 and 802.15.4) may be unreliable as some packets may not reach the target group of nodes.
[0006] Another conventional approach for delivery of a packet from the tree root to the target group is by individual unicasting. For example, referring to FIG. IB, the root may generate (or receive from a network-management system) a unicast message containing a target multicast group identifier. Because unicasting generally applies the ARQ procedure in standard MAC protocols, all nodes along the path(s) to the target node(s) deliver the message as a unicast message with acknowledgement. As a result, the probability that the message will reach the target node is higher than with unacknowledged delivery via broadcasting. But this approach has its own deficiencies. For example, when a node transmits a packet to a group of N nodes associated therewith in the tree network, at least N unicast packets with N acknowledgements have to be delivered to the group of nodes; such a scheme increases the packet load and is wasteful of network resources. The situation may be aggravated when delivery fails, as each node that failed to receive the packet may require unicast redelivery. [0007] Another conventional approach for delivery of a packet is by multicasting. For example, referring to FIG. 1C, multicast delivery may be performed via unicasting followed by broadcasting. As depicted, the root node 112 first delivers the message to the “first” node 114 via unicasting; subsequently, the node 114 broadcasts the message to the sub-trees 116, 118 containing the target group members therebelow. As used herein, the term “first node” refers to the node that receives messages via unicasting. While multicast approaches may effectively save network bandwidth, like broadcast they do not employ the ARQ procedure in standard MAC protocols; thus, some packets may not reach one or more members of the targeted group of nodes. In many situations, such as systems that control a group nodes using a command (e.g., lighting systems) or those involving selective information collection (e.g., sensor systems), it is, however, required to deliver a tree-root-initiated command/packet to the targets (e.g., all tree nodes or the tree nodes that belong to the target group and/or are on the path to the target group) efficiently and reliably.
[0008] Accordingly, there is a need for approaches that can efficiently and reliably deliver packets to a target group of nodes in a tree-based wireless network.
[0009] In general, to forward network traffic (e.g., packets) from a source node to one or more destination node(s) in the wireless network, various routing approaches may be used. For example, link-state routing protocols require every node to construct a map of connectivity to the network such that each node can independently calculate the best logical path from it to every possible destination node in the network. A collection of the best paths then forms a routing table for each node to use. Another routing approach involves a distance-vector routing algorithm that allows each node to share its routing table with its neighbors. Generally, distance-vector routing protocols assign weights to each link in the network and computes a “distance” to a destination by summing the weights along each possible path. Distance-vector routing protocols require each node to maintain the distance from itself to each possible destination and the neighbor through which to reach that destination. Whenever the network topology changes, each node in distance-vector routing protocols transmits new distance vectors to each of its neighbors, thereby allowing each neighbor to recalculate its routing table.
[0010] One advantage of distance-vector routing protocols is their smaller bandwidth overhead. This is particularly important in wireless mesh networks where hundreds or thousands of nodes are included and the available bandwidth is too small to run the link state routing protocols. But the distance-vector routing protocols have their own deficiencies. For example, the recovery time after a link (or connectivity) failure between two nodes may be relatively long; and the longer the recovery time is, the longer other network activities are halted (due to the large bandwidth being consumed by the recovery process). Typically, the long recovery time results from a routing loop created by a node that chooses another next- hop neighbor to connect with after the node loses connectivity to its neighbor that serves as the next hop towards a destination. For example, referring to FIG. ID, assuming that after the tree network 150 is built, node B loses its connectivity to its parent node A; node B may then search for a new parent node to re-establish the connectivity to the tree network. Generally, node B may receive offers from all its neighboring nodes (e.g., nodes D, E and G). But because node B knows that nodes D and E are child nodes, node B will not accept their offers. Node B, however, may not know that node G is a child node of node D and may thus accept node G to be its new parent node; this then creates a routing loop 152 as depicted. [0011] Various approaches have been proposed to avoid creation of a routing loop. For example, the routing protocol for low-power and lossy networks (RPL) allows node B to dismiss its entire subtree; each node in the subtree can subsequently choose a new parent node. As shown in FIG. IE, node B, upon losing the connectivity to node A, dismisses its subtree including nodes D, E and G. Node E may then choose node C as its new parent node; and subsequently, nodes B, D and/or G may choose node E as their new parent node. While this approach may avoid creation of a routing loop in the network, dismissing the entire subtree prevents the nodes in the subtree from communicating to the gateway for a long time. In addition, when the wireless network includes hundreds of nodes, dismissing a subtree with many nodes may result in a very long recovery time.
[0012] Another approach for avoiding a routing loop in a tree network involves the use of a “path vector” — i.e., each node, when making an offer to its neighboring node, includes a description of the route it utilizes to reach the root node of the tree. For example, referring again to FIG. ID, when making an offer to node B, node G may specify its route to node A as A-B-D-G. Thus, when node B receives the offer from node G with the description, it can recognize that node G cannot be its new parent node as this would create a routing loop. While this approach may decrease the likelihood of creating a routing loop, it cannot guarantee that the tree can recover from the connectivity failure. For example, referring again to FIG. IE, assuming the only way to recover from the connectivity failure between nodes B and A is to have node E choose node C as its new parent node, the path-vector approach cannot provide such a solution. Moreover, the path-vector approach cannot guarantee that no routing loops will be created. For example, referring to FIG. IF, assuming the links from node B to node A and from node C to node A both fail (this may be possible due to a wireless interference near node A), when the path-vector approach is implemented, node B may choose node C as its new parent node and node C may choose node E as its parent new node; as a result, a routing loop 154 is created.
[0013] Accordingly, there is a need for approaches that can facilitate prompt recovery from a connectivity failure in a tree-based distance-vector routing protocol while avoiding creation of a routing loop and avoiding dismissing the entire subtree of the node (and thereby losing its connectivity to the network). SUMMARY
[0014] The present invention relates to approaches for efficiently and reliably delivering a packet to a target group of nodes in a tree-based wireless network by using a broadcast- with-ARQ frame that includes the packet and a string of bits; each bit in the string corresponds to a link identifier of a child node to which the parent node transmits the packet. In various embodiments, the parent node creates the link identifier and transmits it to the child node, e.g., for storage in a database of or associated with the child node. Upon receiving a packet, the parent node may generate the string of bits based on the link identifiers of the child nodes to which the packet is transmitted. For example, the most significant bit (MSB) position in the generated string may correspond to the highest number of the link identifiers; as the bit position moves away from the MSB, the corresponding number of the link identifier may decrease until the least significant bit (LSB) position corresponds to the lowest number of the link identifier. The parent node may then transmit the packet and the string of bits via the broadcast-with-ARQ frame in the MAC layer to its associated child nodes.
[0015] In some embodiments, upon receipt of the broadcast-with-ARQ frame, the child nodes may retrieve their link identifiers from the databases and process the frame to acquire the binary values in the bit positions associated with their link identifiers. If the bit values are zero (i.e., “CLEAR”), the child nodes are not required to respond with acknowledgments (ACKs) to the parent nodes. If, however, the bit values are non-zero (i.e., “SET”), the child nodes are required to report the ACKs to the parent node. In one embodiment, each child node determines its reporting time of the response ACK based on its corresponding bit position in the string and an ACK duration (which is defined by the transmission duration of the ACK and the time interval between successive ACKs). Subsequently, each child node can report the ACK to the parent node at the computed reporting time. Thereafter, each child node may act as a parent node to create a string of bits based on the link identifiers of its associated child nodes and deliver the received packet and the created string of bits via a new broadcast-with-ARQ frame to its associated child nodes (or a selected group of its child nodes). This procedure may be implemented by the network nodes along the path to the target node(s).
[0016] Accordingly, various embodiments herein may efficiently deliver the packet from the parent node to all of its associated child nodes in a broadcasting manner (or to a selected group of child nodes in a multicasting manner). In addition, because the child nodes can determine whether and when to report the ACKs to the parent node based on the bit positions associated with their link identifiers in the string, the parent node can easily identify the child nodes that should have but did not receive the packet and, based thereon, retransmit the packet thereto (e.g., using the ARQ procedure in a unicasting manner). Thus, approaches described herein may reliably deliver the packet to the target group of nodes in the wireless tree network.
[0017] Additionally, the present invention relates to approaches for promptly recovering from a connectivity failure in a tree-based distance- vector routing protocol by assigning a rank number to each node in the network. In various embodiments, the rank number is assigned based on a number of intermediate nodes (or “hops”) traversed by a packet transmitted from the corresponding node en route to the root node using the distance-vector routing protocol. For example, a node having a smaller number of hops to the root node may have a smaller rank number than a node having a larger number of hops to the root node. When a node in the network loses connectivity to its parent node, the node may search for a new parent node that has a rank number smaller than its own. If the new parent node is found immediately (e.g., within the transmission time of 3 beacon messages), the node may associate itself with the new parent node to reconnect to the tree network. If, however, the new parent node is not identified immediately, the node may “freeze” the nodes in its subtree by broadcasting a message to its child nodes, which then broadcast the same freezing message to their child nodes and so on until the freezing message propagates down the entire subtree. A “frozen” node, as the term is used herein, can neither offer to be a parent node of another node nor accept any new node as its child node.
[0018] Once the subtree is frozen, the node losing connectivity to its parent node may perform a second search for the new parent node that has a smaller rank number than the node. If the new parent node is found within a predetermined time period (e.g., 10 seconds or 20 seconds), the node may associate itself with the new parent node so as to reconnect to the network; subsequently, the node may transmit an updated beacon message to its child nodes to unfreeze the subtree. If, however, the new parent node cannot be identified within the predetermined time period, the node may increase its rank number to infinity and transmit this information to its child nodes to cause dismissal of the child nodes. Once dismissed, the child nodes may proceed with the same search(es) performed by their previous parent node — i.e., performing (i) the search immediately after being dismissed and, if necessary, (ii) the second search within the predetermined time period in order to reconnect to the network. Again, if a new parent node cannot be identified in both searches within the predetermined time periods, the child nodes may dismiss the child nodes associated therewith.
[0019] Accordingly, various embodiments herein do not dismiss the entire subtree immediately after a node loses its connectivity to the parent node in the network. Rather, only the child nodes of the node that loses connectivity may be dismissed after a new parent node cannot be identified, for example, in two rounds of searches. In addition, because the node losing connectivity only searches for a new parent node that has a smaller rank number than its own, the node cannot choose any of the child nodes in its subtree to be the new parent node; this thereby avoids creation of a routing loop in the network. Further, because all child nodes in the subtree of the node that loses connectivity may be frozen during the second search, no child nodes in the subtree can offer to be the parent node or accept the node as their new child node. This may further ensure that no routing loops are created in the network.
[0020] Accordingly, in one aspect, the invention pertains to a method of routing a packet in a network having multiple cells each supporting communication among multiple transceiver nodes therein and being capable of receiving and transmitting the packet; each cell includes a parent node and one or more child nodes. In various embodiments, the method includes (a) for each cell, establishing and storing an identifier table having one or more link identifiers associated with the one or more child nodes; (b) upon receiving a packet, generating a string of one or more bits based at least in part on the link identifier(s); and (c) transmitting the packet and the string to the child node(s). In one implementation, the pack and the string in step (c) are transmitted in a broadcasting manner. In addition, the method may further include receiving ACK(s) from the child node(s). The child node(s) may transmit the ACK(s) only when the value(s) of the bit(s) is non-zero.
[0021] In various embodiments, one or more of the cells include multiple child nodes and each of the identifier tables in these cells includes multiple link identifiers, each associated with one of the child nodes; in addition, the string generated in step (b) includes multiple bits, each corresponding to one of the link identifiers. In one embodiment, the most-significant bit (MSB) position in the string corresponds to the highest number of the link identifiers, and as the bit position moves away from the MSB, the corresponding number of the link identifier decreases. In addition, the method may further include receiving at least some ACKs from at least some of the child nodes; each of the child nodes transmits the ACK at a transmitting time based at least in part on the bit position associated with its link identifier in the string. In one implementation, the transmitting time associated with each of the child nodes is further based at least in part on a transmission duration of the ACK and a time interval between two successive ACKs. For example, the transmitting time associated with each of the child nodes may satisfy an equation: transmitting time = (/ + At) c K where t denotes the transmission duration of the ACK, At denotes the time interval between two successive ACKs, and A denotes a number of bits having non-zero values and preceding the bit position associated with each corresponding child node in the string. In addition, the method may further include, upon determining that the ACK from one of the child nodes is not received at the transmitting time associated therewith, retransmitting the packet to the child node.
[0022] In another aspect, the invention relates to a router for handling packets in a network. In various embodiments, the router includes memory for storing an identifier table having multiple link identifiers and multiple child nodes, each of the link identifiers being associated with one of the child nodes of the router; and a routing module configured to (a) upon receiving a packet, generate a string of one or more bits based at least in part on one or more of the link identifiers; and (b) transmit the packet and the string to the child node(s) associated with the link identifier(s). In one implementation, the routing module is further configured to transmit the pack and string in a broadcasting manner.
[0023] In addition, the routing module may be further configured to receive an ACK from the child node. In one embodiment, the child node transmits the ACK only when a value of the bit associated therewith is non-zero. In some embodiments, the string generated in step (a) includes multiple bits, each corresponding to one of the link identifiers. The MSB position in the string may correspond to the highest number of the link identifiers, and as the bit position moves away from the MSB, the corresponding number of the link identifier may decrease. In addition, the routing module may be further configured to receive at least some ACKs from at least some of the child nodes; each of the child nodes transmits the ACK at a transmitting time based at least in part on the bit position associated with its link identifier in the string. Further, the transmitting time associated with each of the child nodes may be further based at least in part on a transmission duration of the ACK and a time interval between two successive ACKs. For example, the transmitting time associated with each of the child nodes may satisfy an equation: transmitting time = (I + At) c K where t denotes a transmission duration of the ACK, At denotes the time interval between two successive ACKs, and K denotes a number of bits having non-zero values and preceding the bit position associated with the corresponding child node in the string. In some embodiments, the routing module is further configured to, upon determining that the ACK from one of the child nodes is not received at the transmitting time associated therewith, retransmit the packet to the child node.
[0024] Another aspect of the invention relates to a network system for routing a packet in a network having multiple cells each supporting communication among multiple transceiver nodes therein and being capable of receiving and transmitting the packet; each cell includes a parent node and one or more child nodes. In various embodiments, the system includes memory for storing an identifier table having one or more link identifiers associated with the one or more child nodes; and one or more network management systems associated with one or more of the transceiver nodes. The network management system(s) may be configured to (a) upon receiving a packet, generate a string of one or more bits based at least in part on the link identifier(s); and (b) transmit the packet and the string to the child node(s). In one implementation, the network management system(s) is further configured to transmit the pack and string in a broadcasting manner. In addition, the network management system(s) may be further configured to receive ACK(s) from the child node(s). The child node(s) may transmit the ACK(s) only when the value(s) of the bit(s) is non-zero.
[0025] In various embodiments, one or more of the cells include multiple child nodes and each of the identifier tables in these cells includes multiple link identifiers, each associated with one of the child nodes; in addition, the string generated in step (a) includes multiple bits, each corresponding to one of the link identifiers. In one embodiment, the most-significant bit (MSB) position in the string corresponds to the highest number of the link identifiers, and as the bit position moves away from the MSB, the corresponding number of the link identifier decreases. In addition, the network management system(s) may be further configured to receive at least some ACKs from at least some of the child nodes; each of the child nodes transmits the ACK at a transmitting time based at least in part on the bit position associated with its link identifier in the string. Further, the transmitting time associated with each of the child nodes may be further based at least in part on a transmission duration of the ACK and a time interval between two successive ACKs. For example, the transmitting time associated with each of the child nodes may satisfy an equation: transmitting time = (/ + At) c K where t denotes a transmission duration of the ACK, At denotes the time interval between two successive ACKs, and A denotes a number of bits having non-zero values and preceding the bit position associated with the corresponding child node in the string. The network management system(s) may be further configured to, upon determining that the ACK from one of the child nodes is not received at the transmitting time associated therewith, retransmit the packet to the child node.
[0026] In yet another aspect, the invention pertains to a method of recovering a connectivity failure in a network including multiple cells each (i) supporting communication among multiple transceiver nodes, (ii) being capable of receiving and transmitting a packet and (iii) being associated with a parent node and one or more child node. In various embodiments, the method includes (a) assigning a rank number to each of the nodes; (b) upon detecting a connectivity failure of one of the nodes to its parent node, searching for a new parent node based at least in part on the rank numbers assigned to the nodes; and (c) upon identifying the new parent node within the first predetermined time period (e.g., a transmission time of three beacon messages), reconnecting the node to the network by associating it with the new parent node. In one implementation, the rank number is assigned based at least in part on a number of intermediate nodes traversed by the packet transmitted from the node en route to a root node in the network using a distance-vector routing protocol. In addition, the new parent node may have a rank number smaller than that of the node.
[0027] In various embodiments, the method further includes, upon determining that the new parent node is not identified within the first predetermined time period, transmitting a message from the node to the child node(s) associated therewith so as to freeze activities thereof. In addition, the method may further include, thereafter, searching for the new parent node for the second predetermined time period (e.g., between 10 seconds and 20 seconds). In one embodiment, the method further includes, upon identifying the new parent node within the second predetermined time period, (i) reconnecting the node to the network by associating it with the new parent node and/or (ii) updating the rank number associated with the node based at least in part on the rank number associated with the new parent node. The method may further include transmitting an update message from the node to the child node(s) associated therewith so as to unfreeze the activities thereof.
[0028] In some embodiments, the method further includes, upon determining that the new parent node is not identified within the second predetermined time period, (i) increasing the rank number associated with the node and (ii) transmitting an update message from the node to the child node(s) associated therewith so as to disconnect the child node(s) therefrom. Additionally, the rank number associated with the node may be increased to infinity.
[0029] Still another aspect of the invention relates to a router for recovering a connectivity failure in a network. In various embodiments, the router includes an assignment module configured to assign a rank number to the router; a search module configured to detect a connectivity failure of the router to its parent node and thereupon to search for a new parent node within the first predetermined time period (e.g., a transmission time of three beacon messages) and based at least in part on the rank number assigned to the router; and a connection module configured to detect identification of the new parent node by the search module and to responsively associate the router with the new parent node so as to reconnect the router to the network. In one implementation, the rank number is assigned based on a number of intermediate nodes traversed by a packet transmitted from the router en route to a root node in the network using a distance-vector routing protocol. In addition, the new parent node may have a rank number smaller than that of the router.
[0030] The connection module may be further configured to detect failure of the search module to identify the new parent node and to responsively transmit a message from the router to one or more child nodes associated therewith so as to freeze activities thereof. The search module may be further configured to search for the new parent node for the second predetermined time period (e.g., between 10 seconds and 20 seconds) after the activities of the child node(s) are frozen. Additionally, the connection module may be further configured to detect identification of the new parent node within the second predetermined time period and to responsively (i) associate the router with the new parent node so as to reconnect the router to the network and/or (ii) cause the assigning module to update the rank number associated with the router based at least in part on the rank number associated with the new parent node. In some embodiments, the connection module is further configured to transmit an update message to the child node(s) associated so as to unfreeze the activities thereof. [0031] In addition, the connection module may be further configured to detect failure to identify the new parent node within the second predetermined time period and to responsively (i) increase the rank number associated with the router and (ii) transmit an update message to the child node(s) so as to disconnect the child node(s) from the router. In one embodiment, the rank number associated with the router is increased to infinity.
[0032] In another aspect, the invention relates to a network system for recovering a connectivity failure in a network having multiple cells each (i) supporting communication among multiple transceiver nodes, (ii) and being capable of receiving and transmitting a packet and (iii) being associated with a parent node and one or more child nodes. In various embodiments, the system includes memory for storing multiple rank numbers each associated with one of the nodes in the network; multiple network management systems each associated with one of the nodes and being configured to (i) detect a connectivity failure of the system- associated node, (ii) search for a new parent node based at least in part on the rank numbers assigned to the nodes in the network, and (iii) upon identifying the new parent node within the first predetermined time period (e.g., a transmission time of three beacon messages), associate the system-associated node to the new parent node. In one implementation, the rank number is assigned based on a number of intermediate nodes traversed by the packet transmitted from the node that has the connectivity failure en route to a root node in the network using a distance-vector routing protocol. The new parent node may have a rank number smaller than that of the node having the connectivity failure.
[0033] The network management system may be further configured to determine that the new parent node is not identified within the first predetermined time period and to thereupon cause transmission of a message from the system-associated node to the child node(s) associated therewith so as to freeze activities thereof. In addition, the network management system may be further configured to search for the new parent node of the system-associated node for the second predetermined time period (e.g., between 10 seconds and 20 seconds) after the activities of the child node(s) are frozen. In some embodiments, the network management system is further configured to, upon identifying the new parent node within the second predetermined time period, (i) associate the system-associated node with the new parent node and/or (ii) update the rank number associated with the system-associated node based at least in part on the rank number associated with the new parent node. The network management system may be further configured to cause transmission of a message from the system-associated node to the child node(s) associated therewith so as to unfreeze the activities thereof.
[0034] In addition, the network management system may be further configured to, upon determining that the new parent node is not identified within the second predetermined time period, (i) increase the rank number of the system-associated node and (ii) cause transmission of an update message from the system-associated node to the child node(s) associated therewith so as to disconnect the child node(s) therefrom. In addition, the rank number associated with the system-associated node may be increased to infinity.
[0035] Reference throughout this specification to “one example,” “an example,” “one embodiment,” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the example is included in at least one example of the present technology. Thus, the occurrences of the phrases “in one example,” “in an example,” “one embodiment,” or “an embodiment” in various places throughout this specification are not necessarily all referring to the same example. Furthermore, the particular features, structures, routines, steps, or characteristics may be combined in any suitable manner in one or more examples of the technology. The headings provided herein are for convenience only and are not intended to limit or interpret the scope or meaning of the claimed technology.
BRIEF DESCRIPTION OF THE DRAWINGS
[0036] In the drawings, like reference characters generally refer to the same parts throughout the different views. Also, the drawings are not necessarily to scale, with an emphasis instead generally being placed upon illustrating the principles of the invention. In the following description, various embodiments of the present invention are described with reference to the following drawings, in which:
[0037] FIGS. 1A-1C depict various conventional approaches for delivery of a packet from a root node to a target group of nodes in a tree-based wireless network;
[0038] FIGS. ID- IF depict various conventional approaches for recovering from a connectivity failure in a tree-based distance- vector routing protocol;
[0039] FIG. 2 conceptually illustrates an exemplary tree-based wireless network having multiple network nodes in accordance with various embodiments;
[0040] FIG. 3 conceptually depicts an identifier table including a list of link identifiers and optional MAC addresses corresponding to the child nodes of a parent node in accordance with various embodiments;
[0041] FIG. 4 conceptually depicts an exemplary string of bits contained in a broadcast- with-ARQ frame for representing the child nodes of a parent node in accordance with various embodiments;
[0042] FIG. 5 is a flow chart illustrating an exemplary approach for efficiently and reliably delivering a packet to a target group of nodes in a tree-based wireless network in accordance with various embodiments;
[0043] FIG. 6 depicts a rank number associated with each node in a tree-based wireless network in accordance with various embodiments;
[0044] FIG. 7A depicts an exemplary connectivity failure in a tree-based wireless network in accordance with various embodiments;
[0045] FIG. 7B depicts an exemplary recovered tree-based wireless network after a connectivity failure in accordance with various embodiments; and [0046] FIG. 8 is a flow chart illustrating an exemplary approach for promptly recovering from a connectivity failure in a tree-based distance-vector routing protocol in accordance with various embodiments..
DETAILED DESCRIPTION
[0047] FIG. 2 conceptually illustrates an exemplary tree-based wireless network 200 comprising multiple network nodes 202, each including one parent node and one child node, for multicast routing of messages such as group packets across the network 200 in accordance herewith. For example, the parent node contained in node 204 may transmit a packet to the child nodes contained in nodes 206-210, and the child nodes contained in node 206 may receive the packet from the parent node contained in node 204. Each group packet may include a payload (e.g., a data packet) and routing information (such as target bit identifier vectors, target multicast group IDs, etc.) as described in PCT Publication No. WO 2020/095114, the entire contents of which are incorporated herein by reference. In addition, each group packet may be delivered via a special MAC layer frame (called “broadcast-with- ARQ frame”) that includes a string of bits representing the child nodes with which the parent node is associated as further described below.
[0048] In one embodiment, each network node 202 is a member of a transceiver “cell,” i.e., a discrete geographic region having fixed-location transceivers on, for example, lighting poles. A transceiver cell typically includes a “parent” node (e.g., the parent node contained in node 204) and one or more child nodes (e.g., the child nodes contained in nodes 206-210). In addition, each of the parent and child nodes may include one transceiver. The parent node is the “owner” of the cell node(s); a child node may be associated with only one parent node at a time. In one embodiment, the child nodes connect to their parent nodes via a “wireless tree branch.” The child node(s) in a cell are within the radio transmission range of the parent node and vice versa. Typically, the parent node and its child nodes are within a one-hop distance from each other. In each cell, a data packet can be delivered in a “downlinked” manner — i.e., from the parent node to its child node(s) (e.g., using broadcasting to all child nodes, multicasting to a selected subset of the child nodes, or unicasting to a specific child node) and/or in an “uplinked” manner — i.e., from a child node to its associated parent node using, for example, unicasting. If the data packet received by the child node does not originate from its associated parent node, the child node may discard the data packet. Similarly, if the data packet received by the parent node does not originate from one of its associated child nodes, the parent node may discard the data packet.
[0049] In various embodiments, each node acts as both a parent node and a child node. The parent node is an entity contained in a node that acts as a cell parent; and the other cell members are child nodes of the parent node located one hop away from the parent node. Similarly, the child node is an entity contained in a node and is a cell member “owned” by a parent in another node (e.g., one-hop distance away that acts as the parent).
[0050] The tree-based wireless network 200 may be constructed dynamically using one or more conventional protocols and algorithms. In one embodiment, the network 200 is constructed as a spanning tree that interconnects each network node via a unique path to the tree root node. The same path may connect the tree root node to a network node. In some embodiments, the network 200 is constructed as multiple spanning trees with appropriate identifiers per tree; each tree (and thereby its associated identifier) supports a unique path between the tree root node and a network node on that tree. Thus, a downlink data packet that “originates” from the tree root node (or a network management system) may traverse a path across the tree that includes a collection of the network nodes wirelessly interconnected from the parent node of one network node to a child node within the parent’s cell (i.e., one hop away). The destination network node can be reached via multiple hops. For a given tree, the path from the root node to the target node is always the same; in other words, the path acts as a “virtual circuit” for a data packet to be delivered from the root node to a target node. The virtual circuit may maintain the in-order delivery of packets, but does not guarantee that all delivered packets will reach the destination. Similarly, an uplink message may be delivered from a node to the root node via traversing a path therebetween. For example, assuming that nodes X, Y, and Z are along the path from the node originating the message to the tree root node, the uplink message may propagate along the wireless branches — i.e., from the originating child node (e.g., a child contained within node X) to its associated parent node (e.g., the parent contained within node Y), then internally propagate from the receiving parent node to the child node contained within the same node (e.g., node Y), then propagate further up to the parent node (e.g., contained within node Z) associated with the child node within node Y, and so on.
[0051] In various embodiments, each node contains two radio transceivers: one used by the parent within the node to send and/or receive data packets from the associated child node(s) and the other used by a child node within the node to send and/or receive data packets from the associated parent in another node. In addition, the tree structure may enable (i) each network node to deliver an uplink message directed to the tree root node (using e.g., MP2P) via a path determined by the tree structure, and (ii) the root node to deliver a downlink message to a selected node (using e.g., P2MP) via a path determined by the tree structure.
[0052] In addition, a collection of network nodes that have the same capability (e.g., equipped with a specific type of streetlight controller) may form a group. Each network node may be a member of (and thereby support) one or more groups. For example, a node may be a member of a city wide sensor group and a member of a group corresponding to a specific type of street lighting controller. The group members may be distributed across the tree structure in any fashion. For example, the group members may be concentrated in a geographical area (e.g., light controllers distributed in a specific neighborhood) or may be distributed citywide (e.g., air-quality sensors distributed across a city). In addition, the geographical location of one group may or may not overlap with that of another group. The tree-based network 200 can (but need not necessarily) be optimized for a certain group delivery. In one embodiment, the tree-based network 200 is constructed with various optimization rules without considering the possible group distributions.
[0053] In one embodiment, the wireless tree network 200 further includes a network management system (NMS) 212 to control one or more gateways that act as tree root nodes to the tree-based network. In addition, the NMS 212 may generate a message (e.g., a group packet) to the tree root(s) which then transmits the message to a specific network node or to a group of network nodes. In addition, the NMS 212 may be equipped with memory having a database to store information associated with the tree root nodes, network nodes and groups reachable via the corresponding tree roots. In some embodiments, each node 202 in the network 200 includes an individual NMS 214 having one or more modules (e.g., a routing module 215) for performing various functions (such as generating a string of bits, configuring the packet and string of bits as a the broadcast-with-ARQ frame, delivering the broadcast- with-ARQ frame to all its associated child nodes (if broadcasting) or a selected group of its associated child nodes (if multicasting), receiving the broadcast-with-ARQ frame from its parent node, determining whether and when to transmit an ACK to its parent node, reporting the ACK at the determined time, etc.) as further described below. In some embodiments, the NMS 214 includes a rank-number-assignment module 216 for assigning a rank number to each node in the network and/or increasing the rank number to infinity, a search module 218 for searching for a new parent node, and a connection module 220 for associating the node to the new parent node and/or broadcasting a message to its child node(s) to cause “freezing” thereof, etc. as further described below. Further, the NMS 214 may be equipped with memory having a database to store information associated with the parent node and child nodes (e.g., an identifier table including a list of link identifiers and optional MAC addresses corresponding to the child nodes). In one embodiment, the database stores a rank number of the node 202 with which the NMS 214 is associated and the parent node and child nodes associated with the node 202.
[0054] The NMS 212/214 may include or consist essentially of a computing device, e.g., a server, which executes various program modules to perform methods in accordance with embodiments of the present invention. In addition, the memory may include or consist essentially of one or more volatile or non-volatile storage devices, e.g., random-access memory (RAM) devices such as DRAM, SRAM, etc., read-only memory (ROM) devices, magnetic disks, optical disks, flash memory devices, and/or other solid-state memory devices to store information associated with the tree root nodes and network nodes.
[0055] In various embodiments, the packet is delivered via a broadcast- with- ARQ frame 222. In addition, the broadcast-with-ARQ frame 222 may include a string of bits (or link identifiers); each bit corresponds to a child node associated with the parent node. For example, referring to FIG. 3, the network node 302 may include an identifier table 304 having a list of link identifiers 306 and optional MAC addresses 308 corresponding to the child nodes 310, 312, 314 associated therewith. The parent node 302 may assign the link identifier to each child node based on its order of association with the parent node. For example, assuming the child node 310 is associated with the parent node 302 prior to the child node 312, and the child node 312 is associated with the parent node 302 prior to the child node 314, the parent node 302 may assign the child nodes 310, 312, 314 with link identifiers of 0, 1, 2, respectively. When broadcasting or multicasting a packet to its child nodes, the NMS associated with the node 302 may generate a string 316 of bits based on the list of link identifiers 306 and subsequently configure the packet and the string of bits 316 as a broadcast-with-ARQ frame for delivery. In some embodiments, the number of bits in the string 316 is equal to the number of child nodes (or a selected group of child nodes) with which the parent node 302 is associated. In addition, the bit positions in the string may correspond to the link identifiers of the child nodes. For example, the string 316 may include 3 bits corresponding to the link identifiers of child nodes 310, 312, 314; the MSB position in the string may correspond to the highest number of the link identifiers (i.e., 2 corresponding to child node 314). As the bit position moves away from the MSB, the corresponding number of the link identifier may decrease until the LSB position corresponds to the lowest number of the link identifier (i.e., 0 corresponding to the child node 310). The parent node 302 may communicate the link identifiers (and, in one embodiment, their associated bit positions in the string 316) to the child nodes 310-314, which then store the information in the databases of their associated memory.
[0056] In one embodiment, the NMS associated with the parent node 302 may set the bit values in the string 316 to indicate whether the child nodes are required to report ACKs upon receipt of the broadcast- with- ARQ frame 222. For example, when the value in a bit position is set with a non-zero value (or “SET,” for ease of reference herein), the child node associated with the bit position is required to transmit an ACK to the transmitting parent node upon receiving the broadcast-with-ARQ frame 222. If, however, the value in a bit position of the string is set with the zero value (or “CLEAR,” for ease of reference herein), the child node associated with the bit position is not required to transmit an ACK to the parent node upon receiving the frame 222. For example, as depicted in FIG. 3, the bit values in the string 316 corresponding to the child nodes 310, 312, 314 are 1, 1, 0, respectively. Thus, upon receiving the frame 222, the child nodes 310, 312 are required to transmit ACKs to the parent node 302, while the child node 314 is not. The bit values in the string 316 may be set by the parent node for each broadcast or multicast of the packet. Alternatively, the bit values set for one broadcast/multicast may be utilized for the subsequent broadcast(s)/multicast(s).
[0057] In various embodiments, all child nodes 310-314 communicate with the parent node 302 via the same radio channel (i.e., the parent node 302 and child nodes 310-314 are tuned to the same radio channel). Upon receiving the broadcast-with-ARQ frame 222, each child node immediately processes the frame 222 to acquire the bit value in the bit position associated with its link identifier and, based thereon, determine whether to report an ACK to the parent node 302. FIG. 4 depicts an exemplary string 402 contained in the broadcast-with- ARQ frame 222 having 8 bits of values, {1, 0, 0, 1, 1, 1, 0, 1}, corresponding to 8 child nodes 404-418 of a parent node 420. Upon receiving the broadcast-with-ARQ frame 222, the child nodes 404-418 may access their databases to retrieve their link identifiers (and, in one embodiment, their bit positions) and process the frame 222 to acquire the bit values in their associated bit positions. In this example, child nodes 404-418 determine that their bit positions in the string 402 are 1-8, respectively. Based on the bit values, child nodes 404,
410, 412, 414, 418 determine that they are required to report the ACKs to the parent node 420 as the bit values in their associated positions are SET, while child nodes 406, 408, 416 determine that they are not required to report the ACKs as the bit values in their associated positions are CLEAR. [0058] Because all reporting child nodes 404, 410, 412, 414, 418 communicate with the parent node 420 via the same channel, it may be desired to schedule the transmission time of the ACKs from the child nodes 404, 410, 412, 414, 418 so as to avoid collision. In one embodiment, transmission time of the ACKs from the child nodes is scheduled by the parent node 420 based on the string of bits transmitted therefrom. For example, the child nodes may transmit the ACKs in accordance with the order of their associated bit positions in the string 402. In FIG. 4, because child nodes 404, 410, 412, 414, 418 are associated with the first, fourth, fifth, sixth and eighth bit positions, respectively, in the string; transmission of the ACKs may start from the child node 404, followed by the child node 410, followed by the child node 412, followed by the child node 414, and finally followed by the child node 418. [0059] Typically, the ACK reported from each child node is the same and has a fixed length, L. Thus, based on the data rate, R. of the radio channel, the time duration, t, for transmitting the ACK can be computed (e.g., I = L/R). In some embodiments, the time interval, At, between two successive ACKs from two reporting child nodes is also fixed. The interval, At, is typically set by the parent node and may be shorter than the interframe gap of a standard MAC layer within which the channel can be “idle” without being considered for usage by other irrelevant entities (as typically implemented in the CSMA/CA access scheme); this may advantageously allow the ACKs from different child nodes to be transmitted in succession with no interruption or collisions with other entities that attempt to access the same channel using the CSMA/CA channel access scheme.
[0060] In various embodiments, the child nodes compute their reporting times of the ACKs based on the transmission duration, t, of the ACK, the interval, At, between two successive ACKs, and their associated bit positions in the string 402. For example, an ACK duration, T, defined by the transmission duration, t, of the ACK and the interval, At, between successive ACKs can be first computed (e.g., T= t+ At). Each reporting child node then determines the number, K, of bits whose value is non-zero (i.e., SET) that precede its associated bit position; this indicates that there are K child nodes required to transmit the ACKs prior to its reports. The reporting time for the child node can then be computed as T c K. For example, referring again to FIG. 4, K = 0, 1, 2, 3, 4 for child nodes 404, 410, 412,
414, 418, respectively. Thus, the child node 404 may transmit the response ACK by the MAC layer immediately following receipt of the broadcast-with-ARQ frame 222 (following appropriate frame processing) such that there is no need to reacquire the radio channel for the ACK delivery. In addition, the child nodes 410, 412, 414, 418 may transmit their ACKs at time K, 2 K, 3 K, 4 K, respectively. Because all child nodes are in synchronization per reception of the frame 222 from their parent node 420, this approach may advantageously avoid collision of the response ACKs from the reporting child nodes.
[0061] In some situations, one or more of the child nodes may not receive the broadcast- with-ARQ frame 222, but this does not affect transmissions of the ACKs from other child nodes. This is because the reporting time of the ACK for each node is based on the bit position that is associated with the link identifier of the child node; the reporting time is unaffected regardless whether and how many child nodes fail to report the ACKs resulting from missing receipt of the broadcast-with-ARQ frame 222.
[0062] Accordingly, various embodiments herein can efficiently and reliably route a packet to a target group of nodes in a tree-based wireless network by configuring a broadcast- with-ARQ frame to include the packet and a string of bits that represent the child nodes (or a selected group of the child nodes) which the parent node delivers the broadcast-with-ARQ frame to. Upon receipt of the frame, the child nodes can determine whether and when to report the ACKs to the parent node based on the contents of the string and the assigned link identifiers. As a result, this approach may efficiently utilize a single broadcast/multicast to transmit the packet to a target group of nodes, thereby avoiding the need of inefficient multiple unicasts. In addition, the delivery time of the packet may be beneficially shortened and the bandwidth gain may be increased with the number of the target child nodes (since the parent node delivers a broadcast frame instead of multiple unicast frames). Further, this approach may reliably deliver the packet as the parent node can expect an ACK from each targeted child node, and may employ standard ARQ procedure in case that the ACK is not received at the expected time. For example, the parent node may transmit the packet in a unicasting manner with acknowledgement to the child nodes that were expected to, but did not, respond with ACKs. Alternatively, the parent node may configure an updated broadcast- with-ARQ frame that has an updated list of child nodes (e.g., including the child nodes that were expected to, but did not, respond with ACKs) and broadcast the updated broadcast-with- ARQ frame to the child nodes on the updated list.
[0063] FIG. 5 illustrates an exemplary approach 500 for delivering a packet to a target group of nodes in a tree-based wireless network in accordance herewith. In a first step 502, the parent node establishes an identifier table 304 having a list of link identifiers and optional MAC addresses corresponding to its associated child nodes. In one embodiment, the link identifier corresponding to each child node is assigned based on its order of association with the parent node. In a second step 504, the parent node transmits the link identifiers to the corresponding child nodes, which then store the information in their associated databases in memory. In a third step 506, the parent node, upon receiving a packet, generates a string of bits, each bit corresponding to a link identifier of a child node to which the parent node delivers the packet. For example, the MSB position in the string may correspond to the highest number of the link identifiers; as the bit position moves away from the MSB, the corresponding number of the link identifier may decrease until the LSB position corresponds to the lowest number of the link identifier. Thus, the total number of bits in the string indicates the number of child nodes with which the parent node is associated and to which it transmits the packet. In a fourth step 508, the parent node may configure the packet and the string of bits as a broadcast-with-ARQ frame and deliver the configured frame via a MAC layer to its associated child nodes. Upon receiving the frame, the child nodes may process the frame to acquire the bit values in the bit positions associated with their link identifiers (step 510). If the bit values are CLEAR, the child nodes are not required to respond ACKs to the parent nodes (step 512); the child nodes may then act as a parent node to create another string of bits based on the link identifiers of it associated child nodes (step 506) and configure the received packet and the string of bits as a new broadcast-with-ARQ frame and deliver the newly configured frame via a MAC layer to its associated child nodes (step 508). If, however, the bit values are SET, the child nodes are required to report ACKs to the parent nodes. In one embodiment, each child node determines its reporting time of the ACK based on its corresponding bit position in the string of bits and the ACK duration, T (step 514). For example, if there are K bits whose value is SET preceding the bit position associated the child node, the child node is expected to report the ACK at a time K c T. Subsequently, each child node can transmit an ACK to the parent node based on the computed reporting time (step 516). In addition, the child nodes may, again, act as a parent node to create a string of bits based on the link identifiers of its associated child nodes (step 506) and configure the received packet and the string of bits as a new broadcast-with-ARQ frame and deliver the newly configured frame to its associated child nodes (step 508). Steps 502-516 may be performed by each node along the path to the target node(s).
[0064] It should be noted that the broadcast-with-ARQ frame 222 and the string of bits described above are implemented only when the packet is delivered in a broadcasting or multicasting manner. If the packet is delivered in a unicasting manner, the standard MAC procedures can be implemented. In addition, the total time that the parent node may wait for receiving the ACKs before transmitting another message may depend on the number of the target child nodes which are required to report. Further, the approaches described herein for efficiently and reliably delivering a packet to a target group of nodes can be implemented in any wireless network that has an underlying logical tree-based structure. In addition, these approaches do not require the tree to be static. If the network is dynamic, the tree structure may occasionally change; the approaches described herein can automatically adapt to the new network topology. For example, as described above, when anew child node joins the network and needs to broadcast/multicast a packet to its associated child nodes, the parent node which the new child node is associated with may assign a new link identifier to the new child node and may include the new link identifier when creating a new string of bits for delivering a new packet.
[0065] In some embodiments, each node, when or after being associated with the tree network, is assigned with a rank number. In one embodiment, the rank number is assigned based on a number of nodes (or “hops”) traversed by a packet transmitted from the node en route to the root node using a distance-vector routing protocol. For example, referring to FIG. 6, nodes 604, 606, which are the child nodes of a root node 602 (and thereby directly communicate with the root node 602) may be assigned with a rank number of 1. In addition, because nodes 608, 610 (which are the child nodes of node 604) and node 612 (which is the child node of node 606) require two hops to reach the root node 602, they may be assigned with a rank number of 2. The rank numbers may be stored in the databases associated with the nodes.
[0066] In various embodiments, after a node, v, loses its connectivity to its parent node, the node does not immediately dismiss its entire subtree. Rather, node v may first search for a new parent node that has a smaller rank number than node v (i.e., having fewer hops to the root node than node v). If such a new parent node is identified immediately, the searching node v can associate itself with the new parent node to reconnect to the network; the recovery process is then considered complete. Optionally, node v may update its rank number based on the rank number of the newly associated parent node. For example, if the rank number of the newly associated parent node is n, the rank number of node v after association is n + 1. In addition, node v may transmit the updated rank number to its child nodes so that they can update their own rank numbers accordingly. As used herein, the term “immediately” refers to a relatively short amount of time, such as a time interval for transmitting 3 beacon messages (or, in some embodiments, 5 beacon messages). If, however, the new parent node having a smaller rank number than the searching node cannot be identified immediately, the searching node v may “freeze” its entire subtree and thereby prevent nodes in the frozen subtree from accepting new child nodes. In one embodiment, the searching node v freezes its subtree by periodically broadcasting a freeze message to its child node(s); each child node, upon receiving the message, changes its status to frozen such that it can neither offer to be a parent node nor accept a new child node. In addition, the child nodes may periodically broadcast the same beacon message to their own child nodes indicating their frozen status, which then causes the receiving child nodes to freeze as well; this message propagates “down the tree” until all nodes in the subtree of node v are frozen.
[0067] In some embodiments, after freezing its subtree, node v performs a second search for the new parent node that has a smaller rank number than node v. In one embodiment, node v is given a predetermined time interval (e.g., 10 seconds or, in some embodiments, 20 seconds) to perform the second search. The predetermined time interval for the second search may be longer than that for the first search as the second search may require node v to scan multiple channels and/or identify beacon messages from the potential new parent node.
If the new parent node is identified within the predetermined time interval, node v may associate itself with the new parent node to regain connectivity to the tree network. Subsequently, node v may transmit an updated beacon message to its child nodes to unfreeze the entire subtree. Again, node v may optionally update its rank number based on the rank number of the newly associated parent node and then transmit the updated information to its child nodes for updating their rank numbers accordingly. If, however, the new parent node cannot be identified within the predetermined time interval, node v may increase its rank number to infinity and broadcast this information to its child nodes via an updated beacon message. In some embodiments, node v stops transmitting the beacon messages after a few (e.g., 5 or 10) messages have been sent.
[0068] In one embodiment, the child nodes, after receiving the updated message and/or after they stop receiving the message from node v, determine that node v can no longer serve as their parent node (i.e., the child nodes are now dismissed). Each child node may then proceed with the same searching procedure that node v performed to find a new parent node — i.e., each child node may perform the first (or immediate) search (and the second search if no parent node is identified in the first search) for a new parent node that has a smaller rank number than the child node as described above. Again, if the child node finds the new parent node immediately (e.g., within a transmission time of 3 beacon messages), it does not freeze the subtree and the connectivity recovery is considered complete after the child node is associated with its new parent node. If, however, the new parent node cannot be identified immediately in the first search, the child node may freeze its subtree and subsequently perform the second search. Again, if the new parent node can be identified in the second search within the predetermined time interval (e.g., 10 seconds or 20 seconds), the child node may associate itself with the new parent node. If, however, the new parent node cannot be identified in the second search within the predetermined time interval, the child node may increase its rank number to infinity and transmit this information to its child nodes to dismiss them, which then can perform the first search (and the second search if necessary) for a new parent node.
[0069] Accordingly, various embodiments herein do not require the node that loses connectivity to its parent node to dismiss its entire subtree immediately for recovery. Rather, only the child nodes of the node losing connectivity may be dismissed if the new parent node cannot be identified in, for example, two rounds of searches. In addition, because the node (e.g., node v) losing connectivity to its parent node may search only for a new parent node with a smaller rank number, the searching node cannot choose any of the child nodes in its subtree to be the new parent node; this thereby avoids creation of a routing loop in the network. Further, because all child nodes in the subtree of the node (e.g., node v) that loses connectivity are frozen, no child nodes in the subtree can offer to be the parent node of node v. As a result, node v cannot receive any offers from the child nodes in its subtree; this further ensures that no routing loops are created in the network.
[0070] FIG. 7A depicts an exemplary connectivity failure in a tree-based network 400 where both nodes B and C lose connectivity to their parent node A. Assuming neither node B nor node C can immediately find a new parent node having a smaller rank number than their own, they may freeze their associated subtrees 702, 704 and perform the second search for the new parent node. Assuming that the new parent node cannot be identified within the predetermined time (e.g., 10 seconds) in the second search, both nodes B and C may increase their rank numbers to infinity and dismiss their associated child nodes D, E, F. Thereafter, nodes D, E (which are the child nodes of node B) and F (which is the child node of node C) may search for new parent nodes in the same manner as nodes B and C. Referring to FIG.
7B, assuming that node F identifies and chooses node A to be its new parent node, upon associating with node A, node F may unfreeze its subtree (which is empty in FIGS. 7A and 7B) and optionally update its rank number based on the rank number of node A.
Subsequently, node C may choose node F as its new parent node and optionally update its rank number; and nodes B and E may choose node C as their new parent node and, again, optionally update their rank numbers based on the new tree network 710.
[0071] FIG. 8 illustrates an exemplary approach 800 for promptly recovering from a connectivity failure in a tree-based distance- vector routing protocol in accordance herewith.
In a first step 802, a rank number is assigned to each node in the network; the assigned rank number is stored in a database associated with the corresponding node. In one embodiment, the rank number is assigned based on a number of intermediate nodes (or hops) traversed by a packet transmitted from the corresponding node en route to the root node using the distance- vector routing protocol. In a second step 804, when a node detects a connectivity failure to its parent node, the node may search for a new parent node based on the rank numbers assigned to the nodes in the network. For example, the new parent node may have a rank number smaller than the node that lost connectivity. If the new parent node is identified immediately (e.g., within the transmission time of 3 beacon messages or, in some embodiments, 5 beacon messages), the node may associate itself with the new parent node so as to regain connectivity to the network (step 806). In addition, the node may optionally update its rank number based on the rank number of the newly associated parent node and then transmit this information to its child nodes to update their ranks numbers accordingly. [0072] If, however, the new parent node cannot be identified immediately, the node may freeze its subtree (step 808). For example, the node may broadcast a “freeze” message to its child nodes, which then change their status to frozen and broadcast the same message to their child nodes. This message may propagate down the tree until all nodes in the subtree are frozen. Once the subtree is frozen, the node losing connectivity to its parent may perform a second search for a new parent node (step 810). If a new parent node is identified within a predetermined time period (e.g., 10 seconds or 20 seconds), the node may associate itself with the new parent node and transmit an updated beacon message to its child nodes to unfreeze the subtree (step 812). Again, the node may then optionally update its rank information based on the rank number of the newly associated parent node and transmit the updated information to its child nodes, enabling them to update their rank number accordingly. If, however, the new parent node cannot be identified within the predetermined time period, the node may increase its rank number to infinity and transmit this information to its child nodes to cause dismissal thereof (step 814). Thereafter, the newly dismissed nodes may perform steps 804-814 to reconnect to a new parent node or dismiss their associated child nodes.
[0073] It should be noted that the approaches described above for assigning a rank number to a node in the tree network are exemplary only; any suitable approach may be used and all are thus within the scope of the invention. In addition, the approaches described herein for promptly recovering from a connectivity failure in the tree-based distance-vector routing protocol can be implemented in any wireless network that has an underlying logical tree-based structure. Further, these approaches do not require the tree to be static. If the network is dynamic, the tree structure may occasionally change; the approaches described herein can automatically adapt to the new network topology.
[0074] The NMS 212/214 described herein may include one or more modules (e.g., a routing module 215, a rank-number-assignment module 216, a search module 218, a connection module 220, etc.) implemented in hardware, software, or a combination of both for performing the functions described above (e.g., steps in FIGS. 5 and 8). For embodiments in which the functions are provided as one or more software programs, the programs may be written in any of a number of high level languages such as PYTHON, FORTRAN, PASCAL, JAVA, C, C++, C#, BASIC, various scripting languages, and/or HTML. Additionally, the software can be implemented in an assembly language directed to the microprocessor resident on a target computer; for example, the software may be implemented in Intel 80x86 assembly language if it is configured to run on an IBM PC or PC clone. The software may be embodied on an article of manufacture including, but not limited to, a floppy disk, a jump drive, a hard disk, an optical disk, a magnetic tape, a PROM, an EPROM, EEPROM, field- programmable gate array, or CD-ROM. Embodiments using hardware circuitry may be implemented using, for example, one or more FPGA, CPLD or ASIC processors.
[0075] The terms and expressions employed herein are used as terms and expressions of description and not of limitation, and there is no intention, in the use of such terms and expressions, of excluding any equivalents of the features shown and described or portions thereof. In addition, having described certain embodiments of the invention, it will be apparent to those of ordinary skill in the art that other embodiments incorporating the concepts disclosed herein may be used without departing from the spirit and scope of the invention. Accordingly, the described embodiments are to be considered in all respects as only illustrative and not restrictive.
[0076] What is claimed is:

Claims

1. A method of routing a packet in a network comprising a plurality of cells each supporting communication among a plurality of transceiver nodes therein and being capable of receiving and transmitting the packet, each cell comprising a parent node and at least one child node, the method comprising:
(a) for each cell, establishing and storing an identifier table comprising at least one link identifier associated with the at least one child node;
(b) upon receiving a packet, generating a string of at least one bit based at least in part on the at least one link identifier; and
(c) transmitting the packet and the string to the at least one child node.
2. The method of claim 1, further comprising receiving an acknowledgement (ACK) from the at least one child node.
3. The method of claim 2, wherein the at least one child node transmits the ACK only when a value of the at least one bit is non-zero.
4. The method of claim 1, wherein the pack and the string in step (c) are transmitted in a broadcasting manner.
5. The method of claim 1, wherein at least one of the cells comprises a plurality of child nodes, the identifier table in said at least one of the cells comprises a plurality of link identifiers, each associated with one of the plurality of child nodes, and the string generated in step (b) comprises a plurality of bits, each corresponding to one of the link identifiers.
6. The method of claim 5, wherein a most-significant bit (MSB) position in the string corresponds to a highest number of the link identifiers, and as a bit position moves away from the MSB, the corresponding number of the link identifier decreases.
7. The method of claim 6, further comprising receiving at least some ACKs from at least some of the plurality of child nodes, wherein each of the at least some of the child nodes transmits the ACK at a transmitting time based at least in part on the bit position associated with its link identifier in the string.
8. The method of claim 7, wherein the transmitting time associated with each of the at least some of the child nodes is further based at least in part on a transmission duration of the ACK and a time interval between two successive ACKs.
9. The method of claim 8, wherein the transmitting time associated with each of the at least some of the child nodes satisfies an equation: transmitting time = (/ + At) c K where I denotes the transmission duration of the ACK, At denotes the time interval between two successive ACKs, and A denotes a number of bits having non-zero values and preceding the bit position associated with said each of the at least some of the child nodes in the string.
10. The method of claim 8, further comprising, upon determining that the ACK from one of the at least some of the child nodes is not received at the transmitting time associated therewith, retransmitting the packet to said one of the at least some of the child nodes.
11. A router for handling packets in a network, the router comprising: memory for storing an identifier table comprising a plurality of link identifiers and a plurality of child nodes , each of the link identifiers being associated with one of the child nodes of the router; and a routing module configured to:
(a) upon receiving a packet, generate a string of at least one bit based at least in part on one of the link identifiers; and
(b) transmit the packet and the string to the child node associated with the one of the link identifiers.
12. The router of claim 11, wherein the routing module is further configured to receive an ACK from the child node.
13. The router of claim 12, wherein the child node transmits the ACK only when a value of the at least one bit is non-zero.
14. The router of claim 11, wherein the routing module is further configured to transmit the pack and string in a broadcasting manner.
15. The router of claim 11, wherein the string generated in step (a) comprises a plurality of bits, each corresponding to one of the link identifiers.
16. The router of claim 15, wherein a most-significant bit (MSB) position in the string corresponds to a highest number of the link identifiers, and as a bit position moves away from the MSB, the corresponding number of the link identifier decreases.
17. The router of claim 16, wherein the routing module is further configured to receive at least some ACKs from at least some of the plurality of child nodes, wherein each of the at least some of the child nodes transmits the ACK at a transmitting time based at least in part on the bit position associated with its link identifier in the string.
18. The router of claim 17, wherein the transmitting time associated with each of the at least some of the child nodes is further based at least in part on a transmission duration of the ACK and a time interval between two successive ACKs.
19. The router of claim 18, wherein the transmitting time associated with each of the at least some of the child nodes satisfies an equation: transmitting time = (/ + At) c K where t denotes a transmission duration of the ACK, At denotes the time interval between two successive ACKs, and K denotes a number of bits having non-zero values and preceding the bit position associated with said each of the at least some of the child nodes in the string.
20. The router of claim 18, wherein the routing module is further configured to, upon determining that the ACK from one of the at least some of the child nodes is not received at the transmitting time associated therewith, retransmit the packet to said one of the at least some of the child nodes.
21. A network system for routing a packet in a network comprising a plurality of cells each supporting communication among a plurality of transceiver nodes therein and being capable of receiving and transmitting the packet, each cell comprising a parent node and at least one child node, the system comprising: memory for storing an identifier table comprising at least one link identifier associated with the at least one child node; and at least one network management system associated with at least one of the transceiver nodes, the at least one network management system being configured to:
(a) upon receiving a packet, generate a string of at least one bit based at least in part on the at least one link identifier; and
(b) transmit the packet and the string to the at least one child node.
22. The network system of claim 21, wherein the at least one network management system is further configured to receive an ACK from the at least one child node.
23. The network system of claim 22, wherein the at least one child node transmits the ACK only when a value of the at least one bit is non-zero.
24. The network system of claim 21, wherein the at least one network management system is further configured to transmit the pack and string in a broadcasting manner.
25. The network system of claim 21, wherein at least one of the cells comprises a plurality of child nodes, the identifier table in said at least one of the cells comprises a plurality of link identifiers, each associated with one of the plurality of child nodes, and the string generated in step (a) comprises a plurality of bits, each corresponding to one of the link identifiers.
26. The network system of claim 25, wherein a most-significant bit (MSB) position in the string corresponds to a highest number of the link identifiers, and as a bit position moves away from the MSB, the corresponding number of the link identifier decreases.
27. The network system of claim 26, wherein the at least one network management system is further configured to receive at least some ACKs from at least some of the plurality of child nodes, wherein each of the at least some of the child nodes transmits the ACK at a transmitting time based at least in part on the bit position associated with its link identifier in the string.
28. The network system of claim 27, wherein the transmitting time associated with each of the at least some of the child nodes is further based at least in part on a transmission duration of the ACK and a time interval between two successive ACKs.
29. The network system of claim 28, wherein the transmitting time associated with each of the at least some of the child nodes satisfies an equation: transmitting time = (/ + At) c K where t denotes a transmission duration of the ACK, At denotes the time interval between two successive ACKs, and K denotes a number of bits having non-zero values and preceding the bit position associated with said each of the at least some of the child nodes in the string.
30. The network system of claim 28, wherein the at least one network management system is further configured to, upon determining that the ACK from one of the at least some of the child nodes is not received at the transmitting time associated therewith, retransmit the packet to said one of the at least some of the child nodes.
31. A method of recovering a connectivity failure in a network comprising a plurality of cells each (i) supporting communication among a plurality of transceiver nodes, (ii) being capable of receiving and transmitting a packet and (iii) being associated with a parent node and at least one child node, the method comprising:
(a) assigning a rank number to each of the nodes;
(b) upon detecting a connectivity failure of one of the nodes to its parent node, searching for a new parent node based at least in part on the rank numbers assigned to the nodes; and
(c) upon identifying the new parent node within a first predetermined time period, reconnecting said one of the nodes to the network by associating it with the new parent node.
32. The method of claim 31, wherein the rank number is assigned based at least in part on a number of intermediate nodes traversed by the packet transmitted from said one of the nodes en route to a root node in the network using a distance-vector routing protocol.
33. The method of claim 32, wherein the new parent node has a rank number smaller than that of said one of the nodes.
34. The method of claim 31, wherein the first predetermined time period is a transmission time of three beacon messages.
35. The method of claim 31, further comprising, upon determining that the new parent node is not identified within the first predetermined time period, transmitting a message from said one of the nodes to the at least one child node associated therewith so as to freeze activities thereof.
36. The method of claim 35, further comprising, thereafter, searching for the new parent node for a second predetermined time period.
37. The method of claim 36, wherein the second predetermined time period is between 10 seconds and 20 seconds.
38. The method of claim 36, further comprising, upon identifying the new parent node within the second predetermined time period, (i) reconnecting said one of the nodes to the network by associating it with the new parent node and/or (ii) updating the rank number associated with said one of the nodes based at least in part on the rank number associated with the new parent node.
39. The method of claim 38, further comprising transmitting an update message from said one of the nodes to the at least one child node associated therewith so as to unfreeze the activities thereof.
40. The method of claim 38, further comprising, upon determining that the new parent node is not identified within the second predetermined time period, (i) increasing the rank number associated with said one of the nodes and (ii) transmitting an update message from said one of the nodes to the at least one child node associated therewith so as to disconnect the at least one child node from said one of the nodes.
41. The method of claim 40, wherein the rank number associated with said one of the nodes is increased to infinity.
42. A router for recovering a connectivity failure in a network, the router comprising: an assignment module configured to assign a rank number to the router; a search module configured to detect a connectivity failure of the router to its parent node and thereupon to search for a new parent node within a first predetermined time period and based at least in part on the rank number assigned to the router; and a connection module configured to detect identification of the new parent node by the search module and to responsively associate the router with the new parent node so as to reconnect the router to the network.
43. The router of claim 42, wherein the rank number is assigned based on a number of intermediate nodes traversed by a packet transmitted from the router en route to a root node in the network using a distance-vector routing protocol.
44. The router of claim 43, wherein the new parent node has a rank number smaller than that of the router.
45. The router of claim 42, wherein the first predetermined time period is a transmission time of three beacon messages.
46. The router of claim 42, wherein the connection module is configured to detect to failure of the search module to identify the new parent node and to responsively transmit a message from the router to at least one child node associated therewith so as to freeze activities thereof.
47. The router of claim 46, wherein the search module is further configured to search for the new parent node for a second predetermined time period after the activities of the at least one child node are frozen.
48. The router of claim 47, wherein the second predetermined time period is between 10 seconds and 20 seconds.
49. The router of claim 47, wherein the connection module is further configured to detect identification of the new parent node within the second predetermined time period and to responsively (i) associate the router with the new parent node so as to reconnect the router to the network and/or (ii) cause the assigning module to update the rank number associated with the router based at least in part on the rank number associated with the new parent node.
50. The router of claim 49, wherein the connection module is further configured to transmit an update message to the at least one child node associated so as to unfreeze the activities thereof.
51. The router of claim 49, wherein the connection module is further configured to detect failure to identify the new parent node within the second predetermined time period and the responsively (i) increase the rank number associated with the router and (ii) transmit an update message to the at least one child node so as to disconnect the at least one child node from the router.
52. The router of claim 51, wherein the rank number associated with the router is increased to infinity.
53. A network system for recovering a connectivity failure in a network comprising a plurality of cells each (i) supporting communication among a plurality of transceiver nodes, (ii) and being capable of receiving and transmitting a packet and (iii) being associated with a parent node and at least one child node, the system comprising: memory for storing a plurality of rank numbers each associated with one of the nodes in the network; a plurality of network management systems each associated with one of the nodes and being configured to (i) detect a connectivity failure of the system-associated node, (ii) search for a new parent node based at least in part on the rank numbers assigned to the nodes in the network, and (iii) upon identifying the new parent node within a first predetermined time period, associate the system-associated node to the new parent node.
54. The network system of claim 53, wherein the rank number is assigned based on a number of intermediate nodes traversed by the packet transmitted from the node that has the connectivity failure en route to a root node in the network using a distance-vector routing protocol.
55. The network system of claim 54, wherein the new parent node has a rank number smaller than that of the node having the connectivity failure.
56. The network system of claim 53, wherein the first predetermined time period is a transmission time of three beacon messages.
57. The network system of claim 53, wherein the network management system is configured to determine that the new parent node is not identified within the first predetermined time period and to thereupon cause transmission of a message from the system-associated node to the at least one child node associated therewith so as to freeze activities thereof.
58. The network system of claim 57, wherein the network management system is further configured to search for the new parent node of the system-associated node for a second predetermined time period after the activities of the at least one child node are frozen.
59. The network system of claim 58, wherein the second predetermined time period is between 10 seconds and 20 seconds.
60. The network system of claim 58, wherein the network management system is further configured to, upon identifying the new parent node within the second predetermined time period, (i) associate the system-associated node with the new parent node and/or (ii) update the rank number associated with the system-associated node based at least in part on the rank number associated with the new parent node.
61. The network system of claim 60, wherein the network management system is further configured to cause transmission of a message from the system-associated node to the at least one child node associated therewith so as to unfreeze the activities thereof.
62. The network system of claim 60, wherein the network management system is further configured to, upon determining that the new parent node is not identified within the second predetermined time period, (i) increase the rank number of the system-associated node and (ii) cause transmission of an update message from the system-associated node to the at least one child node associated therewith so as to disconnect the at least one child node therefrom.
63. The network system of claim 62, wherein the rank number associated with the system-associated node is increased to infinity.
PCT/IB2020/000998 2019-11-11 2020-11-11 Systems and methods for operating tree-based wireless networks WO2021094834A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP20886788.7A EP4059312A1 (en) 2019-11-11 2020-11-11 Systems and methods for operating tree-based wireless networks

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962933626P 2019-11-11 2019-11-11
US201962933627P 2019-11-11 2019-11-11
US62/933,626 2019-11-11
US62/933,627 2019-11-11

Publications (1)

Publication Number Publication Date
WO2021094834A1 true WO2021094834A1 (en) 2021-05-20

Family

ID=75911873

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2020/000998 WO2021094834A1 (en) 2019-11-11 2020-11-11 Systems and methods for operating tree-based wireless networks

Country Status (2)

Country Link
EP (1) EP4059312A1 (en)
WO (1) WO2021094834A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060215581A1 (en) * 2005-03-23 2006-09-28 Cisco Technology, Inc. Configuration of failure and acquire timeouts to facilitate recovery from failures in hierarchical mesh networks
US20160254987A1 (en) * 2015-02-26 2016-09-01 Cisco Technology, Inc. Traffic engineering for bit indexed explicit replication
US20180316520A1 (en) * 2017-04-28 2018-11-01 Cisco Technology, Inc. Bridging of non-capable subnetworks in bit indexed explicit replication
WO2019128740A1 (en) * 2017-12-27 2019-07-04 华为技术有限公司 Message processing method and device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060215581A1 (en) * 2005-03-23 2006-09-28 Cisco Technology, Inc. Configuration of failure and acquire timeouts to facilitate recovery from failures in hierarchical mesh networks
US20160254987A1 (en) * 2015-02-26 2016-09-01 Cisco Technology, Inc. Traffic engineering for bit indexed explicit replication
US20180316520A1 (en) * 2017-04-28 2018-11-01 Cisco Technology, Inc. Bridging of non-capable subnetworks in bit indexed explicit replication
WO2019128740A1 (en) * 2017-12-27 2019-07-04 华为技术有限公司 Message processing method and device

Also Published As

Publication number Publication date
EP4059312A1 (en) 2022-09-21

Similar Documents

Publication Publication Date Title
US11297468B2 (en) Efficient multicast group routing across tree-based wireless network
AU2003296959B2 (en) System and method for link-state based proxy flooding of messages in a network
Rathi et al. A review on routing protocols for application in wireless sensor networks
CN102711209A (en) Dynamic self-organizing hierarchical routing method applied to wireless sensor network
US20090147723A1 (en) Method and Device for Data Routing and Bandwidth Reservation in Small Scale Distributed Networks
CN101167311A (en) Multicast route protocol in gridding network
US10637684B2 (en) Mesh network connectivity
US11575603B2 (en) Route optimization using star-mesh hybrid topology in localized dense ad-hoc networks
CN112822751B (en) Hybrid wireless network routing method
US20180302317A1 (en) Unicast message routing using repeating nodes
US20210144088A1 (en) Systems and methods for fast connectivity recovery in tree-based distance-vector routing protocols
US20230188466A1 (en) Route optimization using star-mesh hybrid topology in localized dense ad-hoc networks
EP3878215A1 (en) Systems and methods for multicast group routing, firmware updating, and next-hop routing in tree-based wireless networks
US20220201065A1 (en) Systems and methods for reliable firmware update in tree-based wireless networks
Gerla et al. On demand multicast routing with unidirectional links
CN110996266B (en) Multicast group data transmission method of ad hoc network system
WO2021094834A1 (en) Systems and methods for operating tree-based wireless networks
US20220279423A1 (en) Systems and methods for efficient and reliable cell broadcasting in tree-based wireless networks
Kouvatsos et al. Broadcasting methods in mobile ad hoc networks: an overview
WO2009129669A1 (en) Method and device for data routing and bandwidth reservation in small scale distributed networks
Yousefi et al. Long lifetime routing in unreliable wireless sensor networks
Sun et al. A distributed energy efficient and reliable routing protocol for wireless sensor networks
Kyasanur et al. Smart gossip: Infusing adaptivity into gossiping protocols for sensor networks
WO2024184591A1 (en) A source routing information dissemination solution for wireless mesh networks
Reddy et al. Route Resurgence By Congestion Endurance (RRCE): A Strategic Routing Topology For Mobile Ad Hoc Networks

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20886788

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020886788

Country of ref document: EP

Effective date: 20220613