Optimized routing for time-critical traffic in mesh networks

By estimating and selecting the shortest RTT for parent nodes in mesh networks, time-critical messages are efficiently routed, reducing latency and power consumption for timely issue resolution.

JP7837981B2Active Publication Date: 2026-03-31LANDIS GYR TECH INC
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-12-10
Publication Date
2026-03-31

AI Technical Summary

Technical Problem

Existing routing mechanisms in mesh networks, such as those based on LQI or ETX, do not guarantee short round-trip times for time-critical messages, which are crucial for smart grids and resource distribution networks to ensure timely corrective actions.

Method used

Child nodes in the mesh network estimate and select the parent node with the shortest round-trip time (RTT) for sending time-critical messages, using unicast messages to calculate RTT and switching back to the primary path for normal data transmission.

Benefits of technology

This approach reduces latency and power consumption by ensuring time-critical messages reach the root node quickly, allowing for prompt issue resolution and minimizing network involvement.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007837981000015
    Figure 0007837981000015
  • Figure 0007837981000016
    Figure 0007837981000016
  • Figure 0007837981000017
    Figure 0007837981000017
Patent Text Reader

Abstract

A system is provided for optimizing routes for time-critical messages in a mesh network. For example, a child node in a mesh network can communicate with a root node through any of its parent nodes. The child node is configured to transmit normal data to the root node through a primary route associated with its primary parent. When a time-critical message is to be transmitted to the root node, the child node estimates a round trip time (RTT) for each route between the child node and the root node. The child node selects, among its parent nodes, a parent node having an associated route with the shortest RTT, and transmits the time-critical message to the root node through the selected parent node. After transmitting the time-critical message, the child node transmits additional normal data to the root node by switching back to the primary route.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This disclosure relates in general to mesh networks, and more specifically to optimizing the routing of time-critical messages in mesh networks. [Background technology]

[0002] In mesh networks, such as those based on the Routing Protocol of Lossy Medium (RPL), upward routing is performed via preferred parents, while downward routing is performed by root nodes via source routing. Nodes in a mesh network can select parents for routing based on the network's objectives, such as good link quality and low routing costs. The link quality index (LQI) and expected transmission count (ETX) are common attributes when selecting parents for routing in lossy mesh networks. [Overview of the Initiative] [Problems that the invention aims to solve]

[0003] Smart grids or other resource distribution networks associated with mesh networks often require data to reach the headend system in the shortest possible time so that corrective actions can be sent to the devices. For example, distribution automation (DA) data is highly critical, and the round-trip time (RTT) for this data must be as short as possible. Similarly, outage data must reach the headend system reliably and quickly. However, existing routing mechanisms using objective functions based on LQI or ETX, while reliable, do not guarantee a small RTT for messages. Therefore, these existing routing mechanisms are insufficient to handle routing requirements for time-critical messages. [Means for solving the problem]

[0004] This invention discloses apparatuses and processing embodiments for optimizing routes for time-critical messages in a mesh network. In one embodiment, the mesh network includes a root node, child nodes that communicate with the root node via other nodes in the mesh network, and a plurality of parent nodes of the child nodes. Each of the plurality of parent nodes is associated with a route between the child nodes and the root node that passes through the parent node. The plurality of parent nodes includes a primary parent node and one or more backup parent nodes. The child node is configured to send normal data to the root node via the primary route associated with the primary parent node, to decide when it should send a time-critical message to the root node, and to estimate the round-trip time (RTT) for each route between the child node and the root node associated with one of the plurality of parent nodes, based on the messages sent between the child node and each of the plurality of parent nodes. The child node is further configured to select a parent node from among several parent nodes that has the shortest RTT and associated path, send time-critical messages to the root node via the selected parent node, and after sending time-critical messages to the root node via the selected parent node, send additional normal data to the root node via the primary path.

[0005] In another embodiment, a node in the network comprises a processor configured to execute computer-readable instructions and memory configured to store computer-readable instructions, which, when executed by the processor, cause the processor to perform the following action: This action includes sending normal data to the root node of the network via a primary path associated with the primary parent node of the node. The node has multiple parent nodes in the network, including a primary parent node and one or more backup parent nodes. Each of the multiple parent nodes is associated with a path between the node and the root node of the network. This action further includes deciding that a time-critical message should be sent to the root node and estimating the round-trip time (RTT) for each path between the node and the root node associated with one of the multiple parent nodes, based on messages sent between the node and each of the multiple parent nodes. This action also includes sending additional normal data to the root node by selecting a parent node among the multiple parent nodes that has the shortest associated path with the shortest RTT, sending a time-critical message to the root node via the selected parent node, and switching back to the primary path.

[0006] In yet another embodiment, a method for sending a time-critical message in a mesh network includes a node in the mesh network sending normal data to the root node of the mesh network via a primary path associated with the node's primary parent node. The node has multiple parent nodes in the mesh network, including a primary parent node and one or more backup parent nodes. Each of the multiple parent nodes is associated with a path between the node and the root node of the mesh network. The method further includes the node deciding that a time-critical message should be sent to the root node, and the node estimating the round-trip time (RTT) for each path between the node and the root node associated with one of the multiple parent nodes, based on messages sent between the node and each of the multiple parent nodes. The method also includes the node selecting a parent node from the multiple parent nodes that has the shortest associated path with the shortest RTT, the node sending a time-critical message to the root node via the selected parent node, and the node sending additional normal data to the root node by switching back to the primary path.

[0007] These exemplary embodiments and features are mentioned not to limit or define the subject matter described herein, but to provide examples that aid in understanding the concepts described herein. Other embodiments, advantages, and features of the subject matter described herein will become apparent by reviewing the entire application.

[0008] These and other features, aspects, and advantages of this disclosure will be further understood when the following detailed description is read with reference to the accompanying drawings. [Brief explanation of the drawing]

