IP Library Granted Patent US 10,044,620
Granted Patent B2
US 10,044,620 · App. 14/702,665 · Granted Aug 7, 2018

Multi-phase IP-flow-based classifier with domain name and HTTP header awareness

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,044,620
App. No.
14/702,665
Granted
Aug 7, 2018
Kind
B2
Abstract

An apparatus and method for classifying traffic data in a communication network based on IP flow. Traffic data in a communication network is monitored in order to detect an IP flow. A preliminary classification is assigned to the IP flow based on protocol information contained in its first packet. Subsequent packets within the IP flow are further monitored, and the IP flow is reclassified based, in part, on the domain name of the responding server. Web pages can also be classified, and monitored to determine their response time.

Claims (99)

1. A method comprising:

identifying an IP flow from traffic data in a communication network;

assigning a preliminary classification to the IP flow based on protocol information contained in a first packet of the IP flow and at least one classification override rule, the preliminary classification being indicative of at least a priority for the IP flow;

analyzing subsequent packets within the IP flow to determine a domain name associated with a server end of the IP flow based on more predetermined factors;

associating the domain name with the IP flow; and

assigning an initial classification to the IP flow based, at least in part, on the analysis, the domain name, and at least one classification override rule, the initial classification being indicative of at least a priority for the IP flow.

2. The method of claim 1 , wherein the preliminary classification is further based on the first packet's IP address, port number, size, or a combination thereof.

3. The method of claim 1 , further comprising:

monitoring the IP flow to determine a size, arrival time, or both for packets arriving after assigning the initial classification; and

reclassifying the IP flow based, at least in part, on results of the monitoring and one or more classification override rules.

4. The method of claim 3 , wherein reclassifying the IP flow is only performed if a classification of the reclassified IP flow: differs from the initial classification, results in a higher priority classification than the initial classification, more accurately represents the IP flow, or a combination thereof.

5. The method of claim 3 , further comprising:

creating a domain name cache with entries of server domains and/or domain names as well as classifications for previous IP flows associated therewith; and

updating the domain name cache based on the reclassified IP flow.

6. The method of claim 1 , further comprising:

creating a domain name cache with entries of server domains and/or domain names as well as classifications for previous IP flows associated therewith,

wherein the assigning an initial classification is further based on information contained in a header of the first packet and entries stored in the domain name cache.

7. The method of claim 6 , wherein the domain name cache is updated based on the assigned initial classification.

8. The method of claim 1 , wherein the analyzing further comprises monitoring domain name lookup responses passing through an IP gateway, a virtual private network (VPN) gateway, a VPN router, or a combination thereof.

9. The method of claim 1 , wherein the analyzing further comprises:

examining an HTTP request header in the IP flow; and

accessing the domain name from a host field in HTTP request header.

10. The method of claim 1 , wherein the analyzing further comprises:

examining an HTTP response header in the IP flow; and

accessing the domain name from a host field in HTTP response header.

11. The method of claim 1 , wherein the analyzing further comprises:

detecting an HTTPS request; and

accessing the domain name from a ClientHello packet contained in a TLS handshake associated with the HTTPS request.

12. The method of claim 1 , wherein the assigning an initial classification is further based on one or more of: host field, content-type field, content-length field, and user-agent field contained in at least one of the subsequent packets.

13. The method of claim 1 , wherein the analyzing further comprises:

consulting a cache including previous domain name and server IP address associations obtained from analysis of prior IP flow and/or UDP domain name lookups; and

determining a domain name associated with a server end of the IP flow based on the consulting.

14. An apparatus comprising:

one or more processors configured to:

identify an IP flow from traffic data in a communication network;

assign a preliminary classification to the IP flow based on protocol information contained in a first packet of the IP flow and at least one classification override rule, the preliminary classification being indicative of at least a priority for the IP flow;

analyze subsequent packets within the IP flow to determine a domain name associated with a server end of the IP flow based on more predetermined factors;

associate the domain name with the IP flow; and

assign an initial classification to the IP flow based, at least in part, on the analysis, the domain name, and at least one classification override rule, the preliminary classification being indicative of at least a priority for the IP flow.

15. The apparatus of claim 14 , wherein the preliminary classification is further based on the first packet's IP address, port number, size, or a combination thereof.

16. The apparatus of claim 14 , wherein the one or more processors are further configured to,

monitor the IP flow to determine a size, arrival time, or both for packets arriving after assigning the initial classification; and

reclassify the IP flow based, at least in part, on results of the monitoring and one or more classification override rules.

17. The apparatus of claim 16 , wherein the one or more processors are further configured to reclassify the IP flow only if a classification of the reclassified IP flow: differs from the initial classification, results in a higher priority classification than the initial classification, more accurately represents the IP flow, or a combination thereof.

18. The apparatus of claim 16 , wherein the one or more processors are further configured to:

create a domain name cache with entries of server domains and/or domain names as well as classifications for previous IP flows associated therewith; and

update the domain name cache based on the reclassified IP flow.

19. The apparatus of claim 14 , wherein the one or more processors are further configured to:

create a domain name cache with entries of server domains and/or domain names as well as classifications for previous IP flows associated therewith,

wherein the assigning an initial classification is further based on information contained in a header of the first packet and entries stored in the domain name cache.

20. The apparatus of claim 19 , wherein the one or more processors are configured to update the domain name cache based on the assigned initial classification.

