IP Library Granted Patent US 12712843
Granted Patent B2
US 12712843 · App. 19/002,349 · Granted Aug 18, 2026

Systems, methods, and apparatuses for improved domain name resolution

Inventors: Yiu Leung Lee (Philadelphia, PA); Charles A. Helfinstine (Philadelphia, PA); Thomas Modayil Jacob (Philadelphia, PA)
Assignee: Comcast Cable Communications, LLC
H04L61/4511H04L61/4552H04L61/5053
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 12712843
App. No.
19/002,349
Granted
Aug 18, 2026
Kind
B2
Abstract

Described herein are methods and systems for improved domain name resolution/routing. Routing data associated with domain names (e.g., websites) may be cached by a Domain Name System (DNS) based on historical domain name queries. The historical domain name queries may be analyzed to determine a ranking (e.g., popularity) for the domain names at multiple time intervals throughout a day, week, etc. Routing data for the highest ranked domain names during one or more time intervals may be cached for a period(s) of time corresponding to the one or more time intervals (e.g., times during which those domain names are most popular).

Claims (44)

1 . A method comprising:

determining, based on a quantity of domain name queries associated with a domain name determined for a first time interval of a plurality of time intervals of a first period of time, that routing data associated with the domain name is to be stored for a second time interval of a plurality of time intervals of a second period of time that starts after an end of the first period of time;

sending, to a first cache at a first geographic location, an indication of the first time interval and the routing data, wherein, based on the indication, the routing data is stored for a period of time at the first geographic location that corresponds to the second time interval of the second period of time; and

sending, to a second cache at a second geographic location, an indication of the first time interval and the routing data, wherein, based on the indication, the routing data is stored for a period of time at the second geographic location that corresponds to the second time interval of the second period of time.

2 . The method of claim 1 , further comprising determining, based on the quantity of domain name queries for a third time interval of the plurality of time intervals of the first period of time, that the routing data is to be excluded from storage for a time that corresponds to a fourth time interval of the plurality of time intervals of the second period of time.

3 . The method of claim 2 , further comprising:

sending, to the first cache at the first geographic location, an indication that the routing data is to be excluded from storage for the time that corresponds to the fourth time interval of the plurality of time intervals of the second period of time; and

sending, to the second cache at the second geographic location, an indication that the routing data is to be excluded from storage for the time that corresponds to the fourth time interval of the plurality of time intervals of the second period of time.

4 . The method of claim 3 , wherein the time that corresponds to the fourth time interval of the plurality of time intervals of the second period of time comprises a range of time associated with the first geographic location and a range of time associated with the second geographic location.

5 . The method of claim 1 , further comprising determining, based on a ranking for the domain name for the first time interval of the plurality of time intervals of the first period of time, that the routing data is to be stored for a time corresponding to the second time interval of the plurality of time intervals of the second period of time.

6 . The method of claim 5 , further comprising determining, based on the quantity of domain name queries for the first time interval for the domain name relative to domain name queries for a plurality of domain names during the first time interval, the ranking.

7 . The method of claim 1 , further comprising:

sending, to the first cache at the first geographic location based on a domain name query associated with the domain name received from a client device during the second time interval of the plurality of time intervals of the second period of time, a request for an identifier associated with the domain name; and

sending, to the client device, the identifier associated with the domain name.

8 . One or more non-transitory computer-readable media storing processor-executable instructions that, when executed by at least one processor, cause the at least one processor to:

determine, based on a quantity of domain name queries associated with a domain name determined for a first time interval of a plurality of time intervals of a first period of time, that routing data associated with the domain name is to be stored for a second time interval of a plurality of time intervals of a second period of time that starts after an end of the first period of time;

send, to a first cache at a first geographic location, an indication of the first time interval and the routing data, wherein, based on the indication, the routing data is stored for a period of time at the first geographic location that corresponds to the second time interval of the second period of time; and

send, to a second cache at a second geographic location, an indication of the first time interval and the routing data, wherein, based on the indication, the routing data is stored for a period of time at the second geographic location that corresponds to the second time interval of the second period of time.

9 . The one or more non-transitory computer-readable media of claim 8 , wherein the processor-executable instructions further cause the at least one processor to determine, based on the quantity of domain name queries for a third time interval of the plurality of time intervals of the first period of time, that the routing data is to be excluded from storage for a time that corresponds to a fourth time interval of the plurality of time intervals of the second period of time.