[0009] [Figure 1]This block diagram shows an exemplary operating environment for optimizing the routing of time-critical messages in a mesh network according to a predetermined aspect of this disclosure. [Figure 2A] This invention illustrates an exemplary hierarchy of nodes in a mesh network and the interactions between these nodes for estimating the round-trip time (RTT) of paths between child nodes and root nodes, according to a predetermined aspect of this disclosure. [Figure 2B] This document presents another embodiment of node-to-node interaction in a mesh network for estimating the round-trip time (RTT) of paths between child nodes and root nodes, according to a predetermined aspect of this disclosure. [Figure 3] This document provides an example of a process for optimizing the path of time-critical messages in a mesh network, according to a predetermined aspect of this disclosure. [Figure 4] This document provides an example of a process for calculating Round-Trip Time (RTT) using nodes along a path from a child node to a root node in a mesh network, according to a predetermined aspect of this disclosure. [Figure 5] This document provides an example of a process for calculating the round-trip time (RTT) for a path from a child node to a root node in a mesh network, according to a predetermined aspect of this disclosure. [Figure 6] This is a block diagram showing examples of nodes suitable for implementing the aspects of the technology presented in this application. [Modes for carrying out the invention]

[0010] A system and method are provided for optimizing the routing of time-critical messages in a mesh network. In some embodiments, child nodes in a mesh network have a set of parent nodes, each of which is associated with a route between the child node and the root node of the network. The set of parent nodes includes a primary parent node and one or more backup parents. In some embodiments, a child node selects a set of parent nodes from its neighboring nodes based on predetermined criteria, such as the route through a parent node satisfying an objective function based on LQI or ETX. The child node is configured to transmit normal data (e.g., power consumption data in a power distribution network) to the root node via the primary route associated with the primary parent. If a child node determines that a time-critical message (also called a “critical message”), such as DA data or outage data, should be transmitted to the root node, the child node may select a route based on the round-trip time (RTT) maintained by the child node for each route associated with one of the parent nodes in the set of parent nodes.

[0011] Child nodes also sometimes estimate and update the RTT for each path. For example, a child node can estimate the RTT when communicating with the root node by sending a unicast message (e.g., a destination advertisement object message, or any unicast message upwards for which an affirmative response is expected) to the root node and receiving an affirmative response from the root node. The child node can record the time it takes to send a message to the root node via each parent node and the time it takes to receive an affirmative response message via each parent node. The difference between the transmission time and the reception time via a given parent node can be determined as the RTT for the path associated with the parent node. The child node can send unicast messages periodically, for example, every hour. Intermediate nodes on the path from the child node to the root node can also estimate the RTT for the path between each intermediate node and the root node using the difference between the transfer time of the unicast message and the reception time of the affirmative response message.

[0012] In another embodiment, a child node can estimate the RTT through communication between the child node and each of its parent nodes. For example, for a given parent node, the child node can determine the RTT between the child node and the parent node through message exchange between these two nodes. The child node can further obtain the RTT for the path between this parent node and the root node through a control message received from the parent node. In the control message, the parent node can insert the RTT of the path from the parent node to the root node. Thus, the child node can calculate the RTT from the child node to the root node by summing the RTT of the path between the child node and the parent node and the RTT of the path between the parent node and the root node.

[0013] Based on the calculated RTT between child nodes and the root node via different parent nodes, the child node selects a parent node (primary parent node or alternative parent node) having an associated path with the shortest RTT, or uses the RTT as a parent selection factor. The child node sends a critical message to the selected parent node, and the selected parent node further forwards the critical message to the root node via its associated path. Then, the child node switches back to the primary path and continues to send normal data to the root node via the primary path.

[0014] The techniques described in this disclosure reduce the latency in sending time-critical messages to the root node. This enables quickly addressing an urgent issue of a mesh network or an associated resource allocation network. Further, by selecting a path with the shortest RTT, the power consumption for sending time-critical messages is reduced. For example, due to the short RTT, the child node can receive an acknowledgement of the time-critical message within a shorter time period, and thus, the child node can transition to the sleep mode earlier, resulting in a reduced startup time of the child node. Also, a path with the shortest RTT typically has a smaller number of hops. As a result, fewer nodes are involved in sending the time-critical message, and the overall power consumption of the network for sending the critical message is reduced.

[0015] Exemplary Operating Environments Figure 1 shows an exemplary operating environment 100 for optimizing the routing of time-critical messages in a mesh network. The operating environment 100 includes a mesh network 140, where nodes are configured to select an optimized route when transmitting time-critical messages. The mesh network 140 shown in Figure 1 includes a plurality of nodes 160A to 160N (which may be referred to as nodes 160 individually or collectively in this application). Nodes 160 may include measurement nodes for collecting data from each location of deployed nodes, processing nodes for processing data available to the nodes, router nodes for forwarding data received from one node in the network 104 to other nodes, or nodes configured to perform a combination of these functions. Nodes 160 are further configured to communicate with each other so that data packets 112 containing messages or other data can be exchanged between nodes 160.

[0016] In one embodiment, the mesh network 104 may be associated with a resource distribution network, such as a utility network, and may distribute measurement data acquired in the resource distribution network. In this embodiment, node 160 may include meters such as electric meters, gas meters, water meters, steam meters, and any other type of IoT (Internet of Things) device, and may be implemented to measure various operating characteristics of the resource distribution network, such as resource consumption characteristics. In a power distribution network, exemplary characteristics include, but are not limited to, average or total power consumption, peak voltage of electrical signals, power surges, and load fluctuations. Node 160 transmits the collected data through the mesh network 104 to, for example, a root node 114.

[0017] The root node 114 of network 140 may be configured to communicate with node 160 to perform predetermined operations, such as managing node 160, collecting data from node 160, and transferring data to the headend system 104. The root node 114 may also be configured to function as a node that measures and processes data itself. The root node 114 may be a personal area network (PAN) coordinator, gateway, or any other device that can communicate with the headend system 104. The root node 114 ultimately transmits the generated and collected data to the headend system 104 via another network 170, such as the Internet, an intranet, or any other data communication network. The headend system 104 may function as a central processing system that receives data streams or messages from the root node 114. The headend system 104, or any other system associated with the utility company, may process or analyze the collected data for various purposes, such as billing, performance analysis, or troubleshooting.

[0018] Figure 1 shows a specific network topology (e.g., a destination-oriented directed acyclic graph (DODAG) tree), but it should be understood that other network topologies are also possible (e.g., ring topology, mesh topology, star topology, etc.). It should be further understood that the topology in Figure 1 shows the primary path used by each node to transmit data packets 112. As detailed below, each node 160 may maintain a list of parent nodes, each associated with a different path. When transmitting a time-critical message, node 160 may examine these different paths with respect to their associated RTT and select the path with the shortest RTT for transmission. The selected path may be the same as or different from the primary path shown in Figure 1.

