# US 10,320,610 B2 · Data network controlled and optimized using layered architectures

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

- Number: US 10,320,610 B2
- Document ID: US10320610B2
- Status: Granted
- Kind: B2
- Application number: 15/295,507
- Filed: 2016-10-17
- Published: 2017-04-20
- Granted: 2019-06-11
- Earliest claimed: 2015-10-16
- Assignees: California Institute of Technology
- Applicants: California Institute of Technology
- Inventors: Nikolai Matni; John Comstock Doyle
- Web page: https://patentgrep.com/patent/US10320610B2

## CPC

- H04L 41/0823: characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability (for optimising operational conditions of wireless networks H04W24/02)
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 45/42: Centralised routing
- H04L 49/552: by ensuring the integrity of packets received through redundant connections
- H04W 40/00: Communication routing or communication path finding
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 43/0876: Network utilisation, e.g. volume of load or congestion level
- H04L 43/20: the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
- H04L 49/25: Routing or path finding in a switch fabric
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Data network components and frameworks for the control and optimization of network traffic using layered architectures, according to embodiments of the invention, are disclosed. In one embodiment, a data network comprises a switch, a data link, a tracking processor, and a planning processor. The planning processor is configured to generate a reference trajectory by receiving a local system state from the tracking processor, calculating a reference trajectory by solving a planning problem, and sending the reference trajectory to the tracking processor. The tracking processor is configured to track the reference trajectory by determining a set of states of the switch over a time interval, sending a local system state to the planning processor, receiving the reference trajectory from the planning processor, computing a control action by solving a tracking problem based on the reference trajectory, determining an instruction based on the control action, and sending the instruction to the switch.

## Claims

### Claim 1

A data network configured to connect computers to enable transmission of data between a plurality of computers, comprising:
a switch configured to send data based on an instruction;
a data link configured to transfer data from the switch to another switch within the data network;
a tracking processor in communication with the switch; and
a planning processor in communication with the tracking processor, wherein the planning processor is independent from the tracking processor, and
wherein the planning processor is configured to generate a reference trajectory by:
receiving a local system state with respect to utilization of network resources from the tracking processor;
calculating the reference trajectory by solving a planning problem, wherein the planning problem includes a resource allocation problem that optimizes a weighted sum of a network utility function and a tracking penalty function, wherein the tracking penalty function models the tracking processor's ability to guide an actual trajectory to match the reference trajectory, and wherein the reference trajectory defines a desired path of change over time in the local system state and indicates an optimal trajectory for transmission of data between the plurality of computers; and
sending the reference trajectory to the tracking processor; and
wherein the tracking processor is configured to track the reference trajectory by:
determining a set of states of the switch over a time interval;
sending a local system state to the planning processor, the local system state including a subset of the set of states of the switch;
receiving the reference trajectory from the planning processor;
computing a control action by solving a tracking problem based on the reference trajectory, wherein the control action is computed so that implementation of the control action in managing transmission of data between the plurality of computers achieves a change in the local system state resulting in the actual trajectory, wherein the actual trajectory approximates the reference trajectory;
determining the instruction based on the control action, wherein the instruction indicates one of the plurality of computers to which a data packet is to be transmitted; and
sending the instruction from the tracking processor to the switch.

### Claim 2 (depends on 1)

The data network of claim 1, further comprising:
a set of buffers within the switch, wherein the set of buffers includes buffer capacities for storing data, the reference trajectory includes a target data flow rate and a target buffer utilization, and the control action is computed based on the buffer capacities, the target data transfer rate and the target buffer utilization.

### Claim 3 (depends on 2)

The data network of claim 2, wherein the actual trajectory includes an actual data flow rate and an actual buffer utilization, and execution of the instruction by the switch results in data being handled by the set of buffers such that the actual data transfer rate approximates the target data transfer rate and the actual buffer utilization approximates the target buffer utilization.

### Claim 4 (depends on 1)

The data network of claim 1, wherein the network utility function optimizes data flows assigned to the data link based on a link capacity and a cost function.

### Claim 5 (depends on 1)

