WO1998018306A2 - Method and apparatus for generating a network topology - Google Patents
Method and apparatus for generating a network topology Download PDFInfo
- Publication number
- WO1998018306A2 WO1998018306A2 PCT/US1997/019485 US9719485W WO9818306A2 WO 1998018306 A2 WO1998018306 A2 WO 1998018306A2 US 9719485 W US9719485 W US 9719485W WO 9818306 A2 WO9818306 A2 WO 9818306A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- port
- computer network
- topology
- switch
- recited
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
Definitions
- This invention relates generally to computer network systems, and more particularly to methods and apparatus for determining and displaying the interconnections of devices within a computer network system.
- an example of a prior art computer network system 10 includes a first local area network ("LAN”) 12, a second LAN 14, and a wide area network (“WAN”) 16. While the distinction between a LAN (such as LANs 12 and 14) and a WAN (such as WAN 16) is not always clear, generally a LAN is used within a relatively small geographical area, such as within a building or within a small group of buildings, and a WAN is used over a large geographical area, such as within an entire county, within a state, within a country, or even worldwide. While both LANs and WANs perform somewhat similar functions in interconnecting digital devices of the network for data communication, the devices used and the architecture of these two types of networks tend to be somewhat different, as will be explained subsequently.
- LAN local area network
- WAN wide area network
- a LAN typically includes a number of “switches” 18, each having a number of “ports” 20. Some or all of the ports are connected to other devices, such as other switches 18 or to computers 22. Switches 18 (also referred to sometimes as “bridges”) serve the function of dividing the local area network 12 into distinct regions or subsets of the local area network 12 to reduce data collisions on the interconnecting media 24 of the computer system. These media 24 (which typically comprise twisted pairs of wires, coaxial cables, or optical fiber) can only carry data for one network device at a time and, in consequence, create a communications bottleneck if there are a several devices attempting to use the media at a given point in time.
- the switches 18 reduce this problem by isolating individual media 24 from other individual media 24 of the local area network 12 so that data communication on one medium does not necessarily affect data communication on another medium.
- Switches 18 operate in a theoretically rather simple fashion. When a switch 18 senses a data communication at one of its ports 20, it determines to which port, if any, it should forward the data. If, for example, the data that it sees at a particular port pertains to a device that is already coupled to that port (i.e. the sending device and the receiving device are on the same medium 24) that data will not be forwarded to the other ports of the switch, thereby eliminating unnecessary traffic on other media of the network.
- a switch receives data at a first port which is destined for a device coupled to a second port, the switch will forward (“switch") the data to that second port. In consequence, only the devices connected to the first port media and to the second port media will be affected by this data transfer. If a switch 18 receives data at a first port, but does not know which device to send the data to, it will typically send the data out all of its ports and will wait for a response from the recipient device to determine which port that device is on. The device port number is then stored in a "table" so that, in the future, data for that device will be sent directly to the correct port.
- topology means the relative physical interconnections of the various devices within a computer network system 10, within a LAN, or within a subset of a LAN. While the appropriate "domain” for the topology is typically referred to as a LAN (or a subset of a LAN), the present invention is capable of determining the topology of any set of switches that define a broadcast domain. As is well known to those skilled in the art, a “broadcast domain” is a set of devices that receive data packets sent to the broadcast address of that domain.
- the devices illustrated in the LAN 12 include the switches 18 and the computers 22. Of course, other devices can also be used in computer network system.
- one or more computers 22 are coupled to the media 24 which, in turn, are coupled to one or more ports 20 of the switches 18.
- the medium is referred to as a "shared medium.”
- a "backbone” connection i.e. medium
- the purpose of the backbone 26 is to provide very high speed communication between various switches of the local area network 12 for the rapid transfer of large quantities of data. Such backbone 26 connections are useful since switches 18, while very fast, do produce a delay or "latency" in the transmission of data.
- a WAN 16 is typically used to coupled multiple LAN networks together for data communication.
- One of the best known WANs is the so-called Internet ® which is used to couple many thousands of computers and LANs together for data communication.
- WANs typically use another type of network device known as a router 28 to direct data from one LAN to another.
- Most of the routers for the Internet are provide by Cisco Systems, Inc. of San Jose, California. However, it is becoming more prevalent to use switches (similar to switches 18) within WANs to perform this data directing function because switches are inherently faster than routers.
- Most LANS and WANS transmit data in discrete chunks called "packets."
- a router 28 of a WAN will read the destination of the data packet, and then directs the data packet either directly or indirectly to a destination LAN or other computer device.
- the Internet is the largest, best known, and most frequently used WAN in the world.
- the Internet utilizes a protocol known as TCP/IP for transmitting data through its routers. Therefore, a LAN 12 or a LAN 14 wishing to communicate over an Internet WAN 16 needs to send and receive data over a WAN connection 30 or 32 using the appropriate TCP/IP protocols.
- TCP/IP protocols By providing a universal protocol for the transmission of data over the Internet, LANs and other devices of many different types can effectively communicate with each other over a worldwide WAN.
- Fig. la is a block diagram of a typical prior art switch 18.
- a switch 18 includes logic 34, a receive buffer 36, a forwarding table 38, and a spanning tree table 40.
- the logic 34 communicates with the receive buffer 36, the forwarding table 38, the spanning tree table 40 via busses labeled 42, 44, and 46, respectively.
- busses labeled 42, 44, and 46 respectively.
- these buses 42-46 illustrate logical buses, and may physically share some or all of the same conductive lines.
- a receive buffer 36 has a number of ports "n" which are typically numbered from 0 to n-1. Some or all of these ports may be connected to the media 24 of the network.
- the logic 34 When data is received at one of the ports ⁇ 0::n-l ⁇ of the receive buffer 36, the logic 34 reads the forwarding table 38 (stored in memory) to determine to which port(s) the data should forwarded. For example, data received at port 1 may be determined by the forwarding table 38 to be destined for a device on port n-2. The logic 34 will then instruct the receive buffer 36 to forward the data from port 1 to port n-2.
- the logic 34 can also determine this from the forwarding table 38. If the destination for particular a data packet is not in the forwarding table 38, the logic 34 will instruct the receiver buffer to send the data out of all of the ports, and then will wait for a response from the destination device. When the response is received on a port of the switch, the forwarding table is updated so that, in the future, the receiving port of the switch will be associated with that device.
- a packet 48 includes a destination D address, a source S address, and the data DATA being sent. Data is typically sent on networks in "packets" to promote better sharing of the media and other resources of the network.
- the spanning tree table 40 (also stored in memory) ensures that the topology of the network assumes a "tree" structure.
- a tree structure is one that does not include loop that can create uncontrolled packet duplication on the network. Therefore, networks having switches 18 with spanning tree tables can be conclusively presumed to form orderly tree structures.
- the standard for a spanning tree is defined by the LEEE 802.1 committee in standard 802. ID, incorporated herein by reference, which is available from the Institute for Electrical and Electronic Engineers (IEEE) New York, New York.
- switches can have anywhere from a few to many hundreds of ports. When switches have only a few ports, they are often referred to as “bridges”, while if they have many ports, they are usually referred to as “switches” or “switching hubs.” In a LAN with, for example, several hundreds computer systems and perhaps a dozen switches, the number of possible interconnections number is in the many thousands.
- a method for determining the topology of a computer network includes reading port forwarding data from each device in at least a subset of a computer network. This port forwarding data is then processed and analyzed to derive the topology of at least the subset of the computer network. Preferably, the reading of the port forwarding data is preceded by discovering all the switches in the at least subset of the computer network to provide the maximum available port forwarding data for subsequent analysis.
- all of the devices are discovered by querying (i.e. "pinging") device addresses within a range of addresses that correspond to the at least subset of a computer network and monitoring for responses.
- Each responding device is categorizes as one of a configured device type (such as a switch type or a host type) and an unknown device type.
- Information about the device is store in a subnet device list, and if the device was a switch, information is also stored in a subnet switch list.
- IP Internet Protocol
- the "subnet” is a group of addresses within a broadcast domain.
- the same construct i.e. that which is referred to herein as a "subnet" is referred to as a "network.”
- a port object is created for each port of the device, along with addresses and masks associated with that port. If the device is a switch type, the address is associated with that switch type. More particularly, if the network operates with a layer 3 protocol, the address is associated with the port includes Media Access Control ("MAC") addresses and protocol addresses, and the mask comprises a subnet mask specific to the IP protocol.
- MAC Media Access Control
- the preferred method of the present invention uses a recursive function to derive the topology from the resultant port forwarding data. More particularly, the recursive function efficiently places the devices in a tree structure that permits the physical interconnections of the switches to be efficiently displayed.
- the present invention further includes a computer readable medium including program instructions for a computer system to perform the above-described method.
- an apparatus for determining the topology of a computer network in accordance with the present invention utilizes a computer system to implement the above-described method.
- the present invention is advantageous in that it operates over networks having devices of any type, and does not require the use of devices running specialized topology software for the development of the topology of the network.
- a network consultant can use a portable computer implementing the method of the present invention to connect to a local area network (either directly or indirectly through a WAN) having devices of any type and efficiently develop the topology of the network for diagnostic and/or optimization purposes.
- FIG. 1 is an example of a prior art computer network system including several local area networks (LANs) and a wide area network (WAN);
- LANs local area networks
- WAN wide area network
- Fig. la is an illustration of a prior art switch used in local area network
- FIG. 2 is an illustration of an apparatus of the present invention connect to a computer network for determining the topology of a LAN of the computer network;
- Fig. 2a is a block-diagram of the apparatus of Fig. 2;
- Fig. 3 is a flow-diagram of a process in accordance with the present invention for determining the topology of a computer network
- Fig. 4 is a flow-diagram illustrating the "Discover All Switches In A Switched LAN" of Fig. 3;
- Fig. 5 illustrates the device pointer list and switch pointer list developed by the process of the present invention;
- Figs. 5a, 5b, and 5c illustrate the device object for a generic host object, a specific switch module object, and a generic switch module object, respectively, of the present invention
- Fig. 6 is a flow-diagram illustrating the "Read Port Forwarding Data From Each Switch In LAN” step of Fig. 3;
- Fig. 6a is an illustration used to describe the operation of the process of Fig. 6;
- Fig. 7 is a flow-diagram of the "Derive Topology Of Switched LAN From Port Forwarding Data" step of Fig. 3;
- Fig. 8 is a flow-diagram of the recursive function "PlacelnSubtree" of Fig. 7;
- Fig. 9 is a flow-diagram of the method "isBelow” of Fig. 8;
- Fig. 10 is an example of a network topology that is to be discovered by the method of the present invention.
- Figs. 1 la and 1 lb illustrate the device list and the scan list for the topology of Fig. 10;
- Figs. 12a-12d illustrate the sequential development of the topology of the switched LAN using the process of Fig. 7;
- Fig. 13 illustrate the "Provide Topology Information” step of Fig. 3;
- Fig. 14 illustrates the "CreateMedia” function of Fig. 13;
- Fig. 15 illustrates a display of the topology information derived by the process of the present invention.
- an apparatus 50 of the present invention is used to determine the topology of at least the portion or subset of a broadcast domain or LAN 12.
- the apparatus 50 can be directly coupled to the LAN 12 as indicated at 52 to develop the topology of LAN 12, or it can be indirectly coupled to LAN 12 through LAN 14 as indicated at 52a or through WAN 16 as indicated at 52b to also develop the topology of the LAN 12.
- FIG. 2a A block diagram of the apparatus 50 of the present invention is illustrated in Fig. 2a. It should be noted that the block diagram of Fig. 2a is illustrative of a typical personal computer (PC) which, under the control of programming instructions implementing the method of the present invention, perform the desired functionality of the present invention. Other computer architectures capable of implementing the method present invention can also be used.
- PC personal computer
- the apparatus 50 of the present invention includes a microprocessor 54 which is coupled to a high speed memory bus 56 by a bus 58 and to an input/output (I/O) bus 60 by a bus 62.
- the microprocessor 54 can be any one of a number of commonly used microprocessor, such as an Intel "x-86" compatible microprocessor, a Motorola power PC microprocessor, a SPARC processor, etc.
- the microprocessor 54 is coupled to the memory bus 56 and the I/O bus 60 by specialized chips (not known) known as "chipsets", which control the flow of data and which performs other functions within the computer apparatus 50.
- RAM random access memory
- ROM read only memory
- RAM 64 is coupled to bus 56 by a bus 68
- ROM 66 is coupled to memory bus 56 by a bus 70.
- the RAM 64 is typically volatile or “scratch-pad” memory, while ROM is non-volatile memory which often includes the start-up instructions for "booting" the apparatus 50.
- a number of devices can be coupled to the I/O bus 60. These devices are typically referred to as "peripherals.” Examples of such peripherals include a floppy drive 72, a CD ROM drive 74, a hard disk drive 76, a network card 78, and other I/O interfaces generically shown at 80.
- peripherals 72, 74, 76, 78, and 80 are coupled to the I/O bus 60 by buses 82, 84, 86, 88, and 90, respectively.
- Some peripherals, such as floppy drive 72 and CD-ROM drive 74, are provided with removable computer readable medium. More particularly, floppy drive 72 is provided with a computer readable medium in the form of a floppy disk 92 and CD ROM drive 74 is provided with a removable computer readable medium in the form of a CD ROM disk 94.
- Hard drive 76 typically does not have a removable medium, i.e. its computer readable medium is fixed within the hard drive unit.
- Network card 78 is used to couple the apparatus 50 to a computer network, e.g. the network card 78 can be coupled to a medium 24 of the local area network 12.
- the generic I7O interface 80 can, for example, be an Ethernet card, an RS-232 port, etc., and is coupled to external devices by a bus 96.
- FIG. 2a is provided as an illustration of suitable hardware for the apparatus 50 of the present invention, and not by way of limitation.
- RAM 64, ROM 66, floppy drive 72, CD ROM 74, and hard drive 76 are more conventional "memory devices," other peripherals such as the network card 70 and I/O interface 80 also typically include buffers and other memories which can be accessed directly or indirectly by the microprocessor 50. In addition, memory can be accessed over the network via the network card 78, and from other devices over the I/O interface 80. Therefore, by “memory,” it is meant herein any form of digital storage that can be accessed directly or indirectly by the microprocessor 54. Likewise, the term “computer readable medium” will be used herein to refer any device or media that supports memory.
- Computer readable media include the floppy disk 92, the CD ROM 94, the contents of the hard drive 76, RAM 64, and ROM 66. However, the computer readable media can also be accessible over a network by the network card 78 or from other devices over the I/O interface 80.
- a process 98 in accordance with the present invention begins at 100 and, in a step 102, discovers all of the switches in at least a subset of a switched LAN.
- the port forwarding data is read from each switch in the LAN.
- the topology of the switched LAN is derived from a port forwarding data, and in a step 108, the topology information is provided. The process is then completed at 110.
- a method for determining the topology of a computer network in accordance with the present invention includes reading port forwarding data from each device in at least a subset of a computer network. This port forwarding data is then processed and analyzed to derive the topology of at least the subset of the computer network. Preferably, the reading of the port forwarding data is proceeded by discovering all the switches in the at least subset of the computer network to provide the maximum available port forwarding data for subsequent analysis.
- the topology can then be processed and displayed in any convenient form.
- the process 102 of Fig. 3 is illustrated in greater detail. More particularly, process 102 begins at 112 and an iterative loop is begun at 114.
- a counter i is initialized to 0 and is compared to the number of addresses NUM_ADDRESSES within the LAN (or subset of the LAN) of interest. These addresses are typically sequentially assigned, and start at an offset address OFFSET. If the counter i is less than total number of addresses of interest, a step 116 "pings" the device at ADDRESS(OFFSET+i). The term "ping" is well-known to those skilled in the art as meaning sending a message to the designated address (i.e. "querying" a device address) and waiting for a reply. If a reply or response is not detected by step 118 within a "timeout" period, process control is returned to the iterative loop 114 to iterate the counter i by 1.
- step 120 determines whether the MIB-II device is a recognized switch. This is determined by making an SNMP "get request" for a MLB-II object.
- step 124 determines whether the device supports "bridge MLB group." Again, the bridge MLB group is defined by the Internet Engineering Task Force ("LETF") Requests for Comments (RFCs). Also defined by the IETF RFCs are IP and subnet masks. If step 128 determines that the device supports the bridge MLB group, a generic switch module object is created in step 132. If step 128 determines that it does not support bridge MIB group, then a generic host object is created in step 130.
- TEZ Internet Engineering Task Force
- CMIP the OSI management protocol
- OSI model and its associated protocols are described, for example, in The Open Book, by Marshall Rose, which is incorporated herein by reference.
- Step 134 determines whether the device is a switch and, if so, the switch is put in the subnet switch list. If step 136 determines that the device is not a switch, or after the performance of step 138, process control is returned to the iterative loop step 1 14 to iterate the counter i. After the counter has stepped through the total number of addresses NUM_ADDRESSES, the process is completed as indicated at 140.
- Fig. 5 illustrates a data structure for the device pointer list and switch pointer list of the present invention.
- the device pointer list 142 includes a number of pointers 144 which point to the "n" devices discovered by the step 102.
- the switch pointer list 146 includes a number of pointers 148 which point to the switches discovered by step 102. It therefore follows that device pointer list 142 includes end pointers to point to devices ranging from device 0 to device n-1, i.e. from ⁇ 0::n-l ⁇ .
- the switch pointer list 146 will include fewer pointers than the device pointer list unless all of the devices are switches. In this example, device 0 is on the device pointer list, but is not on the switch pointer list because it is not a switch.
- the device object 150 is a generic host object and includes the IP address, the MAC address, the type of device, the name of device, and the number of ports of the device represented by the generic host object 150.
- the device object 152 is a specific switch module object which includes an IP address, a MAC address, the type of device, the name of device, the number of ports, and specific methods.
- device object 154 is a generic switch module object and includes the IP address, the MAC address, the type of device, the name of device, the number of ports, and generic methods.
- IP address is defined in the aforementioned LETF RFCs
- MAC address is defined in the aforementioned LEEE 802. ID standard.
- a software "object” is a construct including data and methods (i.e., specialized software procedures) which have certain attributes and which can perform designated functions in response to external calls and parameters.
- Object-oriented programming is used in the present invention in order to provide a flexible, scaleable, and powerful implementation of the processes of the present invention.
- Phase I The process or method 102 is alternately described herein as "Phase I" of the process of the present invention.
- the basic purpose of Phase I is to construct the list of device types as illustrated in Fig. 5.
- Table I a pseudo-code listing is used to illustrate the process of Fig. 4.
- the pseudo-code is readily transferable into a high-level object-oriented language such as C++.
- a counter i is initialized to 0.
- a counter j is initialized to 0 and, in a step 164, a port PORTOBJECTfj) is created.
- the MAC address, the IP address, and the subnet mask are obtained and put into the OBJECTfj).
- a step 168 determines if DEVICE(i) is a switch, and if not, process control is returned to iterative step 168 to iterate the counter j.
- a step 170 obtains a set of visible MAC addresses.
- visible it is meant that the forwarding table includes the MAC address and the port that it was last seen on. If the MAC address is not in the forwarding table for this port, it is not “visible” to this port within this definition.
- a step 172 associates the IP address to the MAC address if possible. In any subnet, an IP address is "associated with” or “bound to” only one MAC address. At any point in time, the system may "know" an IP address without knowing the associated MAC address, and vice versa.
- the "associates" or “associating" step 172 is a straightforward task, as will be appreciated by those skilled in the art.
- many devices include an ARP cache that can be queried for this association information.
- Process control is returned to iterative step 162 until the counter j is less than NUMPORT(i), at which time process control is returned to iterative loop step 168 as indicated by A.
- the counter i is equal to NUMJDEV, the iterative loop 158 is exited and the process 104 is completed as indicated at 174.
- Fig. 6A data structures created by the process 104 are illustrated.
- the 176 created by the process 104 includes the number of ports and the port list pointer for the device.
- the port list pointer points to the point list 178 which, in turn, points to the port objects 180.
- each of the port objects will point to a "Port Child List" 182 and to a "MAC Address Seen” list 184.
- the Port Child List is filled-in by process 106 of Fig. 3.
- the MAC Address Seen list 184 includes the MAC number and the associated IP address for that MAC number. In the example of Fig.
- MAC number 0 has no associated IP address
- MAC address 1 has the associated address 128.203.124.001
- MAC address 2 has no associated IP address.
- a port object is created for each port of the device, along with addresses and masks associated with that port. If the device is a switch type, the address is associated with that switch type. More particularly, if the network operates with a layer 3 protocol, the address is associated with the port includes Media Access Control ("MAC") addresses and protocol addresses, and the mask comprises a subnet mask for the IP.
- Layer 3 protocols (including protocol addresses) are defined by various organizations including the IETF, the ISO, Novell, Inc., and Apple Computer, Inc. Examples include the LETF IP, the Novell IPX, and the Apple AppleTalk layer 3 protocols.
- the process 104 of the present invention will also be referred herein as "Phase II" and, essentially, collects detailed information about the devices in the switched LAN.
- Phase II Phase II
- Table II below, the process 104 is further illustrated with pseudo-code. Again, it will apparent to those skilled in the art that this pseudo-code can be implemented in an appropriate object-oriented programming language such as C++.
- Phase II there is a collection of detailed information about all of the devices of the switched LAN. This data preferably completed in a separate pass from Phase I because it is possible to derive additional information in Phase II given the complete device list generated by
- the process 106 of Fig. 3 begins at 186 and, in a step 188, an arbitrary root r of the connectivity tree is chosen.
- the first device on the list can be chosen as the root r, or any other arbitrary device on the list can be chosen as the root r.
- the counter os is initialized to 0.
- a step 192 determines whether os is equal to the root r of the connectivity tree. If it is, process control is returned to iterative loop 190 to increment the counter os. If os is not equal to r, a recursive function PlacelnSubtree(os) for the switch os is called in step 194.
- the recursive function 194 will properly place the switch into the connectivity tree, as will be discussed in greater detail subsequently.
- process control is returned to the iterative step 190 to iterate the counter os.
- os is equal to the number of switches NUMSWITCH the process is completed as indicated in 196.
- the cursive function PlacelnSubtree is entered at 198 and, in a step 200, the variables pr and ps are initialized.
- the variable pr is the port upon which the current switch sees s .
- the variable ps is the port upon which s sees this switch.
- a function 202 isBelow is called to determine whether s is below pc, where pc is one of the children of pr.
- the function isBelow will be described in greater detail with reference to Fig. 9. Briefly, the function isBelow 202 returns a "TRUE” if s is below pc, (which is one of the children of pr) and returns a "FALSE" if s is not below pc. If the function 202 returns a TRUE, a recursive call is made to PlacelnSubtree with the parameter s which on the switch that owns pc. The process is then completed as indicated at 206.
- a step 208 gets the port per, which is the child of pr, where s is visible on per.
- a step 210 determines if all ports are processed. If not, a step 212 removes per as the child of pr and a recursive call is made to function PlacelnSubtree passing the parameter sw on switch s. The parameter "sw" is the switch to which per is attached. After the return of the function call 214, process control is returned to step 208. When step 210 determines that all ports are processed, process 194 is completed as indicated at 206.
- the function isBelow 202 is illustrated in greater detail in Fig. 9.
- the function isBelow begins at 216 and, in a step 218, variables sp and st are initialized.
- the variable sp is the switch to which p is attached.
- the variable st is the switch to which the receiver port is attached.
- a step 220 it is determined whether st sees p on the receiver port. If it does, a FALSE is returned by the function in a step 222 and the process is completed at 224.
- a step 226 gets the port pc of st which is not the receiver port.
- a step 228 determines whether all the ports are processed and, if so, a FALSE is returned in step 222 and the process is completed at 224. If all the ports have not been processed, a step 230 determines whether sp is visible on pc. "Visible" is being used as previously described. If not, process control is returned to step 226. If, however, sp is visible on pc as determined by step 230, a TRUE is returned by step 232 and the process is completed at 224. As a result, the function 222 will return a TRUE if s is below pc, and will return a FALSE if s above or on the same level as pc.
- Fig. 10 is a simple example of a network topology.
- switches R, A, B, C, D, E, and F The ports of each of the switches have been numbered.
- the switch R has three ports numbered 1 , 2, and 3.
- the switches A and B have ports numbered 1 and 2, and the switches C, D, E, and F have single ports numbered 1.
- Figs. 11a and 1 lb illustrate the device list and the scan list developed by Phases I and II of the present invention.
- the device list of Fig. 11a includes the devices R, F, C, D, B, and E.
- the scan list of Fig. 1 lb indicates what switches are seen on the various ports of the variable switches. In this list, a two-digit designation indicates the switch and port.
- port 1 of switch R is "Rl.” Therefore, in this example, Rl sees switches A and D, R2 sees switches B, E, and F, R3 sees C, Al sees R, A2 sees D, Bl sees R, B2 sees E and F, Cl sees R, FI sees R, B, and E, and Dl sees A and R.
- Rl sees switches A and D
- R2 sees switches B, E, and F
- R3 sees C
- Al sees R
- A2 sees D
- Bl sees R
- B2 sees E and F
- Cl sees R
- FI sees R, B, and E
- Dl sees A and R.
- the devices are conveniently read from the device list of Fig. 1 la in sequential order.
- the switch R is first placed as the root of the tree.
- the device F is then selected and placed in the tree by the method of step 106 such that it is below port 2 of switch R.
- Device C is then selected from the device list 11a and placed by the process 106 at R3.
- the device D is then selected from the list and placed at Rl .
- the scan list is used to determine which port of the root the subsequent switches are "seen" on, and places those subsequent switches accordingly.
- the device D is selected from the device list of Fig. 1 1a, and the process 106 determines that D is below switch A and places switch D accordingly.
- the switch B is chosen from the device list of Fig. 11a and the process 106 determines that the switch F is below switch B and places it accordingly.
- the device E is selected from the device list 11a and the process 106 determines that E is below B, but is not below F. Therefore, the devices E and F are placed at the same level below switch B.
- phase III The step 106 as described above will be also referred to herein as "Phase III.”
- Table 3 pseudo-code illustrating Phase III process is shown. Essentially, this phase III process is the derivation of the topology of the switched LAN.
- Table 4 the port method isBelow is also illustrated in pseudo-code. It will be appreciated by those skilled in the art that the pseudo-code of Tables 3 and 4 can be easily translated into an object oriented programming language such as C++.
- the objective of the method of Phase III is to derive a connectivity tree. Since there are no cycles any switch can serve as a root for this connectivity tree.
- the branches of the tree are defined by port connectivity.
- Each switch has an associated set of ports called its children.
- a child port is bound to a set of other ports which, in turn, are bound to switches.
- the switches can therefore be thought of as a parent/child hierarchy with the ports in between.
- PlacelnSubtree be a method on the class switch which places switch s into the subtree for which the receiver is the root.
- pr be the port upon which this switch sees s.
- ps be the port upon which s sees this switch If s is below pc, one of the children of pr, then call PlacelnSubtree on the switch that owns pc, passing s as a parameter else for each port per, child of pr, such that s is visible on per remove per as child of pr call PlacelnSubtree on switch s passing switch sw, the switch to which per is attached, as a parameter.
- sp be the switch that p is attached to.
- st be the switch that the receiver port is attached to.
- Process 108 begins at 234 and, in a step 236, a function call is made to CreateMedia on the root with the uplink equals null. This function call 236 will be discussed in greater detail with reference to Fig. 14.
- a step 238 updates and displays the topology of the network.
- a step 240 senses user input on the display (i.e., the display is interactive) and will update and display in step 238 in response to the user input.
- the user input can be made, for example, with a mouse or other pointing device, or by a keyboard command.
- the process 236 of Fig. 13 begins at 242, with the receipt of the parameter "u" in a step 244.
- a step 250 determines that p is not equal to u, p is added to the object M in a step 252 and a step 254 gets a child pc of p. If step 256 determines that all the children have been processed, process control is returned to iterative loop step 246 to iterate the counter i.
- step 258 adds pc to the object M. Process control is then returned to step 254. After the iterative loop step 246 determines that i is equal to NUMPORT(s), the process is then completed as indicated at step 260.
- Fig. 15 illustrates one possible display that can be produced by the step 138 of Fig. 13.
- this display there are a number of media represented at 262 and a number of ports as indicated 264.
- the display illustrated in Fig. 15 is a interactive interface preferably used in a mouse of other pointing device type system.
- the media ethernet 0 has been selected and the ports PI of two devices are indicated to be coupled to ethernetO, both graphically with the two dots 266 which connect PI ports to the ethernetO medium.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP97946331A EP0876649A4 (en) | 1996-10-28 | 1997-10-27 | Method and apparatus for generating a network topology |
JP52067998A JP2001524272A (en) | 1996-10-28 | 1997-10-27 | Method and apparatus for generating a network topology |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US74256696A | 1996-10-28 | 1996-10-28 | |
US08/742,566 | 1996-10-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO1998018306A2 true WO1998018306A2 (en) | 1998-05-07 |
WO1998018306A3 WO1998018306A3 (en) | 1998-07-16 |
Family
ID=24985343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1997/019485 WO1998018306A2 (en) | 1996-10-28 | 1997-10-27 | Method and apparatus for generating a network topology |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0876649A4 (en) |
JP (1) | JP2001524272A (en) |
WO (1) | WO1998018306A2 (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001041537A2 (en) * | 1999-12-07 | 2001-06-14 | Watchguard Technologies, Inc. | Automatically identifying subnetworks in a network |
KR20020038524A (en) * | 2000-11-16 | 2002-05-23 | 마쯔즈키 다다오 | Network building method, management report acquiring method and apparatus |
EP1339190A2 (en) * | 2002-02-26 | 2003-08-27 | Xerox Corporation | System and method for locating devices on a network |
EP1423938A1 (en) * | 2001-09-06 | 2004-06-02 | Avaya Technology Corp. | Using link state information to discover ip network topology |
US6920491B2 (en) | 2001-04-25 | 2005-07-19 | Sun Microsystems, Inc. | Fabric device configuration interface for onlining fabric devices for use from a host system |
US6965951B2 (en) | 2002-05-17 | 2005-11-15 | Sun Microsystems, Inc. | Device centric discovery and configuration for fabric devices |
US7171474B2 (en) | 2001-04-25 | 2007-01-30 | Sun Microsystems, Inc. | Persistent repository for on-demand node creation for fabric devices |
US7200646B2 (en) | 2001-04-25 | 2007-04-03 | Sun Microsystems, Inc. | System and method for on-demand node creation for fabric devices |
WO2008016861A2 (en) * | 2006-08-01 | 2008-02-07 | Rajesh Balasubramaniam | Link inference in large networks based on incomplete data |
US7478145B2 (en) | 2002-02-06 | 2009-01-13 | Siemens Aktiengesellschaft | System and method for analyzing a network and/or generating the topology of a network |
US7571239B2 (en) | 2002-01-08 | 2009-08-04 | Avaya Inc. | Credential management and network querying |
CN115242619A (en) * | 2022-06-22 | 2022-10-25 | 中国电信股份有限公司 | Method and device for establishing connection relation of equipment ports, electronic equipment and storage medium |
CN116827801A (en) * | 2023-08-25 | 2023-09-29 | 武汉吧哒科技股份有限公司 | Network topology construction method, device, computer equipment and readable storage medium |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5179554A (en) * | 1991-04-08 | 1993-01-12 | Digital Equipment Corporation | Automatic association of local area network station addresses with a repeater port |
US5261044A (en) * | 1990-09-17 | 1993-11-09 | Cabletron Systems, Inc. | Network management system using multifunction icons for information display |
US5321695A (en) * | 1991-05-01 | 1994-06-14 | Hewlett-Packard Company | Port arrival identification for computer network packets |
US5583991A (en) * | 1993-06-29 | 1996-12-10 | Bay Networks, Inc. | Method for providing for automatic topology discovery in an ATM network or the like |
US5606664A (en) * | 1990-05-21 | 1997-02-25 | Bay Networks, Inc. | Apparatus and method for automatically determining the topology of a local area network |
US5684796A (en) * | 1994-05-03 | 1997-11-04 | Bay Networks Group, Inc. | Method and apparatus for determining and maintaining agent topology information in a multi-segment network |
US5706440A (en) * | 1995-08-23 | 1998-01-06 | International Business Machines Corporation | Method and system for determining hub topology of an ethernet LAN segment |
-
1997
- 1997-10-27 JP JP52067998A patent/JP2001524272A/en not_active Ceased
- 1997-10-27 EP EP97946331A patent/EP0876649A4/en not_active Withdrawn
- 1997-10-27 WO PCT/US1997/019485 patent/WO1998018306A2/en not_active Application Discontinuation
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5606664A (en) * | 1990-05-21 | 1997-02-25 | Bay Networks, Inc. | Apparatus and method for automatically determining the topology of a local area network |
US5261044A (en) * | 1990-09-17 | 1993-11-09 | Cabletron Systems, Inc. | Network management system using multifunction icons for information display |
US5179554A (en) * | 1991-04-08 | 1993-01-12 | Digital Equipment Corporation | Automatic association of local area network station addresses with a repeater port |
US5321695A (en) * | 1991-05-01 | 1994-06-14 | Hewlett-Packard Company | Port arrival identification for computer network packets |
US5583991A (en) * | 1993-06-29 | 1996-12-10 | Bay Networks, Inc. | Method for providing for automatic topology discovery in an ATM network or the like |
US5684796A (en) * | 1994-05-03 | 1997-11-04 | Bay Networks Group, Inc. | Method and apparatus for determining and maintaining agent topology information in a multi-segment network |
US5706440A (en) * | 1995-08-23 | 1998-01-06 | International Business Machines Corporation | Method and system for determining hub topology of an ethernet LAN segment |
Non-Patent Citations (1)
Title |
---|
See also references of EP0876649A2 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103679B2 (en) | 1999-12-07 | 2006-09-05 | Watchguard Technologies, Inc. | Automatically identifying subnetworks in a network |
WO2001041537A3 (en) * | 1999-12-07 | 2002-02-14 | Watchguard Technologies Inc | Automatically identifying subnetworks in a network |
WO2001041537A2 (en) * | 1999-12-07 | 2001-06-14 | Watchguard Technologies, Inc. | Automatically identifying subnetworks in a network |
US6618755B1 (en) | 1999-12-07 | 2003-09-09 | Watchguard Technologies, Inc. | Automatically identifying subnetworks in a network |
KR20020038524A (en) * | 2000-11-16 | 2002-05-23 | 마쯔즈키 다다오 | Network building method, management report acquiring method and apparatus |
US7200646B2 (en) | 2001-04-25 | 2007-04-03 | Sun Microsystems, Inc. | System and method for on-demand node creation for fabric devices |
US7171474B2 (en) | 2001-04-25 | 2007-01-30 | Sun Microsystems, Inc. | Persistent repository for on-demand node creation for fabric devices |
US6920491B2 (en) | 2001-04-25 | 2005-07-19 | Sun Microsystems, Inc. | Fabric device configuration interface for onlining fabric devices for use from a host system |
EP1423938A4 (en) * | 2001-09-06 | 2008-12-03 | Avaya Technology Corp | Using link state information to discover ip network topology |
EP1423938A1 (en) * | 2001-09-06 | 2004-06-02 | Avaya Technology Corp. | Using link state information to discover ip network topology |
US7571239B2 (en) | 2002-01-08 | 2009-08-04 | Avaya Inc. | Credential management and network querying |
US7478145B2 (en) | 2002-02-06 | 2009-01-13 | Siemens Aktiengesellschaft | System and method for analyzing a network and/or generating the topology of a network |
US6978314B2 (en) * | 2002-02-26 | 2005-12-20 | Xerox Corporation | System and method for locating devices on a local area network |
EP1339190A3 (en) * | 2002-02-26 | 2004-04-07 | Xerox Corporation | System and method for locating devices on a network |
EP1339190A2 (en) * | 2002-02-26 | 2003-08-27 | Xerox Corporation | System and method for locating devices on a network |
US6965951B2 (en) | 2002-05-17 | 2005-11-15 | Sun Microsystems, Inc. | Device centric discovery and configuration for fabric devices |
WO2008016861A2 (en) * | 2006-08-01 | 2008-02-07 | Rajesh Balasubramaniam | Link inference in large networks based on incomplete data |
WO2008016861A3 (en) * | 2006-08-01 | 2008-07-10 | Rajesh Balasubramaniam | Link inference in large networks based on incomplete data |
CN115242619A (en) * | 2022-06-22 | 2022-10-25 | 中国电信股份有限公司 | Method and device for establishing connection relation of equipment ports, electronic equipment and storage medium |
CN116827801A (en) * | 2023-08-25 | 2023-09-29 | 武汉吧哒科技股份有限公司 | Network topology construction method, device, computer equipment and readable storage medium |
CN116827801B (en) * | 2023-08-25 | 2023-12-15 | 武汉吧哒科技股份有限公司 | Network topology construction method, device, computer equipment and readable storage medium |
Also Published As
Publication number | Publication date |
---|---|
EP0876649A4 (en) | 1999-11-03 |
EP0876649A2 (en) | 1998-11-11 |
WO1998018306A3 (en) | 1998-07-16 |
JP2001524272A (en) | 2001-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6795403B1 (en) | Automatic discovery of switch devices in a network | |
JP3483561B2 (en) | Reverse address determination system for remote network equipment | |
US6898183B1 (en) | Method of determining a data link path in a managed network | |
EP1089523B1 (en) | Apparatus and method of configuring a network device | |
US7444405B2 (en) | Method and apparatus for implementing a MAC address pool for assignment to a virtual interface aggregate | |
US6377987B1 (en) | Mechanism for determining actual physical topology of network based on gathered configuration information representing true neighboring devices | |
JP3131137B2 (en) | Virtual network system | |
US6772205B1 (en) | Executing applications on a target network device using a proxy network device | |
US20050138157A1 (en) | Network device discovery system and method thereof | |
US6944130B1 (en) | Method and apparatus for determining a layer 2 path in a switched network | |
WO1998018306A2 (en) | Method and apparatus for generating a network topology | |
JPH1056451A (en) | Device and method for finding ip | |
US9270535B2 (en) | Inferred discovery of a data communications device | |
CN100547980C (en) | A kind of information processor and control method | |
CN112953774B (en) | Network topology generation method, system, equipment and computer storage medium | |
EP1710958B1 (en) | Method and apparatus for detecting topology of network | |
US7394821B2 (en) | System and method for maintaining network system information | |
US7369513B1 (en) | Method and apparatus for determining a network topology based on Spanning-tree-Algorithm-designated ports | |
AU781312B2 (en) | Identyfying a failed device in a network | |
US6842781B1 (en) | Download and processing of a network management application on a network device | |
US7343404B1 (en) | Efficient representation of system network management object identifiers | |
US6694304B1 (en) | System and method for retrieving network management table entries | |
CN112383647A (en) | Network system based on SPACE6 and dual-stack technology | |
US7260621B1 (en) | Object-oriented network management interface | |
JPH06338884A (en) | Node discovering method for network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): JP |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
ENP | Entry into the national phase |
Ref country code: JP Ref document number: 1998 520679 Kind code of ref document: A Format of ref document f/p: F |
|
AK | Designated states |
Kind code of ref document: A3 Designated state(s): JP |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1997946331 Country of ref document: EP |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWP | Wipo information: published in national office |
Ref document number: 1997946331 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1997946331 Country of ref document: EP |