[0019] Figure 2A shows an example of a mesh network hierarchy of nodes 160 in a mesh network 140 and interactions between nodes 160 for estimating the RTT between each node 160 and the root node 114, according to a certain aspect of the present disclosure. Below, a child node refers to any node 160 in the mesh network 140 that has at least one parent node. In the embodiment shown in Figure 2A, child node E may transmit data to the root node 114 via its parent nodes A, D, or C. Node A communicates directly with the root node 114, and nodes D and C communicate with the root node 114 via their parent node B. Child node E has previously determined that node D is its primary parent (for example, based on an objective function defined using LQI or ETX). Thus, the path associated with primary node D (i.e., the path from node E to the root node 114 via nodes D and B) is the primary path for transmitting normal data 202, such as measurement data acquired at child node E or other data that is not time-critical. Nodes A and C are backup parent nodes for child node E.

[0020] If child node E determines that there is a time-critical message 222 to send to root node 114, child node E may find the route with the shortest RTT by evaluating the RTT of the routes associated with each of its parent nodes, i.e., nodes A, C, and D in this embodiment. The time-critical message 222 may be any message that child node E has determined should be sent to root node 114 as soon as possible. In other words, with respect to time-critical messages 222, short latency has a higher priority than other objectives such as routing cost or link quality. The time-critical message 222 may also be a message indicating a problem associated with a resource distribution network or mesh network. For example, the problem may be a power outage in a given area of ​​the resource distribution network, such as a power outage in a smart grid. The time-critical message 222 may also include a message indicating a problem or malfunction associated with equipment in the resource distribution network or mesh network. For example, if a critical piece of equipment in a power distribution system stops functioning, the time-critical message 222 may be generated by child node E and sent to root node 114. If the time-critical message 222 can be sent to the root node 114 with a short latency, the root node 114 may forward it to a system associated with an entity (e.g., a utility) responsible for addressing the problem indicated in the time-critical message 222, thereby allowing the problem to be resolved quickly.

[0021] To determine the path with the shortest RTT, child node E may maintain parent information 206 containing a list of RTTs for paths associated with each parent node. Child node E may calculate and update these RTTs from time to time. For example, child node E may calculate the RTT for a path associated with a parent node using a unicast message 212 sent by child node E to root node 114 via the parent node. Child node E may record the timestamp when the unicast message 212 was sent and the timestamp when the acknowledgment message 214 for the unicast message 212 was received. The RTT for this path may be determined as the difference between these two timestamps. In this way, the RTTs for different paths associated with different parent nodes may be calculated. Furthermore, each intermediate node along each path may also record the timestamp when the unicast message 212 is forwarded and the timestamp when the corresponding acknowledgment message 214 is received, and calculate the RTT for the corresponding path observed at the intermediate node.

[0022] Unicast message 212 may be any unicast message that is sent from child node E to root node 114 via a selected parent and requires a response from root node 114. For example, unicast message 212 may be a ping message to root node 114. If the mesh network 140 is configured to implement a Routing Protocol for Lossy Medium (RPL), unicast message 212 may include a destination advertisement object (DAO) message. The DAO message is used to propagate destination information up along the mesh network 140. In non-storage mode, the DAO message is unicast to root node 114. The DAO message may be acknowledged by its destination, prompting the DAO sender to return a destination advertisement acknowledgment (DAO-ACK) message.

[0023] To calculate the RTT for each route, node E may send DAO messages 212 through all parents at regular intervals determined based on the DAO frequency in the mesh network 140. For each DAO message, root node 114 sends a DAO-ACK message 214 back to node E along the same route used to send the DAO message 212. After receiving the DAO-ACK message, node E calculates the RTT for each route as the difference between the transmission time and the reception time, as described above. This RTT may be updated each time a DAO message is sent and a DAO-ACK message is received.

[0024] In some embodiments, the originating node, in this embodiment node E, may add a sequence number to the IPv6 extension header or hop-by-hop (HBH) option of the DAO message so that it can be uniquely identified in the network. For example, a new IPv6 extension header may be added to include the sequence number. The new IPv6 extension header may be defined in a type-length-value (TLV) format used to transmit option data, as shown below.

[0025] • Extended header type (1 byte) - New values ​​may be defined and registered by the Internet Assigned Numbers Authority (IANA). • Header extension length - 1 byte • Sequence number - 2 bytes

[0026] Alternatively or additionally, a sequence number may be added to the HBH option in the IPv6 header. The format of the HBH option is listed below.

[0027] Option type *Bits 7 and 6 = 0x00: Indicates that this option should be skipped if the node is not recognized. *Bits 5-0 = New option type. • Optional data length - 1 byte • Optional data - 2-byte sequence number

[0028] Node E may generate a random number as the starting number for the sequence number, and for subsequent DAO messages, the sequence number will be incremented in serial order.

[0029] By using a sequence number, intermediate nodes on the path to root node 114 may examine the extension header (a new IPv6 extension header, or the HBH option of an existing IPv6 extension header) and store information in the extension header along with timing information. In some embodiments, the intermediate node stores the sequence number of the DAO message and the IP address of the source node (node ​​E in this embodiment), and the combination thereof can uniquely identify the DAO message in the network.

[0030] When returning a DAO-ACK message, the root node 114 may attach a source routing header to the packet so that the same sequence number is inserted into the extended header of the DAO-ACK message. Each intermediate node receiving a DAO-ACK message (e.g., node A, node B, node C, or node D) may record the timestamp at which it received the message. The intermediate node may further determine the corresponding timestamp for sending the DAO message by determining whether the sequence number and the source node's IP address included in the DAO-ACK message match those previously recorded by the intermediate node. Thus, the intermediate node may calculate the RTT for the corresponding route as the difference between the time indicated by the timestamp at which the DAO-ACK message was received and the time indicated by the timestamp at which the DAO message was sent.

