DATA-DRIVEN NETWORK PATH SELECTION
First Claim
1. A system comprising:
- one or more processors; and
memory communicatively coupled to the one or more processors and storing one or more modules that, when executed by the one or more processors, cause the system to perform operations comprising;
receiving, from a source computing device, a request to transmit, via one or more networks, a call from the source computing device to a destination computing device;
analyzing, based at least in part on one or more network performance factors, network path measurements for a first plurality of network paths through one or more networks and between the source computing device and the destination computing device to determine network performance data for the first plurality of network paths;
determining, based at least in part on the network performance data for the first plurality of network paths, network performance data for a second plurality of network paths, the second plurality of network paths including the first plurality of network paths;
identifying, based at least in part on the network performance data, a network path from the second plurality of network paths to use for transmitting the call; and
outputting, to the source computing device, an indication of the network path identified for transmitting the call.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for determining network paths for voice calls include analyzing network path measurements of the network paths to determine historical network performance data for the network paths, and identifying a group of top-k network paths based on those network paths having better network performance data other network paths. A particular network path may be selected using various techniques, such as selecting the network path with the best historical network performance, selecting a network path by applying a multi-armed bandit algorithm to select the path from the group of top-k network paths, or selecting a network path at random. The selected network path may be used to by a source-destination pair of computing devices for a voice call, and a record of that voice call may be used to update network performance information for the particular network path.
-
Citations
20 Claims
-
1. A system comprising:
-
one or more processors; and memory communicatively coupled to the one or more processors and storing one or more modules that, when executed by the one or more processors, cause the system to perform operations comprising; receiving, from a source computing device, a request to transmit, via one or more networks, a call from the source computing device to a destination computing device; analyzing, based at least in part on one or more network performance factors, network path measurements for a first plurality of network paths through one or more networks and between the source computing device and the destination computing device to determine network performance data for the first plurality of network paths; determining, based at least in part on the network performance data for the first plurality of network paths, network performance data for a second plurality of network paths, the second plurality of network paths including the first plurality of network paths; identifying, based at least in part on the network performance data, a network path from the second plurality of network paths to use for transmitting the call; and outputting, to the source computing device, an indication of the network path identified for transmitting the call. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. One or more computer-storage media storing computer-executable instructions that, when executed by one or more processors, configure the one or more processors to perform operations comprising:
-
analyzing, based at least in part on one or more network performance factors, records of voice communications made using a first plurality of network paths through one or more networks for a particular source-destination pair to determine network performance data for the first plurality of network paths; identifying a network path from the first plurality of network paths or a second plurality of network paths based at least in part on network performance data of the network path relative to the network performance data of the first plurality of network paths and network performance data for the second plurality of network paths; outputting an indication of the network path to a computing device. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer-implemented method comprising:
-
sending, via one or more network interfaces and to a controller server, a request to perform voice communication with a destination computing device via one or more networks; receiving, from the controller server and via the one or more network interfaces, a message comprising an indication of one or more network paths between the computing device and the destination computing device and through the one or more networks, the message further comprising previous network performance data associated with each of the one or more network paths; selecting, by one or more processors, a network path from the one or more network paths based at least in part on a respective previous network performance of the network path; and sending, via the one or more network interfaces, a voice communication to the destination computing device using the network path. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification