IP Library Patent Application 14996133
Patent Application
App. No. 14/996,133

DYNAMIC DOMAIN NAME SYSTEM DESTINATION SELECTION

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 None
App. No.
14/996,133
Abstract

A user device, in trying to communicate with an internet resource knowing an associated domain name, transmits a Domain Name System (DNS) request packet to a DNS server, which responds with a DNS response packet identifying multiple Internet Protocol (IP) addresses corresponding to multiple servers associated with the identified domain name. The user device then selects one of these servers and communicates with that selected server. The user device may select the server by probing properties of the servers and of the connections between the user device and each of the servers, and by then picking the server whose own properties and whose connection properties are better. The user device probes these properties by sending at least one set of probe packets to each server and receiving at least one set of probe return packets and calculating round trip time, hop distance, bandwidth, latency, packet loss rate, and other properties.

Claims (40)

1 . A method for domain server communication, the method comprising:

receiving a domain name system (DNS) response packet over a communication network, the domain name system (DNS) response packet identifying a plurality of internet protocol (IP) addresses corresponding to a domain name;

transmitting a plurality of probe packets by transmitting a probe packet to each server of a plurality of servers, the plurality of servers corresponding to the plurality of internet protocol (IP) addresses identified in the domain name system (DNS) response packet;

receiving one or more probe return packets by receiving a probe return packet from each server of at least a subset of the plurality of servers;

calculating one or more connection parameters based on at least the receipt of the one or more probe return packets, the one or more connection parameters associated with one or more connections, the one or more connections each having an endpoint at one server of at least the subset of the plurality of servers from which a probe return packets have been received;

selecting a selected server of the plurality of servers based on at least the calculated one or more connection parameters; and

communicating with the selected server.

2 . The method of claim 1 , wherein calculating the one or more connection parameters includes calculating a round trip time (RTT) from a transmission time of a first probe packet to a receipt time of a first probe return packet.

3 . The method of claim 1 , wherein calculating the one or more connection parameters includes calculating a hop distance to a first server.

4 . The method of claim 1 , wherein calculating the one or more connection parameters includes calculating one of a connection bandwidth, a connection latency, a connection packet drop rate, or some combination thereof.

5 . The method of claim 1 , wherein calculating the one or more connection parameters includes identifying one or more hardware components of a first server or a first connection or some combination thereof.

6 . The method of claim 1 , wherein calculating the one or more connection parameters includes identifying one or more software elements executed by a first server.

7 . The method of claim 1 , further comprising transmitting a domain name system (DNS) request to a domain name system (DNS) server, the domain name system (DNS) request identifying the domain name corresponding to the plurality of internet protocol (IP) addresses.

8 . The method of claim 1 , further comprising transmitting a reset packet to at least the subset of servers following receipt of the one or more probe return packets.

9 . The method of claim 8 , wherein the probe packets are SYN packets, the probe return packets are ACK packets, and the reset packets are RST packets.

10 . A system for domain server communication, the system comprising:

a communication transceiver, the communication transceiver communicatively coupled to at least a plurality of servers and a domain name system (DNS) server over a communication network; and

a processor coupled to a memory and to the communication transceiver, wherein execution of instructions stored in the memory by the processor:

receives a domain name system (DNS) response packet via the communication transceiver over the communication network, the domain name system (DNS) response packet identifying a plurality of internet protocol (IP) addresses corresponding to a domain name,

transmits a plurality of probe packets via the communication transceiver by transmitting a probe packet to each server of the plurality of servers, the plurality of servers corresponding to the plurality of internet protocol (IP) addresses identified in the domain name system (DNS) response packet,

receives one or more probe return packets via the communication transceiver by receiving a probe return packet from each server of at least a subset of the plurality of servers,

calculates one or more connection parameters based on at least the receipt of the one or more probe return packets, the one or more connection parameters associated with one or more connections, the one or more connections each having an endpoint at one server of at least the subset of the plurality of servers from which a probe return packets have been received,