[0031] By configuring intermediate nodes to calculate the RTT of a route to the root node using messages from the source node, the number of unicast messages for RTT estimation can be reduced at the intermediate nodes, thus reducing the number of messages transmitted in the mesh network 140. This reduces network bandwidth consumption and also reduces the computational resource consumption at the intermediate nodes. Furthermore, the above technique is backward compatible. Nodes 160 in the mesh network 140 that do not understand the new IPv6 extension header or HBH option proposed above may ignore the information in those fields and function as usual. Note that in addition to the above, other mechanisms can also be used to add sequence numbers to packets. Furthermore, packets may be other than DAO messages.

[0032] Referring again to Figure 2A, based on the maintained RTT for routes associated with different parent nodes, child node E selects the route with the shortest RTT and sends the time-critical message 222. In the embodiment shown in Figure 2A, the route associated with parent node A has the shortest RTT, and therefore child node E sends the time-critical message 222 via parent node A. After receiving acknowledgment of the time-critical message 222 from root node 114, if there is no other data to send, node E may enter sleep mode. If there is additional normal data 202 to send, child node E may switch back to its primary route (in Figure 2A, the route associated with primary parent node D) to send the normal data 202.

[0033] Figure 2B shows another example of calculating RTT for different routes of a child node according to a certain aspect of the present disclosure. The node mesh network hierarchy shown in Figure 2B is the same as that in Figure 2A, where child node E has three parent nodes, nodes A, D, and C. Node D is the primary parent and is typically used to route data 202. Nodes A and C are backup parent nodes. To calculate the RTT for various routes from node E to root node 114, node E may calculate the RTT for the routes between node E and each of the parent nodes A, C, and D. The RTT from the child node to its parent node i is:

number

number

[0034]

number

[0035]

number

number

number

number

[0036] RTT from parent node i to root node 114,

number

number

number

number

number

number

[0037]

number

[0038] To add RTT information to a DIO message, a new option may be added to the DIO message. According to the RPL, a DIO message may transmit valid options. The RPL specification allows a DIO message to transmit the following options:

[0039] 0x00 Pad1 0x01 PadN 0x02 DAG weighing container 0x03 Routing Information 0x04 DODAG configuration 0x08 prefix information

[0040] As shown below, a new option, the RTT option, has been added and may be defined in TLV format, like the other options.

[0041] Option type *Bits 7 and 6 = 0x00: Indicates that this option should be skipped if the node is not recognized. *Bits 5-0 = New option type. • Optional data length - 1 byte • Optional data - 4-byte time value

[0042] In some embodiments, the RTT value may be expressed in milliseconds. Note that nodes in the mesh network 140 will need to understand this new option in order to obtain RTT information.

[0043] In the embodiment shown in Figure 2B, as described above, node A receives RTT via MAC layer or IP layer packets to root node 114. A_root The RTT to the root node 114 may be calculated as shown. When node A receives a MAC layer acknowledgment or IP layer reply, node A calculates the RTT by determining the time difference between when it received the reply and when it sent the neighbor unicast message. A_root You may calculate this. Node B can similarly calculate the RTT to root node 114. B_root The following may be calculated. Then, as described above, Node A and Node B communicate to each of their child nodes via DIO messages or other control messages 252, RTT A_root and RTT B_rootIt may be transmitted.

[0044] Nodes D and C may calculate their respective RTTs, RTT D_B and RTT C_B for Node B by transmitting each of the neighbor unicast messages 232 to Node B in the same manner as in the case of Node A. Then, Node D may calculate its RTT with respect to the root node 114 as RTT D_B_root = RTT D_B + RTT B_root Similarly, Node C may calculate its RTT with respect to the root node 114 as RTT C_B_root = RTT C_B + RTT C_root Nodes D and C may transmit the calculated RTTs to their respective child nodes via the control message 252 as described above.

[0045] Via the received control messages 252 from different parent nodes, Node E may obtain the RTTs from each of its parent nodes, namely the RTT A_root related to parent node A, the RTT D_B_root related to parent node D, and the RTT C_B_root related to parent node C, to the root node 114. Node E may obtain the RTTs from itself to each of these parent nodes via the neighbor unicast messages 232 to each of the parent nodes. Based on the received responses to these neighbor unicast messages 232, Node E may calculate the RTTs, RTT E_A RTT E_D and RTT E_C from itself to each of the parent nodes. Node E may further calculate the RTTs to the root node 114 via each of its parent nodes as follows.

[0046] RTT E_D_root = RTT E_D + RTT D_root RTT E_C_root = RTT E_C + RTT C_root RTT E_A_root =RTT E_A +RTT A_root

[0047] Although the above embodiment focuses on child node E, it should be understood that the above operation may also be performed by any node 160 (e.g., node D or node C) in the mesh network 140 that is configured to send data to the root node 114 via one of its parent nodes. Each of these nodes 160 may similarly maintain parent information 206 about each of their parent nodes, including RTT associated with each path through each parent node.

[0048] Furthermore, while the above disclosure explains that the path with the shortest RTT is selected for the time-critical message 222, a short RTT does not guarantee a reliable path. Thus, in some embodiments, when selecting the best path for the time-critical message 222, the reliability of the path is also considered. When doing so, the node sending the time-critical message 222 can use any available method to determine a pair of candidate parent nodes associated with a reliable path for sending the time-critical message 222. The method for selecting a reliable path may be based, for example, on the MRHOF (Minimum Rank with Hysteresis Objective Function) function, an objective function based on LQI / ETX, or any other mechanism defined for radio routing. Once a pair of candidate parents has been selected based on the reliability criterion, an RTT criterion may be applied to the pair of candidate parents. The time-critical message 222, which requires a short response time, may be sent from the node via a parent with the shortest RTT.

[0049] Figure 3 shows an example of a process 300 for optimizing the routing of time-critical messages 22 in a mesh network 140 according to a predetermined aspect of this disclosure. Any node 160 in the mesh network 140 configured to transmit data to the root node 114 via one of its parent nodes (for example, node E, node D, or node C in Figures 2A and 2B) may perform the operation shown in Figure 3 by executing appropriate program code. For illustrative purposes, the process 300 will be described with reference to a predetermined embodiment shown in the drawings. However, other embodiments are also possible.

