IP Library › Granted Patent US 11,528,320
Granted Patent B1
US 11,528,320 · App. 17/404,093 · Granted Dec 13, 2022

Systems and methods for end user connection load balancing

Inventor: Hrushikesh Shrinivas Paralikar (Milpitas, CA)
Assignee: Citrix Systems, Inc.
H04L67/1001H04L43/0888H04L61/103H04L61/4511H04L67/101H04L67/1029H04L67/1036H04L67/562
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,528,320
App. No.
17/404,093
Granted
Dec 13, 2022
Kind
B1
Abstract

Described herein are systems and methods for end user connection load balancing amongst multiple on-premise connector proxies deployed across geographic locations and reducing connection setup latency without using a shared or distributed database. The system can load balance connections deterministically amongst the on-premise connector proxies using load statistics. The system utilizes an intelligent DNS service that can use network experience data, service availability, and application metrics to provide sophisticated traffic management via DNS or API-based decisions. The system can include a domain name system (DNS) resolver configured to receive metrics for a first connector and a second connector of a data center of an entity, receive a DNS request including an entity identifier and a data center identifier; and transmit a response to the DNS request identifying a server selected based on the metrics identified using the entity identifier and the data center identifier.

Claims (44)

1. A method comprising:

receiving, by a domain name system (DNS) resolver, metrics for a first connector and a second connector, the first connector intermediary to a first point of presence (POP) and a data center of an entity, and the second connector intermediary to a second POP and the data center;

receiving, by the DNS resolver, from a client, a DNS request comprising a fully-qualified domain name (FQDN) including an entity identifier and a data center identifier, the entity identifier and data center identifier included in a configuration file obtained by the client from the first POP, the client using the entity identifier and the data center identifier to generate the DNS request received by the DNS resolver; and

transmitting, by the DNS resolver to the client, a response to the DNS request identifying one of the first POP or the second POP selected based on the metrics of the first connector and the second connector identified using the entity identifier and the data center identifier included in the FQDN, the client establishing a connection between the client and the first POP or second POP based on the response.

2. The method of claim 1 , further comprising:

selecting, by the DNS resolver, from the first connector or the second connector, a connector based on a first set of metrics of the first connector and a second set of metrics of the second connector; and

wherein the DNS resolver selects the first POP or the second POP based on the selected connector coupled to the selected POP.

3. The method of claim 2 , wherein the first connector is one of a plurality of first connectors coupled to the first POP, the method further comprising:

receiving, by the DNS resolver from the first POP, a respective set of metrics of the plurality of first connectors; and

wherein the first connector establishes a connection with the selected POP based on at least one of the respective set of metrics for the plurality of first connectors.

4. The method of claim 2 , wherein selecting the connector comprises:

identifying, by the DNS resolver, a first throughput of the first connector and a second throughput of the second connector;

identifying, by the DNS resolver, a first count of connections for the first connector and a second count of connections for the second connector; and

selecting the connector from the first connector and the second connector based on the first throughput and the second throughput, or the first count and the second count.

5. The method of claim 1 , wherein the entity identifier and the data center identifier are received by the client responsive to the client requesting, from the first POP, access to a resource hosted on the data center.

6. The method of claim 1 , further comprising identifying, by the DNS resolver, the first connector and the second connector of the entity using the entity identifier from the DNS request.

7. The method of claim 1 , wherein the first connector serves as a proxy between the first POP and resources of the entity accessible via the data center, and wherein the second connector serves as a proxy between the second POP and the resources of the entity accessible via the data center.

8. The method of claim 1 , wherein the first connector is configured to transmit a plurality of messages to maintain a connection with the first POP, the plurality of messages including data corresponding to a first set of metrics of the first connector.

9. The method of claim 8 , wherein the data corresponding to the first set of metrics of the first connector includes a first throughput of the first connector or a first count of connections.

10. The method of claim 1 , further comprising maintaining, by the DNS resolver, for the first POP and the second POP, a list of connectors coupled to the first POP or the second POP, the list including entity identifiers, data center identifiers and metrics corresponding to the list of connectors.

11. A system comprising:

a domain name system (DNS) resolver configured to:

receive metrics for a first connector and a second connector, the first connector intermediary to a first point of presence (POP) and a data center of an entity, and the second connector intermediary to a second POP and the data center;

receive, from a client, a DNS request comprising a fully-qualified domain name (FQDN) including an entity identifier and a data center identifier, the entity identifier and data center identifier included in a configuration file obtained by the client from the first POP, the client using the entity identifier and the data center identifier to generate the DNS request received by the DNS resolver; and

transmit, to the client, a response to the DNS request identifying one of the first POP or the second POP selected based on the metrics of the first connector and the second connector identified using the entity identifier and the data center identifier included in the FQDN, the client establishing a connection between the client and the first POP or second POP based on the response.

12. The system of claim 11 , wherein the DNS resolver is further configured to:

select, from the first connector or the second connector, a connector based on a first set of metrics of the first connector and a second set of metrics of the second connector; and

wherein the DNS resolver selects the first POP or the second POP based on the selected connector coupled to the selected POP.

13. The system of claim 12 , wherein the first connector is one of a plurality of first connectors coupled to the first POP, and wherein the DNS resolver is further configured to:

receive, from the first POP, a respective set of metrics of the plurality of first connectors; and

wherein the first connector establishes a connection with the selected POP based on at least one of the respective set of metrics for the plurality of first connectors.

14. The system of claim 12 , wherein selecting the connector comprises:

identifying a first throughput of the first connector and a second throughput of the second connector;

identifying a first count of connections for the first connector and a second count of connections for the second connector; and

selecting the connector from the first connector and the second connector based on the first throughput and the second throughput, or the first count and the second count.

15. The system of claim 11 , wherein the entity identifier and the data center identifier are received by the client responsive to the client requesting, from the first POP, access to a resource hosted on the data center.

16. The system of claim 11 , wherein the DNS resolver is further configured to identify the first connector and the second connector of the entity using the entity identifier from the DNS request.

17. The system of claim 11 , wherein the first connector serves as a proxy between the first POP and resources of the entity accessible via the data center, and wherein the second connector serves as a proxy between the second POP and the resources of the entity accessible via the data center.

18. The system of claim 11 , wherein the first connector is configured to transmit a plurality of messages to maintain a connection with the first POP, the plurality of messages including data corresponding to a first set of metrics of the first connector, wherein the data corresponding to the first set of metrics of the first connector includes a first throughput of the first connector or a first count of connections.

19. The system of claim 11 , wherein the DNS resolver is further configured to maintain, for the first POP and the second POP, a list of connectors coupled to the first POP or the second POP, the list including entity identifiers, data center identifiers and metrics corresponding to the list of connectors.

20. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to:

receive metrics for a first connector and a second connector, the first connector intermediary to a first point of presence (POP) and a data center of an entity, and the second connector intermediary to a second POP and the data center;

receive, from a client, a domain name system (DNS) request comprising a fully-qualified domain name (FQDN) including an entity identifier and a data center identifier, the entity identifier and the data center identifier included in a configuration file obtained by the client from the first POP, the client using the entity identifier and the data center identifier to generate the DNS request received by the DNS resolver; and

transmit, to the client, a response to the DNS request identifying one of the first POP or the second POP selected based on the metrics of the first connector and the second connector identified using the entity identifier and the data center identifier included in the FQDN, the client establishing a connection between the client and the first POP or second POP based on the response.

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 Aug 17, 2021
From: PARALIKAR, HRUSHIKESH SHRINIVAS
To: CITRIX SYSTEMS, INC.
Reel/Frame 057200/0272 →
Cited By (1)
US 12,744,735