IP Library Granted Patent US 7,680,920
Granted Patent B2
US 7,680,920 · App. 10/395,347 · Granted Mar 16, 2010

Methods, systems and computer program products for evaluating network performance using diagnostic rules identifying performance data to be collected

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 7,680,920
App. No.
10/395,347
Granted
Mar 16, 2010
Kind
B2
Abstract

A path of a communication connection between a first node and a second node is determined. The path includes at least one connecting node. A first set of network performance data associated with the communication connection is obtained. Ones of a plurality of diagnostic rules is automatically evaluated based on the obtained first set of network performance data to identify a second set of network performance data to be collected.

Claims (107)

1. A method for evaluating network performance, the method comprising:

determining a path of a communication connection between a first node and a second node, the path including at least one connecting node;

obtaining a first set of network performance data associated with the communication connection, wherein obtaining a first set of network performance data comprises obtaining the first set of network performance data based on generated network traffic; and

automatically evaluating ones of a plurality of diagnostic rules based on the obtained first set of network performance data to identify a second set of network performance data to be collected, wherein the ones of the plurality of diagnostic rules include polling nodes to obtain network performance data, obtaining network performance data and/or diagnosing a problem based on network performance data.

2. The method of claim 1 further comprising:

obtaining the second set of network performance data; and

evaluating ones of the plurality of diagnostic rules based on the second set of network performance data to identify a third set of network performance data to be collected.

3. The method of claim 2 further comprising repeating the evaluating and the identifying operations until none of the plurality of rules identifying further network performance data to be collected is satisfied.

4. The method of claim 3 wherein at least one of the plurality of diagnostic rules generates a network performance diagnosis when none of the plurality of rules identifying further network performance data to be collected is satisfied.

5. The method of claim 1 further comprising generating the network traffic between the first node and the second node.

6. The method of claim 5 wherein obtaining network performance data further comprises polling at least one of the nodes of the path configured to receive queries while network traffic is being generated to obtain network performance data from the at least one of the nodes of the path.

7. The method of claim 1 wherein determining a path of a communication connection comprises:

running a traceroute from the first node and the second node; and

running a traceroute from the second node to the first node.

8. The method of claim 1 wherein determining a path of a communication connection comprises generating network traffic between the first node and the second node using a real-time transport protocol (RTP) datagram.

9. The method of claim 8 wherein the RTP datagram includes voice over internet protocol (VoIP) data.

10. The method of claim 1 wherein determining a path of a communication connection comprises determining the path utilizing an agent located on at least one of the nodes of the path and a simple network management protocol (SNMP).

11. The method of claim 1 wherein the connecting nodes of the path are selected from the group consisting of a router, a switch and a voice gateway.

12. The method of claim 11 wherein an agent located on a first one of the nodes of the path sends a query to a second one of the nodes of the path configured to receive queries to obtain network performance data associated with the second node of the path.

13. The method of claim 12 wherein the agent located on the first one of the nodes of the path sends a query to the second one of the nodes of the path using SNMP polling.

14. The method of claim 1 further comprising:

generating active traffic between the first and second nodes; and

calculating the first set of network performance data based on the generated traffic between the first and second nodes.

15. The method of claim 14 wherein the calculated first set of network performance data comprises at least one of an end-to-end delay, an end-to-end jitter, an end-to-end jitter buffer loss, an end-to-end loss, an end-to-end mean opinion score, a delay across ones of the nodes of the path, a number of dropped packets for ones of the nodes of the path, a central processing unit utilization for ones of the nodes of the path and/or a memory utilization for ones of the nodes of the path.

16. The method of claim 1 wherein determining a path comprises determining a path of a communication connection if a valid address for the first node and second node are known, the method further comprising diagnosing an invalid address if it is determined that a valid address for the first node and second node are not known.

17. The method of claim 1 wherein obtaining a first set of network performance data comprises obtaining a first set of network performance data if the path of the communication connection has been determined between the first node and the second node.

