IP Library › Granted Patent US 11,252,170
Granted Patent B2
US 11,252,170 · App. 16/534,987 · Granted Feb 15, 2022

Service plane optimizations with learning-enabled flow identification

Inventors: Ramanathan Subramanian (Milpitas, CA); Jeslin Antony Puthenparambil (San Jose, CA)
Assignee: CISCO TECHNOLOGY, INC.
H04L63/1425H04L43/062
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 11,252,170
App. No.
16/534,987
Granted
Feb 15, 2022
Kind
B2
Abstract

The disclosed technology relates to a process for optimizing data flow within a computer network. The technology utilizes shared memory and machine learning logic to improve the efficiency of how computing resources are used during a transmission of data packets in the computer network. The shared memory is implemented during the transmission of data packets between the data plane and the service plane so that the copying of data packets after the data packets have been received and processed by an application is not necessary. The machine learning logic is implemented during the processing of the data packets in order to adjust a frequency or extent that the data packets (and corresponding source of the data packets) need to be evaluated to ensure that malicious content is not being transmitted across the computer network.

Claims (38)

1. A method for optimizing data flow in a computer network, the method comprising:

storing identifying information about a data packet being transmitted in the computer network into shared memory to yield stored identifying information, wherein the shared memory is accessible only between a data plane of the computer network where the data packet originates and a service plane of the computer network associated with an application hosted on the computer network that is receiving the data packet;

evaluating the data packet at the application, wherein the evaluation performed at the application comprises determining whether the data packet includes malicious content;

generating a verdict based on the evaluation of the data packet, wherein the verdict instructs the computer network whether the data packet is to be forwarded or dropped; and

processing the data packet using the verdict and the identifying information about the data packet, wherein the processing includes transmitting the verdict and the identifying information back to the data plane to yield data plane identifying information, wherein the processing of the data packet uses the verdict to instruct how the data packet should be processed and, wherein the data plane identifying information is matched with the stored identifying information in the shared memory to identify the data packet that will be processed in accordance to the verdict.

2. The method of claim 1 , wherein the identifying information is stored in a ring buffer associated with the shared memory.

3. The method of claim 1 , further comprising:

calculating a confidence level using machine learning logic, wherein the confidence level is calculated based on the evaluating of the data packet; and

assigning a source of the data packets with the confidence level, wherein the confidence level identifies a level of trustworthiness of the source and its corresponding data packets.

4. The method of claim 3 , wherein the confidence level defines a frequency of performing subsequent evaluations on other data packets associated with the source, wherein the frequency identifies a period of time until a next evaluation.

5. The method of claim 4 , wherein the frequency also identifies a number of data packets that are transmitted without evaluations until the next evaluation.

6. The method of claim 3 , wherein the confidence level defines an extent of evaluating other data packets associated with the source, wherein the extent identifies a number of data packets that are evaluated during the next evaluation.

7. A non-transitory computer-readable medium comprising instructions that optimize data flow in a computer network, the instructions, when executed by a computing system, cause the computing system to:

store identifying information about a data packet being transmitted in the computer network into shared memory to yield stored identifying information, wherein the shared memory is accessible only between a data plane of the computer network where the data packet originates and a service plane of the computer network associated with an application hosted on the computer network that is receiving the data packet;

evaluate the data packet at the application, wherein the evaluation performed at the application comprises determining whether the data packet includes malicious content;

generate a verdict based on the evaluation of the data packet, wherein the verdict instructs the computer network whether the data packet is to be forwarded or dropped; and

process the data packet using the verdict and the identifying information about the data packet, wherein the processing includes transmitting the verdict and the identifying information back to the data plane to yield data plane identifying information, wherein the processing of the data packet uses the verdict to instruct how the data packet should be processed and, wherein the data plane identifying information is matched with the stored identifying information in the shared memory to identify the data packet that will be processed in accordance to the verdict.

8. The non-transitory computer-readable medium of claim 7 , wherein the instructions causes the computing system to store the identifying information in a ring buffer associated with the shared memory.

9. The non-transitory computer-readable medium of claim 7 , wherein the instruction further cause the computing system to:

calculate a confidence level using machine learning logic, wherein the confidence level is calculated based on the evaluating of the data packet; and

assign a source of the data packets with the confidence level, wherein the confidence level identifies a level of trustworthiness of the source and its corresponding data packets.

10. The non-transitory computer-readable medium of claim 9 , wherein the confidence level defines a frequency of performing subsequent evaluations on other data packets associated with the source, wherein the frequency identifies a period of time until a next evaluation.

11. The non-transitory computer-readable medium of claim 10 , wherein the frequency also identifies a number of data packets that are transmitted without evaluations until the next evaluation.

12. The non-transitory computer-readable medium of claim 9 , wherein the confidence level defines an extent of evaluating other data packets associated with the source, wherein the extent identifies a number of data packets that are evaluated during the next evaluation.

13. A system optimizing data flow in a computer network, the system comprising:

a processor; and

a non-transitory computer-readable medium storing instructions that, when executed by the system, cause the system to:

store identifying information about a data packet being transmitted in the computer network into shared memory to yield stored identifying information, wherein the shared memory is accessible only between a data plane of the computer network where the data packet originates and a service plane of the computer network associated with an application hosted on the computer network that is receiving the data packet,

evaluate the data packet at the application, wherein the evaluation performed at the application comprises determining whether the data packet includes malicious content,

generate a verdict based on the evaluation of the data packet, wherein the verdict instructs the computer network whether the data packet is to be forwarded or dropped, and

process the data packet using the verdict and the identifying information about the data packet, wherein the processing includes transmitting the verdict and the identifying information back to the data plane to yield data plane identifying information, wherein the processing of the data packet uses the verdict to instruct how the data packet should be processed and, wherein the data plane identifying information is matched with the stored identifying information in the shared memory to identify the data packet that will be processed in accordance to the verdict.

14. The system of claim 13 , wherein the instructions causes the system to store the identifying information in a ring buffer associated with the shared memory.

15. The system of claim 13 , wherein the instruction further cause the system to:

calculate a confidence level using machine learning logic, wherein the confidence level is calculated based on the evaluating of the data packet; and

assign a source of the data packets with the confidence level, wherein the confidence level identifies a level of trustworthiness of the source and its corresponding data packets.

16. The system of claim 15 , wherein the confidence level defines a frequency of performing subsequent evaluations on other data packets associated with the source, wherein the frequency identifies a period of time until a next evaluation.

17. The system of claim 16 , wherein the frequency also identifies a number of data packets that are transmitted without evaluations until the next evaluation.

18. The system of claim 15 , wherein the confidence level defines an extent of evaluating other data packets associated with the source, wherein the extent identifies a number of data packets that are evaluated during the next evaluation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2019
From: SUBRAMANIAN, RAMANATHAN; PUTHENPARAMBIL, JESLIN ANTONY
To: CISCO TECHNOLOGY, INC.
Reel/Frame 049994/0922 →
Continuity (1)
Related Publication 20210044605A1 · Feb 11, 2021