Virtual Addressing For Mesh Networks
AssigneeGoogle Inc.
InventorMartin A. Turon
Life of this patent
Estimating the term…
Abstract
In embodiments of virtual addressing for mesh networks, a node in a mesh network publishes packets and/or subscribes to packets using a virtual address that is derived from a unique identifier. The unique identifier has a larger address space than the destination address field of the packet. The unique identifier and an application key are hashed to elide the unique identifier from the destination address that is transmitted in the packet over the mesh network. A node receiving the packet can determine that the address is a virtual address, and disambiguate the destination address to determine that the virtual address corresponds to a unique identifier known to the receiving node.
Claims20
A method of virtual addressing in a mesh network by a mesh network device implemented as a sensor node, the method comprising:
- hashing a unique identifier (UID) to form a UID hash by hashing the UID and a virtual address salt using a Cipher-based Message Authentication Code (CMAC) to generate the UID hash, the UID being associated with an application;
- generating a key identifier, which identifies an application key that is associated with the application, by hashing the application key and a key-identifier salt using the CMAC to produce a first hash result, and hashing the first hash result and a virtual address key salt using the CMAC;
- and
- forming a virtual address including concatenating an address type indicator and a portion of the UID hash;
- inserting the virtual address in a destination address field of a header of a packet;
- inserting a sensor reading in an application payload field in the packet;
- and
- transmitting the packet over the mesh network.
A method of virtual addressing in a mesh network by a destination node, the method comprising:
- receiving, by the destination node, a packet over the mesh network;
- determining that an address type indicator indicates that a destination address in a destination address field of the packet includes a virtual address;
- disambiguating the virtual address in the received packet, the disambiguation using a unique identifier (UID) to determine that the virtual address corresponds to a known UID that is provisioned to the destination node by comparing hashes to disambiguate that there is a mapping of the virtual address to the known UID;
- and
- authenticating a packet payload using the UID as additional data, a successful authentication of the packet payload indicating that the virtual address is correctly addressing the destination node.
A method of virtual addressing in a mesh network by a source node, the method comprising:
- hashing, by the source node, a unique identifier (UID) to form a UID hash;
- generating a key identifier that identifies an encryption key associated with the UID;
- setting an address type indicator to indicate that a destination address is a virtual address;
- forming the virtual address including concatenating the address type indicator and a portion of the UID hash;
- inserting the virtual address in a destination address field of a header of a packet;
- and
- transmitting the packet over the mesh network to a destination node, the transmitting directing the destination mesh network device to:
- determine that the address type indicator indicates that the destination address in the destination address field of the packet includes the virtual address;
- disambiguate the virtual address in the received packet, the disambiguation using the UID to determine that the virtual address corresponds to a known UID that is provisioned to the destination node;
- and
- authenticate a packet payload using the UID as additional data.
Dependencies are inferred from the claim text.