IP Library Granted Patent US 10,812,323
Granted Patent B2
US 10,812,323 · App. 15/201,157 · Granted Oct 20, 2020

Techniques to provide relay server configuration for geographically disparate client devices

Inventor: Claudiu Dan Gheorghe (Mountain View, CA)
Assignee: WhatsApp. Inc.
H04L41/0803H04B7/15507H04L43/087H04L65/60H04L65/605H04L65/80H04L67/1004H04L67/146H04L67/28H04L67/42H04L63/0428H04L63/168
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 10,812,323
App. No.
15/201,157
Granted
Oct 20, 2020
Kind
B2
Abstract

Techniques to provide relay server configuration for geographically disparate client devices are described. In one embodiment, an apparatus may comprise a client front-end component operative to receive a relay system request at a relay initiation server, the relay system request for a first client device and a second client device; and transmit a relay system address list in response to the relay system request; and a relay system selection component operative to determine a first service area for the first client device; determine a second service area for the second client device; and retrieve the relay system address list based on the first service area and the second service area, the relay system address list comprising a plurality of selected relay system network addresses for a plurality of selected relay systems of a plurality of relay systems. Other embodiments are described and claimed.

Claims (49)

1. A computer-implemented method, comprising:

receiving a relay system request at a relay initiation server from a first client device for relay service between the first client device having a first network address and a second client device having a second network address, the relay service dividing a total supported service area into a plurality of service areas;

determining a first service area corresponding to a first geographical area for the first client device and a second service area corresponding to a second geographical area for the second client device;

receiving performance information for each of the plurality of relay systems, the performance information comprising latency information for each of the plurality of service areas;

calculating a latency for each of the plurality of relay systems, the latency being a cumulative latency of communications between the first geographic area and the relay system and between the second geographic area and the relay system;

creating a relay system address list comprising network addresses for one or more of the plurality of relay systems having the lowest cumulative latencies; and

receiving a multiparty relay request popularity list, the multiparty relay request popularity list representing respective popularities of relay system requests for groups of three or more client devices; and

determining a plurality of lowest-latency multiparty relay system lists based on the performance information, wherein each of the plurality of lowest-latency multiparty relay system lists corresponds to a set of service areas of the plurality of services areas, wherein a plurality of sets of service areas is selected for determining the plurality of lowest-latency multiparty relay system lists based on the multiparty relay request popularity list;

wherein the first service area is determined based on the first network address; and

wherein the second service area is determined based on the second network address.

2. The method of claim 1 , further comprising:

augmenting the relay system address list with one or more backup relay systems from one or more distinct geographical regions.

3. The method of claim 1 , wherein the latency for each relay system is based on measured client latencies for a plurality of client devices.

4. The method of claim 1 , comprising:

receiving a relay system outage notification for an out-of-service relay system, the out-of-service relay system associated with an out-of-service relay system network address; and

excluding the out-of-service relay system network address from the relay system address list prior to transmission in response to the relay system request.

5. The method of claim 1 , comprising:

receiving a multiparty relay system request at the relay initiation server, the multiparty relay system request associated with three or more client devices; and

transmitting a multiparty relay system address list in response to the multiparty relay system request based on the determined plurality of lowest-latency multiparty relay system lists.

6. The method of claim 1 further comprising:

creating a plurality of lowest-latency relay system lists based on the performance information;

wherein each of the plurality of lowest-latency relay system lists corresponds to a pair of service areas of the plurality of services areas; and

wherein the plurality of selected relay systems corresponding to the relay system address list comprises a lowest-latency relay system list for a service area pair comprising the first service area and the second service area.

7. At least one non-transitory computer-readable storage medium comprising instructions stored in a memory that, when executed by a processor coupled to the memory, cause a system to:

receive a relay system request at a relay initiation server from a first client device having a first network address for relay service, between the first client device and a second client device having a second network address, the relay service dividing a total supported service area into a plurality of service areas;

determine a first service area for the first client device corresponding to a first geographical area and a second service area for the second device corresponding to a second geographic area;

receive performance information for each of the plurality of relay systems, the performance information comprising latency information for each of the plurality of service areas;

calculate a latency for each of a plurality of relay systems, the latency being a cumulative latency of communications between the first geographic area and the relay system and between the second geographic area and the relay system;

create a relay system address list comprising network addresses for one or more of the plurality of relay systems having the lowest cumulative latencies;

receive a multiparty relay request popularity list, the multiparty relay request popularity list representing respective popularities of relay system requests for groups of three or more client devices; and

determine a plurality of lowest-latency multiparty relay system lists based on the performance information, wherein each of the plurality of lowest-latency multiparty relay system lists corresponds to a set of service areas of the plurality of services areas, wherein a plurality of sets of service areas is selected for determining the plurality of lowest-latency multiparty relay system lists based on the multiparty relay request popularity list;

wherein the first service area is determined based on the first network address; and

wherein the second service area is determined based on the second network address.

8. The non-transitory computer-readable storage medium of claim 7 , comprising further instructions that, when executed, cause a system to:

augment the relay system address list with one or more backup relay systems from one or more distinct geographical regions.

9. The non-transitory computer-readable storage medium of claim 7 , comprising further instructions that, when executed, cause a system to:

receive a relay system outage notification for an out-of-service relay system, the out-of-service relay system associated with an out-of-service relay system network address; and

exclude the out-of-service relay system network address from the relay system address list prior to transmission in response to the relay system request.

10. The non-transitory computer-readable storage medium of claim 7 , the relay service dividing a total supported service area into a plurality of service areas, comprising further instructions that, when executed, cause a system to:

receive a multiparty relay system request at the relay initiation server, the multiparty relay system request associated with three or more client devices; and

transmit a multiparty relay system address list in response to the multiparty relay system request based on the determined plurality of lowest-latency multiparty relay system lists.

11. The non-transitory computer-readable storage medium of claim 7 , wherein the latency for each relay system is based on measured client latencies for a plurality of client devices.

12. The non-transitory computer-readable storage medium of claim 7 , comprising further instructions that, when executed, cause a system to:

receive a multiparty relay system request at the relay initiation server, the multiparty relay system request associated with three or more client devices; and

transmit a multiparty relay system address list in response to the multiparty relay system request based on the determined plurality of lowest-latency multiparty relay system lists.

13. The non-transitory computer-readable storage medium of claim 7 , comprising further instructions that, when executed, cause a system to:

create a plurality of lowest-latency relay system lists based on the performance information;

wherein each of the plurality of lowest-latency relay system lists corresponds to a pair of service areas of the plurality of services areas; and

wherein the plurality of selected relay systems corresponding to the relay system address list comprises a lowest-latency relay system list for a service area pair comprising the first service area and the second service area.

Assignments (2)
CHANGE OF NAME Recorded Jun 22, 2021
From: WHATSAPP INC.
To: WHATSAPP LLC
Reel/Frame 056646/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2017
From: GHEORGHE, CLAUDIU DAN
To: WHATSAPP INC.
Reel/Frame 041572/0164 →
Continuity (3)
Provisional Application 62301161 · Feb 29, 2016
Provisional Application 62301173 · Feb 29, 2016
Related Publication 20170250861A1 · Aug 31, 2017