[0050] In block 302, process 300 includes node 160 transmitting normal data 202 via its primary parent node, which has been previously selected by node 160 for purposes such as LQI or ETX. The normal data 202 may include, for example, measurement data acquired at node 160, or other data that is not time-critical.

[0051] In block 304, process 300 includes node 160 deciding that a time-critical message 222 should be sent. The time-critical message 222 may be any message that node 160 has decided should be sent to root node 114 as soon as possible. For example, the time-critical message 222 may be a message indicating a problem in mesh network 140 or a resource distribution network associated with mesh network 140. For example, the problem may be a power outage in a given area of ​​the resource distribution network, such as a power outage in a smart grid. The time-critical message 222 may also include a message indicating a problem or malfunction associated with equipment in the resource distribution network or mesh network. For example, if a critical piece of equipment in a power distribution system stops functioning, a time-critical message 222 may be generated, which needs to be sent by node 160 to root node 114 as soon as possible so that the problem can be addressed quickly.

[0052] If node 160 determines that there is no time-critical message 222 to send, node 160 continues to send normal data 202 through its primary parent node. If node 160 determines that there is a time-critical message 222 to send, process 300 includes determining a pair of candidate parent nodes for sending the time-critical message 222 in block 306 and calculating the RTT for each route associated with these candidate parent nodes. In some embodiments, node 160 may also determine a pair of candidate nodes using any method available for determining a reliable route, such as a Minimum Rank with Hysteresis Objective Function (MRHOF) function, an objective function based on LQI / ETX, or a method based on any other arbitrary mechanism defined for wireless routing. For example, a pair of candidate parent nodes may be selected as having associated routes that have an objective measure, such as reliability, being above a predetermined threshold, or having the highest rank among the available routes. For each parent node in a pair of candidate parent nodes, node 160 determines or calculates the round-trip time (RTT) for the route from node 160 through the parent node to root node 114. Details regarding the calculation of the RTT for the route associated with the parent node of node 106 are provided below in relation to Figures 4 and 5.

[0053] In block 308, node 106 selects a parent node from a pair of candidate parent nodes to send the time-critical message 222. In an embodiment, node 106 selects a parent node associated with the path having the shortest RTT as the parent node to forward the time-critical message 222. In block 310, process 300 includes node 106 sending the time-critical message 222 through the selected parent node. In some embodiments, node 106 waits for an acknowledgment of the time-critical message 222 from root node 114 before proceeding to the next operation. After receiving the acknowledgment, node 106 may enter sleep mode if there are no other messages to send, switch back to the primary path, and continue sending normal data 202 through the primary path.

[0054] Referring here to Figure 4, Figure 4 includes several flowcharts showing several processes 400A, 400B, and 400C for calculating RTT by various nodes 106 in a mesh network 104 according to a predetermined aspect of the present disclosure. In particular, process 400A shows an aspect of node 160 configured to send a message to root node 114 via a parent node. Process 400B shows an aspect of an intermediate node in the path from node 160 to root node 114. Process 400C shows an aspect of root node 114. Node 160, the intermediate nodes, and root node 114 may perform the operations of processes 400A, 400B, and 400C, respectively, by executing appropriate program code. Processes 400A, 400B, and 400C are described collectively below. For illustrative purposes, processes 400A, 400B, and 400C are described with reference to predetermined embodiments shown in the drawings. However, other embodiments are also possible.

[0055] In block 402, process 400A includes node 160 sending a unicast message 212 to root node 114 via one of its parent nodes. The unicast message may be any message sent from child node E to root node 114 that requires a response from the root node. For example, the unicast message may be a ping message to root node 114. If the mesh network 140 is configured to implement the RPL protocol, the unicast message may include a DAO message used to propagate destination information upward along the mesh network 140. In some embodiments, node 160 generates a sequence number and inserts it into the unicast message, for example, in the header of the unicast message as described above. The sequence number can uniquely identify the unicast message sent by node 160. Node 160 further records a timestamp when it sent the unicast message.

[0056] In block 412, process 400B includes an intermediate node, such as the parent node or any other node in the path from node 160 to root node 114, receiving a unicast message 212 sent from node 160. The intermediate node may record the sequence number of the unicast message along with the identifier of node 160, for example, the IP address of the identifier. The combination of the identifier of node 160 and the sequence number of the unicast message can uniquely identify the unicast message in the mesh network 140. In block 414, process 400B includes the intermediate node forwarding the received unicast message to the next node in the path. The intermediate node also records a timestamp when it forwarded the unicast message and stores the timestamp along with the sequence number and node identifier.

[0057] In block 422, process 400C includes the root node 114 receiving the unicast message. In block 424, process 400C includes the root node 114 sending back an acknowledgment message 214 to node 160 along the same path. In some embodiments, the root node 114 sends the acknowledgment message using a source routing header that includes the sequence number of the unicast message and the identifier of node 160.

[0058] In block 416, process 400B includes the intermediate node receiving an acknowledgment message sent from the root node 114 and recording a timestamp of when the acknowledgment message was received. The intermediate node may further extract a sequence number and an identifier for node 160 from the acknowledgment message. In block 418, process 400B includes forwarding the acknowledgment message to node 160 along the same path.

[0059] In block 420, the intermediate node calculates the Round-Trip Time (RTT) for a portion of the path from the intermediate node to the root node 114. To do this, the intermediate node may compare the sequence number and node identifier extracted from the acknowledgment message with previously recorded sequence numbers and node identifiers. If they match, the intermediate node retrieves the forwarding timestamp associated with the sequence number and node identifier. The intermediate node calculates the difference between the time specified by the forwarding timestamp and the timestamp when the acknowledgment message was received. This difference represents the RTT for the path from the intermediate node to the root node 114.

[0060] The intermediate node may update the RTT information for this route using the calculated RTT. For example, the intermediate node may replace the old RTT stored for this route with the newly calculated RTT. Alternatively, the intermediate node may calculate the average RTT obtained over a past time period as the RTT for this route. Other methods may be used to calculate the RTT for a route in order to update the RTT information.

