Optimized routing of time-critical traffic in mesh networks

CN116746128BActive Publication Date: 2026-10-23LANDIS GYR TECH INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180086680.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-12-21
Filing Date
2021-12-10
Publication Date
2026-10-23
Estimated Expiration
2041-12-10

AI Technical Summary

Technical Problem

然而,使用基于LQI或ETX的目标函数的现有路由机制提供可靠性,但不能保证消息的RTT低

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116746128B_ABST
    Figure CN116746128B_ABST
Patent Text Reader

Abstract

A system for optimizing routing of time-critical messages in a mesh network is provided. 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 send regular data to the root node through a primary route associated with its primary parent node. When there is a time-critical message to send to the root node, the child node estimates the round-trip time (RTT) of each route between the child node and the root node. The child node selects among its parent nodes the parent node whose associated route has the lowest RTT, and sends the time-critical message to the root node through the selected parent node. After sending the time-critical message, the child node switches back to the primary route to send additional regular data to the root node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates 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 Lossy Media Routing Protocols (RPL)), upward routing is performed via a preferred parent node, and downward routing is performed via a source route through the root node. Nodes in a mesh network can select parent nodes for routing based on mesh network objectives such as good link quality and low routing costs. Link Quality Index (LQI) and Expected Transmission Count (ETX) are the most common attributes used when selecting parent nodes for routing in lossy mesh networks.

[0003] Smart grids or other resource distribution networks associated with mesh networks typically require data to reach headend systems in the shortest possible time so that corrective actions can be sent to devices. For example, distribution automation (DA) data is critical, and its round-trip time (RTT) needs to be as low as possible. Similarly, interruption data should arrive at headend systems reliably and quickly. However, existing routing mechanisms using objective functions based on LQI or ETX provide reliability but do not guarantee a low RTT for messages. Therefore, these existing routing mechanisms are insufficient to handle the routing requirements of time-critical messages. Summary of the Invention

[0004] Aspects and examples of apparatus and processes for optimizing the routing of time-critical messages in a mesh network are disclosed. In one example, a mesh network includes a root node, child nodes that communicate with the root node through other nodes in the mesh network, and multiple parent nodes of the child nodes. Each of the multiple parent nodes is associated with a route between the child node and the root node via the parent node. The multiple parent nodes include a primary parent node and one or more backup parent nodes. The child node is configured to send regular data to the root node via the primary route associated with the primary parent node, determine that there is a time-critical message to be sent to the root node, and estimate the round-trip time (RTT) of each route between the child node and the root node associated with one of the multiple parent nodes. The RTT is estimated based on the messages sent between the child node and each of the multiple parent nodes. The child node is also configured to select the parent node with the lowest RTT among the multiple parent nodes whose associated route has the lowest RTT, send the time-critical message to the root node through the selected parent node, and after sending the time-critical message to the root node through the selected parent node, send additional regular data to the root node via the primary route.

[0005] In another example, a node in a network includes a processor configured to execute computer-readable instructions and a memory configured to store the computer-readable instructions, which, when executed by the processor, cause the processor to perform operations. These operations include sending regular data to the root node of the network via a primary route associated with the node's primary parent 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 route between the node and the root node of the network. The operation also includes determining that a time-critical message exists to be sent to the root node, estimating the round-trip time (RTT) of each route from the node to the root node associated with one of the multiple parent nodes. The RTT is estimated based on the messages sent between the node and each of the multiple parent nodes. The operation further includes selecting the parent node among the multiple parent nodes whose associated route has the lowest RTT, sending the time-critical message to the root node via the selected parent node, and switching back to the primary route to send additional regular data to the root node.

[0006] In yet another example, a method for sending time-critical messages in a mesh network includes: a node in the mesh network sending regular data to the root node of the mesh network via a primary route 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 route between the node and the root node of the mesh network. The method also includes the node determining that a time-critical message exists to be sent to the root node, and the node estimating the round-trip time (RTT) of each route from the node to the root node associated with one of the multiple parent nodes. The RTT is estimated based on messages sent between the node and each of the multiple parent nodes. The method further includes the node selecting the parent node with the lowest RTT among the multiple parent nodes whose associated route has the lowest RTT, the node sending the time-critical message to the root node via the selected parent node, and the node switching back to the primary route to send additional regular data to the root node.

[0007] These illustrative aspects and features are mentioned not to limit or restrict the subject matter currently described, but to provide examples to aid in understanding the concepts described in this application. Other aspects, advantages, and features of the subject matter currently described will become apparent upon review of the entire application. Attached Figure Description

[0008] These and other features, aspects and advantages of this disclosure can be better understood when the following detailed description is read in conjunction with the accompanying drawings.

[0009] Figure 1 This is a block diagram illustrating an illustrative operating environment for optimizing the routing of time-critical messages in a mesh network, according to certain aspects of this disclosure.

[0010] Figure 2A An example hierarchy of nodes in a mesh network according to certain aspects of this disclosure is shown, along with the RTT interactions between these nodes for estimating the route between the child nodes and the root node.

[0011] Figure 2B Another example of RTT is shown, illustrating the interaction between nodes in a mesh network according to certain aspects of this disclosure to estimate the route between a child node and the root node.

[0012] Figure 3 An example of a process for optimizing the routing of time-critical messages in a mesh network, according to certain aspects of this disclosure, is shown.

[0013] Figure 4 An example of a process for calculating the RTT by nodes along a route from a child node to the root node in a mesh network, according to certain aspects of this disclosure, is shown.

[0014] Figure 5 An example of a process for calculating the RTT of a route from a child node to the root node in a mesh network, according to certain aspects of this disclosure, is shown.

[0015] Figure 6 It is a block diagram illustrating examples of nodes suitable for implementing various aspects of the techniques and skills presented in this article. Detailed Implementation

