# US 2021/0344602 A1 · Load-balancing establishment of connections among groups of connector servers

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0344602 A1
- Document ID: US20210344602A1
- Status: Published application
- Kind: A1
- Application number: 16/865,060
- Filed: 2020-05-01
- Published: 2021-11-04
- Earliest claimed: 2020-05-01
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Guy Lewin; Daniel Senderovich; Vitaly Khait; Yossef Haber; Amir Geri
- Web page: https://patentgrep.com/patent/US20210344602A1

## CPC

- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L 61/2589: over a relay server, e.g. traversal using relay for network address translation [TURN]
- H04L 45/10: {Routing in connection-oriented networks, e.g. X.25 or ATM}
- H04L 45/123: {Evaluation of link metrics (techniques for monitoring network metrics H04L43/08)}
- H04L 47/828: {Allocation of resources per group of connections, e.g. per group of users}
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 61/2514: between local and global IP addresses
- H04L 61/4535: using an address exchange platform which sets up a session between two nodes, e.g. rendezvous servers, session initiation protocols [SIP] registrars or H.323 gatekeepers
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Techniques are described herein that are capable of load-balancing establishment of connections among groups of connector servers in a public computer network by performing operations that include receiving a connection request from a connector client in a private computer network, requesting establishment of a connection between the connector client and one of the connector servers in the public computer network. A number of connections between the private computer network and each group is determined. An identified group is selected from the groups based at least in part on a number of connections between the private computer network and the identified group being less than or equal to a number of connections between the private computer network and each other group. The connection request is provided toward the identified group, which enables establishment of the connection between the connector client and a connector server in the identified group.

## Claims

### Claim 1

A system comprising:
memory; and
one or more processors coupled to the memory, the one or more processors configured to load-balance establishment of a plurality of connections among a plurality of groups, each group including one or more connector servers of a plurality of connector servers that are included in a public computer network, by performing operations, the operations comprising:
receive a connection request from a connector client that is included in a private computer network, the connection request requesting establishment of a connection between the connector client and one of the plurality of connector servers in the public computer network, which is external to the private computer network;
determine a number of connections between the private computer network and each group;
select an identified group from the plurality of groups to receive the connection request based at least in part on a number of connections between the private computer network and the identified group being less than or equal to a number of connections between the private computer network and each other group; and
provide the connection request toward the identified group, which enables establishment of the connection between the connector client and a connector server in the identified group, based at least in part on the identified group being selected from the plurality of groups.

### Claim 2 (depends on 1)

The system of claim 1, wherein the one or more processors are configured to perform the operations comprising:
provide the connection request to the connector client, which causes the connector client to provide the connection request toward the identified group.

### Claim 3 (depends on 1)

The system of claim 1, wherein the one or more processors are configured to determine the number of connections between the private computer network and each group by performing the following:
provide a plurality of inquiries to a plurality of respective connector server load balancers, each of which is configured to load-balance connections among connector servers in the group to which the respective connector server load balancer is assigned, each inquiry requesting the number of connections between the private computer network and the group to which the respective connector server load balancer is assigned; and
receive a plurality of responses to the plurality of respective inquiries from the plurality of respective connector server load balancers, each response indicating the number of connections between the private computer network and the group to which the respective connector server load balancer is assigned.

### Claim 4 (depends on 3)

The system of claim 3, wherein the one or more processors are configured to perform the operations comprising:
provide the connection request to the connector server load balancer that is assigned to the identified group, which enables the connector server load balancer to select one of a plurality of connector servers in the identified group to receive the connection request.

### Claim 5 (depends on 1)

The system of claim 1, wherein the one or more processors are configured to perform the operations comprising:
store the number of connections between the private computer network and each group in a memory of a registration server that selects the identified group from the plurality of groups; and
determine the number of connections between the private computer network and each group by retrieving the number of connections between the private computer network and each group from the memory of the registration server.

### Claim 6 (depends on 1)

The system of claim 1, wherein the one or more processors are configured to determine the number of connections between the private computer network and each group comprises by performing the following:
provide a query to a database that is configured to synchronize a plurality of registration servers to share a common state, the common state including knowledge of the number of connections between the private computer network and each group; and
receive a response to the query from the database, the response indicating the number of connections between the private computer network and each group.

### Claim 7 (depends on 6)

The system of claim 6, wherein the one or more processors are configured to perform the operations further comprising:
provide a confirmation notice to the database at each of a plurality of periodic time instances for each connection for which a connector client and a connector server remain connected via the respective connection at the respective periodic time instance, each confirmation notice confirming that the respective connector client and the respective connector server remain connected via the respective connection at the respective periodic time instance; and
wherein the number of connections between the private computer network and each group does not take into consideration each connection between the private computer network and the respective group for which a confirmation notice is not provided within a designated duration of time that is greater than a period between adjacent periodic time instances of the plurality of period time instances.

### Claim 8 (depends on 1)

The system of claim 1, wherein the connection request includes a network identifier that uniquely identifies the private computer network.