10 . The one or more non-transitory computer-readable media of claim 9 , wherein the processor-executable instructions further cause the at least one processor to:

send, to the first cache at the first geographic location, an indication that the routing data is to be excluded from storage for the time that corresponds to the fourth time interval of the plurality of time intervals of the second period of time; and

send, to the second cache at the second geographic location, an indication that the routing data is to be excluded from storage for the time that corresponds to the fourth time interval of the plurality of time intervals of the second period of time.

11 . The one or more non-transitory computer-readable media of claim 10 , wherein the time that corresponds to the fourth time interval of the plurality of time intervals of the second period of time comprises a range of time associated with the first geographic location and a range of time associated with the second geographic location.

12 . The one or more non-transitory computer-readable media of claim 8 , wherein the processor-executable instructions further cause the at least one processor to determine, based on a ranking for the domain name for the first time interval of the plurality of time intervals of the first period of time, that the routing data is to be stored for a time corresponding to the second time interval of the plurality of time intervals of the second period of time.

13 . The one or more non-transitory computer-readable media of claim 12 , wherein the processor-executable instructions further cause the at least one processor to determine, based on the quantity of domain name queries for the first time interval for the domain name relative to domain name queries for a plurality of domain names during the first time interval, the ranking.

14 . The one or more non-transitory computer-readable media of claim 8 , wherein the processor-executable instructions further cause the at least one processor to:

send, to the first cache at the first geographic location based on a domain name query associated with the domain name received from a client device during the second time interval of the plurality of time intervals of the second period of time, a request for an identifier associated with the domain name; and

send, to the client device, the identifier associated with the domain name.

15 . An apparatus comprising:

one or more processors; and

memory storing processor-executable instructions that, when executed by the one or more processors, cause the apparatus to:

determine, based on a quantity of domain name queries associated with a domain name determined for a first time interval of a plurality of time intervals of a first period of time, that routing data associated with the domain name is to be stored for a second time interval of a plurality of time intervals of a second period of time that starts after an end of the first period of time;

send, to a first cache at a first geographic location, an indication of the first time interval and the routing data, wherein, based on the indication, the routing data is stored for a period of time at the first geographic location that corresponds to the second time interval of the second period of time; and

send, to a second cache at a second geographic location, an indication of the first time interval and the routing data, wherein, based on the indication, the routing data is stored for a period of time at the second geographic location that corresponds to the second time interval of the second period of time.

16 . The apparatus of claim 15 , wherein the processor-executable instructions further cause the apparatus to determine, based on the quantity of domain name queries for a third time interval of the plurality of time intervals of the first period of time, that the routing data is to be excluded from storage for a time that corresponds to a fourth time interval of the plurality of time intervals of the second period of time.

17 . The apparatus of claim 16 , wherein the processor-executable instructions further cause the apparatus to:

send, to the first cache at the first geographic location, an indication that the routing data is to be excluded from storage for the time that corresponds to the fourth time interval of the plurality of time intervals of the second period of time; and

send, to the second cache at the second geographic location, an indication that the routing data is to be excluded from storage for the time that corresponds to the fourth time interval of the plurality of time intervals of the second period of time.

18 . The apparatus of claim 17 , wherein the time that corresponds to the fourth time interval of the plurality of time intervals of the second period of time comprises a range of time associated with the first geographic location and a range of time associated with the second geographic location.

19 . The apparatus of claim 15 , wherein the processor-executable instructions further cause the apparatus to determine, based on a ranking for the domain name for the first time interval of the plurality of time intervals of the first period of time, that the routing data is to be stored for a time corresponding to the second time interval of the plurality of time intervals of the second period of time.

20 . The apparatus of claim 19 , wherein the processor-executable instructions further cause the apparatus to determine, based on the quantity of domain name queries for the first time interval for the domain name relative to domain name queries for a plurality of domain names during the first time interval, the ranking.

21 . The apparatus of claim 15 , wherein the processor-executable instructions further cause the apparatus to:

send, to the first cache at the first geographic location based on a domain name query associated with the domain name received from a client device during the second time interval of the plurality of time intervals of the second period of time, a request for an identifier associated with the domain name; and

send, to the client device, the identifier associated with the domain name.