[0016] Systems and methods are provided for optimizing the routing of time-critical messages in mesh networks. In some examples, child nodes in the mesh network have a set of parent nodes, and each parent node is associated with a route between the network's child nodes and the root node. This set of parent nodes includes a primary parent node and one or more backup parent nodes. In some examples, this set of parent nodes is selected by the child nodes from their neighboring nodes based on certain criteria, such as routes via the parent nodes satisfying an objective function based on LQI or ETX. The child nodes are configured to send regular data (e.g., power consumption data in a distribution network) to the root node via the primary route associated with the primary parent node. When a child node determines that a time-critical message (also called a "critical message") (such as DA data or interrupt data) exists to be sent 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 this set of parent nodes.

[0017] Child nodes also periodically estimate and update the RTT for each route. For example, a child node can estimate the RTT while communicating with the root node, such as by sending a unicast message to the root node (e.g., a destination advertisement object message or any upward unicast message expecting acknowledgment) and receiving an acknowledgment from the root node. Child nodes can record the time when a message is sent to the root node through each parent node and the time when an acknowledgment message is received through the corresponding parent node. The difference between the sending and receiving times for a given parent node can be determined as the RTT of the route associated with that parent node. Child nodes can send unicast messages periodically (e.g., hourly). Intermediate nodes on the route from a child node to the root node can also use the difference between the forwarding time of the unicast message and the receiving time of the acknowledgment message to estimate the RTT of the route between the corresponding intermediate node and the root node.

[0018] In another example, a child node can estimate the RTT through communication between itself and each of its parent nodes. For instance, given a parent node, a child node can determine the RTT between itself and its parent node through message exchange between these two nodes. A child node can also obtain the RTT of the route between its parent node and the root node via control messages received from the parent node. In the control messages, the parent node can insert the RTT of the route from the parent node to the root node. In this way, a child node can calculate the RTT from its child node to the root node by adding the RTT of the route between its child node and its parent node to the RTT of the route between its parent node and the root node.

[0019] Based on the RTT calculated between the child node and the root node through different parent nodes, the child node selects the parent node (primary parent or alternative parent) with the lowest RTT on its associated route, or uses RTT as the parent selection factor. The child node sends critical messages to the selected parent node, which further forwards the critical messages to the root node through its associated route. The child node then switches back to the primary route and continues to send regular data to the root node through the primary route.

[0020] The techniques described in this disclosure reduce the latency of sending time-critical messages to the root node. This allows for rapid resolution of urgent issues in mesh networks or associated resource distribution networks. Furthermore, by selecting the route with the lowest RTT, the power consumption for sending time-critical messages is reduced. For example, due to the low RTT, child nodes can receive acknowledgments for time-critical messages within a shorter timeframe, and therefore can enter sleep mode earlier, resulting in reduced wake-up times for child nodes. Additionally, routes with the lowest RTT typically have fewer hops. As a result, fewer nodes are involved in sending time-critical messages, and the overall power consumption of the network used for sending critical messages is reduced.

[0021] Exemplary operating environment

[0022] Figure 1 An illustrative operating environment 100 is shown for optimizing the routing of time-critical messages in a mesh network. Operating environment 100 includes a mesh network 140, wherein nodes are configured to select an optimized route when sending time-critical messages. Figure 1 The mesh network 140 shown includes multiple nodes 160A-160N (which may be individually referred to herein as node 160 or collectively as node 160). Node 160 may include measurement nodes for collecting data from their respective deployment locations, processing nodes for processing data available to the nodes, router nodes for forwarding data received from one node in the network 140 to another node, or nodes configured to perform a combination of these functions. Node 160 is also configured to communicate with each other, such that data packets 122 containing messages or other data can be exchanged between nodes 160.

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

[0024] The root node 114 of network 140 can be configured to communicate with node 160 to perform operations such as managing node 160, collecting data from node 160, and forwarding data to headend system 104. Root node 114 can also be configured to act as a node for measuring and processing the data itself. Root node 114 can be a PAN coordinator, gateway, or any other device capable of communicating with headend system 104. Root node 114 ultimately sends the generated and collected data to headend system 104 via another network 170 (such as the Internet, intranet, or any other data communication network). Headend system 104 can be used as a central processing system to receive data or message streams from root node 114. Headend system 104, or another system associated with a utility company, can process or analyze the collected data for various purposes, such as billing, performance analysis, or troubleshooting.

[0025] It should be understood that, although Figure 1 A specific network topology is described (e.g., a destination-oriented directed acyclic graph (DODAG) tree), but other network topologies are also possible (e.g., ring topology, mesh topology, star topology, etc.). It should also be understood that... Figure 1 The topology shown illustrates the primary route used by each node to send data packet 112. As will be discussed in detail below, each node 160 can maintain its own list of parent nodes associated with different routes. When sending a time-critical message, node 160 can check these different routes based on their associated RTTs and select the route with the lowest RTT for transmission. The selected route can be associated with... Figure 1 The main routes shown may be the same or different.

[0026] Figure 2A A mesh network hierarchy of nodes 160 in a mesh network 140 according to certain aspects of this disclosure is illustrated, along with examples of interactions of node 160 for estimating the RTT between a corresponding node 160 and the root node 114. Hereinafter, a child node refers to any node 160 in the mesh network 140 that has at least one parent node. Figure 2A In the example shown, child node E can send data to root node 114 through its parent nodes A, D, or C. Node A communicates directly with root node 114, and nodes D and C can communicate with root node 114 through their parent node B. Child node E has previously determined that node D is its primary parent (e.g., based on an objective function defined using LQI or ETX). Therefore, the route associated with primary node D (i.e., the route from node E to root node 114 via nodes D and B) is the primary route for sending regular data 202, such as measurement data obtained at child node E or other data that is not time-critical. Nodes A and C are backup parents of child node E.

