IP Library › Granted Patent US 11,394,682
Granted Patent B2
US 11,394,682 · App. 16/939,951 · Granted Jul 19, 2022

Method for DNS response reordering based on path quality and connection priority for better QoS

Inventor: Praveen Raja Dhanabalan (Bangalore, IN)
Assignee: Citrix Systems, Inc.
H04L61/1511H04L61/1552H04L61/2007H04L67/101H04L67/1002H04L43/08
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,394,682
App. No.
16/939,951
Granted
Jul 19, 2022
Kind
B2
Abstract

Described embodiments provide systems and method for reordering the IP addresses within a DNS response. The servers associated with a domain can often be located across multiple locations. The paths from a client to each of those different servers can have different link qualities. Additionally, the connection between the client and the domain can have different quality requirements. The present solution can consider the link qualities and the connection quality requirements to reorder the IP addresses within a DNS response. By reordering the IP addresses, the system can control to which of the servers the client connects and can ensure that the connection is made over a path that can fulfill the connection's quality requirements.

Claims (35)

1. A method comprising:

receiving, by a device responsive to a request of a client to resolve a domain name, a plurality of internet protocol (IP) addresses identified for the domain name;

identifying, by the device, a priority of a connection to be established between the client and the domain name based on the domain name;

determining, by the device, an order of the plurality of IP addresses based at least on (i) the priority of the connection, and (ii) a quality of at least one link between the device and an IP address of the plurality of IP addresses; and

providing, by the device to the client, the plurality of IP addresses in the determined order to control which of the plurality of IP addresses the client uses to establish the connection.

2. The method of claim 1 , further comprising determining, by the device, the quality of each link between the device and each of the plurality of IP addresses.

3. The method of claim 1 , further determining, by the device, the order of the plurality of IP addresses based on the quality of each link.

4. The method of claim 1 , further comprising modifying, by the device, the plurality of IP addresses received by the device based on the determined order.

5. The method of claim 1 , further comprising identifying, by the device, the priority for the connection based on a quality of service classification of the connection.

6. The method of claim 1 , further comprising providing, by the device, the plurality of IP addresses in the determined order to include a first IP address with a first link quality ahead of a second IP address with a second link quality lower than the first link quality.

7. The method of claim 1 , further comprising providing, by the device, the plurality of IP addresses in the determined order to include a first IP address with a first link quality ahead of a second IP address with a second link quality higher than the first link quality.

8. The method of claim 1 , further comprising intercepting, by the device intermediary to the client and the plurality of IP addresses, the request from the client to resolve the domain name.

9. A device comprising:

one or more processors, coupled to memory and configured to:

receive, responsive to a request of a client to resolve a domain name, a plurality of internet protocol (IP) addresses identified for the domain name;

identify a priority of a connection to be established between the client and the domain name based on the domain name;

determine an order of the plurality of IP addresses based at least on (i) the priority of the connection, and (ii) a quality of at least one link between the device and an IP address of the plurality of IP addresses; and

provide, to the client, the plurality of IP addresses in the determined order to control which of the plurality of IP addresses the client uses to establish the connection.

10. The device of claim 9 , wherein the one or more processors are further configured to determine the quality of each link between the device and each of the plurality of IP addresses.

11. The device of claim 9 , wherein the one or more processors are further configured to determine the order of the plurality of IP addresses based on the quality of each link.

12. The device of claim 9 , wherein the one or more processors are further configured to modify the plurality of IP addresses received by the device based on the determined order.

13. The device of claim 9 , wherein the one or more processors are further configured to identify the priority for the connection based on a quality of service classification of the connection.

14. The device of claim 9 , wherein the one or more processors are further configured to provide the plurality of IP addresses in the determined order to include a first IP address having a first link quality ahead of a second IP address having a second link quality lower than the first link quality.

15. The device of claim 9 , wherein the one or more processors are further configured to provide the plurality of IP addresses in the determined order to include a first IP address having a first link quality ahead of a second IP address having a second link quality higher than the first link quality.

16. The device of claim 9 , wherein the device is deployed intermediary to the client and the plurality of IP addresses and the one or more processors are further configured to intercept the request from the client to resolve the domain name.

17. A device comprising:

one or more processors, coupled to memory and intermediary to a plurality of servers, wherein the one or more processors are further configured to:

receive a request from a client to resolve a domain name into IP addresses for one or more of the plurality of servers;

receive a response from a system, the response comprising a plurality of internet protocol (IP) addresses identified for the domain name;

assign a priority for a connection to be established between the client and a server of the plurality of servers based on the domain name;

determine an order of the plurality of IP addresses based at least on (i) the priority of the connection, and (ii) a quality of at least one link between the device and an IP address of the plurality of IP addresses; and

communicate to the client, responsive to the request, the response, the response being modified to comprise the plurality of IP addresses in the determined order to control which of the plurality of IP addresses the client uses to establish the connection.

18. The device of claim 17 , wherein the one or more processors are further configured to identify the priority for the connection based on a quality of service classification of the connection.

19. The device of claim 17 , wherein the one or more processors are further configured to modify the response to comprise a first IP address having a first link quality ahead of a second IP address having a second link quality lower than the first link quality.

20. The device of claim 17 , wherein the one or more processors are further configured to modify the response to comprise a first IP address having a first link quality ahead of a second IP address having a second link quality higher than the first link quality.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2020
From: DHANABALAN, PRAVEEN RAJA
To: CITRIX SYSTEMS, INC.
Reel/Frame 053321/0512 →
Continuity (2)
Continuation 15466151 · Mar 22, 2017
Related Publication 20200366637A1 · Nov 19, 2020