IP Library Granted Patent US 9,621,448
Granted Patent B2
US 9,621,448 · App. 14/247,742 · Granted Apr 11, 2017

Network analysis and monitoring tool

Inventor: Suraj Puvvada (San Jose, CA)
Assignee: AppDynamics, Inc.
H04L43/10H04L41/14H04L43/0847H04L43/106H04L47/286H04W24/08
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,621,448
App. No.
14/247,742
Granted
Apr 11, 2017
Kind
B2
Abstract

A transmitted transport communication protocol (TCP) packet in an established TCP connection is intercepted and resent with a modified IP layer to determine network nodes within a network path. No new connection is required, and the data may be transmitted to its intended location as part of the existing connection, bypassing firewalls and other obstacles commonly affecting ping commands. The change to the IP layer may include a modified TTL value. Address location and response time may be determined for each node in a network path.

Claims (77)

1. A method for analyzing a network, comprising:

monitoring a distributed business transaction between a first application on a first computer and a second application on a second computer over an established network connection, the monitoring performed by a first agent hosted on the first computer and a second agent hosted on the second computer;

intercepting by the first agent a data packet sent by the first application and intended for the second application;

identifying a time to start transmitting multiple copies of the intercepted data packet after modifying the intercepted data packet;

responsive to identifying the time to start transmitting, modifying, by the first agent, a portion of the intercepted data packet to vary a value indicative of a life of the intercepted data packet;

start transmitting the multiple copies of the modified data packet over the network connection at the identified time;

receiving a response to the transmitted multiple copies of the modified data packet;

repeating the modifying, transmitting, and receiving based on the availability of additional values indicative of the life of the intercepted data packet;

determining network information from the received response to the transmitted multiple copies of the modified data packet; and

constructing a map of network nodes forming the established network connection using the determined network information that includes an association of node address with the varied value indicative of the life of the intercepted data packet.

2. The method of claim 1 , wherein the intercepted data packet and the modified data packet include a TCP packet and the network connection is a TCP connection formed by the network nodes in the constructed map.

3. The method of claim 2 , wherein the intercepted TCP packet was previously sent in the established TCP connection.

4. The method of claim 2 , wherein the portion is a TTL value in the header of the TCP packet.

5. The method of claim 2 , wherein:

intercepting the data packet includes intercepting a transmitted TCP packet; and

caching the intercepted TCP packet.

6. The method of claim 2 , the response including an address of a last node in the network nodes to receive the transmitted multiple copies of the modified TCP packet.

7. The method of claim 2 , further comprising:

determining a time the multiple copies of the modified TCP packet were sent; and

determining a time the response was received.

8. The method of claim 7 , further comprising:

determining an average difference in time between the multiple copies of the modified data packet were sent and the time the response was received.

9. The method of claim 1 , the response including an error message.

10. The method of claim 1 , wherein start transmitting includes start transmitting the multiple copies of the modified TCP packet when the TCP connection is determined to be idle.

11. The method of claim 1 , determining an address of a node in the network connection from the response.

12. The method of claim 1 , further comprising:

detecting an anomaly in a performance of the distributed transaction; and

performing intercepting, identifying, modifying, start transmitting, receiving, repeating, determining, and constructing in response to detecting the anomaly.

13. A non-transitory computer readable storage medium having embodied thereon a program, the program being executable by a processor to perform a method for analyzing a network, the method comprising:

monitoring a distributed business transaction between a first application on a first computer and a second application on a second computer over an established network connection, the monitoring performed by a first agent hosted on the first computer and a second agent hosted on the second computer;

intercepting by the first agent a data packet sent by the first application and intended for the second application;

identifying a time to start transmitting multiple copies of the intercepted data packet after modifying the intercepted data packet;

responsive to identifying the time to start transmitting, modifying, by the first agent, a portion of the intercepted data packet to vary a value indicative of a life of the intercepted data packet;

start transmitting the multiple copies of the modified data packet over the network connection at the identified time;

receiving a response to the transmitted multiple copies of the modified data packet;

repeating the modifying, transmitting, and receiving based on the availability of additional values indicative of the life of the intercepted data packet;

determining network information from the received response to the transmitted multiple copies of the modified data packet; and

constructing a map of network nodes forming the established network connection using the determined network information that includes an association of node address with the varied value indicative of the life of the intercepted data packet.

14. The non-transitory computer readable storage medium of claim 13 , wherein the intercepted data packet and the modified data packet include a TCP packet and the network connection is a TCP connection formed by the network nodes in the constructed map.

