IP Library Granted Patent US 10,231,108
Granted Patent B2
US 10,231,108 · App. 15/232,040 · Granted Mar 12, 2019

Virtual addressing for mesh networks

Inventor: Martin A. Turon (Berkeley, CA)
Assignee: Google LLC
H04W4/80H04L9/0637H04L9/3242H04L61/2038H04W12/10H04L63/123H04L63/126H04W84/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,231,108
App. No.
15/232,040
Granted
Mar 12, 2019
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 (54)

1. A system comprising:

a source mesh network device configured to:

hash a unique identifier (UID) to form a UID hash;

generate a key identifier that identifies an encryption key associated with the UID;

set an address type indicator to indicate that a destination address is a virtual address;

form the virtual address including concatenating the address type indicator and a portion of the UID hash;

insert the virtual address in a destination address field of a header of a packet; and

transmit the packet over a mesh network;

a destination mesh network device configured to:

receive the packet over the mesh network;

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 mesh network device; and

authenticate a packet payload using the UID as additional data.

2. The system of claim 1 , wherein, to disambiguate the virtual address, the destination mesh network device 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 mesh network device.

3. The system of claim 1 , further comprising: a relay mesh network device configured to: receive the transmitted packet from the source mesh network device; and relay the received packet via the mesh network, wherein the destination mesh network device receives the relayed packet.

4. The system of claim 1 , wherein the virtual address is associated with an application that uses capabilities of the source mesh network device or uses capabilities of the destination mesh network device.

5. The system of claim 4 , wherein the source mesh network device is configured to publish sensor data to the UID and wherein the destination mesh network device is configured to subscribe to the virtual address to receive the published sensor data.

6. The system of claim 1 , wherein the destination mesh network device is provisioned with multiple UIDs, wherein to disambiguate the virtual address in the packet, the destination mesh network device 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.

7. A mesh network device implemented as a sensor node, the mesh network device comprising:

a mesh network interface configured for communication in a mesh network;

a memory and processor system to implement an application that is configured to:

hash 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 the application;

generate 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

form a virtual address including concatenating an address type indicator and a portion of the UID hash;

insert the virtual address in a destination address field of a header of a packet;

insert a sensor reading in an application payload field in the packet; and

transmit the packet over the mesh network.

8. The mesh network device of claim 7 , wherein the insertion of 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.

9. The mesh network device of claim 7 , wherein the address type indicator indicates the destination address in the destination address field is a virtual address.

10. The mesh network device of claim 7 , wherein the mesh network is a Bluetooth Low Energy (BLE) network, and wherein the packet is a BLE advertisement packet.

11. The mesh network device of claim 7 , wherein the transmission of the packet is effective to enable relaying the packet by a node in the mesh network.

12. The mesh network device of claim 7 , wherein the insertion of the virtual address is effective to enable a node at a destination address to authenticate the packet.

13. The mesh network device of claim 7 , wherein the application publishes data to the UID or subscribes to data published using the UID.

14. A system comprising:

a destination mesh network device configured to:

receive a packet over a mesh network;

determine that an address type indicator indicates that a destination address in a destination address field of the packet includes a virtual address;

disambiguate 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 mesh network device by comparing hashes to disambiguate that there is a mapping of the virtual address to the known UID; and

authenticate 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 mesh network device.

15. The system of claim 14 , the system further comprising:

a source mesh network device configured to: hash the UID to form a UID hash;

generate a key identifier that identifies an encryption key associated with the UID;

set an address type indicator to indicate that the destination address is a virtual address;

form the virtual address including concatenating the address type indicator and a portion of the UID hash;

insert the virtual address in the destination address field of a header of the packet; and

transmit the packet over the mesh network.

16. The system of claim 15 , further comprising:

a relay mesh network device configured to:

receive the transmitted packet from the source mesh network device; and

relay the received packet via the mesh network, wherein the destination mesh network device receives the relayed packet.

17. The system of claim 15 , wherein the virtual address is associated with an application that uses capabilities of the source mesh network device or uses capabilities of a destination mesh network device.

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

19. The system of claim 14 , wherein the insertion of the virtual address is effective to enable a node at a destination address to authenticate the packet.

20. The system of claim 14 , 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.

Assignments (2)
CHANGE OF NAME Recorded Oct 20, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044567/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2016
From: TURON, MARTIN A.
To: GOOGLE INC.
Reel/Frame 039383/0209 →
Continuity (2)
Provisional Application 62266246 · Dec 11, 2015
Related Publication 20170171071A1 · Jun 15, 2017