[0061] In block 404, process 400A includes node 160 receiving an acknowledgment message forwarded by an intermediate node, including its parent node. Node 160 further records the timestamp of when it received the acknowledgment message and extracts the sequence number of the unicast message from the acknowledgment message. In block 406, node 160 calculates the round-trip time (RTT) for the route used to send the unicast message to the root node 114, based on the recorded timestamp. For example, node 160 may compare the sequence number extracted from the acknowledgment message to a sequence number it has previously recorded. If they match, node 160 retrieves the timestamp of when it sent the unicast message containing the sequence number. Node 160 may calculate the difference between the time specified by the transmission timestamp and the timestamp of when it received the acknowledgment message. This difference represents the round-trip time (RTT) for the route from node 160 through the parent node to the root node 114.

[0062] Node 160 may update the RTT information for this route using the calculated RTT. For example, Node 160 may replace the old RTT stored for this route with the newly calculated RTT. Alternatively, Node 160 may calculate the average RTT taken over a past time period as the RTT for this route. Other methods may be used to update the RTT based on the most recently calculated RTT. In block 408, Node 160 determines whether another unicast message should be sent to the root node 114. For example, Node 160 may set up a schedule to send a unicast message to the root node 114 in order to update the RTT information. Node 160 may decide that another unicast message should be sent to the root node 114 when the scheduled time has expired. In an embodiment where the unicast message includes a DAO message, Node 160 may decide that another DAO message needs to be sent according to the RPL protocol. If node 160 determines that another unicast message should be sent to root node 114, node 160 may restart processing 400A from block 402 for the new unicast message.

[0063] The process shown in Figure 4 is used to calculate the Round-Trip Time (RTT) for a single route associated with one parent node of node 160. Similar processing may be performed for each parent node of node 160 to obtain the RTT for each route. Intermediate nodes along those routes may have their respective RTTs calculated to the root node 114 based on the fact that they forward unicast messages and receive acknowledgment messages through the following processing, similar to process 400B.

[0064] Figure 5 includes several flowcharts showing several processes 500A and 500B for calculating the RTT for a path from node 160 to root node 114 in a mesh network 140, according to a predetermined embodiment of the present disclosure. In particular, process 500A shows an embodiment of node 160 configured to send a message to root node 114 via a parent node. Process 500B shows an embodiment of the parent node. Node 160 and the parent node may perform the operations of processes 500A and 500B, respectively, by executing appropriate program code. Processes 500A and 500B are described together below. For illustrative purposes, processes 500A and 500B are described with reference to predetermined embodiments shown in the drawings. However, other embodiments are also possible.

[0065] In block 502, process 500A includes node 160 sending a neighbor unicast message 232 to its parent node, as previously detailed with respect to Figure 2B. Node 160 further records the timestamp when it sent the neighbor unicast message 232. In block 512, process 500B includes the parent node receiving the neighbor unicast message 232 from node 160. In block 514, the parent node replies to node 160 with an acknowledgment message for the neighbor unicast message 232. In block 504, process 500A includes node 160 receiving the acknowledgment message and recording the timestamp when it received the acknowledgment message. As described above with respect to Figure 2B, the timestamp when the acknowledgment message was received is recorded to include all MAC layer retries if the neighbor unicast message 232 is a MAC layer message, or to include the time when the IP reply was received if the neighbor unicast message 232 is an IP message.

[0066] In block 506, node 160 calculates the round-trip time (RTT) for the local route from node 160 to the parent node based on the timestamp recorded when sending the neighbor unicast message 232 and the timestamp recorded when receiving the acknowledgment message. Node 160 may also calculate the RTT for the local route as the difference between the times specified in the two timestamps.

[0067] In block 516, process 500B includes the parent node sending a control message 252 to the node. As detailed above with respect to Figure 2B, the control message 252 may include the RTT for the route from the parent node to the root node 114 via the parent node's primary parent node (i.e., the parent node's primary route). In block 508, node 160 receives the control message 252 and extracts the RTT for the parent node's primary route to the root node 114 from the control message 252. Node 160 further calculates the RTT for the route to the root node 114 via the parent node as the sum of the RTT for the local route calculated in block 506 and the RTT extracted from the control message 252.

[0068] The process shown in Figure 5 is used to calculate the RTT for one path associated with one parent node of node 160. Similar processes may be performed for other parent nodes of node 160 to obtain the RTT for each path. Furthermore, although the node operations shown in Figure 5 are described in a predetermined order, these operations may be performed in a different order than described above, and may include fewer or more operations. For example, a parent node may send a control message 252 to child node 160 before receiving a neighbor unicast message 232 from child node 160. Thus, the extraction of the RTT contained in the control message 252 may be performed by child node 160 before sending the neighbor unicast message 232. In another embodiment, a parent node may send its RTT information to child node 160 via the control message 252 more frequently than child node 160 initiates local RTT estimation via the neighbor unicast message 232, or vice versa.

[0069] Although the above description explains the processes in Figures 4 and 5 separately, a node in a mesh network may perform both processes to estimate the RTT for different paths. The RTTs estimated by these two processes for the same path may be combined by any means. For example, a node may average the RTTs obtained through these two processes to determine the RTT for a given path. The node may also use a weighted sum of the RTTs obtained from the two processes. In another embodiment, a node may select an RTT obtained through one of these processes if it is newer, more accurate, or for other reasons than the RTT obtained through the other process.

[0070] Exemplary node Figure 6 shows an exemplary node 600, such as node 160, which can be used to implement the route optimization for time-critical messages described herein. Node 600 may include a processor 602, memory 604, and a transceiver 620, each commutably connected via bus 610. The components of node 600 may be powered by an AC power supply or by a small energy source such as a battery (not shown). The transceiver 620 may include (or be commutably connected to) an antenna 608 for communicating with other nodes. In some embodiments, the transceiver is a radio-frequency ("RF") transceiver that wirelessly transmits and receives signals.

[0071] The processor may include a microprocessor, an application-specific integrated circuit ("ASIC"), a state machine, a field programmable gate array ("FPGA"), or other suitable computing device. The processor may include any number of computing devices and may be communicatively connected to a computer-readable medium such as memory 604. The processor 602 can execute computer-executable program instructions or access information stored in memory to perform operations such as those described in Figures 3 to 5. The instructions may include processor-specific instructions generated by a compiler and / or interpreter from code written in any suitable computer programming language. When instructions are executed, they may configure node 600 to perform any of the operations described herein. Memory 604 may also be configured to store information such as parent information 206, which includes calculated RTT for paths associated with different parent nodes. In Figure 6, the processor, memory, bus, and transceiver are shown as separate components communicating with each other, but other implementations are also possible. The systems and components discussed herein are not limited to any specific hardware architecture or configuration.

