IP Library Granted Patent US 10,667,111
Granted Patent B2
US 10,667,111 · App. 16/258,194 · Granted May 26, 2020

Virtual addressing for mesh networks

Inventor: Martin A. Turon (Berkeley, CA)
Assignee: Google LLC
H04W4/80H04L9/0637H04L9/3242H04L61/2038H04W12/10H04L63/123H04L63/126H04W12/00512H04W84/18
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,667,111
App. No.
16/258,194
Granted
May 26, 2020
Kind
B2
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.

Claims (42)

1. 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.

2. The method of claim 1 , wherein the inserting the virtual address in the packet is effective to enable authentication of the virtual address by one or more mesh network devices that subscribe to data published to the UID.

3. The method of claim 1 , wherein the address type indicator indicates the destination address in the destination address field is a virtual address.

4. The method of claim 1 , wherein the mesh network is a Bluetooth Low Energy (BLE) network, and wherein the packet is a BLE advertisement packet.

5. The method of claim 1 , wherein the transmitting the packet is effective to enable relaying the packet by a node in the mesh network.

6. The method of claim 1 , wherein the inserting the virtual address is effective to enable a node at a destination address to authenticate the packet.

7. The method of claim 1 , wherein the application publishes data to the UID or subscribes to data published using the UID.

8. The method of claim 1 , wherein the UID is one of a 128-bit Universally Unique Identifier (UUID), a 64-bit Extended Unique Identifier (EUI-64), a 48-bit Media Access Control address (MAC-48), a 32-bit address, a 128-bit IPv6 address, a radio interface address, null-terminated string or label, or a JPEG image.

9. 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.

10. The method of claim 9 , wherein the packet is received from a source node, and wherein the source node generates the virtual address for the received packet.

11. The method of claim 10 , wherein the virtual address is associated with an application that uses capabilities of the source node or uses capabilities of the destination node.

12. The method of claim 9 , wherein the mesh network is a Bluetooth Low Energy (BLE) network, and wherein the packet is a BLE advertisement packet.

13. The method of claim 9 , wherein the UID is one of a 128-bit Universally Unique Identifier (UUID), a 64-bit Extended Unique Identifier (EUI-64), a 48-bit Media Access Control address (MAC-48), a 32-bit address, a 128-bit IPv6 address, a radio interface address, null-terminated string or label, or a JPEG image.

14. 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 a 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.

15. The method of claim 14 , wherein, to disambiguate the virtual address, the destination node is configured to compare hashes to disambiguate that there is a mapping of the virtual address to the known UID, and wherein successful authentication of the packet payload indicates that the virtual address is correctly addressing the destination node.

16. The method of claim 14 , wherein transmitting the packet over a mesh network to the destination node further comprises:

transmitting the packet to a relay node in the mesh network that is configured to:

receive the transmitted packet from the source node; and

relay the received packet, using the mesh network, wherein the destination node receives the relayed packet.

17. The method of claim 14 , wherein the virtual address is associated with an application that uses capabilities of the source node or uses capabilities of the destination node.

18. The method of claim 17 , wherein the application publishes data to the UID or subscribes to data published using the UID.

19. The method of claim 14 , wherein the destination node is provisioned with multiple UIDs, wherein to disambiguate the virtual address in the packet, the destination node is configured to disambiguate the virtual address for each of the multiple UIDs, and wherein each of the multiple UIDs is associated with a different application.

20. The method of claim 14 , wherein the mesh network is a Bluetooth Low Energy (BLE) network, and wherein the packet is a BLE advertisement packet.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2019
From: TURON, MARTIN A.
To: GOOGLE INC
Reel/Frame 048141/0605 →
CHANGE OF NAME Recorded Jan 25, 2019
From: GOOGLE INC
To: GOOGLE LLC
Reel/Frame 048146/0200 →
Continuity (3)
Continuation 15232040 · Aug 9, 2016
Provisional Application 62266246 · Dec 11, 2015
Related Publication 20190159006A1 · May 23, 2019