# US 2023/0055091 A1 · Hierarchical resource constrained network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2023/0055091 A1
- Document ID: US20230055091A1
- Status: Published application
- Kind: A1
- Application number: 17/789,718
- Filed: 2021-01-05
- Published: 2023-02-23
- Earliest claimed: 2020-01-06
- Assignees: Essence Security International (E.S.I.) Ltd.
- Applicants: Essence Security International ( E.S.I.) Ltd.
- Inventors: Assi Abramovitz; Assaf Schuster; Hanan Ben Nun
- Web page: https://patentgrep.com/patent/US20230055091A1

## CPC

- H04L 45/04: {Interdomain routing, e.g. hierarchical routing}
- G06F 16/245: Query processing
- H04L 45/42: Centralised routing
- H04L 45/64: using an overlay routing layer
- H04L 45/74: Address processing for routing
- H04L 45/7453: using hashing
- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L 49/1569: {Clos switching fabrics}
- H04L 67/1046: {Joining mechanisms}
- H04L 67/1065: {Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] (pre-configuration of logical or physical connections H04L67/1053)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

System and techniques for a hierarchical resource constrained networks are described herein. Device participating in the network are divided into groups. These groups correspond to vertices in a routing graph. A leader is selected amongst the devices in each group to function as a routing node connecting to other vertices of the routing graph. Client devices attach to leaf vertices in the routing graph. To reduce overhead in placing devices into the routing pools, a distributed hash table (DHT) can be used. Here, the routing pools can be given DHT IDs based on, for example, a structure of the routing graph. Device DHT IDs are used to assign them to the routing pools based on a distance metric. Routing, in this arrangement, can use the DHT IDs to efficiently compute routing pool hops when routing messages. This arrangement works well for publication-subscription (pub-sub) services.

## Claims

### Claim 1

A machine-readable medium including instructions for dynamic routing, the machine-readable medium performed by a node, the instructions, when executed by processing circuitry, cause the processing circuitry to perform operations comprising:
receiving, at a node, a distributed hash table (DFIT) query for a routing pool, the query including a DHT identifier (ID) for the routing pool, the routing pool being a vertex in a routing graph, the routing pool including one or more nodes based on a distance between the DHT lD and respective DHT IDs of the nodes; and
responding to the query with a result, the result corresponding to a network address for a routing node of the routing pool.

### Claim 2

The machine-readable medium of claim I, wherein responding to the query includes determining whether the node is in the routing pool.

### Claim 3 (depends on 2)

The machine-readable medium of claim 2, wherein the node is in the routing pool, and wherein the result includes the address for the routing node taken from a local store of the node.

### Claim 4 (depends on 3)

The machine-readable medium of claim 3, wherein the node is the routing node for the routing pool, the node maintaining a parent connection and a set of child connections.

### Claim 5 (depends on 4)

The machine-readable medium of claim 4, wherein the operations comprise receiving an attachment request from a client device that initiated the query.

### Claim at position 6

6-13. (canceled)

### Claim 14 (depends on 2)

The machine-readable medium of claim 2, wherein the node is not in the routing pool, and wherein the node maintains a local cache of nodes, the local cache including respective addresses and DHT IDs for nodes stored in the local cache.

### Claim 15 (depends on 14)

The machine-readable medium of claim 14, wherein the result includes a set of nodes from the local cache, the set of nodes selected based on a distance from the DHT ID in the query.

### Claim 16 (depends on 14)

The machine-readable medium of claim 14, wherein the operations comprise:
sorting nodes in the local cache based on distance to the DHT ID in the query;
selecting a set of nodes from the local cache to minimize the distance to the DHT ID in the query;
forwarding the query to the set of nodes; and
extracting the routing node address from a response to the query from the set of nodes; and
constructing the result to include the routing node address.

### Claim 17 (depends on 14)

