In one embodiment, an agent process produces synthetic packet traffic and iteratively performs a sub-process that determines isolated network segments of the communication channel between intermediate nodes and computes a set of network metrics for the isolated network segments based at least in part on incrementing TTL expiry error data points. The sub-process also encapsulates, for inclusion within the next packet to be sent, a list of intermediate node IDs along the communication channel up to a latest received node ID and computed sets of network metrics for respective network segments. The agent process may then generate, upon termination of the sub-process, a report, the report including the list of intermediate node IDs along the communication channel up to a latest received node ID and computed sets of network metrics for respective network segments.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method, comprising: detecting, at an agent process, a trigger to analyze a communication channel between application end points, wherein the agent process is located at a source end point of the application end points; generating, by the agent process in response to the trigger, a synthetic workload to produce packet traffic to transmit toward a destination end point of the application end points; iteratively performing, by the agent process, a sub-process comprising: i) transmitting a packet of the synthetic workload toward the destination end point, the transmitted packet having a time-to-live (TTL) value set to one greater than that of a previous packet of a directly previous iteration, with an initial TTL value for an initial packet set to ‘1’; ii) receiving a TTL expiry error message from an intermediate node along the communication channel at which the TTL of the transmitted packet expired, the TTL expiry error message having a node identifier (ID) for the intermediate node and error data points associated with the TTL expiry error message; iii) determining an isolated network segment of the communication channel between the intermediate node and a directly previous intermediate node, with an initial isolated network segment being between the source end point and a first-encountered intermediate node; iv) computing a set of network metrics for the isolated network segment based at least in part on the error data points; and v) encapsulating, for inclusion within an encapsulated data field of a next transmitted packet of a directly subsequent iteration, a list of intermediate node IDs along the communication channel up to a latest received node ID and computed sets of network metrics for respective network segments; and generating, by the agent process upon termination of the sub-process, a report, the report including the list of intermediate node IDs along the communication channel up to a latest received node ID and computed sets of network metrics for respective network segments.
2. The method as in claim 1 , wherein the packet traffic comprises synthetic data specific to an associated application to mimic application traffic, and wherein the computed network metrics are specific to the application.
3. The method as in claim 2 , further comprising: including, within the packets, transaction identifiers for particular transactions occurring on the application, wherein the computed network metrics are specific to the particular transactions.
4. The method as in claim 1 , wherein the trigger is a performance issue surpassing a threshold tolerance.
5. The method as in claim 1 , wherein the trigger is an on-demand user request.
6. The method as in claim 1 , wherein computing a set of network metrics for the isolated network segment is further based on subtracting previous network metrics of previous isolated network segments from a total network metric associated with the TTL expiry error message of a current iteration.
7. The method as in claim 1 , further comprising: transmitting the report to a controller, causing the controller to stitch together reports from a plurality of agent processes to form a complete view of the communication channel.
8. The method as in claim 7 , wherein part of the communication channel is hidden from the agent process and not analyzable by the agent process using the sub-process.
9. The method as in claim 1 , wherein termination of the sub-process occurs in response to one of either reaching the destination end-point, reaching another agent process that assumes responsibility of a remainder of the communication channel, or reaching an intermediate node that does not continue to forward packets even when the TTL has not expired.
10. The method as in claim 1 , wherein: error data points are selected from a group consisting of: timestamps; intermediate node state; error messages; and performance characteristics of the intermediate node; and network metrics are selected from a group consisting of: latency; packet drops; delay; and jitter.
11. A tangible, non-transitory, computer-readable medium storing program instructions that cause a computer to execute a process comprising: detecting a trigger to analyze a communication channel between application end points, wherein the process is located at a source end point of the application end points; generating, in response to the trigger, a synthetic workload to produce packet traffic to transmit toward a destination end point of the application end points; iteratively performing a sub-process comprising: i) transmitting a packet of the synthetic workload toward the destination end point, the transmitted packet having a time-to-live (TTL) value set to one greater than that of a previous packet of a directly previous iteration, with an initial TTL value for an initial packet set to ‘1’; ii) receiving a TTL expiry error message from an intermediate node along the communication channel at which the TTL of the transmitted packet expired, the TTL expiry error message having a node identifier (ID) for the intermediate node and error data points associated with the TTL expiry error message; iii) determining an isolated network segment of the communication channel between the intermediate node and a directly previous intermediate node, with an initial isolated network segment being between the source end point and a first-encountered intermediate node; iv) computing a set of network metrics for the isolated network segment based at least in part on the error data points; and v) encapsulating, for inclusion within an encapsulated data field of a next transmitted packet of a directly subsequent iteration, a list of intermediate node IDs along the communication channel up to a latest received node ID and computed sets of network metrics for respective network segments; and generating, upon termination of the sub-process, a report, the report including the list of intermediate node IDs along the communication channel up to a latest received node ID and computed sets of network metrics for respective network segments.
12. The computer-readable medium as in claim 11 , wherein the packet traffic comprises synthetic data specific to an associated application to mimic application traffic, and wherein the computed network metrics are specific to the application.
13. The computer-readable medium as in claim 11 , wherein process further comprises: including, within the packets, transaction identifiers for particular transactions occurring on the application, wherein the computed network metrics are specific to the particular transactions.
14. The computer-readable medium as in claim 11 , wherein the trigger is one of either a performance issue surpassing a threshold tolerance or an on-demand user request.
15. The computer-readable medium as in claim 11 , wherein the process further comprises: transmitting the report to a controller, causing the controller to stitch together reports from a plurality of agent processes to form a complete view of the communication channel.
16. An apparatus, comprising: one or more network interfaces to communicate with a network; a processor coupled to the network interfaces and adapted to execute one or more processes; and a memory configured to store a process executable by the processor, the process when executed configured to: detect a trigger to analyze a communication channel between application end points, wherein the process is located at a source end point of the application end points; generate, in response to the trigger, a synthetic workload to produce packet traffic to transmit toward a destination end point of the application end points; iteratively perform a sub-process comprising: i) transmitting a packet of the synthetic workload toward the destination end point, the transmitted packet having a time-to-live (TTL) value set to one greater than that of a previous packet of a directly previous iteration, with an initial TTL value for an initial packet set to ‘1’; ii) receiving a TTL expiry error message from an intermediate node along the communication channel at which the TTL of the transmitted packet expired, the TTL expiry error message having a node identifier (ID) for the intermediate node and error data points associated with the TTL expiry error message; iii) determining an isolated network segment of the communication channel between the intermediate node and a directly previous intermediate node, with an initial isolated network segment being between the source end point and a first-encountered intermediate node; iv) computing a set of network metrics for the isolated network segment based at least in part on the error data points; and v) encapsulating, for inclusion within an encapsulated data field of a next transmitted packet of a directly subsequent iteration, a list of intermediate node IDs along the communication channel up to a latest received node ID and computed sets of network metrics for respective network segments; and generate, upon termination of the sub-process, a report, the report including the list of intermediate node IDs along the communication channel up to a latest received node ID and computed sets of network metrics for respective network segments.
17. The apparatus as in claim 16 , wherein the packet traffic comprises synthetic data specific to an associated application to mimic application traffic, and wherein the computed network metrics are specific to the application.
18. The apparatus as in claim 16 , the process when executed is further configured to: include, within the packets, transaction identifiers for particular transactions occurring on the application, wherein the computed network metrics are specific to the particular transactions.
19. The apparatus as in claim 16 , wherein the trigger is one of either a performance issue surpassing a threshold tolerance or an on-demand user request.
20. The apparatus as in claim 16 , the process when executed is further configured to: transmit the report to a controller, causing the controller to stitch together reports from a plurality of agent processes to form a complete view of the communication channel.
21. The apparatus as in claim 20 , wherein part of the communication channel is hidden from the agent process and not analyzable by the agent process using the sub-process.
22. The apparatus as in claim 20 , wherein termination of the sub-process occurs in response to one of either reaching the destination end-point, reaching another agent process that assumes responsibility of a remainder of the communication channel, or reaching an intermediate node that does not continue to forward packets even when the TTL has not expired.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
October 31, 2017
May 19, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.