[0027] If child node E determines that a time-critical message 222 exists to be sent to root node 114, child node E can evaluate the RTT of the routes associated with each of its parent nodes (i.e., nodes A, C, and D in this example) to find the route with the lowest RTT. Time-critical message 222 can be any message that child node E determines should be sent to root node 114 as soon as possible. In other words, for time-critical message 222, low latency has a higher priority than other objectives such as routing cost or link quality. Time-critical message 222 can be a message indicating a problem associated with the resource distribution network or mesh network. For example, a problem could be an outage in a certain area of ​​the resource distribution network, such as a power outage in a smart grid. Time-critical message 222 can also include messages indicating problems or failures associated with equipment in the resource distribution network or mesh network. For example, if a critical piece of equipment in a power distribution system fails to operate, time-critical message 222 can 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 low latency, the root node 114 can forward it to the system associated with the entity (e.g., a utility) responsible for resolving the problem indicated in the time-critical message 222 and resolve the problem quickly.

[0028] To determine the route with the lowest RTT, child node E can maintain parent information 206, which contains a list of RTTs for routes associated with the corresponding parent node. Child node E can calculate and update these RTTs from time to time. For example, child node E can use unicast message 212 sent by child node E through the parent node to root node 114 to calculate the RTT of the route associated with the parent node. Child node E can record the timestamp of sending unicast message 212 and the timestamp of receiving acknowledgment message 214 of unicast message 212. The RTT of the route can be determined as the difference between these two timestamps. In this way, the RTTs of different routes associated with different parent nodes can be calculated. Furthermore, each intermediate node along the corresponding route can also record the timestamps of forwarding unicast message 212 and receiving the corresponding acknowledgment message 214, and calculate the RTT of the corresponding route observed at the intermediate node.

[0029] Unicast message 212 can be any unicast message sent from child node E through a selected parent node to root node 114, requiring a response from root node 114. For example, unicast message 212 could be a ping message to root node 114. If mesh network 140 is configured to implement a lossy media routing protocol (RPL), unicast message 212 can include a Destination Advertisement Object (DAO) message. DAO messages are used to propagate destination information upwards along mesh network 140. In non-stored mode, DAO messages are unicast to root node 114. DAO messages can be acknowledged by their destination using a Destination Advertisement Acknowledgment (DAO-ACK) message returned to the sender of the DAO.

[0030] To calculate the RTT for each route, node E can send DAO messages 212 through each parent node at regular intervals determined based on the DAO frequencies 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 DAO message 212. Upon receiving the DAO-ACK message, node E calculates the RTT for each route as the difference between the sending and receiving times, as described above. This RTT can be updated each time a DAO message is sent and a DAO-ACK message is received.

[0031] In some implementations, the originating node (node ​​E in this example) can add a sequence number to the IPv6 extended header or add a hop-by-hop (HBH) option to the DAO message to uniquely identify it within the network. For example, a new IPv6 extended header can be added to include a sequence number. The new IPv6 extended header can be defined in a Type-Length-Value (TLV) format for sending optional data, as follows:

[0032] -Extended header type (1 byte)- Allows you to define new values ​​and register with the Internet Digital Assigned Services Authority (IANA).

[0033] -Header Extension Length- 1 byte

[0034] -Serial number-2 bytes

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

[0036] -Option Type

[0037] Bits 7 and 6 = 0x00 indicate that this option should be skipped if the node is not recognized.

[0038] ○ Positions 5 to 0 = New option type.

[0039] -Options Data Length- 1 byte

[0040] -Options Data-2-byte Serial Number

[0041] Node E can generate a random number as the starting number of the sequence number, and the sequence number will increment sequentially for subsequent DAO messages.

[0042] By using the sequence number, intermediate nodes heading to root node 114 can inspect the extended header (either a new IPv6 extended header or the HBH option of an existing IPv6 extended header) and store the information along with timing information in the extended header. In some examples, intermediate nodes store the sequence number of the DAO message and the IP address of the source node (node ​​E in this example), whose combination can uniquely identify DAO messages on the network.

[0043] When sending a DAO-ACK message, root node 114 can append a source routing header to the packet, such that the same sequence number is inserted into the extended header of the DAO-ACK message. Each intermediate node receiving the DAO-ACK message (e.g., node A, node B, node C, or node D) can record a timestamp of receiving the message. Intermediate nodes can also match the sequence number and IP address of the source node included in the DAO-ACK message with previously recorded information to find the corresponding timestamp used to send the DAO message. Therefore, the intermediate node can calculate the RTT of the corresponding route as the difference between the time indicated by the timestamp indicating the receipt of the DAO-ACK message and the time indicated by the timestamp indicating the sending of the DAO message.

[0044] By configuring intermediate nodes to use messages from the source nodes to calculate the RTT of the route from the intermediate node to the root node, the number of messages sent in the mesh network 140 can be reduced because the intermediate nodes can reduce the number of unicast messages they use for RTT estimation. This reduces network bandwidth consumption and computational resource consumption at the intermediate nodes. Furthermore, the above techniques are backward compatible. Nodes 160 in the mesh network 140 that do not understand the new IPv6 extended headers or HBH options proposed above can ignore the information in those fields and function normally. Note that, in addition to the above, other mechanisms can be used to add sequence numbers to packets. Furthermore, packets can be packets other than DAO messages.

[0045] Return to reference Figure 2A Based on the maintained RTT of routes associated with different parent nodes, child node E selects the route with the lowest RTT to send the time-critical message 222. Figure 2AIn the example shown, the route associated with parent node A has the lowest RTT, so child node E sends time-critical message 222 via parent node A. After receiving acknowledgment for time-critical message 222 from root node 114, node E can enter sleep mode if there is no further data to send. If there is additional regular data 202 to send, child node E can switch back to its primary route (as shown). Figure 2A The route associated with the parent node D in the middle is used to send regular data 202.