21. The apparatus of claim 14 , wherein the one or more processors are further configured to analyze subsequent packets by monitoring domain name lookup responses passing through an IP gateway, a virtual private network (VPN) gateway, a VPN router, or a combination thereof.

22. The apparatus of claim 14 , wherein the one or more processors are further configured to analyze subsequent packets by:

examining an HTTP request header in the IP flow; and

accessing the domain name from a host field in HTTP request header.

23. The apparatus of claim 14 , wherein the one or more processors are further configured to analyze subsequent packets by:

examining an HTTP response header in the IP flow; and

accessing the domain name from a host field in HTTP response header.

24. The apparatus of claim 14 , wherein the one or more processors are further configured to analyze subsequent packets by:

detecting an HTTPS request; and

accessing the domain name from a ClientHello packet contained in a TLS handshake associated with the HTTPS request.

25. The apparatus of claim 14 , wherein the one or more processors are further configured to assign an initial classification based on one or more of: host field, content-type field, content-length field, and user-agent field contained in at least one of the subsequent packets.

26. The apparatus of claim 14 , wherein the one or more processors are further configured to analyze subsequent packets by:

consulting a cache including previous domain name and server IP address associations obtained from analysis of prior IP flow and/or UDP domain name lookups; and

determining a domain name associated with a server end of the IP flow based on the consulting.

27. A system comprising:

at least one satellite terminal;

a gateway for routing traffic data between the at least one satellite terminal and external networks via a satellite, the gateway being configured to:

identify an IP flow from traffic data in a communication network;

assign a preliminary classification to the IP flow based on protocol information contained in a first packet of the IP flow and at least one classification override rule, the preliminary classification being indicative of at least a priority for the IP flow;

analyze subsequent packets within the IP flow to determine a domain name associated with a server end of the IP flow based on more predetermined factors;

associate the domain name with the IP flow; and

assign an initial classification to the IP flow based, at least in part, on the analysis, the domain name, and at least one classification override rule, the initial classification being indicative of at least a priority for the IP flow.

28. The system of claim 27 , wherein the preliminary classification is further based on the first packet's IP address, port number, size, or a combination thereof.

29. The system of claim 27 , wherein the gateway is further configured to:

monitor the IP flow to determine a size, arrival time, or both for packets arriving after assigning the initial classification; and

reclassify the IP flow based, at least in part, on results of the monitoring and one or more classification override rules.

30. The system of claim 29 , wherein the gateway is further configured to reclassify the IP flow only if a classification of the reclassified IP flow: differs from the initial classification, results in a higher priority classification than the initial classification, more accurately represents the IP flow, or a combination thereof.

31. The system of claim 29 , wherein the gateway is further configured to:

create a domain name cache with entries of server domains and/or domain names as well as classifications for previous IP flows associated therewith; and

update the domain name cache based on the reclassified IP flow.

32. The system of claim 27 , wherein the gateway is further configured to:

create a domain name cache with entries of server domains and/or domain names as well as classifications for previous IP flows associated therewith,

wherein the assigning an initial classification is further based on information contained in a header of the first packet and entries stored in the domain name cache.

33. The system of claim 32 , wherein the gateway is configured to update the domain name cache based on the assigned initial classification.

34. The system of claim 27 , wherein the gateway is further configured to analyze subsequent packets by monitoring domain name lookup responses passing through an IP gateway, a virtual private network (VPN) gateway, a VPN router, or a combination thereof.

35. The system of claim 27 , wherein the gateway is further configured to analyze subsequent packets by:

examining an HTTP request header in the IP flow; and

accessing the domain name from a host field in HTTP request header.

36. The system of claim 27 , wherein the gateway is further configured to analyze subsequent packets by:

examining an HTTP response header in the IP flow; and

accessing the domain name from a host field in HTTP response header.

37. The system of claim 27 , wherein the gateway is further configured to analyze subsequent packets by:

detecting an HTTPS request; and

accessing the domain name from a ClientHello packet contained in a TLS handshake associated with the HTTPS request.

38. The system of claim 27 , wherein the gateway is further configured to assign an initial classification based on one or more of: host field, content-type field, content-length field, and user-agent field contained in at least one of the subsequent packets.

39. The system of claim 27 , wherein the gateway is further configured to analyze subsequent packets by:

consulting a cache including previous domain name and server IP address associations obtained from analysis of prior IP flow and/or UDP domain name lookups; and

determining a domain name associated with a server end of the IP flow based on the consulting.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION NUMBER 15649418 PREVIOUSLY RECORDED ON REEL 050600 FRAME 0314. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF PATENT SECURITY AGREEMENTS. Recorded Sep 3, 2020
From: WELLS FARGO, NATIONAL BANK ASSOCIATION
To: U.S. BANK NATIONAL ASSOCIATION
Reel/Frame 053703/0367 →
ASSIGNMENT OF PATENT SECURITY AGREEMENTS Recorded Oct 1, 2019
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: U.S. BANK NATIONAL ASSOCIATION
Reel/Frame 050600/0314 →
SECURITY INTEREST Recorded Feb 13, 2017
From: HUGHES NETWORK SYSTEMS, LLC
To: WELLS FARGO BANK, NATIONAL ASSOCIATION - AS TRUSTEE AND COLLATERAL AGENT
Reel/Frame 041695/0966 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2015
From: DILLON, DOUGLAS M.
To: HUGHES NETWORK SYSTEMS, LLC
Reel/Frame 035582/0685 →
Cited By (3)
US 12,335,781 US 12,439,319 US 12,634,794