SYSTEM AND METHOD FOR IMPLEMENTING MESH NETWORK COMMUNICATIONS USING A MESH NETWORK PROTOCOL
First Claim
Patent Images
1. A method of associating a device to a mesh network, comprising:
- selecting a network for association including;
requesting, by the device, neighbor information from neighboring devices which may belong to one or more networks,receiving, at the device from one or more neighboring devices, neighbor information for each of the one or more neighboring devices,applying an association ratio algorithm to the received neighbor information to determine which of the one or more networks to select for association;
selecting a router within the selected network through which to proxy messages by applying a preferred route ratio algorithm;
sending a network association request from the device through the router to a network coordinator;
at the network coordinator, performing one of the following in response to the network association request;
validating the association request with an association response message which includes a short address for the device,not responding to the network association request; and
constructing, at the device, an initial neighborhood table.
2 Assignments
0 Petitions
Accused Products
Abstract
The following describes data structures, communication protocol formats and process flows for controlling and facilitating secure communications between the nodes of a mesh network, such as utility meters and gateway nodes comprising a utility network. The enabled processes include association, information exchange, route discovery and maintenance and the like for instituting and maintaining a secure mesh network.
13 Citations
16 Claims
-
1. A method of associating a device to a mesh network, comprising:
-
selecting a network for association including; requesting, by the device, neighbor information from neighboring devices which may belong to one or more networks, receiving, at the device from one or more neighboring devices, neighbor information for each of the one or more neighboring devices, applying an association ratio algorithm to the received neighbor information to determine which of the one or more networks to select for association; selecting a router within the selected network through which to proxy messages by applying a preferred route ratio algorithm; sending a network association request from the device through the router to a network coordinator; at the network coordinator, performing one of the following in response to the network association request; validating the association request with an association response message which includes a short address for the device, not responding to the network association request; and constructing, at the device, an initial neighborhood table.
-
-
2. A process for routing data frames from a first node to a second node within a network, the process including:
-
a tree routing sub-process, a source routing sub-process, a temporary routing sub-process and a mesh routing sub-process, wherein the particular sub-process for routing a data frame from the first node the second nodes is selected in accordance with the following logic executed on a processor; if the data frame has a source route header the source routing sub-process is selected; if there is an entry for the target address in a temporary routing table, the temporary muting sub-process is selected; if the second node is a coordinator node, the tree routing sub-process is selected; if the second node is not a coordinator node, the mesh routing sub-process is selected. - View Dependent Claims (3, 4, 5, 6)
-
-
7. A process for discovering a route from a first node to a second node in a mesh network comprising:
broadcasting by the first node a route request message that is propagated across multiple nodes within the mesh network in accordance with the following process implemented within processors at the multiple nodes; accepting a route request at a receiving node if; (i) no previous received route request message had the same request ID; and (ii) the route request message is received through a link with a minimum LQI class at least equal to the requested one; identifying the receiving node as a route candidate and (iii) if the route request message is accepted by an intermediate node, re-broadcasting the route request; (iv) if the route request message is accepted by the second node, sending a route reply message from the second node through the identified route candidate back to the first node to establish a static bidirectional route within the mesh network between the first node and the second node.
-
8. A process for upgrading a route from a first node to a second node in a mesh network further comprising:
-
accepting a route request at a receiving node for upgrading the route if; a route candidate already exists for the request ID; the request was received through a link with a minimum LQI class at least equal to the requested one; and the request was received through a better link than the prior received one, as determined by one of the following sets of conditions; (i) the receiving node is a neighbor, the route request is received from a neighbor and a resulting route length is shorter; (ii) the receiving node is not a neighbor, the route request is received from a neighbor and a resulting route length is shorter or equal to existing route length; (iii) the receiving node is not a neighbor, the route request is received from a non-neighbor and a resulting route length is shorter; otherwise rejecting the route request.
-
-
9. A process for requesting a route from a first node to a second node within a mesh network comprising:
-
transmitting a route request message to a pre-determined coordinator node, wherein the route request message includes a long address for the second node; constructing at the coordinator node a route through one or more routing nodes from the first node to the second node; transmitting a response to the route request message to the first node including the route to the second node, wherein the route includes an assigned short address for the second node. - View Dependent Claims (10)
-
-
11. A data structure for securing data frames transmitted in a single hop within a mesh network from a first node to a second node, the data structure comprising:
a data link layer (DLL) security header located after a service-type octet when a predetermined security header flag is selected within the service-type octet, the DLL security header including; a first set of bits containing a portion of a transmitted nonce count; a bit following the first set of bits containing a key identifier (ID), wherein the key ID selects a current version of a key used for calculating a message integrity check (MIC); and a second set of bits containing the MIC. - View Dependent Claims (12)
-
13. A process for validating integrity of message data transmitted in a single hop from a first node to a second node within a mesh network, the process comprising:
-
checking at a processor of the second node the 23 least significant bits (0-22) of a count transmitted from the first node against a last authenticated count; if the transmitted count value is greater than the last authenticated count, combining at a processor of the second node, the 23 least significant bits (0-22) with the 17 most significant bits (23-39) of the last authenticated count to form a revised count; if the transmitted count value is lower than the last authenticated count, incrementing the value of bits 23 through 29 by one before combining at a processor of the second node, the 23 least significant bits (0-22) with the 17 most significant bits (23-39) of the last authenticated count to form a revised count; calculating at the processor of the second node a message integrity check (MIC) value using the revised count and pre-selected key; if the calculated MIC value equals a received MIC value, then the message data integrity is validated.
-
-
14. A data structure for securing data frames transmitted in multiple hops using multiple nodes across a mesh network, the data structure comprising:
a network security header located after a data link layer (DLL) security layer within a mesh header, the network security header including; a first set of bits containing a network count; a bit following the first set of bits containing a network key identifier (ID); and a second set of bits containing a network message integrity check (MIC). - View Dependent Claims (15)
-
16. A process for validating integrity of a data frame transmitted in multiple hops using multiple nodes across a mesh network, the process comprising:
-
receiving a data frame at a receiver node, wherein the data frame includes a network security header including a network count, a network key identifier (ID) and a message integrity check (MIC); processing an identifier (ID) for an originating node that originated the data frame and a source field address to determine if the data frame was received from a coordinator node or a non-coordinator node; if the data frame was received from a coordinator node, the network key ID selects a node key for determining verification; if the data frame was received from a non-coordinator node, the network key ID selects a mesh key for determining verification; when the received data frame is a request, a nonce is a combination of at least the network count, the originating node ID and an originating node address and the receiving node verifies the integrity of the frame by; adding a 0 to the network field to make a 40 bit field, calculating the received MIC using either the node key or the mesh key as identified by the network key ID; comparing the transmitted MIC with the received MIC, wherein the data frame is verified if the transmitted MIC is equal to the received MIC; when the received data frame is a response, the network count is combined with the identifier and address for the target of the data frame and the originating node ID and an originating node address and the receiving node compares a network count in the response with a network count in the request, wherein the data frame is verified if the response network count is equal to the request network count.
-
Specification