Method and apparatus for concurrent topology discovery
First Claim
1. A computer-implementable method for discovering the topology of a network, comprising:
- receiving a first list of node entries, each of the node entries comprising a unique node identifier representing a known node;
performing operations on the unique node identifier of the node entries to partition the node entries into a plurality of node groups;
assigning a first node discovery agent to a first group of nodes and a second node discovery agent to a second group of nodes, the first and second node discovery agents operable to collect node information from a node;
collecting node information from a first node, the node information collected by the first node discovery agent and describing a connection between the first node and a second node;
appending the node information to a second list of node entries; and
processing the second list of node entries to generate a network topology;
determining if the node identifier of the second node is listed in the first list;
performing operations on the unique node identifier of the second node to determine its assignment to a node group if the node identifier of the second node is not listed in the first list;
appending the second node to the determined node group; and
,collecting node information from the second node, the node information collected by the node discovery agent assigned to the determined node group and describing a connection between the second node and a third node; and
whereinhash operations are performed on the unique node identifier to generate a hash value, the hash value operable to be used to partition the node entries into a plurality of node groups.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system and computer-usable medium for discovering the topology of a network by using multiple discovery agents operating in parallel. A NodeList containing information about known nodes in a target network is received. The number (‘K’) of discovery agents to be used is determined, where 1<=K<=TotalNumberOfNodes). The nodes are partitioned into node groups, each of which has a group identifier respectively assigning it to a discovery agent ‘M’ where 1<=M<=K. A GraphList is created to hold information about known and discovered nodes. Each entry in the NodeList list is processed by its assigned discovery agent ‘M’, which sends probe messages to the target node to determine the node identifiers of discovered neighboring nodes.
17 Citations
14 Claims
-
1. A computer-implementable method for discovering the topology of a network, comprising:
-
receiving a first list of node entries, each of the node entries comprising a unique node identifier representing a known node; performing operations on the unique node identifier of the node entries to partition the node entries into a plurality of node groups; assigning a first node discovery agent to a first group of nodes and a second node discovery agent to a second group of nodes, the first and second node discovery agents operable to collect node information from a node; collecting node information from a first node, the node information collected by the first node discovery agent and describing a connection between the first node and a second node; appending the node information to a second list of node entries; and processing the second list of node entries to generate a network topology; determining if the node identifier of the second node is listed in the first list; performing operations on the unique node identifier of the second node to determine its assignment to a node group if the node identifier of the second node is not listed in the first list; appending the second node to the determined node group; and
,collecting node information from the second node, the node information collected by the node discovery agent assigned to the determined node group and describing a connection between the second node and a third node; and
whereinhash operations are performed on the unique node identifier to generate a hash value, the hash value operable to be used to partition the node entries into a plurality of node groups. - View Dependent Claims (2, 3, 4)
-
-
5. A system comprising:
-
a processor; a data bus coupled to the processor; and a computer-usable medium embodying computer program code, the computer-usable medium being coupled to the data bus, the computer program code discovering the topology of a network and comprising instructions executable by the processor and configured for; receiving a first list of node entries, each of the node entries comprising a unique node identifier representing a known node; performing operations on the unique node identifier of the node entries to partition the node entries into a plurality of node groups; assigning a first node discovery agent to a first group of nodes and a second node discovery agent to a second group of nodes, the first and second node discovery agents operable to collect node information from a node; collecting node information from a first node, the node information collected by the first node discovery agent and describing a connection between the first node and a second node; appending the node information to a second list of node entries; processing the second list of node entries to generate a network topology; determining if the node identifier of the second node is listed in the first list; performing operations on the unique node identifier of the second node to determine its assignment to a node group if the node identifier of the second node is not listed in the first list; appending the second node to the determined node group; and
,collecting node information from the second node, the node information collected by the node discovery agent assigned to the determined node group and describing a connection between the second node and a third node; and
whereinhash operations are performed on the unique node identifier to generate a hash value, the hash value operable to be used to partition the node entries into a plurality of node groups. - View Dependent Claims (6, 7, 8)
-
-
9. A non-transitory computer-usable medium embodying computer program code, the computer program code comprising computer executable instructions configured for:
-
receiving a first list of node entries, each of the node entries comprising a unique node identifier representing a known node; performing operations on the unique node identifier of the node entries to partition the node entries into a plurality of node groups; assigning a first node discovery agent to a first group of nodes and a second node discovery agent to a second group of nodes, the first and second node discovery agents operable to collect node information from a node; collecting node information from a first node, the node information collected by the first node discovery agent and describing a connection between the first node and a second node; appending the node information to a second list of node entries; processing the second list of node entries to generate a network topology; determining if the node identifier of the second node is listed in the first list; performing operations on the unique node identifier of the second node to determine its assignment to a node group if the node identifier of the second node is not listed in the first list; appending the second node to the determined node group; and
,collecting node information from the second node, the node information collected by the node discovery agent assigned to the determined node group and describing a connection between the second node and a third node; and
whereinhash operations are performed on the unique node identifier to generate a hash value, the hash value operable to be used to partition the node entries into a plurality of node groups. - View Dependent Claims (10, 11, 12, 13, 14)
-
Specification