[0072] Overall consideration Numerous specific details are described herein in order to provide a detailed understanding of the subject matter described in the claims. However, those skilled in the art will understand that the subject matter described in the claims may be carried out without these specific details. In other instances, methods, apparatus, or systems that would be known to those of the ordinary art are not described in detail so as not to obscure the subject matter described in the claims.

[0073] The features described herein are not limited to any particular hardware architecture or configuration. A computing device may include any suitable device consisting of components that provide results conditional on one or more inputs. A suitable computing device includes a computer system based on a multipurpose microprocessor that accesses stored software (i.e., computer-readable instructions stored in the memory of the computer system), which programs or configures the computing system to transform a general-purpose computing device into a special computing device that implements one or more aspects of the subject matter of this application. Any suitable programming, scripting, other types of languages, or combinations of languages ​​may be used in the software used to program or configure the computing device to implement the disclosures contained herein.

[0074] Embodiments of the methods disclosed herein may be performed in the operation of such a computing device. The order of the blocks presented in the above embodiments may be changed, for example, the blocks may be rearranged, combined, and / or divided into subblocks. A predetermined number of blocks or processes may be executed in parallel.

[0075] The use of “adapted to” or “configured to” in this application is intended to be open and inclusive terminology that does not exclude devices adapted or configured to perform additional tasks or steps. Furthermore, the use of “based on” is intended to be open and inclusive in that a process, step, calculation, or other operation “based on” one or more of the described conditions or values ​​may actually be based on additional conditions or values ​​beyond those described. The headings, lists, and numbers included in this application are for simplification purposes only and are not intended to limit the scope of the explanation.

[0076] While the subject matter of this application has been described in detail with respect to its particular aspects, those skilled in the art will recognize that, by understanding the foregoing, modifications, variations, and equivalents of such aspects can be readily created. Therefore, it should be understood that this disclosure is presented for illustrative purposes, not limitation, and does not exclude such modifications, variations, and / or additions to the subject matter of this application, as will be readily apparent to those skilled in the art.

Claims

1. A mesh network comprising a root node, child nodes, and multiple parent nodes of the child nodes, The above child node communicates with the root node via other nodes in the above mesh network. Each of the above multiple parent nodes is associated with a path between the above child node and the above root node that passes through the above parent node. The above-mentioned multiple parent nodes include a primary parent node and one or more backup parent nodes. The above child node is, The primary path associated with the primary parent node mentioned above sends normal data to the root node. It was decided that a time-critical message should be sent to the above root node. In accordance with predetermined path reliability criteria, a subset of the above multiple parent nodes is selected, Based on the messages transmitted between the above child node and each parent node included in the above selected subset of the above multiple parent nodes, the round-trip time (RTT) for each path between the above child node and the above root node associated with one parent node included in the above selected subset of the above multiple parent nodes is estimated. From the above selected subset of multiple parent nodes, select the parent node that has the associated path with the shortest RTT, The above time-critical message is sent to the above root node via the above selected parent node. After sending the time-critical message to the root node via the selected parent node, it is configured to send additional normal data to the root node via the primary path. Mesh network.

2. Estimating the RTT for the path between the child node and the root node associated with one parent node included in the selected subset of the above multiple parent nodes is: Sending a unicast message to the root node via the parent node mentioned above, Record a first timestamp associated with sending the above unicast message, Receiving an acknowledgment message for the unicast message from the root node mentioned above, Record a second timestamp associated with receiving the above acknowledgment message, This includes calculating the RTT for the path between the child nodes and the root node associated with the parent node as the difference between the second time point indicated by the second timestamp and the first time point indicated by the first timestamp, The mesh network according to claim 1.

3. The above single parent node is, The above child node receives the above unicast message, The unicast message is forwarded to the root node via the path between the parent node and the root node. A third timestamp associated with forwarding the unicast message by the aforementioned parent node is recorded. The above root node receives an acknowledgment message for the above unicast message, A fourth timestamp associated with receiving the acknowledgment message in the above-mentioned parent node is recorded. The acknowledgment message of the above unicast message is forwarded to the above child node. The system is configured to calculate the RTT for the path between the one parent node and the root node as the difference between the fourth time point indicated by the fourth timestamp and the third time point indicated by the third timestamp. The mesh network according to claim 2.

4. The above mesh network implements the Routing Protocol for Lossy Media (RPL), The above unicast message is a destination ad object (DAO) message. The mesh network according to claim 3.

5. The above DAO message includes a sequence number. The affirmative response message for the above DAO message includes the above sequence number, The parent node described above is configured to identify the third timestamp and the fourth timestamp, respectively, based on the sequence number included in the DAO message and the sequence number included in the acknowledgment message. The mesh network according to claim 4.

6. The above sequence number is included in a new IPv6 extension header or in the hop-by-hop (HBH) option of an existing IPv6 header. The mesh network according to claim 5.

7. Estimating the RTT for the path from the child node to the root node, associated with one parent node included in the selected subset of the above multiple parent nodes, is: Sending a neighbor unicast message to the above-mentioned parent node, Record a first timestamp associated with sending the above-mentioned nearby unicast message, Receiving an acknowledgment message for the above neighbor unicast message from the above parent node, Record a second timestamp associated with receiving the above acknowledgment message, The local RTT for the local path between the child node and the one parent node is calculated as the difference between the second time point indicated by the second timestamp and the first time point indicated by the first timestamp. Receiving a control message from the aforementioned parent node specifying the RTT of the path between the aforementioned parent node and the aforementioned root node, This includes calculating the RTT for the path between the child nodes and the root node associated with the parent node, as the sum of the local RTT and the RTT for the path between the parent node and the root node. The mesh network according to claim 1.

8. The above mesh network implements the Routing Protocol for Lossy Media (RPL), The above control message is a DODAG Information Object (DIO) message, The above control message specifies the RTT of the path between the parent node and the root node in the options of the above DIO message. The mesh network according to claim 7.

