Measuring performance of a service provider network
A computing device receives information associated with a server computing device and a plurality of client computing devices, each client computing device communicatively coupled to a router device. The computing device receives, for each respective client computing device of the plurality of client computing devices, TCP packet capture data associated with the respective client computing device. The computing device accesses an expected average packet round trip time (APRTT) for a client computing device from among the plurality of client computing devices. The computing device performs a comparison of a real-time APRTT for the client computing device and the expected APRTT for the client computing device. The computing device generates user interface imagery based on the comparison.
1 . A method, comprising:
receiving, by a computing device, information associated with a server computing device and a plurality of client computing devices, each client computing device directly coupled to a corresponding different router device of a plurality of router devices, the information comprising path information that identifies a set of routers between the server computing device and a first client computing device of the plurality of client computing devices that route a packet communicated between the server computing device and the first client computing device;
determining, by the computing device, a real-time average packet round trip time (APRTT) for the first client computing device;
accessing, by the computing device, an expected APRTT for the first client computing device;
performing, by the computing device, a comparison of the real-time APRTT for the first client computing device and the expected APRTT for the first client computing device;
based on the comparison and the path information, generating, by the computing device, user interface imagery comprising a first image that depicts the server computing device, the set of routers, and the first client computing device;
displaying, by the computing device, the user interface imagery on a display device;
receiving, by the computing device, user input selecting the first image;
in response to the user input, generating a second image comprising information that displays, for the path, that the real-time APRTT for the first client computing device is greater than the expected APRTT for the first client computing device; and
presenting the user interface imagery on the display device, wherein the user interface imagery comprises the first image and the second image.
2 . The method of claim 1 , wherein accessing the expected APRTT comprises:
sending, to a machine-learned model (MLM) trained on prior APRTTs for the plurality of client computing devices, the information associated with the server computing device and the plurality of client computing devices and TCP packet capture data associated with each respective client computing device; and
receiving, from the MLM, the expected APRTT for the first client computing device.
3 . The method of claim 2 , wherein the expected APRTT for the first client computing device is based on the information associated with the server computing device and the client computing device and TCP packet capture data associated with the first client computing device.
4 . The method of claim 2 , further comprising:
sending, to the MLM, the real-time APRTT for the first client computing device, wherein the MLM is further trained on the real-time APRTT.
5 . The method of claim 1 , further comprising:
accessing an expected APRTT for each respective client computing device of the plurality of client computing devices; and
performing, for each respective client computing device of the plurality of client computing devices, a comparison of a real-time APRTT for the respective client computing device and the expected APRTT for the respective client computing device.
6 . The method of claim 5 , wherein the user interface imagery comprises, for each respective client computing device of the plurality of client computing devices, an image of a path between the server computing device and the respective client computing device, the image identifying, for each path, one or more routers between the server computing device and the respective client computing device.
7 . The method of claim 1 , wherein the information that displays, for the path, that the real-time APRTT for the first client computing device is greater than the expected APRTT for the first client computing device comprises a graph comprising an x-axis of time that includes a predetermined amount of time, and a y-axis of latency, wherein the real-time APRTT for the first client computing device is indicated by a first line on the graph, the expected APRTT for the first client computing device is indicated by a second line on the graph, and the first line is above the second line.
8 . The method of claim 1 , wherein the server computing device is communicatively coupled to a peering router that connects an internet service provider to one or more internet peers.
9 . The method of claim 1 , wherein the information associated with the server computing device and the plurality of client computing devices comprises one or more of an Internet Protocol (IP) address of the server computing device, an IP address of each client computing device of the plurality of client computing devices, or one or more paths between the server computing device and each client computing device.
10 . The method of claim 1 , further comprising:
determining, for each respective client computing device of the plurality of client computing devices, one or more paths between the respective client computing device, the plurality of client computing devices, and the server computing device; and
sending, to a machine-learned model trained on prior APRTTs for the plurality of client computing devices, the one or more paths between the respective client computing device, the plurality of client computing devices, and the server computing device.
11 . A computing device, comprising:
a memory;
a processor device coupled to the memory, the processor device to:
receive information associated with a server computing device and a plurality of client computing devices, each client computing device directly coupled to a corresponding different router device of a plurality of router devices, the information comprising path information that identifies a set of routers between the server computing device and a first client computing device of the plurality of client computing devices that route a packet communicated between the server computing device and the first client computing device;
determine a real-time average packet round trip time (APRTT) for the first client computing device;
access an expected APRTT for the first client computing device;
perform a comparison of the real-time APRTT for the first client computing device and the expected APRTT for the first client computing device;
based on the comparison and the path information, generate user interface imagery comprising a first image that depicts the server computing device, the set of routers, and the first client computing device;
display the user interface imagery on a display device;
receive user input selecting the first image;
in response to the user input, generate a second image comprising information that displays, for the path, that the real-time APRTT for the first client computing device is greater than the expected APRTT for the first client computing device; and
present the user interface imagery on the display device, wherein the user interface imagery comprises the first image and the second image.
12 . The computing device of claim 11 , wherein, to access the expected APRTT, the processor device is further to:
send, to a MLM trained on prior APRTTs for the plurality of client computing devices, the information associated with the server computing device and the plurality of client computing devices and TCP packet capture data associated with each respective client computing device; and
receive, from the MLM, the expected APRTT for the first client computing device.
13 . The computing device of claim 11 , wherein the processor device is further to:
access an expected APRTT for each respective client computing device of the plurality of client computing devices; and
perform, for each respective client computing device of the plurality of client computing devices, a comparison of a real-time APRTT for the respective client computing device and the expected APRTT for the respective client computing device.
14 . A non-transitory computer-readable storage medium that includes computer-executable instructions that, when executed, cause one or more processor devices to:
receive information associated with a server computing device and a plurality of client computing devices, each client computing device directly coupled to a corresponding different router device of a plurality of router devices, the information comprising path information that identifies a set of routers between the server computing device and a first client computing device of the plurality of client computing devices that route a packet communicated between the server computing device and the first client computing device;
determine a real-time average packet round trip time (APRTT) for the first client computing device;
access an expected APRTT for the first client computing device;
perform a comparison of the real-time APRTT for the first client computing device and the expected APRTT for the first client computing device;
based on the comparison and the path information, generate user interface imagery comprising a first image that depicts the server computing device, the set of routers, and the first client computing device;
display the user interface imagery on a display device;
receive user input selecting the first image;
in response to the user input, generate a second image comprising information that displays, for the path, that the real-time APRTT for the first client computing device is greater than the expected APRTT for the first client computing device; and
present the user interface imagery on the display device, wherein the user interface imagery comprises the first image and the second image.
15 . The non-transitory computer-readable storage medium of claim 14 , wherein, to access the expected APRTT, the instructions are further to cause the processor device to:
send, to a MLM trained on prior APRTTs for the plurality of client computing devices, the information associated with the server computing device and the plurality of client computing devices and TCP packet capture data associated with each respective client computing device; and
receive, from the MLM, the expected APRTT for the first client computing device.