18. The method of claim 1 wherein ones of the plurality of diagnostic rules identifying further network performance data to be collected are selected from the group consisting of:

if the path of a communication connection between the first node and the second node has been determined and end-to-end delay network performance data fails to meet a performance criteria, then poll ones of the nodes to obtain network performance data associated with the ones of the nodes;

if at least one of the nodes of the path is located in a WAN, then poll the at least one of the nodes of the path for network performance data associated with the at least one of the nodes of the path; and

if at least one valid node exists on the path of the communication connection, then obtain network performance data associated with the at least one valid node of the path.

19. The method of claim 18 wherein at least one of the plurality of rules that generates a performance diagnosis when none of the plurality of rules identifying further network performance data to be collected is satisfied are selected from the group consisting of:

if a path has been determined and the end-to-end delay does not satisfy a performance criteria, then diagnose an end-to-end delay problem;

if obtained network performance data fails to satisfy a performance criteria associated with end-to-end jitter buffer loss, then diagnose an end-to-end jitter buffer loss problem;

if obtained network performance data fails to satisfy a performance criteria associated with end-to-end MOS, then diagnose an end-to-end MOS problem;

if obtained network performance data fails to satisfy a performance criteria associated with end-to-end jitter, then diagnose an end-to-end jitter problem;

if obtained network performance data fails to satisfy a performance criteria associated with end-to-end loss, then diagnose an end-to-end loss problem;

if the network performance data associated with the at least one valid node of the path has been obtained and the network performance data associated with the at least one valid node of the path fails to satisfy a configuration criteria, then diagnose bad configuration settings associated with the at least one valid node of the path that fails to satisfy a configuration criteria;

if the polling of ones of the nodes of the path has been completed and network performance data associated with the ones of nodes of the path fails to satisfy an associated performance criteria, then diagnose loss rate network performance data associated with ones of the plurality of nodes as failing to satisfy the associated performance criteria;

if the polling of ones of the nodes of the path has been completed and network performance data associated with the ones of nodes of the path fails to satisfy an associated performance criteria, then diagnose bandwidth network performance data associated with ones of the plurality of nodes as failing to satisfy the associated performance criteria; and

if the polling of ones of the nodes of the path has been completed and network performance data associated with the ones of nodes of the path fails to satisfy an associated performance criteria, then diagnose queue length network performance data associated with ones of the plurality of nodes as failing to satisfy the associated performance criteria.

20. The method of claim 1 , wherein the diagnostic rules comprise at least one condition that identifies additional sets of network performance data to be collected based on previously obtained sets of network performance data and/or triggers generation of a diagnosis based on previously obtained sets of network performance data.

21. The method of claim 1 , wherein the diagnostic rules comprise at least one condition that test for presence or absence of network performance data and actions to perform if the at least one condition is satisfied.

22. A system for evaluating network performance including modules stored on a computer readable storage medium, the system comprising:

a routing module that is configured to determine a path of a communication connection between a first node and a second node, the path including at least one connecting node;

a performance module that is configured to obtain a first set of network performance data associated with the communication connection based on the generated network traffic; and

a diagnosis module that is configured to automatically evaluate ones of a plurality of diagnostic rules based on the obtained first set of network performance data to identify a second set of network performance data to be collected, wherein the ones of the plurality of diagnostic rules include polling nodes to obtain network performance data, obtaining network performance data and/or diagnosing a problem based on network performance data.

23. The system of claim 22 wherein the diagnosis module is further configured to:

obtain the second set of network performance data; and

evaluate ones of the plurality of diagnostic rules based on the second set of network performance data to identify a third set of network performance data to be collected.

24. The system of claim 23 wherein the diagnosis module is further configured to repeatedly evaluate and identify until none of the plurality of rules identifying further network performance data to be collected is satisfied.