selects a selected server of the plurality of servers based on at least the calculated one or more connection parameters, and

communicates with the selected server via the communication transceiver.

11 . The system of claim 10 , wherein calculating the one or more connection parameters via execution of the instructions by the processor includes calculating a round trip time (RTT) from a transmission time of a first probe packet to a receipt time of a first probe return packet.

12 . The system of claim 10 , wherein calculating the one or more connection parameters via execution of the instructions by the processor includes calculating a hop distance to a first server.

13 . The system of claim 10 , wherein calculating the one or more connection parameters via execution of the instructions by the processor includes calculating one of a connection bandwidth, a connection latency, a connection packet drop rate, or some combination thereof.

14 . The system of claim 10 , wherein calculating the one or more connection parameters via execution of the instructions by the processor includes identifying one or more hardware components of a first server or a first connection or some combination thereof.

15 . The system of claim 10 , wherein calculating the one or more connection parameters via execution of the instructions by the processor includes identifying one or more software elements executed by a first server.

16 . The system of claim 10 , wherein execution of the instruction by the processor further transmits a domain name system (DNS) request to a domain name system (DNS) server, the domain name system (DNS) request identifying the domain name corresponding to the plurality of internet protocol (IP) addresses.

17 . The system of claim 10 , wherein execution of the instruction by the processor further transmits a reset packet to at least the subset of servers following receipt of the one or more probe return packets.

18 . The system of claim 17 , wherein the probe packets are SYN packets, the probe return packets are ACK packets, and the reset packets are RST packets.

19 . The system of claim 10 , further comprising one or more additional devices communicatively coupled to the communication transceiver along a connection to the communication network, the one or more additional devices including one or more firewall devices, one or more Network Address Translation (NAT) devices, or some combination thereof.

20 . A non-transitory computer-readable storage medium, having embodied thereon a program executable by a processor to perform a method for domain server communication, the method comprising:

receiving a domain name system (DNS) response packet over a communication network, the domain name system (DNS) response packet identifying a plurality of internet protocol (IP) addresses corresponding to a domain name;

transmitting a plurality of probe packets by transmitting a probe packet to each server of a plurality of servers, the plurality of servers corresponding to the plurality of internet protocol (IP) addresses identified in the domain name system (DNS) response packet;

receiving one or more probe return packets by receiving a probe return packet from each server of at least a subset of the plurality of servers;

calculating one or more connection parameters based on at least the receipt of the one or more probe return packets, the one or more connection parameters associated with one or more connections, the one or more connections each having an endpoint at one server of at least the subset of the plurality of servers from which a probe return packets have been received;

selecting a selected server of the plurality of servers based on at least the calculated one or more connection parameters; and

communicating with the selected server.

Assignments (27)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2022
From: QUEST SOFTWARE INC.
To: SONICWALL US HOLDINGS INC.
Reel/Frame 059912/0097 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
CHANGE OF NAME Recorded Jun 19, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 046393/0009 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
RELEASE OF REEL 038664 FRAME 0908 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0390 →
RELEASE OF REEL 038665 FRAME 0041 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0375 →
RELEASE OF REEL 037848 FRAME 0210 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040031/0725 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF REEL 037848 FRAME 0001 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0152 →
RELEASE OF REEL 038665 FRAME 0001 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040021/0348 →
RELEASE OF REEL 037847 FRAME 0843 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040017/0366 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded May 11, 2016
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 038665/0001 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded May 11, 2016
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 038665/0041 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded May 11, 2016
From: DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 038664/0908 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Feb 18, 2016
From: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 037848/0210 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Feb 18, 2016
From: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037848/0001 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Feb 18, 2016
From: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037847/0843 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2016
From: CAI, RIJI; CHEN, ZHONG; LING, HUI
To: DELL SOFTWARE INC.
Reel/Frame 037495/0873 →