The data network of claim 1, wherein the tracking penalty function is configured to restrict storage of data in a set of buffers.

### Claim 6 (depends on 1)

The data network of claim 1, wherein the planning problem is based on a minimum data flow.

### Claim 7 (depends on 1)

The data network of claim 1, wherein the planning problem is solved using model predictive control (MPC).

### Claim 8 (depends on 1)

The data network of claim 1, wherein the tracking problem includes a distributed optimal control problem.

### Claim 9 (depends on 1)

The data network of claim 1, wherein the tracking processor uses feedback control to track the reference trajectory.

### Claim 10 (depends on 1)

The data network of claim 1, wherein the tracking processor is capable of tracking the reference trajectory given network dynamics, control costs, information sharing constraints, and system noise.

### Claim 11

A computing system for optimizing a data network, comprising:
a planning processor in communication with a tracking processor, the tracking processor being in communication with a switch of a data network, wherein the planning processor is independent from the tracking processor;
a memory connected to the planning processor and configured to store a planning program, wherein the planning program configures the planning processor to generate a reference trajectory for data transfer from the switch via a data link within the data network by:
receiving a local system state with respect to utilization of network resources from the tracking processor, the local system state including a state of the switch;
calculating the reference trajectory by solving a planning problem, wherein the planning problem includes a resource allocation problem that optimizes a weighted sum of a network utility function and a tracking penalty function, wherein the tracking penalty function models the tracking processor's ability to guide an actual trajectory to match the reference trajectory, and wherein the reference trajectory defines a desired path of change over time in the local system state and indicates an optimal trajectory for transmission of data within the data network; and
sending the reference trajectory to the tracking processor;
wherein the tracking processor is configured to track the reference trajectory by managing data transfer from the switch.

### Claim 12 (depends on 11)

The computing system of claim 11, wherein the reference trajectory includes a target data flow rate and a target buffer utilization.

### Claim 13 (depends on 11)

The computing system of claim 11, wherein the tracking penalty function is configured to restrict storage of data in a set of buffers.

### Claim 14

A data network node, comprising:
a switch configured to communicate with a second device within a data network, and to communicate with a tracking processor, the tracking processor being in communication with a planning processor, wherein the planning processor is independent from the tracking processor, and the switch being configured to send data via a data link to the second device based on an instruction from the tracking processor;
a memory connected to the tracking processor and configured to store a tracking program, wherein the tracking program configures the tracking processor to track a reference trajectory from the planning processor by:
determining a set of states of the switch over a time interval;
sending a local system state to the planning processor, the local system state including a subset of the set of states of the switch;
receiving the reference trajectory from the planning processor, wherein the reference trajectory is calculated by solving a planning problem, wherein the planning problem includes a resource allocation problem that optimizes a weighted sum of a network utility function and a tracking penalty function, wherein the tracking penalty function models the tracking processor's ability to guide an actual trajectory to match the reference trajectory, and wherein the reference trajectory defines a desired path of change over time in the local system state and indicates an optimal trajectory for transmission of data within the data network;
computing a control action by solving a tracking problem based on the reference trajectory, wherein the control action is computed so that implementation of the control action in managing transmission of data within the data network achieves a change in the local system state resulting in the actual trajectory, wherein the actual trajectory approximates the reference trajectory;
determining the instruction based on the control action, wherein the instruction indicates one of a plurality of computers to which a data packet is to be transmitted; and
sending the instruction from the tracking processor to the switch.

### Claim 15 (depends on 14)

The data network node of claim 14, further comprising:
a set of buffers within the switch, wherein the set of buffers includes buffer capacities for storing data, the reference trajectory includes a target data flow rate and a target buffer utilization, and the control action is computed based on the buffer capacities, the target data transfer rate and the target buffer utilization.

### Claim 16 (depends on 15)

The data network node of claim 15, wherein the actual trajectory includes an actual data flow rate and an actual buffer utilization, and execution of the instruction by the switch results in data being handled by the set of buffers such that the actual data transfer rate approximates the target data transfer rate and the actual buffer utilization approximates the target buffer utilization.