25. The system of claim 24 wherein at least one of the plurality of diagnostic rules generates a network performance diagnosis when none of the plurality of rules identifying further network performance data to be collected is satisfied.

26. The system of claim 22 wherein the performance module is further configured to generate network traffic between the first node and the second node.

27. The system of claim 26 wherein the performance module is further configured to poll at least one of the nodes of the path configured to receive queries while network traffic is being generated to obtain network performance data from the at least one of the nodes of the path.

28. The system of claim 22 wherein the routing module is further configured to:

run a traceroute from the first node and the second node; and

run a traceroute from the second node to the first node.

29. The system of claim 22 wherein the routing module if further configured to generate network traffic between the first node and the second node using a real-time transport protocol (RTP) datagram to obtain the path of the communication connection.

30. The system of claim 29 wherein the RTP datagram includes voice over internet protocol (VoIP) data.

31. The system of claim 22 wherein the routing module if further configured to determine the path utilizing an agent located on at least one of the nodes of the path and a simple network management protocol (SNMP).

32. The system of claim 22 further comprising an agent module located on a first one of the nodes of the path that is configured to send a query to a second one of the nodes of the path configured to receive queries to obtain network performance data associated with the second node of the path.

33. The system of claim 32 wherein the agent module located on the first one of the nodes of the path is further configured to send a query to the second one of the nodes of the path using SNMP polling.

34. The system of claim 22 wherein ones of the plurality of diagnostic rules identifying further network performance data to be collected are selected from the group consisting of:

if the path of a communication connection between the first node and the second node has been determined and end-to-end delay network performance data fails to meet a performance criteria, then poll ones of the nodes to obtain network performance data associated with the ones of the nodes;

if at least one of the nodes of the path is located in a WAN, then poll the at least one of the nodes of the path for network performance data associated with the at least one of the nodes of the path; and

if at least one valid node exists on the path of the communication connection, then obtain network performance data associated with the at least one valid node of the path.

35. The system of claim 34 wherein at least one of the plurality of rules that generates a performance diagnosis when none of the plurality of rules identifying further network performance data to be collected is satisfied are selected from the group consisting of:

if a path has been determined and the end-to-end delay does not satisfy a performance criteria, then diagnose an end-to-end delay problem;

if obtained network performance data fails to satisfy a performance criteria associated with end-to-end jitter buffer loss, then diagnose an end-to-end jitter buffer loss problem;

if obtained network performance data fails to satisfy a performance criteria associated with MOS, then diagnose a MOS problem;

if obtained network performance data fails to satisfy a performance criteria associated with end-to-end jitter, then diagnose an end-to-end jitter problem;

if obtained network performance data fails to satisfy a performance criteria associated with end-to-end loss, then diagnose an end-to-end loss problem;

if the network performance data associated with the at least one valid node of the path has been obtained and the network performance data associated with the at least one valid node of the path fails to satisfy a configuration criteria, then diagnose bad configuration settings associated with the at least one valid node of the path that fails to satisfy a configuration criteria;

if the polling of ones of the nodes of the path has been completed and network performance data associated with the ones of nodes of the path fails to satisfy an associated performance criteria, then diagnose loss rate network performance data associated with ones of the plurality of nodes as failing to satisfy the associated performance criteria;

if the polling of ones of the nodes of the path has been completed and network performance data associated with the ones of nodes of the path fails to satisfy an associated performance criteria, then diagnose bandwidth network performance data associated with ones of the plurality of nodes as failing to satisfy the associated performance criteria; and

if the polling of ones of the nodes of the path has been completed and network performance data associated with the ones of nodes of the path fails to satisfy an associated performance criteria, then diagnose queue length network performance data associated with ones of the plurality of nodes as failing to satisfy the associated performance criteria.

36. A system for evaluating network performance, the system comprising:

means for determining a path of a communication connection between a first node and a second node, the path including at least one connecting node;