9. The RTT of the path between the aforementioned parent node and the aforementioned root node is the RTT of the path between the aforementioned parent node and the aforementioned root node, as associated with the primary parent node of the aforementioned parent node. The mesh network according to claim 7.

10. The RTT of the path between the parent node and the root node specified in the control message above is the latest RTT or the average RTT calculated by the parent node. The mesh network according to claim 7.

11. Each of the above child nodes and the above selected subset of the above multiple parent nodes is configured to maintain the RTT for the path from the corresponding node to the above root node. The mesh network according to claim 1.

12. A node in the network, the above node is A processor configured to execute computer-readable instructions, The system comprises a memory configured to store the computer-readable instructions that, when executed by the processor, cause the processor to perform an operation including the following steps, The above operation includes sending normal data to the root node of the network via the primary path associated with the primary parent node of the node, The above node has multiple parent nodes in the network, including a primary parent node and one or more backup parent nodes. Each of the above parent nodes is associated with a path between the node and the root node of the network. The above operation is, The decision to send a time-critical message to the above root node, Selecting a subset of the above multiple parent nodes according to a predetermined path reliability criterion, Based on messages transmitted between the above node and each parent node included in the selected subset of the above multiple parent nodes, estimate the round-trip time (RTT) for each path between the above node and the above root node, associated with one parent node included in the selected subset of the above multiple parent nodes. Among the above multiple parent nodes, the parent node having the shortest RTT is selected from the above selected subset, Send the above time-critical message to the above root node via the above selected parent node, Switching back to the primary path mentioned above includes sending additional normal data to the root node mentioned above. node.

13. Estimating the RTT for the path between the node and the root node associated with one parent node included in the selected subset of the above multiple parent nodes is: Sending a unicast message to the root node via the parent node mentioned above, Record a first timestamp associated with sending the above unicast message, Receiving an acknowledgment message for the unicast message from the root node mentioned above, Record a second timestamp associated with receiving the above acknowledgment message, This includes calculating the RTT for the path between the node and the root node associated with the parent node as the difference between the second time point indicated by the second timestamp and the first time point indicated by the first timestamp, The node according to claim 12.

14. The above single parent node is, Receiving a unicast message from a node; The unicast message is forwarded to the root node via the path between the parent node and the root node. A third timestamp associated with forwarding the unicast message by the aforementioned parent node is recorded. The above root node receives an acknowledgment message for the above unicast message, Record a fourth timestamp associated with receiving the acknowledgment message on the aforementioned parent node, The acknowledgment message of the above unicast message is forwarded to the above node. The system is configured to calculate the RTT for the path between the one parent node and the root node as the difference between the fourth time point indicated by the fourth timestamp and the third time point indicated by the third timestamp. The node according to claim 13.

15. Estimating the RTT for the path between a node and the root node associated with one parent node included in the selected subset of the above multiple parent nodes is: Sending a neighbor unicast message to the above-mentioned parent node, Record a first timestamp associated with sending the above-mentioned nearby unicast message, Receiving an acknowledgment message for the above neighbor unicast message from the above parent node, Record a second timestamp associated with receiving the above acknowledgment message, The local RTT for the local path between the node and the one parent node is calculated as the difference between the second time point indicated by the second timestamp and the first time point indicated by the first timestamp. Receiving a control message from the aforementioned parent node specifying the RTT of the path between the aforementioned parent node and the aforementioned root node, This includes calculating the RTT for the path between the node and the root node associated with the parent node, as the sum of the local RTT and the path RTT between the parent node and the root node. The node according to claim 12.

16. A method for sending time-critical messages in a mesh network, The above method includes a node in the mesh network sending normal data to the root node of the mesh network via a primary path associated with the primary parent node of the node, The above node has multiple parent nodes in the mesh network, including a primary parent node and one or more backup parent nodes. Each of the above parent nodes is associated with a path between the node and the root node of the mesh network. The above method, The above node determines that a time-critical message should be sent to the above root node, The above node selects a subset of the above multiple parent nodes according to a predetermined path reliability criterion, The above node estimates the round-trip time (RTT) for each path between the node and the root node, associated with one of the parent nodes included in the selected subset of the multiple parent nodes, based on messages transmitted between the node and each parent node included in the selected subset of the multiple parent nodes. The above node selects a parent node from the above selected subset of the above multiple parent nodes that has the shortest RTT and associated path, The above node sends the above time-critical message to the above root node via the above selected parent node, The above node, by switching back to the primary path, transmits additional normal data to the above root node, method.

17. Estimating the RTT for the path between the node and the root node associated with one parent node included in the selected subset of the above multiple parent nodes is: Sending a unicast message to the root node via the parent node mentioned above, Record a first timestamp associated with sending the above unicast message, Receiving an acknowledgment message for the unicast message from the root node mentioned above, Record a second timestamp associated with receiving the above acknowledgment message, This includes calculating the RTT for the path between the node and the root node associated with the parent node as the difference between the second time point indicated by the second timestamp and the first time point indicated by the first timestamp, The method according to claim 16.

18. The above mesh network implements the Routing Protocol for Lossy Media (RPL), The above unicast message is a destination ad object (DAO) message. The method according to claim 17.

19. Estimating the RTT for the path between a node and the root node associated with one parent node included in the selected subset of the above multiple parent nodes is: Sending a neighbor unicast message to the above-mentioned parent node, Record a first timestamp associated with sending the above-mentioned nearby unicast message, Receiving an acknowledgment message for the above neighbor unicast message from the above parent node, Record a second timestamp associated with receiving the above acknowledgment message, The local RTT for the local path between the node and the one parent node is calculated as the difference between the second time point indicated by the second timestamp and the first time point indicated by the first timestamp. Receiving a control message from the aforementioned parent node specifying the RTT of the path between the aforementioned parent node and the aforementioned root node, This includes calculating the RTT for the path between the node and the root node associated with the parent node, as the sum of the local RTT and the path RTT between the parent node and the root node. The method according to claim 16.

Citation Information

Patent Citations

  • Event triggered traceroute for optimized routing in a computer network

    US20090198832A1

  • Enabling dynamic routing topologies in support of real-time delay traffic

    US20140126423A1

  • Using statistical and historical information of topology metrics in constrained networks

    US20150023174A1