### Claim 9 (depends on 8)

The system of claim 8, wherein the network identifier includes a name of the private computer network and a tenant identifier that identifies an owner of the private computer network.

### Claim 10

A method of load-balancing connection establishment, the method comprising:
assigning a plurality of connector servers that are included in a public computer network among a plurality of groups, each group including one or more connector servers of the plurality of connector servers;
receiving a connection request from a connector client that is included in a private computer network, the connection request requesting establishment of a connection between the connector client and one of the plurality of connector servers in the public computer network, which is external to the private computer network;
determining a number of connections between the private computer network and each group;
selecting an identified group from the plurality of groups to receive the connection request based at least in part on a number of connections between the private computer network and the identified group being less than or equal to a number of connections between the private computer network and each other group; and
providing the connection request toward the identified group, which enables establishment of the connection between the connector client and a connector server in the identified group, based at least in part on selecting the identified group from the plurality of groups.

### Claim 11 (depends on 10)

The method of claim 10, wherein providing the connection request comprises:
providing the connection request to the connector client, which causes the connector client to provide the connection request toward the identified group.

### Claim 12 (depends on 10)

The method of claim 10, wherein determining the number of connections between the private computer network and each group comprises:
providing a plurality of inquiries to a plurality of respective connector server load balancers, each of which is configured to load-balance connections among connector servers in the group to which the respective connector server load balancer is assigned, each inquiry requesting the number of connections between the private computer network and the group to which the respective connector server load balancer is assigned; and
receiving a plurality of responses to the plurality of respective inquiries from the plurality of respective connector server load balancers, each response indicating the number of connections between the private computer network and the group to which the respective connector server load balancer is assigned.

### Claim 13 (depends on 12)

The method of claim 12, wherein providing the connection request comprises:
providing the connection request to the connector server load balancer that is assigned to the identified group, which enables the connector server load balancer to select one of a plurality of connector servers in the identified group to receive the connection request.

### Claim 14 (depends on 10)

The method of claim 10, further comprising:
storing the number of connections between the private computer network and each group in a memory of a registration server that assigns the plurality of connector servers among the plurality of groups;
wherein determining the number of connections between the private computer network and each group comprises:
retrieving the number of connections between the private computer network and each group from the memory of the registration server.

### Claim 15 (depends on 10)

The method of claim 10, wherein determining the number of connections between the private computer network and each group comprises:
providing a query to a database that is configured to synchronize a plurality of registration servers to share a common state, the common state including knowledge of the number of connections between the private computer network and each group; and
receiving a response to the query from the database, the response indicating the number of connections between the private computer network and each group.

### Claim 16 (depends on 15)

The method of claim 15, wherein the common state includes the knowledge of the number of connections between the private computer network and each group based at least in part on a connection notification being provided to the database by each connector server each time a connection is established between the private computer network and the respective connector server.

### Claim 17 (depends on 15)

The method of claim 15, wherein the common state includes the knowledge of the number of connections between the private computer network and each group based at least in part on a connection notification being provided to the database by each registration server each time the respective registration server provides a connection request that requests establishment of a connection toward a group of the plurality of groups.

### Claim 18 (depends on 15)

The method of claim 15, wherein the common state includes the knowledge of the number of connections between the private computer network and each group based at least in part on a connection notification being provided to the database by each of a plurality of connector server load balancers each time the respective connector server load balancer provides a connection request that is received from a connector client and that requests establishment of a connection toward a group of the plurality of groups, wherein each connector server load balancer load-balances connections among connector servers in the group to which the respective connector server load balancer is assigned.

### Claim 19 (depends on 15)

The method of claim 15, further comprising:
providing a confirmation notice to the database at each of a plurality of periodic time instances for each connection for which a connector client and a connector server remain connected via the respective connection at the respective periodic time instance, each confirmation notice confirming that the respective connector client and the respective connector server remain connected via the respective connection at the respective periodic time instance;
wherein the number of connections between the private computer network and each group does not take into consideration each connection between the private computer network and the respective group for which a confirmation notice is not provided within a designated duration of time that is greater than a period between adjacent periodic time instances of the plurality of period time instances.

### Claim 20

A computer program product comprising a computer-readable storage medium having instructions recorded thereon for enabling a processor-based system to perform operations, the operations comprising:
load-balance establishment of a plurality of connections among a plurality of groups, each group including one or more connector servers of a plurality of connector servers that are included in a public computer network, by performing the following:
receive a connection request from a connector client that is included in a private computer network, the connection request requesting establishment of a connection between the connector client and one of the plurality of connector servers in the public computer network, which is external to the private computer network;
determine a number of connections between the private computer network and each group;
select an identified group from the plurality of groups to receive the connection request based at least in part on a number of connections between the private computer network and the identified group being less than or equal to a number of connections between the private computer network and each other group; and
provide the connection request toward the identified group, which enables establishment of the connection between the connector client and a connector server in the identified group, based at least in part on the identified group being selected from the plurality of groups.