means for obtaining a first set of network performance data associated with the communication connection, wherein the means for obtaining a first set of network performance data comprises means for obtaining the first set of network performance data based on generated network traffic; and

means for automatically evaluating ones of a plurality of diagnostic rules based on the obtained first set of network performance data to identify a second set of network performance data to be collected, wherein the ones of the plurality of diagnostic rules include means for polling nodes to obtain network performance data, means for obtaining network performance data and/or means for diagnosing a problem based on network performance data.

37. The system of claim 36 wherein the means for determining a path of a communication connection comprises means for generating network traffic between the first node and the second node using a real-time transport protocol (RTP) datagram.

38. The system of claim 37 wherein the RTP datagram includes voice over internet protocol (VoIP) data.

39. A computer program product stored on a computer-readable storage medium for evaluating net work performance, the computer program product comprising:

computer-readable program code that determines a path of a communication connection between a first node and a second node, the path including at least one connecting node;

computer readable program code that obtains a first set of network performance data associated with the communication connection, wherein the computer readable program code configured to obtain a first set of network performance data comprises computer readable program code configured to obtain the first set of network performance data based on generated network traffic; and

computer readable program code that automatically evaluates ones of a plurality of diagnostic rules based on the obtained first set of network performance data to identify a second set of network performance data to be collected, wherein the ones of the plurality of diagnostic rules include computer readable program code configure to poll nodes to obtain network performance data, computer readable program code configured to obtain network performance data and/or computer readable program code configured to diagnose a problem based on network performance data.

40. The computer program product of claim 39 further comprising:

computer readable program code that obtains the second set of network performance data; and

computer readable program code that evaluates ones of the plurality of diagnostic rules based on the second set of network performance data to identify a third set of network performance data to be collected.

41. The computer program product of claim 40 further comprising computer readable program code that repeatedly evaluates and the identifies until none of the plurality of rules identifying further network performance data to be collected is satisfied.

42. The computer program product of claim 39 wherein at least one of the plurality of diagnostic rules generates a network performance diagnosis when none of the plurality of rules identifying further network performance data to be collected is satisfied.

43. The computer program product of claim 39 further comprising computer readable program code that generates network traffic between the first node and the second node.

44. The computer program product of claim 39 wherein the computer readable program code that determines a path of a communication connection comprises computer readable program code that generates network traffic between the first node and the second node using a real-time transport protocol (RTP) datagram.

45. The computer program product of claim 44 wherein the RTP datagram includes voice over internet protocol (VoIP) data.

46. The computer program product of claim 39 wherein ones of the plurality of diagnostic rules identifying further network performance data to be collected are selected from the group consisting of:

if the path of a communication connection between the first node and the second node has been determined and end-to-end delay network performance data fails to meet a performance criteria, then poll ones of the nodes to obtain network performance data associated with the ones of the nodes;

if at least one of the nodes of the path is located in a WAN, then poll the at least one of the nodes of the path for network performance data associated with the at least one of the nodes of the path; and

if at least one valid node exists on the path of the communication connection, then obtain network performance data associated with the at least one valid node of the path.

47. The computer program product of claim 46 wherein at least one of the plurality of rules that generates a performance diagnosis when none of the plurality of rules identifying further network performance data to be collected is satisfied are selected from the group consisting of:

if a path has been determined and the end-to-end delay does not satisfy a performance criteria, then diagnose an end-to-end delay problem;

if obtained network performance data fails to satisfy a performance criteria associated with end-to-end jitter buffer loss, then diagnose an end-to-end jitter buffer loss problem;

if obtained network performance data fails to satisfy a performance criteria associated with end-to-end MOS, then diagnose an end-to-end MOS problem;

if obtained network performance data fails to satisfy a performance criteria associated with end-to-end jitter, then diagnose an end-to-end jitter problem;

if obtained network performance data fails to satisfy a performance criteria associated with end-to-end loss, then diagnose an end-to-end loss problem;

