IP Library Granted Patent US 9,411,787
Granted Patent B1
US 9,411,787 · App. 14/210,131 · Granted Aug 9, 2016

Cross-layer troubleshooting of application delivery

Inventors: Mohit V. Lad (San Francisco, CA); Ricardo V. Oliveira (San Francisco, CA); Michael Meisel (San Francisco, CA); Ryan Braud (San Francisco, CA)
Assignee: ThousandEyes, Inc.
G06F17/2235
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 9,411,787
App. No.
14/210,131
Granted
Aug 9, 2016
Kind
B1
Abstract

Techniques for cross-layer troubleshooting of application delivery are disclosed. In some embodiments, cross-layer troubleshooting of application delivery includes collecting test results from a plurality of distributed agents for a plurality of application delivery layers; and generating a graphical visualization of an application delivery state based on the test results for the plurality of application delivery layers (e.g., different application delivery layers).

Claims (63)

1. A system for cross-layer troubleshooting of application delivery, comprising:

a processor configured to:

collect test results from a plurality of distributed agents for a plurality of application delivery layers, wherein each of the plurality of distributed agents performs one or more active measurements for identifying an MultiProtocol Label Switching (MPLS) tunnel and identifying a type of the MPLS tunnel, wherein the type of the MPLS tunnel is selected from one of the following: an explicit MLS tunnel, an implicit MPLS tunnel, an opaque MPLS tunnel, and an invisible MPLS tunnel; and

generate a graphical visualization of an application delivery state for the plurality of application delivery layers based on the test results, wherein the graphic visualization includes a link that is determined to be associated with an identified explicit MPLS tunnel, an identified implicit MPLS tunnel, an identified opaque MPLS tunnel, or an identified invisible MPLS tunnel; and

a memory coupled to the processor and configured to provide the processor with instructions.

2. The system recited in claim 1 , further comprising:

determine that the link is one of a plurality of links associated with the MPLS tunnel.

3. The system recited in claim 1 , wherein the processor is further configured to:

output the graphical visualization of the application delivery state based on the test results, wherein the output includes hop information for the link associated with the MPLS tunnel.

4. The system recited in claim 1 , wherein the processor is further configured to:

determine that the link is associated with the MPLS tunnel, wherein the MPLS tunnel is an explicit MPLS tunnel.

5. The system recited in claim 1 , wherein the processor is further configured to:

determine that the link is associated with the MPLS tunnel, wherein the MPLS tunnel is an explicit MPLS tunnel; and

generate a display output that includes label information for the link associated with the MPLS tunnel.

6. The system recited in claim 1 , wherein the processor is further configured to:

determine that a plurality of links are associated with the MPLS tunnel, wherein the MPLS tunnel is an explicit MPLS tunnel; and

generate a display output that includes label information for each of the plurality of links associated with the MPLS tunnel.

7. The system recited in claim 1 , wherein the processor is further configured to:

determine that the link is associated with the MPLS tunnel, wherein the MPLS tunnel is an implicit MPLS tunnel; and

generate a display output that includes inferred hop information for the link associated with the MPLS tunnel.

8. The system recited in claim 1 , wherein the processor is further configured to:

determine that the link is associated with the MPLS tunnel, wherein the MPLS tunnel is an opaque MPLS tunnel; and

generate a display output that includes inferred hop information for the link associated with the MPLS tunnel.

9. A method of cross-layer troubleshooting of application delivery, comprising:

collecting test results from a plurality of distributed agents for a plurality of application delivery layers using, wherein each of the plurality of distributed agents performs one or more active measurements for identifying an MultiProtocol Label Switching (MPLS) tunnel and identifying a type of the MPLS tunnel, wherein the type of the MPLS tunnel is selected from one of the following: an explicit MLS tunnel, an implicit MPLS tunnel, an opaque MPLS tunnel, and an invisible MPLS tunnel; and

generating a graphical visualization of an application delivery state for the plurality of application delivery layers based on the test results using a processor, wherein the graphic visualization includes a link that is determined to be associated with an identified explicit MPLS tunnel, an identified implicit MPLS tunnel, an identified opaque MPLS tunnel, or an identified invisible MPLS tunnel.

10. The method of claim 9 , further comprising:

determining that the link is associated with the MPLS tunnel, wherein the MPLS tunnel is an explicit MPLS tunnel; and

generating a display output that includes label information for the link associated with the MPLS tunnel.

11. The method of claim 9 , further comprising:

