This invention relates to the field of communication network topology. More specifically, this invention relates to determining topology of a dynamic network.
WO 2005/053230 provides a method and a system for collecting information relating to a communication network. Data conveyed by nodes operating in the communication network is detected in a manner that is transparent to the nodes. The detected data is analyzed for identifying information relating to the communication network and for identifying missing information. In order to complete the missing information, one or more of the nodes are queried.
Collecting information relating to a communication network is dealt with not only in patent publications. To this end, see, for example, the article “The Present and Future of Xprobe2, The Next Generation of Active Operating System Fingerprinting” (Ofir Arkin et al., published on the Internet in July 2003, see http://www.sys-security.com/archive/papers/Present and Future Xprobe2-v1.0.pdf) describing a system performing active operating system fingerprinting. According to The Present and Future of Xprobe2, active operating system fingerprinting is the process of actively determining a targeted network node's underlying operating system by probing the targeted system with several packets and examining the response(s) received.
“Topology discovery for Large Ethernet Networks” (Bruce Lowekamp et al., SIGCOMM '01, Aug. 27-31, 2001, San Diego, Calif., USA) teaches how to determine the connection between a pair of bridges that share forwarding entries for only three hosts, requiring access to only one endpoint to perform the queries needed for topology discovery.
“Topology discovery in heterogeneous IP networks” (Y. Breitbart et al., in proceedings of INFOCOM 2000, March 2000) describes discovering physical topology in heterogeneous (i.e., multi-vendor) IP networks, relying on standard SNMP MIB information. The method of Breitbard et al. can discover the physical network topology in time that is roughly quadratic in the number of network elements.
“Physical Topology Discovery for Large Multi-Subnet Networks” (Y. Bejerano et al., in proceedings of INFOCOM 2003) describes an algorithmic solution for discovering the physical topology of a large, heterogeneous Ethernet network comprising multiple subnets as well as dumb or uncooperative network elements. The algorithm relies on standard SNMP MIB information.
The invention provides a method for determining topology of a dynamic network in respect of which there is maintained network data containing (a) node data representing a set of nodes, (b) address data representing a respective MAC (Media Access Control) address of each node and (c) connectivity data representing a respective connectivity of each node, the method comprising:
cyclically monitoring the dynamic network so as to determine during each cycle new nodes that have been connected to the dynamic network since a previous cycle and vanished nodes that have been disconnected from the dynamic network since the previous cycle;
determining the respective connectivity of each new node by identifying a port in a switch to which the respective new node is connected;
augmenting said network data so as to include node data representative of the new nodes, and the respective address data and connectivity data of each new node; and
removing node data representative of each vanished node as well its respective address data and connectivity data from said network data;
whereby at the end of each cycle the respective connectivity data of all nodes in said set are indicative of the respective network topology.
The invention further provides an apparatus for determining topology of a dynamic network, the apparatus comprising:
a memory device for maintaining network data containing (a) node data representing a set of nodes, (b) address data representing a respective MAC (Media Access Control) address of each node and (c) connectivity data representing a respective connectivity of each node,
a monitoring module for cyclically monitoring the dynamic network so as to determine during each cycle new nodes that have been connected to the dynamic network since a previous cycle and vanished nodes that have been disconnected from the dynamic network since the previous cycle;
a connectivity determining module for determining the respective connectivity of each new node by identifying a port in a switch to which the respective new node is connected;
a network data augmenting module for augmenting said network data so as to include node data representative of the new nodes, and the respective address data and connectivity data of each new node; and
a network data removing module for removing node data representative of each vanished node as well its respective address data and connectivity data from said network data.
In order to understand the invention and to see how it may be carried out in practice, embodiments will now be described, by way of non-limiting example only, with reference to the accompanying drawings, in which:
In the following description components that are common to more than one figure will be referenced by the same reference numerals,
Hereinafter, every element coupled to a network will be considered as a node, including switches and routers. According to the invention, each node is characterized, amongst other things, by a classification indicative of the type of the node, wherein a node can be classified, e.g., as a switch, a router, a host, a printer, a terminal, etc. In addition, switches and routers are joined under a single super-classification constituting “connecting nodes”. All other nodes constitute together “end nodes”.
The term “connectivity data” is used for describing a first node and a second node coupled thereto. If the first node is a connecting node, “connectivity data” refers to a port in the connecting node and the node coupled thereto. Even further, “connectivity data of a node” refers to the node and another node (or port) coupled thereto. The respective connectivity data of all the nodes being part of a network are indicative of the respective network topology.
It is noted that
According to the embodiment, the topology detector 101 maintains node data representing a set of nodes being part of a network. In the example of
In addition, the topology detector 101 maintains address data representing a respective MAC (Media Access Control) address of each node and connectivity data representing a respective connectivity of each node. The node data, address data and connectivity data constitute together “network data”. While it appears as if the MAC address of each node can be determined, e.g., in accordance with WO 2005/053230, it can be mistakenly considered that connectivity data of all the nodes in a network can be determined, e.g., in accordance with the articles “Topology discovery for Large Ethernet Networks” or in accordance with “Topology discovery in heterogeneous IP networks”.
It should be appreciated that a topology detector 101 operating in accordance with WO 2005/053230, applies passive and active methods for collecting information. Therefore the topology detector 101 has two connections coupling it to the network 102.
However, it should be appreciated that a network (such as network 102) can be a “dynamic network” wherein “new nodes” can connect thereto from time to time, while “vanished nodes” can disconnect therefrom. The embodiment illustrated hereinafter provides a method for determining topology of a dynamic network.
Then, on 202, the topology detector 101 determines the connectivity data respective of each node in the node data, e.g., in accordance with “Topology discovery for Large Ethernet Networks” or “Topology discovery in heterogeneous IP networks”. Similarly to the node data and to the address data, the topology detector stores the connectivity data in a memory device accessible thereto. Like the previously mentioned memory devices, the present memory device can also be a short term memory device or a long term memory device.
Because the network is a dynamic network, it has to be cyclically monitored, thus determining on 203 during each cycle new nodes that have been connected to the network since a previous cycle and vanished nodes that have been disconnected from the dynamic network since the previous cycle. On 204 the topography detector 101 determines the respective connectivity of each new node determined on 203, and on 205 it augments the network data so as to include node data representative of the new nodes, and the respective address data and connectivity data of each new node. On 206 node data representative of each vanished node as well its respective address data and connectivity data is removed from the network data.
It should be appreciated that the flowchart of
It should also be appreciated that the topology detector can cyclically monitory the dynamic network in near real time mode. In this case, the operating system can provide the cyclicality, e.g., by polling a file descriptor.
Turning now to determining connectivity data on 202, for each connecting device the connectivity of each port is classified, wherein possible port classifications are “inter-switch connecting port”, “switch-router connecting port” and “end-node port”. An inter-switch connecting port is a port on a switch, in use for connecting to another switch. In the example
Each port represented in the port data is processed and on 404 its respective classification is checked. If the port is an end-node port, this implies on 405 that the new node is directly coupled to this port and hence to the presently processed connecting node. On the other hand, if on 404 the port's classification is determined to be an inter-switch port or a switch-router port, this implies that the coupling is indirect and the flowchart continues processing other ports on the presently processed connecting node, or on other connecting nodes, looking for a direct coupling with the new node.
It should be appreciated that upon determining on 405 that one connecting node is directly coupled to the new node, connectivity of the new node is determined by the coupling of the new node to the port in the connecting node. Returning to 205 on
Yet, it should be appreciated that upon connecting a new connecting node to the network, at least one port of the new connecting node is directly coupled with at least one port of a connecting node being part of the network. However, since classification of the new connecting node reveals that the new node is a connecting node, those versed in the art might appreciate that the flowchart of
In an alternative embodiment, upon obtaining an indication that a new connecting node has been connected to the network, the topography detector will reset the network data, thus returning to 201 in
It can be appreciated that the flowchart of
It was mentioned earlier, with reference to
According to one embodiment, the monitoring module 602 is able to perform 203 of
Yet, according to another embodiment, the connectivity determining module 603, can operate, e.g., in accordance with the flowchart illustrated in
It will also be understood that the apparatus according to the invention may be a suitably programmed computer. Likewise, the invention contemplates a computer program being readable by a computer for executing the method of the invention. The invention further contemplates a machine-readable memory tangibly embodying a program of instructions executable by the machine for executing the method of the invention.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IL07/00654 | 5/30/2007 | WO | 00 | 12/1/2008 |
Number | Date | Country | |
---|---|---|---|
60808984 | May 2006 | US |