The present invention is directed to switched computer networks and, more particularly, to configurating such a network. While the invention has many applications, it is advantageously used with material-handling systems. An example of a switched computer network includes Ethernet networks.
Large material-handling systems may be made up of a number of individual material-handling components each having a network device. An example of such a system is disclosed in commonly assigned International Publication No. WO 2004/067416 A1, entitled INTEGRATED CONVEYOR BED. Especially in large installations, the number of network devices can be extremely large. The network devices may, advantageously, be configured in a B-Tree configuration with one or more multi-port devices, such as field switches, and many dual-port and single-port devices. One or more management computers or servers manage the network. Each network device requires an identifying address, such as an IP address. Commonly, such addresses are assigned by either dipswitches at the network device or by using a special purpose computer connected sequentially with each network device to assign it an address. Such a system is cumbersome, time-consuming and prone to errors.
While auto-addressing systems have been proposed, they have been limited to small systems in which the devices are connected to a common bus in a simple configuration. Such auto-addressing systems are of limited capability and thereby not well adapted for very large systems.
The present invention is directed to a technique for discovering the topology of network structures.
A switched network and a method of assigning device identifications in a switched network, according to an aspect of the invention, includes designing a network having a designed topology made up of network devices. Each of the network devices has an assigned identification. A network is constructed from the designed network. The actual topology of the constructed network is discovered, such as with a detection device. The discovered topology is compared with the design topology and identifications are assigned to network devices of the constructed network as a function of the comparing.
A switched network and method of discovering the topology of a switched network, according to another aspect of the invention, includes providing a detection device connected with one of the network devices and discovering with the detection device the topology of the network. This may be accomplished by a) disabling ports of network devices from forwarding messages, b) sending an identify command and receiving a response to identify a high level network device, c) enabling the sending of messages from one port of the identified network device, and d) sending an identify command and receiving a response to identify any network device responding to the identify command sent from the one port of the identified device. Elements c) and d) may be repeated for additional ports of the discovered additional network devices in order to discover yet additional network devices.
A switched network and method of discovering the topology of a switched network, according to an additional aspect of the invention, includes providing a plurality of network devices configured in a particular topology. The network devices include a plurality of multi-port network devices and a plurality of dual-port network devices. The topology of multi-port network devices is discovered, such as with a detection device connected with one of the network devices. Strings of dual-port network devices at ports of multi-port devices are discovered, such as with the detection devices.
These and other objects, advantages and features of this invention will become apparent upon review of the following specification in conjunction with the drawings.
The present invention will now be described with reference to the accompanying drawings, wherein the reference numerals in the following written description correspond to like-numbered elements in the several drawings.
Definitions.
As used herein, the following definitions shall apply.
Single-port device means a network device having a single port.
Dual-port device means a network device that theoretically has exactly two exposed ports.
Multi-port device means any network device which has more than two exposed ports.
Network topology refers to the structure of interconnections between nodes or devices. When discussing the topology, devices may also be referred to as “nodes”, since the terminology is more common when discussing large structures like a network, rather than individual devices. For the remainder of the document, “devices” and “nodes” may be used interchangeably.
Process.
A network topology discovery process 62 compares an engineered topology 64 with a constructed network 66 (
Topology discovery process 62 includes construction of the network physical topology at 66. The location of a network device is identified using the location identifier from the engineering file. After the network is physically constructed, or modified, a network topology discovery algorithm 68 is performed. The network topology discovery algorithm 68 detects the topological location of all devices in the network as will be discussed in more detail below. When the network topology is discovered, the discovered network topology is matched with the engineering topology at 69. Topology matching is the comparing of nodes in the discovered topology and the engineering topology from the root node onward. All or a subset of the topology may be matched.
Upon completion of topology matching at 69, deviations between the engineered topology and the discovered technology may be reviewed. The physical topology may be altered to correct for wiring errors, or the like. Optionally, the engineered topology may be edited at 70 to match the discovered topology. This may be accomplished by providing an optional topology editing toolbar. The topology editing toolbar may include, by way of example, an “insert button” for providing a function to insert a network device, and a “delete button,” which provides a function for deleting a network device. The toolbar may also provide a “move device” button, which provides a function for moving a network device. Various other buttons may be provided for navigating the engineered topology including “zoom”, “go to”, “expand”, “collapse”, and the like. As the engineered topology is edited, the edited topology is displayed to the operator.
The network devices are then configured at 71 according to the parameters of the matched node in the engineered topology.
Topologies.
A topology discovery algorithm is disclosed that has the ability to discover the topology of network structures. The disclosed algorithm is applicable to devices having at least one exposed port. In the illustrative embodiment, the at least one exposed port is an exposed Ethernet port. The port interface may operate according to a variety of standards, such as 100 BASE-TX, 1000 BASE-T (Gigabit Ethernet over copper), 1000 BASE-SX (Gigabit Ethernet over fiber-optic) or future standards (such as GBASE series), which is designed to be connected in a star or managed ring topology. While the invention has application to a wide variety of network structures, the embodiment of the topology discovery algorithm disclosed herein is illustrated with networks not having loops in the network. However, it is also an implied restriction from the types of devices that are expected in the network—switched networks typically do not contain loops as switching devices provide no mechanism for limiting the endless propagation of broadcast messages. As such, the network itself would not function for its intended purpose, with or without the automatic topology discovery. Occasionally, switches may be connected in a ring, especially with a large network system. In such instance, the operator would be instructed to physically disable, or break, the ring. In the illustrative embodiment, the network does not include any “hubs” or devices that cannot be detected or managed under the defined protocols. However, the invention is useful with networks utilizing switches, such as those operating according to the SNMP protocol. An example of such a switch is a Scalance X400 switch. The Scalance X400 switch has a feature that is useful with the invention, namely, the ability to selectively disable Ethernet broadcast or multicast frame forwarding.
The embodiment of the topology discovery algorithm is disclosed in a manner to discover a classification of devices that can be connected in a network that is represented as a B-Tree structure 72 (
B=N−1
B is the maximum number of child nodes and N is the total number of ports on the device. It will be understood by the skilled artisan that a single-port device cannot have any children, a dual-port device can have up to a single child and a multi-port device can have a varying number of children, depending on the number of ports.
In one example of a network topology that is useful with large material-handling systems, the ratio of dual-port to multi-port network devices may be on the order of 10:1 and the ratio of single-port to dual-port network devices may be on the order of 1:30. In such network, the B-Tree topology will have a significant number of nodes where B=1. That is, “strings” of dual-port network devices will be extremely prevalent.
Communication Protocols.
In the illustrative embodiment, a topology discovery algorithm 100 utilizes particular protocols that are used to perform the automatic topology discovery process. The illustrated embodiment utilizes a protocol referred to as Discovery and Basic Configuration (DCP) protocol that is commercially available from Siemens Corp. to be used over Ethernet. DCP protocol is related to Configuration and Discovery 7 (CD7) protocol also marketed by Siemens Corp. for use with commercially available ProfiBUS networks. DCP protocol provides for discovery of the devices that are on the network. The protocol is illustrated with an Ethernet medium in the preferred embodiment.
The DCP protocol utilizes a client-server paradigm. Each device on the network is considered a server hosting a set of databases. A client application can read the data in these databases using a GET command and can write data to these databases using a SET command.
These GET and SET commands are implemented as unicast Ethernet frames. That is, they are sent with a specific MAC address in the destination field. They will not be filtered by switches that are configured to filter broadcasts. The GET and SET commands have arguments, which are used to specify the data item that is to be read or written. The SET command has an additional argument to specify the value that is to be written to the database.
Another DCP command is the IDENTIFY_Request command. It can be sent by the client to all devices on a network using either a broadcast Ethernet frame or a multicast Ethernet frame. Any device that receives the IDENTIFY_Request command should respond with an IDENTIFY Response to the source of the command, depending on the contents of the command's arguments, described below.
The IDENTIFY_Request command has an optional argument which contains a List of Filter protocol data units (PDU) that is used as a filter of responses from devices on the network. These are used to uniquely identify a type of device as “TypeOfStation”. If the List of filter types is present, each device will search the list for the PDU data filter that matches its pre-defined “TypeOfStation” data. The device types found in the PDU list will respond. If the device is not found in the List, it will not respond. If the List is not in the IDENTIFY List of Filter PDU data, every device will respond.
DHCP (Dynamic Host Configuration Protocol) is an industry standard utilized by certain network installations. Its primary purpose is to allow DHCP compliant devices to request and receive TCP/IP configuration information (IP Address, Netmask, etc.). Any device (“host”, in DHCP terminology) that is to be configured via DHCP will send out a DHCP Request when it starts up. The DHCP Request is a Layer 2 broadcast or multicast message. The host will wait for a reply, and if none is received it will retransmit the request. The retransmission time is device-dependent, but is often an exponential back-off.
DHCP relies on the presence of a DHCP server on the network, which listens for these DHCP Requests. When a request is received, the server will decide how the host should be configured. There are a multitude of options for how the server decides on the specific IP Address, but once the server has decided upon an IP Address, a DHCP Allocation message is transmitted back to the host, which should adopt the transmitted TCP/IP configuration.
There are a number of other DHCP-specific features relating to leases, which define how long a particular configuration is valid for, but these are not relevant to the operation of algorithm 100.
SNMP (Simple Network Management Protocol) is an industry standard utilized by certain network installations. Its primary purpose is to allow monitoring and management of SNMP-enabled network devices. These typically include managed switches, routers and other higher-level network devices.
There are three varieties of SNMP presently used in the networking industry:
There are functional differences between SNMP v2.0 and SNMP v3.0. In the illustrative embodiment, the network topology discovery algorithm utilizes functionality provided by SNMP v2.0. Any SNMP compliant device has an SNMP Agent running on it. This SNMP Agent is responsible for communications between the device and an SNMP-based management system.
In general, data is provided by SNMP through MIBs (Management Information Bases) and Traps. MIBs define a set of attributes, including arrays and structures of other attributes. A management system can read or write to these attributes using standard SNMP commands (Get, GetNext and Set). The SNMP Agent is responsible for responding to requests for data and interpreting commands to modify data. Traps are spontaneously issued by the SNMP Agent. They are usually configured to be issued when a physical event occurs. Typical examples include “Link Up” and “Link Down”, which are issued when the status of a physical link changes—i.e., when someone plugs in, or disconnects, an Ethernet device from a network port.
Network Devices.
An example of a typical single-port network device 86 is a personal computer or Notebook computer with a single Network Interface Card (NIC). Single-port devices cannot provide any network switching functionality. The representation of a single-port device is a single line above the box, representing a single port on the device.
In the illustrative embodiment, a single-port device 86 supports the following functions:
Dual-port devices 88 should provide the following standard switched-network related functionality:
An example of a typical dual-port network device 88 is the Programmable Bed Controller 108 (PBC), as illustrated in
A dual-port network device 88 is illustrated in this document with a line above the box and a line below the box, representing the two external ports on the device. Port numbers are not numbered because the external ports are treated the same. Because an Ethernet device with only two ports are typically a bridge between two collision domains, in reality dual-port network devices 88 are likely to have a third internal Ethernet port. However, this internal port is irrelevant from the perspective of automatic discovery.
In the illustrative embodiment, a dual-port network device 88 supports the following functions:
A multi-port network device 90 should provide the following standard switched-network related functionality:
An example of a typical multi-port device 90 is a field switch that has eight ports. Another example is the commercially available Siemens Modular Switch that has at least 14 ports, but may have up to 26 ports. Yet another example is the Scalance X400 switch available from Siemens Corp.
The multi-port network devices 90 illustrated in
In the illustrative embodiment, a multi-port network device 90 supports the following functions:
A single-port network device may support the standard functionality defined for DHCP compliant hosts. In the illustrative embodiments, dual-port network devices and multi-port network devices are not configured using DHCP.
In the illustrative embodiment, single-port network devices and dual-port network devices are not managed using SNMP. Multi-port network devices should support SNMP management. Specifically, they may support the MIB for Managed Bridges.
The Discovery Algorithm.
In the illustrative embodiment the states of the network devices are as follows prior to execution of network topology discovery algorithm 100:
The discovery algorithm 100 proceeds in two phases:
The main reason for breaking the algorithm into these three discovery phases in the illustrative embodiment is to mitigate the risk that discovery, or detection, server 102, also identified as the “root node”, may be excessively burdened under the load imposed by attempting to detect all devices at once. However, it is possible that all devices could be discovered at once.
At each phase, the discovery is generally accomplished using a combination of DCP IDENTIFY_Request commands and the facility of devices to disable forwarding of broadcast or multicast messages. The main difference between the first and second phases is that the first phase performs the discovery along the lines of a depth-first tree search while the second phase can assume the existence of a “string” 84 of dual-port network devices.
The network topology discovery algorithm 100 does not make assumptions about the content of the network before, between or after multi-port network devices 90. However, after all multi-port network devices have been detected, it is safe to assume that the topology of the network between multi-port devices 90 may be a single line or string 84 of dual-port network devices.
Dashed lines 110 in
After the third phase, the entire network structure, as shown in
The steps followed in each phase of algorithm 100 to achieve these outcomes are discussed in more detail in the following sections.
In the illustrative embodiment, detection of the multi-port network device topology uses the filtering capabilities of the IDENTIFY_Request command, and a depth first search of the responding device tree. A flowchart illustrating algorithm 100 is shown in
Discovery phase 1 begins with discovery server 102 knowing nothing about the devices on the network. A DCP IDENTIFY_Request message is issued at 120, which is multicast onto the local subnet. Any device on the subnet which has a TypeOfStation that matches any of the List of Filters in the request should respond at 122 with an IDENTIFY_Response message. The List of Filters is created based on the known types of multi-port devices that will respond to the DCP identity. All DCP devices that are not included in the List of Filters will not respond to the DCP IDENTIFY_Request. A DCP IDENTIFY_Request with no data in the List of Filters will provoke an IDENTIFY Response from all DCP devices on the network. Likewise, the IDENTIFY_Request message could be broadcast, which will provoke an IDENTIFY Response from all DCP devices on the network. The responses may come in any order.
After steps 120 and 122, discovery server 104 knows the MAC addresses of every multi-port device on the network 124, but does not know their relative locations—i.e., it does not know the topology. If no response was detected at 126, then the discovery server assumes at 126 there are no multi-port devices and the rest of the segments are ignored.
At 128, a DCP Set_Request message is issued to every one of the devices identified in Segment A. This message is used to disable multicast or broadcast forwarding on all ports of the devices. Every device in the network is now configured to inhibit the forwarding of broadcast messages on all ports.
A DCP IDENTIFY_Request message is issued at 130, which is multicast or broadcast onto the local subnet. Since no multi-port devices will forward the multicast or broadcast message, only the top-most multi-port device will respond. As a result, discovery server 104 knows the MAC address of the top-most multi-port device in the network.
A depth-first search of the network is now carried out. The first step is to add at 134 the devices detected into the topology database. The device is configured at 136 to disable responding to the IDENTIFY_Request with a Set_Request message, and then to allow multicast or broadcast forwarding on the first port at 138 with a second Set_Request message 140. A DCP IDENTIFY_Request message is issued at 142. Since multicast or broadcast forwarding was just enabled, the top-most multi-port device below the current port should respond. If there is no response at 144, then there are no more multi-port devices on this port (146, 148). The port count is incremented and the process proceeds. If there is a response at 144, the newly detected device is added to the topology database at 134 and the procedure is repeated. When all ports on a device have been processed, the algorithm returns to the parent device at 150, 152 and proceeds. If the current network device does not have a parent (150), then the discovery is complete at 154. At the completion of phase 1, discovery server 104 knows the topological location of every multi-port device in the network. The known topology would look something like that in
During an initial portion of discovery phase 2, detection of the topology of dual-port devices and DCP single-port devices using DCP protocol relies on traversing the multi-port topology discovered in discovery phase 1, and detecting the potential “chains” of dual-port devices connected to each port of each multi-port device. This is illustrated as two processes. The first process, as illustrated in
Discovery phase 2 begins with a DCP Set_Request message being issued at 156 to every one of the multi-port devices identified in Phase 1. This message is used to disable multicast or broadcast forwarding on all ports of the devices. The multi-port devices on the network are now configured not to forward multicast or broadcast frames. This creates a multicast or broadcast domain 114 of the region between the discovery server and the first multi-port device (
In
Process 2 of Phase 2 is now called at 158. Since this process is being called in the context of the multicast or broadcast domain set up at 156, the topology between the discovery server and the topmost switch will be discovered. As a result, discovery server 102 knows the entire multi-port device topology, and the dual-port device topology between the discovery server and the topmost multi-port device.
Next, a depth first traversal of the multi-port topology is carried out at 160-178. This process is quite similar to steps 134-154 and will not be repeated. However, while traversing the topology, the current multicast or broadcast domain is modified. By this method, the “chains” of dual-port devices 84 are discovered.
For example, refer to
In
The upper-most ports on switches MP1 and MP3 are still blocked. This is because those port numbers are greater than the current port on both devices. This is accommodated by the discovery protocol, as blocking multicast or broadcast forwarding on a port only refers to blocking the exit of multicast or broadcast messages on that port.
A flowchart specifying the algorithm for the process of detection of chains of dual-port devices 84 is shown in
A DCP Set_Request message is issued at 190-194 to every one of the devices identified in Segment A. This message is used to disable multicast or broadcast forwarding on those devices. All devices in the current broadcast domain now have multicast or broadcast forwarding disabled. A DCP IDENTIFY_Request message is issued at 196. Since all devices have multicast or broadcast forwarding disabled, only the first device in the chain will respond. The discovery server now knows the first device in the chain in the current multicast or broadcast domain. The device discovered at 196 is added to the topology database at 198. The discovered device is configured to disable responding to the IDENTIFY_Request with a Set_Request message at 200, and then to allow multicast or broadcast forwarding on the first port with a second Set_Request message at 202. A DCP Identify-Request message is then issued at 204. Since multicast or broadcast forwarding was just enabled, the next device in the chain should respond. If it is determined at 206 that there is no response, then there are no more devices on this chain at 208. This process is complete. If it is determined at 206 that there is a response, the newly detected device is added to the topology database at 198 and the procedure is repeated.
The discovery server knows the topological location of every device in the current multicast or broadcast domain. The discovery server would now return to the process beginning at step 156 from this phase. The entire network topology of configuration and protocol capable devices is known. There may still be undiscovered DHCP devices 112 in the network. Discovery of DHCP devices may be carried out using data from the MIB for managed bridges available through SNMP. The discovered topology will be similar to that shown in
One application for the invention is in a material-handling system 300 made up of a series of components including one or more conveyor beds 50, as depicted in
Changes and modifications in the specifically described embodiments can be carried out without departing from the principles of the invention which is intended to be limited only by the scope of the appended claims, as interpreted according to the principles of patent law including the doctrine of equivalents.
This application claims priority from U.S. provisional patent application Ser. No. 60/566,470, filed on Apr. 29, 2004, the disclosure of which is hereby incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60566470 | Apr 2004 | US |