IP Library Granted Patent US 10,476,629
Granted Patent B2
US 10,476,629 · App. 15/584,625 · Granted Nov 12, 2019

Performing upper layer inspection of a flow based on a sampling rate

Inventor: Craig Dods (Stittsville, CA)
Assignee: Juniper Networks, Inc.
H04L1/002H04L47/127H04L47/2441H04L47/2483H04L63/1408H04L67/22H04W36/28H04L47/125H04W24/02H04W40/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,476,629
App. No.
15/584,625
Granted
Nov 12, 2019
Kind
B2
Abstract

A device may receive a first portion of network traffic associated with a flow. The device may perform a first upper layer inspection of the first portion of network traffic associated with the flow. The device may identify a set of parameters of the flow based on performing the first upper layer inspection of the first portion of network traffic associated with the flow. The device may determine, based on the set of parameters, a sampling rate at which to perform a second upper layer inspection of a second portion of network traffic associated with the flow. The device may instruct a lower layer to use the sampling rate to provide the second portion of network traffic associated with the flow for the second upper layer inspection. The device may perform the second upper layer inspection of the second portion of network traffic associated with the flow based on receiving the second portion of network traffic associated with the flow from the lower layer. The device may perform an action with regard to the flow based on a result of performing the second upper layer inspection.

Claims (116)

1. A device, comprising:

a memory; and

one or more processors to:

receive a first portion of network traffic associated with a flow,

the first portion of network traffic associated with the flow being a first

subset of packets included in the flow;

perform a first application layer inspection of the first portion of network traffic associated with the flow;

identify a set of parameters of the flow based on performing the first application layer inspection of the first portion of network traffic associated with the flow;

determine, based on the set of parameters, a sampling rate at which to perform a second application layer inspection of a second portion of network traffic associated with the flow,

the second portion of network traffic associated with the flow being a second subset of packets included in the flow,

the sampling rate indicating a ratio or a percentage of packets, on which the second application layer inspection is to be performed, with respect to a total quantity of packets of the flow that are received,

the sampling rate being greater than zero and less than one, and

the first portion of the network traffic associated with the flow and the second portion of the network traffic associated with the flow being included in a same flow;

instruct a lower layer to use the sampling rate to provide the second portion of network traffic associated with the flow for the second application layer inspection;

perform the second application layer inspection of the second portion of network traffic associated with the flow based on receiving the second portion of network traffic associated with the flow from the lower layer; and

perform an action with regard to the flow based on a result of performing the second application layer inspection.

2. The device of claim 1 , where the one or more processors are further to:

identify an application layer application associated with the flow after performing the first application layer inspection of the first portion of network traffic associated with the flow; and

where the one or more processors, when determining the sampling rate, are to:

determine the sampling rate based on the application layer application.

3. The device of claim 1 , where the one or more processors are further to:

identify an application layer protocol associated with the flow after performing the first application layer inspection of the first portion of network traffic associated with the flow; and

where the one or more processors, when determining the sampling rate, are to:

determine the sampling rate based on the application layer protocol.

4. The device of claim 1 , where the one or more processors are further to:

identify a geolocation of a source device associated with the flow; and

where the one or more processors, when determining the sampling rate, are to:

determine the sampling rate based on the geolocation of the source device.

5. The device of claim 1 , where the one or more processors are further to:

determine another sampling rate at which to perform a third application layer inspection of a third portion of network traffic associated with the flow,

the another sampling rate being different than the sampling rate;

instruct the lower layer to use the another sampling rate to provide the third portion of network traffic associated with the flow for the third application layer inspection; and

perform the third application layer inspection of the third portion of network traffic associated with the flow based on receiving the third portion of network traffic associated with the flow from the lower layer.

6. The device of claim 1 , where the one or more processors are further to:

determine another sampling rate at which to perform a third application layer inspection of a third portion of network traffic associated with the flow,

the another sampling rate being different than the sampling rate,

the second portion of network traffic being provided by a source device to a destination device associated with the flow, and

the third portion of network traffic being provided by the destination device to the source device;

instruct the lower layer to use the another sampling rate to provide the third portion of network traffic associated with the flow for the third application layer inspection; and

perform the third application layer inspection of the third portion of network traffic associated with the flow based on receiving the third portion of network traffic associated with the flow from the lower layer.

7. The device of claim 1 , where the first application layer inspection and the second application layer inspection are performed by an application layer of a communication model,

where the application layer is higher in the communication model than the lower layer.

8. A non-transitory computer-readable medium storing instructions, the instructions comprising:

one or more instructions that, when executed by one or more processors of a device, cause the one or more processors to:

receive a first portion of network traffic associated with a flow,

the first portion of network traffic associated with the flow being a first subset of packets included in the flow;

perform a first application layer inspection of the first portion of network traffic associated with the flow;

identify a set of parameters of the flow based on performing the first application layer inspection of the first portion of network traffic associated with the flow;

determine, based on the set of parameters, a sampling rate at which to perform a second application layer inspection of a second portion of network traffic associated with the flow,

the second portion of network traffic associated with the flow being a second subset of packets included in the flow,

the sampling rate indicating a ratio or a percentage of packets, on which the second application layer inspection is to be performed, with respect to a total quantity of packets of the flow that are received,

the sampling rate being greater than zero and less than one, and

