IP Library › Granted Patent US 11,411,877
Granted Patent B2
US 11,411,877 · App. 17/135,869 · Granted Aug 9, 2022

System and method for tracking domain names for the purposes of network management

Inventors: Sean Brown (Tacoma, WA); John Burnette (Seattle, WA); Ben Hadorn (Shoreline, WA); Hugo Garza (Seattle, WA); Ethan Nordness (Seattle, WA)
Assignee: Opanga Networks, Inc.
H04L47/2441H04L45/7453H04L47/80H04L61/1511
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,411,877
App. No.
17/135,869
Granted
Aug 9, 2022
Kind
B2
Abstract

A method includes intercepting a first data packet being transmitted from a domain name system (DNS) server to a first client device, the first data packet being a DNS response, extracting a first internet protocol (IP) address and a first hostname from the first data packet, and storing the first IP address and the first hostname in a first entry of an identification table.

Claims (55)

1. A method, comprising:

intercepting a first data packet being transmitted from a domain name system (DNS) server to a first client device, the first data packet being a DNS response;

extracting a first internet protocol (IP) address and a first hostname from the first data packet;

storing the first IP address and the first hostname as a hostname/IP address pair in a first entry of an identification table;

intercepting a second data packet being transmitted in a data flow from a content server to a second client device;

identifying a second IP address in a header of the second data packet;

determining whether the second IP address is in the first entry; and

in response to determining that the second IP address is in the first entry:

determining, using the first entry, a first characteristic associated with the data flow, the first characteristic including an amount of transferred bytes associated with the hostname/IP address pair;

determining, based on the first characteristic, whether a traffic management policy should be applied to the data flow;

in response to determining that the data traffic management policy should be applied, applying the traffic management policy to the data flow to deliver the second data packet to the second client device;

determining a second characteristic of the second data packet; and

updating the first entry of the identification table with the second characteristic.

2. The method of claim 1 , wherein the second characteristic is an amount of bytes in the second data packet, a timestamp of the second data packet, or a combination thereof.

3. The method of claim 2 , further comprising:

pruning the first entry from the identification table based on the second characteristic when the identification table exceeds a predetermined size.

4. The method of claim 1 , wherein applying the traffic management policy to the data flow includes causing the data flow to be transferred to the second client device over surplus network capacity of a network, throttling the data flow, temporarily storing data packets of the data flow, rerouting the data flow, or a combination thereof.

5. The method of claim 1 , wherein a payload of the second data is encrypted, and

wherein the IP address in the header of the second data packet is identified without performing decryption.

6. The method of claim 1 , wherein extracting the IP address and the hostname from the first data packet includes reading the IP address and the hostname from resource records (RRs) in the DNS response.

7. The method of claim 6 , wherein reading the IP address and the hostname from RRs in the DNS response includes reading the IP address in an ‘RDATA’ field of the DNS response and reading the hostname in a ‘NAME’ field of the DNS response.

8. The method of claim 1 , wherein the identification table is a hash table.

9. The method of claim 1 , wherein determining, based on the first characteristic associated with the data flow, whether the traffic management policy should be applied to the data flow includes determining that the traffic management policy should be applied by determining that the data flow is an elephant flow, by determining that a network transporting the data flow is congested, by determining that the data flow would be burdensome to the network transporting the data flow, by determining that the data flow is less important than other data being transported by the network transporting the data flow, or combinations thereof.

10. A system, comprising:

a processor; and

a memory storing program commands that, when executed by the processor, cause the processor to:

intercept a first data packet being transmitted from a domain name system (DNS) server to a first client device, the first data packet being a DNS response;

extract a first internet protocol (IP) address and a first hostname from the first data packet;

store the first IP address and the first hostname as a hostname/IP address pair in a first entry of an identification table;

intercept a second data packet being transmitted in a data flow from a content server to a second client device;

identify a second IP address in a header of the second data packet;

determine whether the second IP address is in the first entry; and

in response to determining that the second IP address is in the first entry:

determine, using the first entry, a first characteristic associated with the data flow, the first characteristic including an amount of transferred bytes associated with the hostname/IP address pair;

determine, based on the first characteristic, whether a traffic management policy should be applied to the data flow;

in response to determining that the data traffic management policy should be applied, apply the traffic management policy to the data flow to deliver the second data packet to the second client device;

determine a second characteristic of the second data packet; and

update the first entry of the identification table with the second characteristic.

11. The system of claim 10 , wherein the processor extracts the first IP address and the hostname from the first data packet by reading the first IP address and the hostname from resource records (RRs) in the DNS response.

12. The system of claim 11 , wherein reading the first IP address and the hostname from RRs in the DNS response includes reading the first IP address in an ‘RDATA’ field of the DNS response and reading the hostname in a ‘NAME’ field of the DNS response.

13. The system of claim 10 , wherein determining, based on the first characteristic associated with the data flow, whether the traffic management policy should be applied to the data flow includes determining that the traffic management policy should be applied by determining that the data flow is an elephant flow, by determining that a network transporting the data flow is congested, by determining that the data flow would be burdensome to the network transporting the data flow, by determining that the data flow is less important than other data being transported by the network transporting the data flow, or combinations thereof.

14. The system of claim 10 , wherein applying the traffic management policy to the data flow includes causing the data flow to be transferred to the second client device over surplus network capacity of a network, throttling the data flow, temporarily storing data packets of the data flow, rerouting the data flow, or a combination thereof.

15. A system, comprising:

a domain name system (DNS) spy including a first processor and a first memory, the first memory storing program commands that, when executed by the first processor, cause the first processor to:

extract a plurality of mappings, each mapping including a respective internet protocol (IP) address and a respective hostname, from a plurality of first data packets, respectively, each of the first data packets being a DNS response; and

store the plurality of mappings as respective hostname/IP address pairs in a plurality of entries of an identification table, the identification table being indexed by the respective IP addresses of the mappings; and

a transport manager including a second processor and a second memory, the second memory storing program commands that, when executed by the second processor, cause the second processor to:

extract a second IP address from a header of a non-DNS packet of a data flow;

determine an amount of transferred bytes corresponding to a second hostname/IP address pair that includes the second IP address using an entry of the plurality of entries of the identification table, the entry including the second hostname/IP address pair; and

determine whether to apply a traffic management policy to the data flow based on the amount of transferred bytes; and

in response to determining that the data traffic management policy should be applied, apply the traffic management policy to the data flow to deliver the second data packet to the second client device;

determine a characteristic of the non-DNS data packet; and

update the entry of the identification table with the characteristic.

16. The system of claim 15 , wherein the transport manager determines to apply the traffic management policy to the data flow when the amount of transferred bytes is greater than a threshold.

17. The system of claim 15 , wherein the transport manager applies the traffic management policy by causing the data flow to be transferred to the second client device over surplus network capacity of a network, by throttling the data flow, by temporarily storing data packets of the data flow, by rerouting the data flow, or a combination thereof.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2020
From: BROWN, SEAN; BURNETTE, JOHN; HADORN, BEN; GARZA, HUGO; NORDNESS, ETHAN
To: OPANGA NETWORKS, INC.
Reel/Frame 054766/0820 →
Continuity (3)
Continuation 15965660 · Apr 27, 2018
Provisional Application 62491581 · Apr 28, 2017
Related Publication 20210119923A1 · Apr 22, 2021