System and method for network topology discovery
First Claim
1. In a computer network, a method for discovering information about a topology of the network, comprising:
- training a switch with a training message sent from a first computer so that the switch knows a training address, the training address comprising an address that is known by the switch, such that the switch can use the training address as a base in determining which other computers have access to the training address;
probing with a probe message sent from a second computer to the training address;
determining which other computer or computers in the network see the probe message;
detecting at least one segment in the network, the detecting including placing a plurality of computers in the network into a promiscuous mode, selecting a master computer, and, at each computer other than the master computer;
a) sending a packet to the master computer;
b) recording any packet observed from another computer sent to the master computer; and
c) reporting the source address of each packet observed; and
collecting the source addresses of the packets observed in order to determine which computers see which other computer or computers in the network.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for discovering network topology by various switch training and probing methods. Segments are discovered by having computers enter a promiscuous mode and determining from packets sent to a selected computer which computers see which other computers in the network. From the segments, various switch interconnections are determined, by having different computers train switches as to a training address and seeing which computers receive probe packets sent to that training address from another computer. Various training and probing methods are described that locate intermediate segments, deep switches, switch interconnections, and edge and singleton cases. In one implementation, a master computer coordinates the other computers (and devices) in the network to send the training and probing packets, and report on received packets, in order to determine the network topology.
51 Citations
73 Claims
-
1. In a computer network, a method for discovering information about a topology of the network, comprising:
-
training a switch with a training message sent from a first computer so that the switch knows a training address, the training address comprising an address that is known by the switch, such that the switch can use the training address as a base in determining which other computers have access to the training address; probing with a probe message sent from a second computer to the training address; determining which other computer or computers in the network see the probe message; detecting at least one segment in the network, the detecting including placing a plurality of computers in the network into a promiscuous mode, selecting a master computer, and, at each computer other than the master computer; a) sending a packet to the master computer; b) recording any packet observed from another computer sent to the master computer; and c) reporting the source address of each packet observed; and
collecting the source addresses of the packets observed in order to determine which computers see which other computer or computers in the network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. In a computer network, a method of detecting at least one segment in the network comprising:
-
placing a plurality of computers in the network into a promiscuous mode; selecting a collector computer; at each computer other than the collector computer a) sending a packet to the collector computer; b) recording any packet observed from another computer sent to the collector computer; and c) reporting the source address of each packet observed; collecting the source addresses of the packets observed; and determining which computers see which other computer or computers in the network based on the source addresses collected. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. In a computer network, a system for determining the topology of the network, comprising:
-
a master computer, the master computer directing other computers in the network to send training packets, to send probe packets, and to report which probe packets were received at the other computers, wherein the master computers optimizes the directions to the other computers by performing operations including, remembering the topology of the network from one instance of discovering network topology to the next, and, when there is a freedom in the order of giving directions to the other computers, selecting an order which would be most efficient if the network topology were alike to the previous instance of discovering network topology; a collector for collecting information from the other computers including data corresponding to each probe packet received at each other computer; and an analysis mechanism, the analysis mechanism determining the topology of the network based on the information from the other computers. - View Dependent Claims (29, 30, 31, 32, 33, 34)
-
-
35. In a computer network, a method for discovering information about a topology of the network, comprising:
-
determining the segments in the network which contain at least one computer; training a portion of the network with at least one training message sent from one or more of the computers in the network so that the switches in the portion of the network know at least some training address, the training address comprising an address that is known by the switch, such that the switch can use the training address as a base in determining which other computers have access to the training address; probing with at least one probe message sent from one or more of the computers in the network; determining which computer in the network sees which of the probe message or messages determining which switches and segments are found together in an island, including; putting a first segment in a first proposed island; for each other segment; determining whether that segment shares a switch with any segment already in a proposed island, and a) if so, merging the segment into that proposed island, and b) if not, creating a new proposed island, and wherein when each segment has been put in a proposed island, maintaining information such that each of the proposed island is an actual island in the network. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. In a computer network, a method comprising:
-
discovering information about a topology of the network, including sending and receiving training packets and probe packets using addresses distinct from those belonging to any computer on the network, where the addresses used in the packets are fresh addresses which have never been used on the network before and are not known to the network because they have not been used on the network recently; reporting which probe packets were received at the computers in the computer network, including remembering the topology of the network from one instance of discovering network topology to the next and selecting an order which would be most efficient if the network topology were alike to the previous instance of discovering network topology; and choosing addresses from a range apportioned into generations, using the addresses from a portion of the generation which is least recently used, and remembering the generation which is least recently used. - View Dependent Claims (47, 48)
-
-
49. In a computer network, a method comprising:
-
discovering information about a topology of the network, including training a portion of the network with at least one training message sent from one or more of the computers in the network so that the switches in the portion of the network know at least some training address, the training address comprising an address that is known by the switch, such that the switch can use the training address as a base in determining which other computers have access to the training address; probing with at least one probe message sent from one or more of the computer in the network; determining which computer in the network sees which of the probe message or messages; detecting at least one segment in the network, the detecting including placing a plurality of computers in the network into a promiscuous mode, selecting a master computer, and, at each computer other than the master computer; a) sending a packet to the master computer; b) recording any packet observed from another computer sent to the master computer; and c) reporting the source address of each packet observed; and collecting the source addresses of the packets observed in order to determine which computers see which other computer or computers in the network. - View Dependent Claims (50, 51, 52, 53, 54, 55)
-
-
56. In a computer network, a method for discovering information about a topology of the network, comprising:
-
training a switch with a training message sent from a first computer so that the switch knows a training address, the training address comprising an address that is known by the switch, such that the switch can use the training address as a base in determining which other computers have access to the training address; probing with a probe message sent from a second computer to the training address; determining which other computer or computers in the network see the probe message; detecting at least one segment in the network; determining a segment leader for each segment; determining whether there is an intermediate segment between switches, including, selecting a segment leader as a distinguished computer that is of a different segment than the master computer, at each segment leader other than the distinguished computer; a) sending a packet to distinguished computer; b) recording any packet observed from another segment leader sent to the distinguished computer; and c) reporting the source address of each packet observed; collecting the source addresses of the packets observed; and determining whether the master computer'"'"'s segment is asymmetric, and if so, determining that the master computer'"'"'s segment is an intermediate segment. - View Dependent Claims (57, 58, 59, 60, 61, 62, 63, 64)
-
-
65. In a computer network, a system for determining the topology of the network, comprising:
-
a master computer, the master computer directing other computers in the network to send training packets, to send probe packets, and to report which probe packets were received at the other computers, wherein the master computer discovers the other computers on the network by sending at least one packet asking other computers to identify themselves to the master, and the other computers sending at least one packet identifying themselves to the master computer and wherein only one master is allowed to be active at a time on the network, wherein one master computer receives a packet from another master computer asking other computers to identify themselves and the one master computer responds with a packet indicating that there is already a master computer present, and wherein any other computer already identified with another master computer may send a packet indicating that it is already identified to another master computer; a collector for collecting information from the other computers including data corresponding to each probe packet received at each other computer; an analysis mechanism, the analysis mechanism determining the topology of the network based on the information from the other computers. - View Dependent Claims (66, 67, 68, 69, 70, 71, 72, 73)
-
Specification