the first portion of the network traffic associated with the flow and the second portion of the network traffic associated with the flow being included in a same flow;

instruct a lower layer to use the sampling rate to provide the second portion of network traffic associated with the flow for the second application layer inspection;

perform the second application layer inspection of the second portion of network traffic associated with the flow based on receiving the second portion of network traffic associated with the flow from the lower layer; and

perform an action with regard to the flow based on a result of performing the second application layer inspection.

9. The non-transitory computer-readable medium of claim 8 , where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:

identify a uniform resource locator associated with the first portion of network traffic based on performing the first application layer inspection; and

where the one or more instructions, that cause the one or more processors to determine the sampling rate, cause the one or more processors to:

determine the sampling rate based on the uniform resource locator associated with the first portion of network traffic.

10. The non-transitory computer-readable medium of claim 8 , where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:

identify an application associated with the flow based on performing the first application layer inspection; and

where the one or more instructions, that cause the one or more processors to determine the sampling rate, cause the one or more processors to:

determine the sampling rate based on the application.

11. The non-transitory computer-readable medium of claim 8 , where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:

input the set of parameters into a model to obtain an output of the model,

the model having been trained on training data using a machine learning technique; and

where the one or more instructions, that cause the one or more processors to determine the sampling rate, cause the one or more processors to:

determine the sampling rate based on the output of the model.

12. The non-transitory computer-readable medium of claim 8 , where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:

identify an application layer protocol associated with the flow based on performing the first application layer inspection; and

where the one or more instructions, that cause the one or more processors to determine the sampling rate, cause the one or more processors to:

determine the sampling rate based on the application layer protocol.

13. The non-transitory computer-readable medium of claim 8 , where the sampling rate is associated with a direction of the flow; and

where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:

determine another sampling rate, associated with another direction of the flow, at which to perform a third application layer inspection of a third portion of network traffic associated with the flow;

instruct the lower layer to use the another sampling rate to provide the third portion of network traffic associated with the flow for the third application layer inspection; and

perform the third application layer inspection of the third portion of network traffic associated with the flow based on receiving the third portion of network traffic associated with the flow from the lower layer.

14. The non-transitory computer-readable medium of claim 8 , where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:

determine another sampling rate at which to perform a third application layer inspection of a third portion of network traffic associated with the flow;

determine that a condition is satisfied;

instruct, based on the condition being satisfied, the lower layer to use the another sampling rate to provide the third portion of network traffic associated with the flow for the third application layer inspection; and

perform the third application layer inspection of the third portion of network traffic associated with the flow based on receiving the third portion of network traffic associated with the flow from the lower layer.

15. A method, comprising:

receiving, by a device, a first portion of network traffic associated with a flow and a second portion of network traffic associated with the flow,

the first portion of network traffic associated with the flow being a first subset of packets included in the flow, and

the second portion of network traffic associated with the flow being a second subset of packets included in the flow;

identifying, by the device, a set of parameters associated with the flow;

determining, by the device, a sampling rate at which to perform an application layer inspection of the second portion of network traffic associated with the flow based on the set of parameters,

the sampling rate indicating a ratio or a percentage of packets, on which the application layer inspection is to be performed, with respect to a total quantity of packets of the flow that are received,

the sampling rate being greater than zero and less than one, and

the first portion of the network traffic associated with the flow and the second portion of the network traffic associated with the flow being included in a same flow;

providing, by the device, an instruction to a lower layer to use the sampling rate to provide the second portion of network traffic associated with the flow for the application layer inspection;

performing, by the device, the application layer inspection of the second portion of network traffic associated with the flow based on receiving the second portion of network traffic associated with the flow from the lower layer; and

performing, by the device, an action with regard to the flow based on a result of performing the application layer inspection of the second portion of network traffic associated with the flow.

16. The method of claim 15 , further comprising:

identifying a geolocation of a destination device associated with the flow; and

where determining the sampling rate comprises:

determining the sampling rate based on the geolocation of the destination device.

17. The method of claim 15 , further comprising:

determining another sampling rate at which to perform another application layer inspection of another portion of network traffic associated with the flow,

the another sampling rate being different than the sampling rate;

instructing the lower layer to use the another sampling rate to provide the another portion of network traffic associated with the flow for the another application layer inspection; and

performing the another application layer inspection of the another portion of network traffic associated with the flow based on receiving the another portion of network traffic associated with the flow from the lower layer.

18. The method of claim 15 , further comprising:

identifying an application layer protocol associated with the flow; and

where determining the sampling rate comprises:

determining the sampling rate based on the application layer protocol.

19. The method of claim 15 , further comprising:

determining that a condition is satisfied;

instructing the lower layer to use another sampling rate to provide another portion of network traffic associated with the flow for another application layer inspection based on the condition being satisfied; and

performing the another application layer inspection of the another portion of network traffic associated with the flow based on receiving the another portion of network traffic associated with the flow from the lower layer.

20. The method of claim 15 , further comprising:

performing an initial application layer inspection of the first portion of network traffic associated with the flow; and

where identifying the set of parameters comprises:

identifying the set of parameters based on performing the initial application layer inspection of the first portion of network traffic associated with the flow.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2017
From: DODS, CRAIG
To: JUNIPER NETWORKS, INC.
Reel/Frame 042212/0894 →
Continuity (1)
Related Publication 20180323898A1 · Nov 8, 2018