The machine-readable medium of claim 14. wherein the local cache is maintained via a DHT discovery procedure, the DHT discovery procedure including a local search for nodes in the routing pool, and a branch search for nodes in other routing pools corresponding to other vertices of the routing graph.

### Claim at position 11

18-26. (canceled)

### Claim 27 (depends on 1)

The machine-readable medium of claim 1, wherein the routing graph implements a tree in which client devices directly connect to routing nodes in routing pools that correspond to leaf vertices when the client devices attach to the routing graph.

### Claim at position 13

28-32. (canceled)

### Claim 33 (depends on 27)

The machine-readable medium of claim 27, wherein the tree is a balanced tree, and wherein DHT IDs for routing pools are based on a row and column of a corresponding vertex in the tree.

### Claim 34 (depends on 33)

The machine-readable medium of claim 33, wherein the DHT ID is Key(J), where:
Key(I,J) DHTHash(ServiceKey+AtLeastMaximumTreeSize+J);
J=routing pool index in a tree layer;
ServiceKey=an identifier unique to a service enabled by the routing graph; and
AtLeastMaximumTreeSize is a value that is greater than or equal to the number of devices in support by the tree.

### Claim 35 (depends on 34)

The machine-readable medium of claim 34, wherein the AtLeastMaximumTreeSize value is a ServiceSeed.

### Claim 36 (depends on 35)

The machine-readable medium of claim 35, wherein the service is a topic family.

### Claim 37

(canceled)

### Claim 38 (depends on 27)

The machine-readable medium of claim 27, wherein the query is generated by a client device to attach to the routing node, the DHT ID selected randomly from DHT IDs of routing pools that correspond to leaf vertices of the tree.

### Claim 39 (depends on 1)

The machine-readable medium of claim 1, wherein the routing graph corresponds to a set of services of a publish-and-subscribe (pub-sub) framework, and wherein DHT IDs are computed from topic names in the set of services.

### Claim 40 (depends on 39)

The machine-readable medium of claim 39, wherein the routing node services client nodes, and wherein the routing node serves as a broker for the pub-sub framework for clients serviced by the routing node.

### Claim at position 22

41-43. (canceled)

### Claim 44 (depends on 40)

The machine-readable medium of claim 40 wherein the operations comprise:
receiving a publish message for a topic name;
obtaining a route to a second broker node to which a subscribing device is possibly attached; and
transmitting the publish message to the second broker node for delivery to the subscribing device.

### Claim 45 (depends on 44)

The machine-readable medium of claim 44, wherein the publish message originated from a client device, and wherein obtaining the route includes querying an organizer of the routing graph for a routing pool to which the subscribing device is attached;
obtaining a second routing node for the routing pool to which the subscribing device is attached; and
routing the publish message to the second routing node.

### Claim 46 (depends on 44)

The machine-readable medium of claim 44, wherein obtaining the route includes calculating a routing pool DHT ID to which the subscribing device is attached from topic name specified in the publish message;
locating a second routing node for the routing pool to which the subscribing device is attached using the calculated routing pool DHT ID; and
routing the publish message to the second routing node.

### Claim 47 (depends on 46)

The machine-readable medium of claim 46, wherein locating the second routing node includes performing a DHT search for the second routing node using the calculated routing pool DHT ID.

### Claim 48 (depends on 46)

The machine-readable medium of claim 46, wherein calculatingthe routing pool DHT ID to which the subscribing device is attached includes:
calculating respective routing pool DHT IDs for the topic name using a set of hashes defined for the routing graph;
obtaining respective routing nodes for routing pools with the respective routing pool DFIT IDs; and
routing the publish message to a respective routing node.

### Claim 49 (depends on 48)

The machine-readable medium of claim 48, wherein calculating the respective routing pool MIT IDs for the topic name using the set of hashes includes calculating, obtaining a route, and routing the publish message for each hash until a positive response to routing the publish message is received, refraining from calculating any additional results once the positive response is received.

### Claim 50

(canceled)