if the network performance data associated with the at least one valid node of the path has been obtained and the network performance data associated with the at least one valid node of the path fails to satisfy a configuration criteria, then diagnose bad configuration settings associated with the at least one valid node of the path that fails to satisfy a configuration criteria;

if the polling of ones of the nodes of the path has been completed and network performance data associated with the ones of nodes of the path fails to satisfy an associated performance criteria, then diagnose loss rate network performance data associated with ones of the plurality of nodes as failing to satisfy the associated performance criteria;

if the polling of ones of the nodes of the path has been completed and network performance data associated with the ones of nodes of the path fails to satisfy an associated performance criteria, then diagnose bandwidth network performance data associated with ones of the plurality of nodes as failing to satisfy the associated performance criteria; and

if the polling of ones of the nodes of the path has been completed and network performance data associated with the ones of nodes of the path fails to satisfy an associated performance criteria, then diagnose queue length network performance data associated with ones of the plurality of nodes as failing to satisfy the associated performance criteria.

Assignments (20)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2026
From: NETIQ CORPORATION
To: MICRO FOCUS LLC
Reel/Frame 073758/0696 →
RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.)
Reel/Frame 062623/0009 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →
RELEASE OF SECURITY INTEREST RECORDED AT 028253/0105 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NETIQ CORPORATION
Reel/Frame 034448/0716 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028253/0127 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NETIQ CORPORATION
Reel/Frame 034449/0636 →
GRANT OF PATENT SECURITY INTEREST FIRST LIEN Recorded May 23, 2012
From: NETIQ CORPORATION
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028253/0105 →
GRANT OF PATENT SECURITY INTEREST SECOND LIEN Recorded May 23, 2012
From: NETIQ CORPORATION
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028253/0127 →
RELEASE OF SECURITY INTEREST IN PATENTS SECOND LIEN (RELEASES RF 026275/0094) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NETIQ CORPORATION
Reel/Frame 028253/0067 →
RELEASE OF SECURITY INTEREST IN PATENTS FIRST LIEN (RELEASES RF 026268/0088) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NETIQ CORPORATION
Reel/Frame 028253/0051 →
GRANT OF PATENT SECURITY INTEREST (SECOND LIEN) Recorded May 13, 2011
From: NETIQ CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026275/0094 →
GRANT OF PATENT SECURITY INTEREST Recorded May 12, 2011
From: NETIQ CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 026268/0088 →
RELEASE OF PATENTS AT REEL/FRAME NO. 017870/0337 Recorded May 2, 2011
From: CREDIT SUISSE, CAYMAN ISLANDS BRANCH, AS SECOND LIEN COLLATERAL AGENT
To: NETIQ CORPORATION
Reel/Frame 026213/0227 →
RELEASE OF PATENTS AT REEL/FRAME NO. 017858/0963 Recorded May 2, 2011
From: CREDIT SUISSE, CAYMAND ISLANDS BRANCH, AS FIRST LIEN COLLATERAL AGENT
To: NETIQ CORPORATION
Reel/Frame 026213/0234 →
GRANT OF PATENT SECURITY INTEREST (SECOND LIEN) Recorded Jul 4, 2006
From: NETIQ CORPORATION
To: CREDIT SUISSE, CAYMAN ISLANDS BRANCH, AS SECOND LIEN COLLATERAL AGENT
Reel/Frame 017870/0337 →
GRANT OF PATENT SECURITY INTEREST (FIRST LIEN) Recorded Jun 30, 2006
From: NETIQ CORPORATION
To: CREDIT SUISSE, CAYMAN ISLANDS BRANCH, AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 017858/0963 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2003
From: SELVAGGI, CHRISTOPHER DAVID; SCHUMACHER, MICHAEL TOD; WOOD, JOHN LEE
To: NETIQ CORPORATION
Reel/Frame 014790/0776 →