determining that a plurality of links are associated with the MPLS tunnel, wherein the MPLS tunnel is an explicit MPLS tunnel; and

generating a display output that includes label information for each of the plurality of links associated with the MPLS tunnel.

12. The method of claim 9 , further comprising:

determining that the link is associated with the MPLS tunnel, wherein the MPLS tunnel is an implicit MPLS tunnel; and

generating a display output that includes inferred hop information for the link associated with the MPLS tunnel.

13. The method of claim 9 , further comprising:

determining that the link is associated with the MPLS tunnel, wherein the MPLS tunnel is an opaque MPLS tunnel; and

generating a display output that includes inferred hop information for the link associated with the MPLS tunnel.

14. A computer program product for cross-layer troubleshooting of application delivery, the computer program product comprising a non-transitory tangible computer readable storage medium and comprising computer instructions for:

collecting test results from a plurality of distributed agents for a plurality of application delivery layers, wherein each of the plurality of distributed agents performs one or more active measurements for identifying an MultiProtocol Label Switching (MPLS) tunnel and identifying a type of the MPLS tunnel, wherein the type of the MPLS tunnel is selected from one of the following: an explicit MLS tunnel, an implicit MPLS tunnel, an opaque MPLS tunnel, and an invisible MPLS tunnel; and

generating a graphical visualization of an application delivery state for the plurality of application delivery layers based on the test results, wherein the graphic visualization includes a link that is determined to be associated with an identified explicit MPLS tunnel, an identified implicit MPLS tunnel, an identified opaque MPLS tunnel, or an identified invisible MPLS tunnel.

15. The computer program product recited in claim 14 , further comprising computer instructions for:

determining that the link is associated with the MPLS tunnel, wherein the MPLS tunnel is an explicit MPLS tunnel; and

generating a display output that includes label information for the link associated with the MPLS tunnel.

16. The computer program product recited in claim 14 , further comprising computer instructions for:

determining that a plurality of links are associated with the MPLS tunnel, wherein the MPLS tunnel is an explicit MPLS tunnel; and

generating a display output that includes label information for each of the plurality of links associated with the MPLS tunnel.

17. The computer program product recited in claim 14 , further comprising computer instructions for:

determining that the link is associated with the MPLS tunnel, wherein the MPLS tunnel is an implicit MPLS tunnel; and

generating a display output that includes inferred hop information for the link associated with the MPLS tunnel.

18. The computer program product recited in claim 14 , further comprising computer instructions for:

determining that the link is associated with the MPLS tunnel, wherein the MPLS tunnel is an opaque MPLS tunnel; and

generating a display output that includes inferred hop information for the link associated with the MPLS tunnel.

19. A system for cross-layer troubleshooting of application delivery, comprising:

a processor configured to:

collect test results from a plurality of distributed agents for a plurality of application delivery layers, wherein each of the plurality of distributed agents executes a Path Maximum Transmission Unit (PMTU) discovery process to infer one or more links that show a decrease in Maximum Transmission Unit (MTU); and

generate a graphical visualization of an application delivery state for the plurality of application delivery layers based on the test results, wherein the graphic visualization includes a visualization of routing paths annotated with MTU data; and

a memory coupled to the processor and configured to provide the processor with instructions.

20. A system for cross-layer troubleshooting of application delivery, comprising:

a processor configured to:

collect test results from a plurality of distributed agents for a plurality of application delivery layers, wherein each of the plurality of distributed agents executes TCP-based network tests to measure a TCP Maximum Segment Size (MSS) for a TCP-based network; and

generate a graphical visualization of an application delivery state for the plurality of application delivery layers based on the test results, wherein the graphic visualization includes a visualization of routing paths annotated with TCP MSS data; and

a memory coupled to the processor and configured to provide the processor with instructions.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2021
From: THOUSANDEYES LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 056348/0993 →
CHANGE OF NAME Recorded Nov 18, 2020
From: THOUSANDEYES, INC.
To: THOUSANDEYES LLC
Reel/Frame 054476/0337 →
CHANGE OF NAME Recorded Oct 20, 2014
From: THOUSAND EYES, INC.
To: THOUSANDEYES, INC.
Reel/Frame 034018/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2014
From: LAD, MOHIT V.; OLIVEIRA, RICARDO V.; MEISEL, MICHAEL; BRAUD, RYAN
To: THOUSAND EYES, INC.
Reel/Frame 033030/0165 →
Continuity (1)
Provisional Application 61793283 · Mar 15, 2013