IP Library Granted Patent US 10,355,962
Granted Patent B2
US 10,355,962 · App. 14/176,644 · Granted Jul 16, 2019

Network topology generation using traceroute data

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 10,355,962
App. No.
14/176,644
Granted
Jul 16, 2019
Kind
B2
Abstract

Embodiments provide systems, methods, and computer program products for inferring node and link information from traceroute data in order to generate topology information. A system receives traceroute data for a data packet that traverses a path from a source to a destination. The system infers port types for the addresses in the traceroute data and groups subsets of the addresses in the traceroute data into logical nodes based on neighbor relationships demonstrated in backward and forward neighbors sets. The system then generates node and link information based on the inferred and grouped information.

Claims (69)

1. A method for generating a network topology, comprising:

receiving traceroute data corresponding to a data packet traversing a path from a source address to a destination address via a plurality of intermediate addresses;

using the traceroute data to assign a port type to each address in a set of addresses comprising the source address, the destination address and the plurality of intermediate addresses, wherein said using the traceroute data to assign the port type to each address comprises:

determining a name for the address;

parsing the name for the address to obtain a parsed name;

mapping a portion of the parsed name to an entry in a dictionary of port type information; and

assigning a first port type specified in the entry to the address;

grouping a subset of the source address, the destination address, and the plurality of intermediate addresses into a logical node based on generated backward neighbors sets and forward neighbors sets, the logical node comprising grouped node information; and

generating node and link relationships between the source address, the destination address, and the plurality of intermediate addresses based on the assigned port types and the grouped node information.

2. The method of claim 1 , further comprising:

determining geographic locations for the source address, the destination address, and each of the plurality of intermediate addresses; and

generating the node and link relationships further based on the geographic locations.

3. The method of claim 1 , wherein determining the name further comprises:

performing a reverse domain name system (DNS) lookup for the source address, the destination address, and each of the plurality of intermediate addresses.

4. The method of claim 1 , wherein said grouping further comprises:

grouping addresses in each backward neighbors set as a separate logical node for each of the source address, the destination address, and the plurality of intermediate addresses.

5. The method of claim 4 , further comprising:

checking for a mismatch between node numbers assigned to addresses in one of the backward neighbors sets;

obtaining a geographic location for a mismatched address in the one of the backward neighbors sets in response to detecting the mismatched address; and

comparing the obtained geographic location to geographic locations of other backward neighbors sets.

6. The method of claim 5 , further comprising:

assigning the mismatched address a node number associated with another backward neighbors set in response to a match with the other backward neighbors set; and

assigning the mismatched address a node number associated with a majority of the addresses in the one of the backward neighbors sets in response to no match.

7. The method of claim 1 , wherein the source address, the destination address, and the plurality of intermediate addresses represent ingress ports, the method further comprising:

inferring an egress address for the logical node based on subnet information derived from an address in the forward neighbors sets.

8. A system for generating a network topology, comprising:

a processor; and

a non-transitory computer-readable storage medium storing instructions that, when executed by the processor, causes the system to perform a method comprising:

receiving traceroute data, the traceroute data corresponding to a data packet traversing a path from a source address to a destination address via a plurality of intermediate addresses;

using the traceroute data to assign a port type to each address in a set of addresses comprising the source address, the destination address and the plurality of intermediate addresses, wherein said using the traceroute data to assign the port type to each address comprises:

determining a name for the address;

parsing the name for the address to obtain a parsed name;

mapping a portion of the parsed name to an entry in a dictionary of port type information; and

assigning a first port type specified in the entry to the address;

grouping a subset of a source address, a destination address, and a plurality of intermediate addresses from the traceroute data into a logical node based on generated backward neighbors sets and forward neighbors sets; and

generating node and link relationships between the source address, the destination address, and the plurality of intermediate addresses based on the assigned port types and the grouped node information.

9. The system of claim 8 , wherein the method performed by the system further comprises:

grouping addresses in each backward neighbors set as a separate logical node for each of the source address, the destination address, and the plurality of intermediate addresses.

10. The system of claim 9 , wherein the method performed by the system further comprises:

checking for a mismatch between node numbers assigned to addresses in one of the backward neighbors sets;

obtaining a geographic location for a mismatched address in the one of the backward neighbors sets in response to detecting the mismatched address; and

comparing the obtained geographic location to geographic locations of other backward neighbors sets.

11. The system of claim 10 , wherein the method performed by the system further comprises:

assigning the mismatched address a node number associated with another backward neighbors set in response to a match with the other backward neighbors set; and

assigning the mismatched address a node number associated with a majority of the addresses in the one of the backward neighbors sets in response to no match.

12. A method, comprising:

generating, based on traceroute data, a backward neighbors set for each of a source address, a destination address, and a plurality of intermediate addresses, wherein the traceroute data corresponds to a data packet traversing a path from the source address to the destination address via the plurality of intermediate addresses;

grouping addresses in each backward neighbors set as a separate logical node for each of the source address, the destination address, and the plurality of intermediate addresses;

checking for a mismatch between node numbers assigned to addresses in one of the backward neighbors sets;

obtaining a geographic location for a mismatched address in the one of the backward neighbors sets in response to detecting the mismatched address; and

comparing the obtained geographic location to geographic locations of other backward neighbors sets.

13. The method of claim 12 , further comprising: assigning the mismatched address a node number associated with another backward neighbors set in response to a match with the other backward neighbors set; and assigning the mismatched address a node number associated with a majority of addresses in the one of the backward neighbors sets in response to no match.

14. The method of claim 12 , wherein the source address, the destination address, and the plurality of intermediate addresses represent ingress ports, the method further comprising:

generating, based on the traceroute data, a forward neighbors set for each of the source address, the destination address, and the plurality of intermediate addresses; and

inferring an egress address for the separate logical node based on subnet information derived from an address in the forward neighbors set.

15. The method of claim 12 , wherein the logical node comprises grouped node information, the method further comprising:

generating node and link relationships between the source address, the destination address, and the plurality of intermediate addresses based on the grouped node information.

16. A non-transitory computer-readable storage medium having control logic recorded thereon that, when executed by a processor, causes the processor to perform a method for generating a network topology in a server, the method comprising:

generating, based on traceroute data, a backward neighbors set for each of a source address, a destination address, and a plurality of intermediate addresses, wherein the traceroute data corresponds to a data packet traversing a path from the source address to the destination address via the plurality of intermediate addresses;

grouping addresses in each backward neighbors set as a separate logical node for each of the source address, the destination address, and the plurality of intermediate addresses;

checking for a mismatch between node numbers assigned to addresses in one of the backward neighbors sets;

obtaining a geographic location for a mismatched address in the one of the backward neighbors sets in response to detecting the mismatched address; and

comparing the obtained geographic location to geographic locations of other backward neighbors sets.

17. The non-transitory computer-readable storage medium of claim 16 , the method further comprising: assigning the mismatched address a node number associated with another backward neighbors set in response to a match with the other backward neighbors set; and assigning the mismatched address a node number associated with a majority of addresses in the one of the backward neighbors sets in response to no match.

18. The non-transitory computer-readable storage medium of claim 16 , wherein the source address, the destination address, and the plurality of intermediate addresses represent ingress ports, the method further comprising:

generating, based on the traceroute data, a forward neighbors set for each of the source address, the destination address, and the plurality of intermediate addresses; and

inferring an egress address for the separate logical node based on subnet information derived from an address in the forward neighbors set.

19. The non-transitory computer-readable storage medium of claim 16 , wherein the logical node comprises grouped node information, the method further comprising:

generating node and link relationships between the source address, the destination address, and the plurality of intermediate addresses based on the grouped node information.

Assignments (14)
RELEASE OF SECURITY INTEREST Recorded Aug 11, 2023
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC; RIVERBED HOLDINGS, INC.
Reel/Frame 064673/0739 →
CHANGE OF NAME Recorded Feb 18, 2022
From: RIVERBED TECHNOLOGY, INC.
To: RIVERBED TECHNOLOGY LLC
Reel/Frame 059232/0551 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0169 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0108 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0046 →
SECURITY INTEREST Recorded Dec 10, 2021
From: RIVERBED TECHNOLOGY LLC (FORMERLY RIVERBED TECHNOLOGY, INC.); ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
Reel/Frame 058486/0216 →
PATENT SECURITY AGREEMENT Recorded Oct 27, 2021
From: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 057943/0386 →
PATENT SECURITY AGREEMENT SUPPLEMENT - FIRST LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 057810/0502 →
PATENT SECURITY AGREEMENT SUPPLEMENT - SECOND LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 057810/0559 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORED AT REEL 056397, FRAME 0750 Recorded Oct 13, 2021
From: MACQUARIE CAPITAL FUNDING LLC
To: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 057983/0356 →
SECURITY INTEREST Recorded May 26, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MACQUARIE CAPITAL FUNDING LLC
Reel/Frame 056397/0750 →
PATENT SECURITY AGREEMENT Recorded Mar 5, 2021
From: RIVERBED TECHNOLOGY, INC.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 055514/0249 →
SECURITY INTEREST Recorded May 1, 2015
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 035561/0363 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2014
From: CHANDRASHEKAR, KARTHIKEYAN; RAISSI-DEHKORDI, MAJID; WHIMPENNY, WALT; JANES, PAUL
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 032185/0162 →
Cited By (1)
US 12,445,842