15. The non-transitory computer readable storage medium of claim 14 , wherein the intercepted TCP packet was previously sent in the established TCP connection.

16. The non-transitory computer readable storage medium of claim 14 , wherein the portion is a TTL value in the header of the TCP packet.

17. The non-transitory computer readable storage medium of claim 14 , wherein:

intercepting the data packet includes intercepting a transmitted TCP packet; and

caching the intercepted TCP packet.

18. The non-transitory computer readable storage medium of claim 14 , the response including an address of a last node in the network nodes to receive the transmitted multiple copies of the modified TCP packet.

19. The non-transitory computer readable storage medium of claim 14 , further comprising:

determining a time the multiple copies of the modified TCP packet were sent; and

determining a time the response was received.

20. The non-transitory computer readable storage medium of claim 19 , further comprising:

determining an average difference in time between the multiple copies of the modified data packet were sent and the time the response was received.

21. The non-transitory computer readable storage medium of claim 13 , the response including an error message.

22. The non-transitory computer readable storage medium of claim 13 , wherein start transmitting includes start transmitting the multiple copies of the modified TCP packet when the TCP connection is determined to be idle.

23. The non-transitory computer readable storage medium of claim 13 , determining an address of a node in the network connection from the response.

24. The non-transitory computer readable storage medium of claim 13 , further comprising:

detecting an anomaly in a performance of the distributed transaction; and

performing intercepting, identifying, modifying, start transmitting, receiving, repeating, determining, and constructing in response to detecting the anomaly.

25. A system for monitoring a business transaction, comprising: a processor;

a memory; and

one or more modules stored in memory and executable by a processor to monitor a distributed business transaction between a first application on a first computer and a second application on a second computer over an established network connection, the monitoring performed by a first agent hosted on the first computer and a second agent hosted on the second computer, identify a time to start transmitting multiple copies of the intercepted data packet after modifying the intercepted data packet, responsive to identifying the time to start the transmit, modify, by the first agent, a portion of the intercepted data packet to vary a value indicative of a life of the intercepted data packet, start to transmit the multiple copies of the modified data packet over the network connection at the identified time, receive a response to the transmitted multiple copies of the modified data packet, repeat the modify, transmit, and receive based on the availability of additional values indicative of the life of the intercepted data packet, determine network information from the received response to the transmitted multiple copies of the modified data packet, and construct a map of network nodes that form the established network connection using the determined network information that includes an association of node address with the varied value indicative of the life of the intercepted data packet.

26. The system of claim 25 , wherein the intercepted data packet and the modified data packet include a TCP packet and the network connection is a TCP connection formed by the network nodes in the constructed map.

27. The system of claim 26 , wherein the intercepted TCP packet was previously sent in the established TCP connection.

28. The system of claim 26 , wherein the portion is a TTL value in the header of the TCP packet.

29. The system of claim 26 , the response including an address of last node in the network nodes to receive the transmitted multiple copies of the modified TCP packet.

30. The system of claim 26 , wherein the one or more modules stored in memory is executable by a processor to perform operations including:

determine a time the multiple copies of the modified TCP packet were sent; and

determine a time the response was received.

31. The system of claim 30 , wherein the one or more modules stored in memory is executable by a processor to perform operations including:

determine an average difference in time between the multiple copies of the modified data packet being sent and the time the response was received.

32. The system of claim 25 , wherein the intercepted data packet includes a transmitted TCP packet; and

wherein the one or more modules stored in memory is executable by a processor to cache the intercepted TCP packet.

33. The system of claim 25 , the response including an error message.

34. The system of claim 25 , wherein the one or more modules stored in memory is executable by a processor to start the transmit of the multiple copies of the modified TCP packet when the TCP connection is determined to be idle.

35. The system of claim 25 , wherein the one or more modules stored in memory is executable by a processor to determine an address of a node in the network connection from the response.

36. The system of claim 25 , wherein the one or more modules stored in memory is executable by a processor to perform operations including:

monitor a distributed transaction

detect an anomaly in the performance of the distributed transaction; and

perform intercept, identify, modify, start to transmit, receive, repeat, determine, and construct in response to detecting the anomaly.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2017
From: APPDYNAMICS LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 044173/0050 →
CHANGE OF NAME Recorded Jun 23, 2017
From: APPDYNAMICS, INC.
To: APPDYNAMICS LLC
Reel/Frame 042964/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2014
From: PUVVADA, SURAJ
To: APPDYNAMICS, INC.
Reel/Frame 032764/0436 →
Continuity (1)
Related Publication 20150288591A1 · Oct 8, 2015