# US 10,484,250 B2 · Systems and methods for determining network configurations using historical and real-time network metrics

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

- Number: US 10,484,250 B2
- Document ID: US10484250B2
- Status: Granted
- Kind: B2
- Application number: 16/127,422
- Filed: 2018-09-11
- Published: 2019-01-24
- Granted: 2019-11-19
- Earliest claimed: 2015-10-15
- Assignees: Citrix Systems, Inc.
- Applicants: Citrix Systems, Inc.
- Inventors: Samrat Kokkula; Ioannis Nikiforakis; Georgios Oikonomou
- Web page: https://patentgrep.com/patent/US10484250B2

## CPC

- H04L 41/145: {involving simulating, designing, planning or modelling of a network}
- H04L 41/0813: characterised by the conditions triggering a change of settings
- 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/147: for predicting network behaviour
- H04L 43/0876: Network utilisation, e.g. volume of load or congestion level
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for optimizing network performance includes receiving data related to one or more network metrics, and determining whether the received data is to be used for creating a new model or updating an existing model that represents a recurring pattern in the received data to be used to predict or detect one or more network events. If the received data is not to be used for creating the new model or updating the existing model, then apply the data to the existing model. The method further includes determining a configuration related to one or more network devices based on the received data being applied to the determined model, and configuring the one or more network devices according to the determined configuration.

## Claims

### Claim 1

A method for optimizing network performance, comprising:
receiving data related to one or more network metrics;
determining whether the received data is to be used for creating a new model or updating an existing model that represents a recurring pattern in the received data to be used to predict or detect one or more network events;
if the received data is not to be used for creating the new model or updating the existing model, then apply the data to the existing model;
determining a configuration related to one or more network devices based on the received data being applied to the determined model; and
configuring the one or more network devices according to the determined configuration.

### Claim 2 (depends on 1)

The method of claim 1, wherein if the received data is to be used for creating the new model or updating the existing model, then create or update the model, with the created or updated model to be used with subsequently received data.

### Claim 3 (depends on 1)

The method of claim 1, wherein the received data corresponds with a use case, with each use case including different strategies and purposes for optimizing network performance.

### Claim 4 (depends on 3)

The method of claim 3, wherein the received data is used to determine a use case that comprises detecting network traffic associated with a predetermined protocol and with a predetermined physical layer based on at least one of: protocol properties, traffic patterns, and packet-rate specific metrics.

### Claim 5 (depends on 3)

The method of claim 3, wherein the received data is used to determine a use case that comprises: supporting dynamically allocating network resources; wherein the configuration is determined based on the current network traffic and predicted demand indicated by the model.

### Claim 6 (depends on 3)

The method of claim 3, wherein the received data is used to determine a use case that comprises: adapting a traffic profile for network traffic; wherein the configuration is determined based on a predicted network load indicated by the model and comprises at least one of: a maximum segment size (MSS) for data packets, a value of maximum burst size of the network traffic, and a buffer size of a queue for the data packets.

### Claim 7 (depends on 3)

The method of claim 3, wherein the received data is used to determine a use case that comprises: determining at least one of a caching or a compression policy for webpage data; wherein the configuration is determined based on at least one of: current network load, predicted network load indicated by the model, and predicted pattern of access to a website indicated by the model.

### Claim 8 (depends on 3)

The method of claim 3, wherein the received data is used to determine a use case that comprises: detecting a malicious attack over a network; wherein the configuration is determined based on comparing a current pattern of network traffic against a historic pattern of the network traffic indicated by the model and comprises rerouting data packets away from a target device.

### Claim 9 (depends on 1)

The method of claim 1, wherein the model comprises a clustering model of network traffic patterns associated with the network traffic, the clustering model being generated based on at least one of: sources of the network traffic, applications associated with the network traffic, time periods associated with the network traffic, types of contents associated with the network traffic, and types of users associated with the network traffic.

### Claim 10

An apparatus for optimizing network performance, comprising:
a memory that stores a set of instructions; and
a hardware processor configured to execute the set of instructions to perform:
receiving data related to one or more network metrics;
determining whether the received data is to be used for creating a new model or updating an existing model that represents a recurring pattern in the received data to be used to predict or detect one or more network events;
if the received data is not to be used for creating the new model or updating the existing model, then apply the data to the existing model;
determining a configuration related to the one or more network devices based on the received data being applied to the determined model; and
configuring the one or more network devices according to the determined configuration.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein if the received data is to be used for creating the new model or updating the existing model, then the set of instructions further comprise creating or updating the model, with the created or updated model to be used with subsequently received data.

### Claim 12 (depends on 10)

The apparatus of claim 10, wherein the received data corresponds with a use case, with each use case including different strategies and purposes for optimizing network performance.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the received data is used to determine a use case that comprises: detecting network traffics associated with a predetermined protocol and with a predetermined physical layer based on at least one of: protocol properties, traffic patterns, and packet-rate specific metrics.

### Claim 14 (depends on 12)

The apparatus of claim 12, wherein the received data is used to determine a use case that comprises: supporting dynamically allocating network resources; wherein the configuration is determined based on the current network traffic and predicted demand indicated by the model.

### Claim 15 (depends on 12)

The apparatus of claim 12, wherein the received data is used to determine a use case that comprises: adapting a traffic profile for network traffic; wherein the configuration is determined based on a predicted network load indicated by the model and comprises at least one of: a maximum segment size (MSS) for data packets, a value of maximum burst size of the network traffic, and a buffer size of a queue for the data packets.

### Claim 16 (depends on 12)

The apparatus of claim 12, wherein the received data is used to determine a use case that comprises: determining at least one of a caching or a compression policy for webpage data; wherein the configuration is determined based on at least one of: current network load, predicted network load indicated by the model, and predicted pattern of access to a website indicated by the model.

### Claim 17 (depends on 12)

The apparatus of claim 12, wherein the received data is used to determine a use case that comprises: detecting a malicious attack over a network; wherein the configuration is determined based on comparing a current pattern of network traffic against a historic pattern of the network traffic indicated by the model and comprises rerouting data packets away from a target device.

### Claim 18 (depends on 10)

The apparatus of claim 10, wherein the model comprises a clustering model of network traffic patterns associated with the network traffic, the clustering model being generated based on at least one of: sources of the network traffic, applications associated with the network traffic, time periods associated with the network traffic, types of contents associated with the network traffic, and types of users associated with the network traffic.

### Claim 19

A non-transitory computer readable medium that stores a set of instructions that is executable by at least one processor of an apparatus to cause the apparatus to perform a method for optimizing network performance, the method comprising:
receiving data related to one or more network metrics;
determining whether the received data is to be used for creating a new model or updating an existing model that represents a recurring pattern in the received data to be used to predict or detect one or more network events;
if the received data is not to be used for creating the new model or updating the existing model, then apply the data to the existing model;
determining a configuration related to the one or more network devices based on the received data being applied to the determined model; and
configuring the one or more network devices according to the determined configuration.

### Claim 20 (depends on 19)

The non-transitory computer readable medium of claim 19, wherein if the received data is to be used for creating the new model or updating the existing model, then the method further comprises creating or updating the model, with the created or updated model to be used with subsequently received data.