[0046] Figure 2B Another example of calculating the RTT of different routes for child nodes according to certain aspects of this disclosure is shown. Figure 2B The mesh network hierarchy of the nodes shown is... Figure 2A The nodes in the mesh network have the same hierarchical structure, where child node E has three parent nodes: nodes A, D, and C. Node D is the primary parent node and is used for routing regular data 202. Nodes A and C are backup parent nodes. To calculate the RTT of various routes from node E to root node 114, node E can calculate the RTT of the routes between node E and each of its parent nodes A, C, and D. The RTT from a child node to its parent node i can be represented as RTT. node_parenti , where i = 1, ..., N, and N is the total number of parent nodes. Node E further obtains the RTT of the route from each parent node to the root node 114. The RTT from parent node i to root node 114 can be represented as RTT parenti_root The sum of the two RTTs associated with the same parent node i can provide the RTT from node E through parent node i to root node 114, i.e., the RTT. node_parenti_root =RTT node_parenti +RTT parenti_root .

[0047] To calculate RTT node_parenti ,i=1,…,N, node E can send to its parent node ( Figure 2B In the example shown, each of nodes A, C, and D sends a neighbor unicast message 232 and records the timestamp of the message transmission. When node E receives a response from its corresponding parent node, it records the timestamp of receiving that response. Node E can also record the RTT (Real-Time To-Time) between node E and its corresponding parent node. node_parenti The calculation is the difference between the time specified in the second timestamp and the first timestamp. Neighbor unicast message 232 can be a neighbor discovery message, such as a Neighbor Unreachable Detection (NUD) message. Neighbor unicast message 232 can be a MAC layer packet or an IP layer packet. If the MAC layer acknowledgment packet is used to calculate the RTT... node_parenti Then RTT needs to be measured from the first MAC packet sent and include all retries. If the IP reply is used to calculate RTT...node_parenti Node E stores details such as sending time and packet details, and calculates RTT once an IP reply is received.

[0048] The RTT from parent node i to root node 114 can be obtained from parent node i via control message 252. parenti_root For example, after calculating the RTT from parent node i to root node 114, the RTT can be... parenti_root Inserted into control message 252 sent to its child nodes. In some examples, the RTT is inserted into control message 252. parenti_root RTT is the RTT of the route from parent node i through its master parent node to root node 114 (i.e., the master route of parent node i). parenti_root This can be the latest RTT calculated by parent node i or the average RTT calculated by parent node i over a predetermined time period. If the mesh network 140 is configured to implement the RPL protocol, the control message can be, for example, a DODAG Information Object (DIO) message. Parent node i broadcasts the DIO message to its child nodes, allowing the child nodes to maintain information about parent node i. Thus, by adding the RTT to the DIO message... parenti_root The child nodes of parent node i can receive RTT. parenti_root This allows child nodes to calculate their RTT to root node 114 via parent node i. node_parenti_root =RTT node_parenti +RTT parenti_root .

[0049] To add RTT information to a DIO message, new options can be added. According to the RPL, DIO messages can carry valid options. The RPL specification allows DIO messages to carry the following options:

[0050] 0x00 Pad1

[0051] 0x01 PadN

[0052] 0x02 DAG metric container

[0053] 0x03 Routing Information

[0054] 0x04 DODAG Configuration

[0055] 0x08 prefix information

[0056] The new option, the RTT option, can be added and defined in TLV format like other options, as shown below:

[0057] Option type

[0058] Bits 7 and 6 = 0x00 indicate that this option should be skipped if the node is not recognized.

[0059] Bits 5 to 0 = new option type.

[0060] Option data length - 1 byte

[0061] Option data - 4-byte time value

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

[0063] exist Figure 2B In the example shown, node A can calculate its RTT to root node 114 by using MAC layer or IP layer packets to root node 114 as described above, denoted as RTT. A_root When node A receives a MAC layer acknowledgment or an IP layer reply, it can calculate the RTT by calculating the time difference between receiving the response and sending a unicast message to its neighbor. A_root Node B can calculate its RTT to root node 114 in a similar way, i.e., RTT B_root Node A and Node B can then use DIO messages or other control messages to adjust the RTT. A_root and 114RTT B_root Send it to its corresponding child node, as discussed above.

[0064] Nodes D and C can calculate their respective RTTs to node B in a similar manner to node A by sending corresponding neighbor unicast messages 232 to node B. D_B and RTT C_B Then, node D can calculate its RTT to root node 114 as its RTT. D_B_root =RTT D_B +RTT B_root Similarly, node C can calculate its RTT to root node 114 as its RTT. C_B_root =RTT C_B +RTT C_root Nodes D and C can send the calculated RTT to their respective child nodes via control message 252, as described above.

[0065] By receiving control messages 252 from different parent nodes, node E can obtain the RTT from each of its parent nodes to the root node 114, including the RTT of parent node A. A_root RTT of parent node D D_B_root RTT with parent node C C_B_rootNode E can obtain the RTT from itself to each of its parent nodes through neighbor unicast messages 232 to each parent node. Based on the received responses to these neighbor unicast messages 232, Node E can calculate the RTT from itself to each parent node: RTT E_A RTT E_D and RTT E_C Node E can also calculate its RTT (Round-Trip Time) to root node 114 via each of its parent nodes as follows:

[0066] RTT E_D_root =RTT E_D +RTT D_root ;

[0067] RTT E_C_root =RTT E_C +RTT C_root ;

[0068] RTT E_A_root =RTT E_A +RTT A_root .

[0069] It should be understood that although the above example focuses on child node E, the above operations can be performed by any node 160 (such as node D or node C) in the mesh network 140, which is configured to send data to the root node 114 through one of its parent nodes. Each of these nodes 160 can also maintain parent information 206 of its respective parent node, including the RTT associated with each route through the respective parent node.

[0070] Furthermore, while the selection of the route with the lowest RTT for time-critical message 222 has been described above, a low RTT does not guarantee a reliable route. Therefore, in some examples, the reliability of the route is also considered when selecting the optimal route for time-critical message 222. In doing so, the node sending time-critical message 222 can use any method that can be used to determine a set of candidate parent nodes associated with a reliable route for sending time-critical message 222. The method used to select a reliable route can be based on, for example, a minimum rank with hysteresis objective function (MRHOF), an LQI / ETX-based objective function, or any other mechanism defined for wireless routing. Once the set of candidate parent nodes has been selected based on reliability criteria, the RTT criterion can be applied to that set of candidate parent nodes. Time-critical message 222, requiring a low response time, can be sent from the node via the parent node with the lowest RTT.

[0071] Figure 3An example of a process 300 for optimizing the routing of time-critical messages 222 in a mesh network 140, according to certain aspects of this disclosure, is shown. The mesh network 140 is configured to route messages 222 through one of its parent nodes (e.g., Figure 2A and Figure 2B Any node 160 (e.g., node E, node D, or node C) that sends data to root node 114 can do so by executing appropriate program code. Figure 3 The operation is depicted in the accompanying drawings. For illustrative purposes, process 300 is described with reference to certain examples depicted in the drawings. However, other embodiments are also possible.

[0072] At box 302, process 300 involves node 160 sending regular data 202 through its primary parent node. The primary parent node has previously been selected by node 160 based on a target such as LQI or ETX. Regular data 202 may include, for example, measurement data obtained at node 160 or other data that is not time-critical.

[0073] At box 304, process 300 involves node 160 determining to send time-critical message 222. Time-critical message 222 can be any message that node 160 determines it should send to root node 114 as soon as possible. For example, time-critical message 222 could be a message indicating a problem in mesh network 140 or a resource distribution network associated with mesh network 140. For example, a problem could be an outage in a region of the resource distribution network, such as a power outage in a smart grid. Time-critical message 222 can also include messages indicating problems or failures associated with devices in the resource distribution network or mesh network. For example, if a critical device in a power distribution system fails to operate, time-critical message 222 can be generated and should be sent by node 160 to root node 114 as soon as possible so that the problem can be resolved quickly.

[0074] If node 160 determines that there is no time-critical message 222 to be sent, node 160 continues to send regular data 202 through its primary parent node. If node 160 determines that there is a time-critical message 222 to be sent, process 300 involves determining a set of candidate parent nodes for sending the time-critical message 222 at block 306 and calculating the RTT for each route associated with these candidate parent nodes. In some examples, node 160 may use any method available for determining reliable routes to determine this set of candidate nodes, such as a function based on the lowest ranking objective function with hysteresis characteristics (MRHOF), an objective function based on LQI / ETX, or any other mechanism defined for wireless routing. For example, the set of candidate parent nodes may be selected from those candidate parent nodes whose associated routes have an objective metric (such as reliability) above a predetermined threshold or are ranked highest among available routes. For each parent node in this set of candidate parent nodes, node 160 determines or calculates the RTT of the route from node 160 via that parent node to root node 114. The following is about Figure 4 and Figure 5 Provides details about the RTT for calculating the route associated with the parent node of node 106.

[0075] At block 308, node 106 selects a parent node from the group of candidate parent nodes to send the time-critical message 222. In the example, node 106 selects the parent node associated with the route with the minimum RTT as the parent node to forward the time-critical message 222. At block 310, procedure 300 involves node 106 sending the time-critical message 222 via the selected parent node. In some implementations, node 106 waits for acknowledgment of the time-critical message 222 from root node 114 before proceeding to the next operation. After receiving the acknowledgment, if there are no other messages to send, node 106 can enter sleep mode to switch back to the primary route and continue sending regular data 202 via the primary route.

[0076] Now for reference Figure 4 , Figure 4This includes several flowcharts illustrating processes 400A, 400B, and 400C for calculating the RTT by various nodes 106 in a mesh network 104, according to certain aspects of this disclosure. Specifically, process 400A illustrates aspects of a node 160 configured to send a message to the root node 114 via a parent node. Process 400B illustrates aspects of intermediate nodes on the route from node 160 to the root node 114. Process 400C illustrates aspects of the root node 114. Node 160, intermediate nodes, and root node 114 can respectively implement the operations in processes 400A, 400B, and 400C by executing appropriate program code. Processes 400A, 400B, and 400C will be described together below. For illustrative purposes, processes 400A, 400B, and 400C are described with reference to certain examples depicted in the accompanying drawings. However, other implementations are also possible.

[0077] At box 402, procedure 400A involves node 160 sending a unicast message 212 to root node 114 via one of its parent nodes. The unicast message can be any message sent from child node E to root node 114 that requires a response from the root node. For example, a unicast message could be a ping message to root node 114. If mesh network 140 is configured to implement the RPL protocol, the unicast message can include a DAO message for propagating destination information upwards along mesh network 140. In some examples, node 160 generates a sequence number and inserts it into the unicast message, such as inserting it into the header of the unicast message as described above. The sequence number can uniquely identify the unicast message sent by node 160. Node 160 also records a timestamp used to send the unicast message.

[0078] At box 412, procedure 400B involves an intermediate node (such as a parent node or any other node on the route 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 and an identifier of node 160, such as the identifier's IP address. The combination of node 160's identifier and the unicast message's sequence number uniquely identifies the unicast message on mesh network 140. At box 414, procedure 400B involves the intermediate node forwarding the received unicast message to the next node on the route. The intermediate node also records a timestamp used for forwarding the unicast message and stores the timestamp along with the sequence number and node identifier.

[0079] At box 422, procedure 400C involves root node 114 receiving a unicast message. At box 424, procedure 400C involves root node 114 sending an acknowledgment message 214 back to node 160 along the same route. In some examples, root node 114 uses a source routing header to send the acknowledgment message, which contains the sequence number of the unicast message and the identifier of node 160.

[0080] At box 416, procedure 400B involves an intermediate node receiving an acknowledgment message sent from root node 114 and recording a timestamp used to record the receipt of the acknowledgment message. The intermediate node may also extract a sequence number and an identifier for node 160 from the acknowledgment message. At box 418, procedure 400B involves forwarding the acknowledgment message to node 160 along the same route back to node 160.

[0081] At box 420, the intermediate node calculates the RTT for a portion of the route from the intermediate node to root node 114. To do this, the intermediate node compares the sequence number and node identifier extracted from the acknowledgment message with previously recorded sequence numbers and node identifiers. If a match is found, the intermediate node obtains 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 indicating the received acknowledgment message. This difference indicates the RTT of the route from the intermediate node to root node 114.

[0082] Intermediate nodes can use the calculated RTT to update the RTT information for a route. For example, an intermediate node can replace the old RTT stored for the route with a newly calculated RTT. Alternatively, an intermediate node can calculate the average RTT obtained over a past time period as the RTT for the route. Other methods can be used to update the RTT information by calculating the RTT for a route.

[0083] At block 404, process 400A involves node 160 receiving an acknowledgment message forwarded by an intermediate node including its parent node. Node 160 also records a timestamp of receiving the acknowledgment message and extracts the sequence number of the unicast message from the acknowledgment message. At block 406, node 160 calculates the RTT of the route used to send the unicast message to root node 114 based on the recorded timestamp. For example, node 160 can compare the sequence number extracted from the acknowledgment message with a previously recorded sequence number. If a match is found, node 160 obtains the timestamp used to send the unicast message containing the sequence number. Node 160 can calculate the difference between the time specified by the sending timestamp and the receiving timestamp of the acknowledgment message. This difference indicates the RTT of the route from node 160 via its parent node to root node 114.

[0084] Node 160 can use the calculated RTT to update the RTT information for the route. For example, Node 160 can replace the old RTT stored for the route with a newly calculated RTT. Alternatively, Node 160 can calculate the average RTT obtained over a past time period as the RTT for the route. Other methods for updating the RTT based on the most recently calculated RTT can be utilized. At box 408, Node 160 determines whether another unicast message should be sent to root node 114. For example, Node 160 can establish a schedule for sending a unicast message to root node 114 to update the RTT information. If the schedule expires, Node 160 can determine that another unicast message should be sent to root node 114. In the example where the unicast message includes a DAO message, Node 160 can determine 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 can restart the process 400A for a new unicast message from box 402.

[0085] Figure 4 The procedure shown is used to calculate the RTT of a route associated with a parent node of node 160. A similar procedure can be performed for each parent node of node 160 to obtain the RTT of the corresponding route. Intermediate nodes along these routes can calculate their corresponding RTT to root node 114 by following a procedure similar to procedure 400B, based on forwarding unicast messages and receiving acknowledgment messages.

[0086] Figure 5 This includes several flowcharts 500A and 500B illustrating certain processes 500A and 500B for calculating the RTT of a route from node 160 to root node 114 in a mesh network 140, according to certain aspects of this disclosure. Specifically, process 500A illustrates aspects of node 160 configured to send messages to root node 114 via a parent node. Process 500B illustrates aspects of the parent node. Node 160 and the parent node can respectively implement the operations in processes 500A and 500B by executing appropriate program code. Processes 500A and 500B will now be described together. For illustrative purposes, processes 500A and 500B are described with reference to certain examples depicted in the accompanying drawings. However, other implementations are also possible.

[0087] At box 502, process 500A involves node 160 sending a neighbor unicast message 232 to its parent node, as mentioned above. Figure 2BDetailed description. Node 160 also records a timestamp used to send neighbor unicast message 232. At box 512, procedure 500B involves the parent node receiving neighbor unicast message 232 from node 160. At box 514, the parent node sends an acknowledgment message for neighbor unicast message 232 back to node 160. At box 504, procedure 500A involves node 160 receiving the acknowledgment message and recording a timestamp used to record the received acknowledgment message. As described above regarding... Figure 2B As discussed, if the neighbor unicast message 232 is a MAC layer message, the timestamp used to receive the acknowledgment message is recorded to include all MAC layer retries; or if the neighbor unicast message 232 is an IP message, the timestamp used to receive the acknowledgment message is recorded to include the time of receiving the IP reply.

[0088] At box 506, node 160 calculates the RTT of 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 calculate the RTT of the local route as the difference between the timestamps specified in the two timestamps.

[0089] At box 516, procedure 500B involves the parent node sending control message 252 to this node. (As mentioned above regarding...) Figure 2B As discussed in detail, control message 252 may include the RTT of the route from the parent node through its primary parent node to root node 114 (i.e., the parent node's primary route). At box 508, node 160 receives control message 252 and extracts the RTT of the primary route from the parent node to root node 114 from control message 252. Node 160 also calculates the RTT of the route via the parent node to root node 114 as the sum of the RTT of the local route calculated at box 506 and the RTT extracted from control message 252.

[0090] Figure 5 The procedure shown is used to calculate the RTT of a route associated with one of node 160's parent nodes. A similar procedure can be performed on other parent nodes of node 160 to obtain the RTT of the corresponding routes. Furthermore, although described in a specific order... Figure 5 The operations of the nodes shown are different, but these operations can be performed in a different order than those described above, and may involve fewer or more operations. For example, a parent node may send a control message 252 to child node 160 before receiving neighbor unicast message 232 from child node 160. Therefore, extracting the RTT contained in the control message 252 can be performed by child node 160 before sending neighbor unicast message 232. In a further example, a parent node may send its RTT information to child node 160 via control message 252 more frequently than child node 160 initiates local RTT estimation via neighbor unicast message 232, and vice versa.

[0091] Although the above descriptions describe respectively Figure 4 and Figure 5 While the process described in the text is the same, nodes in a mesh network can implement two processes to estimate the RTT for different routes. The RTT estimated by these two processes for the same route can be combined in any way. For example, a node can average the RTTs obtained through the two processes to determine the RTT for a route. A node can also use a weighted sum of the RTTs obtained from the two processes. In another example, a node might choose to use one process instead of the other because the chosen RTT is more up-to-date, more accurate, or for other reasons.

[0092] Exemplary node

[0093] Figure 6 An exemplary node 600, such as node 160, that can be used to implement routing optimizations for time-critical messages described herein is illustrated. Node 600 may include a processor 602, a memory 604, and a transceiver device 620, each communicatively coupled via a bus 610. The components of node 600 may be powered by an A / C power supply or a low-power source, such as a battery (not shown). Transceiver device 620 may include (or be communicatively coupled to) an antenna 608 for communicating with other nodes. In some examples, the transceiver device is a radio frequency (“RF”) transceiver for wirelessly transmitting and receiving signals.

[0094] 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 coupled to a computer-readable medium, such as memory 604. Processor 602 may execute computer-executable program instructions or access information stored in memory to perform operations, such as... Figures 3-5 The operations described herein. Instructions may include processor-specific instructions generated by a compiler and / or interpreter from code written in any suitable computer programming language. When executed, these instructions can 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 the calculated RTT of routes associated with different parent nodes. Although the processor, memory, bus, and transceiver devices are in... Figure 6 The components are depicted as separate components communicating with each other, but other implementations are possible. The systems and components discussed herein are not limited to any particular hardware architecture or configuration.

[0095] General considerations

[0096] This document sets forth numerous specific details to provide a thorough understanding of the claimed subject matter. However, those skilled in the art will understand that the claimed subject matter can be practiced without these specific details. In other instances, methods, apparatus, or systems known to those skilled in the art have not been described in detail to avoid obscuring the claimed subject matter.

[0097] The features discussed herein are not limited to any particular hardware architecture or configuration. A computing device can include any suitable arrangement of components that provide a result conditioned on one or more inputs. Suitable computing devices include multi-purpose microprocessor-based computer systems that access stored software (i.e., computer-readable instructions stored in the memory of the computer system) that programs or configures the computing system from a general-purpose computing device to a special-purpose computing device that implements one or more aspects of this subject. The teachings contained herein can be implemented in software using any suitable programming, scripting, or other type of language or combination of languages ​​for programming or configuring the computing device.

[0098] The aspects of the methods disclosed herein can be executed in the operation of such a computing device. The order of the boxes presented in the above examples can be changed; for example, the boxes can be reordered, combined, and / or divided into sub-boxes. Some boxes or procedures can be executed in parallel.

[0099] The use of “suitable for” or “configured to” in this document implies open-ended and inclusive language, which does not exclude devices suitable for or configured to perform additional tasks or steps. Similarly, the use of “based on” implies open-ended and inclusive language, because processes, steps, calculations, or other actions “based on” one or more of the stated conditions or values ​​may in practice be based on additional conditions or values ​​beyond those stated. The headings, lists, and numbering included in this document are for ease of interpretation only and are not intended to be limiting.

[0100] While specific aspects of this subject matter have been described in detail, it should be understood that those skilled in the art will readily make changes, variations, and equivalents to these aspects upon understanding the foregoing. Therefore, it should be understood that this disclosure is presented for illustrative purposes rather than for limitation, and does not exclude the inclusion of such modifications, variations, and / or additions to the subject matter, which will be apparent to those skilled in the art.

Claims

1. A mesh system, comprising: Root node; A child node that communicates with the root node through other nodes in the mesh system; as well as The child node has multiple parent nodes, each of which is associated with a route between the child node and the root node via the parent node, the multiple parent nodes including a primary parent node and one or more backup parent nodes; The child node is configured as follows: Regular data is sent to the root node via the main route associated with the main parent node; Determine that a time-critical message exists to be sent to the root node; Based on the routing reliability criteria, select a set of parent nodes from the plurality of parent nodes; Estimate the round-trip time (RTT) of each route between the child node and the root node associated with one of the parent nodes selected from the plurality of parent nodes, wherein the RTT is estimated based on messages sent between the child node and each of the parent nodes selected from the plurality of parent nodes; Select the parent node whose associated route has the lowest RTT from among the multiple parent nodes; The time-critical message is sent to the root node through the selected parent node; and After sending the time-critical message to the root node through the selected parent node, additional regular data is sent to the root node through the main route.

2. The mesh system according to claim 1, wherein, The RTT for estimating the route between the child node and the root node associated with one of the parent nodes selected from the plurality of parent nodes includes: A unicast message is sent from one of the parent nodes to the root node. Record a first timestamp associated with the transmission of the unicast message; Receive an acknowledgment message for the unicast message from the root node; Record a second timestamp associated with receiving the confirmation message; and The RTT of the route between the child node and the root node associated with the parent node is calculated as the difference between a second time point indicated by the second timestamp and a first time point indicated by the first timestamp.

3. The mesh system according to claim 2, wherein, The parent node is configured as follows: Receive the unicast message from the child node; The unicast message is forwarded to the root node via a route between the parent node and the root node; Record a third timestamp associated with the unicast message forwarded by the parent node; The acknowledgment message received from the root node for the unicast message; Record a fourth timestamp associated with receiving the acknowledgment message at the parent node; Forward the acknowledgment message of the unicast message to the child node; as well as The RTT of the route between the parent node and the root node is calculated as the difference between the fourth time point indicated by the fourth timestamp and the third time point indicated by the third timestamp.

4. The mesh system according to claim 3, wherein, The mesh system implements the Lossy Media Routing Protocol (RPL), and the unicast message is a Destination Advertisement Object (DAO) message.

5. The mesh system according to claim 4, wherein: The DAO message includes a sequence number; The confirmation message of the DAO message includes the sequence number; and The parent node is configured to identify the third timestamp and the fourth timestamp based on the sequence number contained in the DAO message and the sequence number contained in the confirmation message, respectively.

6. The mesh system according to claim 5, wherein, The sequence number is included in the hop-by-hop (HBH) option of the new IPv6 extended header or the existing IPv6 header.

7. The mesh system according to claim 1, wherein, The RTT for estimating the route from the child node to the root node associated with one of the parent nodes selected from the plurality of parent nodes includes: Send a neighbor unicast message to one of the parent nodes; Record a first timestamp associated with the transmission of the neighbor unicast message; Receive acknowledgment of the neighbor's unicast message from one of the parent nodes; Record a second timestamp associated with the receipt of the confirmation; The local RTT of the local route between the child node and the 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. Receive a control message from the parent node, the control message specifying the RTT of the route between the parent node and the root node; and The RTT of the route between the child node and the root node associated with the parent node is calculated as the sum of the local RTT and the RTT of the route between the parent node and the root node.

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

9. The mesh system according to claim 7, wherein, The RTT of the route between the parent node and the root node is the RTT of the route between the parent node and the root node associated with the parent node's primary parent node.

10. The mesh system according to claim 7, wherein, The RTT of the route between the root node and the parent node specified in the control message is the latest RTT or average RTT calculated by the parent node.

11. The mesh system according to claim 1, wherein, Each of the child nodes and each of the selected set of parent nodes is configured to maintain the RTT of the route from the corresponding node to the root node.

12. A node in a network, comprising: A processor configured to execute computer-readable instructions; as well as Memory, configured to store the computer-readable instructions, which, when executed by the processor, cause the processor to perform operations, including: Regular data is sent to the root node of the network via a primary route associated with the primary parent node of the node, wherein the node has multiple parent nodes in the network, including the primary parent node and one or more backup parent nodes, each of the multiple parent nodes being associated with a route between the node and the root node of the network; Determine that a time-critical message exists to be sent to the root node; Based on the routing reliability criteria, select a set of parent nodes from the plurality of parent nodes; Estimate the round-trip time (RTT) of each route between the node and the root node associated with one of the parent nodes selected from the plurality of parent nodes, wherein the RTT is estimated based on messages sent between the node and each of the parent nodes selected from the plurality of parent nodes; Select the parent node whose associated route has the lowest RTT from among the multiple parent nodes; The time-critical message is sent to the root node through the selected parent node; and Switch back to the primary route to send additional regular data to the root node.

13. The node according to claim 12, wherein, The RTT for estimating the route between the node and the root node associated with one of the parent nodes selected from the plurality of parent nodes includes: A unicast message is sent from one of the parent nodes to the root node. Record a first timestamp associated with the transmission of the unicast message; Receive an acknowledgment message for the unicast message from the root node; Record a second timestamp associated with receiving the confirmation message; and The RTT of the route between the node and the root node associated with the parent node is calculated as the difference between a second time point indicated by the second timestamp and a first time point indicated by the first timestamp.

14. The node according to claim 13, wherein, The parent node is configured as follows: Receive the unicast message from the node; The unicast message is forwarded to the root node via a route between the parent node and the root node; Record a third timestamp associated with the unicast message forwarded by the parent node; The acknowledgment message received from the root node for the unicast message; Record a fourth timestamp associated with receiving the acknowledgment message at the parent node; Forward the confirmation message of the unicast message to the node; as well as The RTT of the route between the parent node and the root node is calculated as the difference between the fourth time point indicated by the fourth timestamp and the third time point indicated by the third timestamp.

15. The node according to claim 12, wherein, The RTT for estimating the route from the node to the root node associated with one of the parent nodes selected from the plurality of parent nodes includes: Send a neighbor unicast message to one of the parent nodes; Record a first timestamp associated with the transmission of the neighbor unicast message; Receive acknowledgment of the neighbor's unicast message from one of the parent nodes; Record a second timestamp associated with the receipt of the confirmation; The local RTT of the local route between the node and the 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. Receive a control message from the parent node, the control message specifying the RTT of the route between the parent node and the root node; and The RTT of the route between the node and the root node associated with the parent node is calculated as the sum of the local RTT and the RTT of the route between the parent node and the root node.

16. A method for sending time-critical messages in a mesh network, the method comprising: Regular data is sent from a node in the mesh network to the root node of the mesh network via a main route associated with the node's primary parent node, wherein the node has multiple parent nodes in the mesh network, including the primary parent node and one or more backup parent nodes, and each of the multiple parent nodes is associated with a route between the node and the root node of the mesh network; The node determines that there exists a time-critical message to be sent to the root node; Based on the routing reliability criteria, select a set of parent nodes from the plurality of parent nodes; The node estimates the round-trip time (RTT) of each route between the node and the root node associated with one of the parent nodes selected from the plurality of parent nodes, wherein the RTT is estimated based on messages sent between the node and each of the parent nodes selected from the plurality of parent nodes; The node selects the parent node whose associated route has the lowest RTT from a set of parent nodes among the plurality of parent nodes; The node sends the time-critical message to the root node through the selected parent node; and The node switches back to the main route to send additional regular data to the root node.

17. The method according to claim 16, wherein, The RTT for estimating the route between the node and the root node associated with one of the parent nodes selected from the plurality of parent nodes includes: A unicast message is sent from one of the parent nodes to the root node. Record a first timestamp associated with the transmission of the unicast message; Receive an acknowledgment message for the unicast message from the root node; Record a second timestamp associated with receiving the confirmation message; and The RTT of the route between the node and the root node associated with the parent node is calculated as the difference between a second time point indicated by the second timestamp and a first time point indicated by the first timestamp.

18. The method according to claim 17, wherein, The mesh network implements the Lossy Media Routing Protocol (RPL), and the unicast message is a Destination Advertisement Object (DAO) message.

19. The method of claim 16, wherein, The RTT for estimating the route from the node to the root node associated with one of the parent nodes selected from the plurality of parent nodes includes: Send a neighbor unicast message to one of the parent nodes; Record a first timestamp associated with the transmission of the neighbor unicast message; Receive acknowledgment of the neighbor's unicast message from one of the parent nodes; Record a second timestamp associated with the receipt of the confirmation; The local RTT of the local route between the node and the 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. Receive a control message from the parent node, the control message specifying the RTT of the route between the parent node and the root node; and The RTT of the route between the node and the root node associated with the parent node is calculated as the sum of the local RTT and the RTT of the route between the parent node and the root node.

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