SYSTEM FOR TRACING DATA CHANNELS THROUGH A CHANNEL-BASED NETWORK

Abstract: A method and apparatus for tracing a channel through a channel based network determines both the identity of each network device ("identification information") coupled to the channel, and channel information relating to each such network device. Once determined, at least one of the identity and channel information is forwarded to a monitoring network device. The information may be forwarded directly from each network device to the monitoring network device.

Description: SYSTEM FOR TRACING DATA CHANNELS THROUGH A CHANNEL-BASED NETWORK FIELD OF THE INVENTION The invention generally relates to data transmission networks and, more particularly, the invention relates to tracing data channels across a channel-based data transmission network. BACKGROUND OF THE INVENTION Asynchronous Transfer Mode ("ATM") is a well known channel-based data transmission protocol that utilizes virtual channels to transmit data from a transmitting site to a receiving site. More specifically, a virtual channel typically is established {i.e., initialized) prior to message transmission, and subsequently utilized to transmit all message data during a single data transmission ("session"). Accordingly, for a given session, all data cells {i.e., 53 byte data packets) of a message utilize the same virtual channel as they are transmitted from the transmitting site to the receiving site. In typical ATM networks, a plurality of ATM switches are utilized to forward data cells from the transmitting site to the receiving site. Each switch thus includes a forwarding table (a/k/a "cross-connect table") within local memory for maintaining virtual channel information. For example, upon receipt of a data cell, a given ATM switch accesses cell header information to determine the virtual channel that is utilized by the received cell. Once the virtual channel is determined, the switch determines the next upstream switch/endpoint from its forwarding table (based upon the determined virtual channel), and then transmits the cell to such switch/endpoint. Unlike routing devices that utilize non-channel based protocols {e.g., the well known packet based "Internet Protocol"), an ATM switch generally is not required to make a decision as to which upstream device is to receive the cell. Specifically, an ATM switch merely checks its forwarding table, and then forwards the received cell to the upstream network device identified in the table. Accordingly, as noted above, the same virtual channel remains in use during an entire message transmission. For various reasons, ATM networks can drop cells during transmission, thus not completing transmission of an entire message. For example, one of the switches in the network may be malfunctioning, consequently causing it to transmit received cells to an incorrect virtual channel. Accordingly, it would be desirable to determine which switch or other network device in an ATM network, if any, is malfunctioning when data transmissions are not successfully received by a receiving site. SUMMARY OF THE INVENTION In accordance with one aspect of the invention, a method and apparatus for tracing a channel through a channel based network determines both the identity of each network device ("identification information") coupled to the channel, and channel information relating to each such network device. Once determined, at least one of the identity and channel information is forwarded to a monitoring network device. In preferred embodiments, the information is forwarded from each network device to the monitoring network device. The channel may include a plurality of subchannels that each couple two of a plurality of network devices. Among other things, the channel information may include information relating to a given network device and its coupled subchannel(s). The channel information also may include virtual channel identifiers. In other embodiments, a first network device may be coupled to a given subchannel, where the first network device includes an interface for determining the identity of the given sub-channel. The at least one of the identification information and the channel information may be displayed on a display device, or may be stored in memory. In other embodiments, the channel is constructed between two endpoint devices. A program may be forwarded to each network device, where the program forwards the at least one of the identification information and the channel information to the monitoring device. In some embodiments, the at least one of the identification information and the channel information is forwarded to the monitoring device as the information is determined. In accordance with another aspect of the invention, an apparatus for collecting data relating to a channel in a channel based network traverses the network from network device to network device to gather channel information. In particular, the channel couples a plurality of network devices, and each network device includes channel information relating to the channel. The apparatus thus includes a channel determiner that ascertains channel information relating to a given network device, a data forwarder that forwards the channel information to a monitoring network device, and a link transferrer that locates a next network device coupled to the channel, and transfers the apparatus to the next network device (if any) after the collected information is forwarded. In preferred embodiments, the channel information includes virtual channel identifiers. The apparatus may be transferred to each of the plurality of network devices coupled to the channel. Among other things, the apparatus may be a JAVA applet. In accordance with other aspects of the invention, an apparatus and method for collecting data relating to a channel in a channel based network first ascertains channel information relating to a given network device, then forwards the ascertained channel information to a monitoring network device, and finally determines if a next network device is coupled to the channel. If it is determined that a next network device is coupled to the channel, then the process is repeated for the next network device. Preferred embodiments of the invention are implemented as a computer program product having a computer usable medium with computer readable program code thereon. The computer readable code may be read and utilized by the computer system in accordance with conventional processes. BRIEF DESCRIPTION OF THE DRAWINGS The foregoing and other objects and advantages of the invention will be appreciated more fully from the following further description thereof with reference to the accompanying drawings wherein: Figure 1 schematically shows an exemplary channel-based data transmission network that may be utilized in accord with preferred embodiments of the invention. Figure 2 shows a preferred process of tracing a channel through a channel-based data transmission network. Figure 3 schematically shows a selector that selects between several modules that are each configured to interface with one type of switch. Figure 4 schematically shows an exemplary display of tracing information displayed in accord with preferred embodiments of the invention. DESCRIPTION OF PREFERRED EMBODIMENTS Figure 1 schematically shows an exemplary channel-based data transmission network that may be utilized in accord with preferred embodiments of the invention. A channel-based transport protocol as discussed herein is a link layer protocol that utilizes a single pre-set channel {i.e., virtual or non-virtual channel) to transmit data packets {e.g., video, voice, or other digital data messages) between end nodes during a single session. A single session may have as few as one data packet, or many data packets. The channel may be utilized to transmit between the end nodes during one session only, or during any number of sessions. The channel may be bi-directional or uni-directional. A transmitting site transmits data across a channel-based network during a single session by first establishing {i.e., initializing) a single channel to the receiving site. Once the channel is established, data is converted into packets and transmitted to the receiving site via the channel. The channel includes preselected intervening network devices that each are configured to forward received data packets to another preselected network device deemed to be in the channel. Accordingly, each packet is transported across the network to the receiving site via the same intervening network devices. The network shown in figure 1 ("network 10") preferably utilizes the Asynchronous Transfer Mode data transport protocol ("ATM"). It should be noted, however, that use of ATM is by example only and should not be considered a limitation of the invention. Accordingly, preferred embodiments may be implemented on any network utilizing a channel-based transport protocol. The network 10 preferably includes a host computer 12 that is coupled to a host local area network ("host LAN 14"), a remote computer 16 coupled to a remote LAN 18, and a plurality of ATM switches 20 that couple the host and remote computers 12 and 16 Data preferably is transmitted in a bi-directional manner between the host and remote computers 12 and 16. The host computer 12 and remote computer 16 may be any computer, such as an IBM APTIVA™ computer, available from International Business Machines Inc of Armonk, New York. The host LAN 14 and remote LAN 18 be configured in accord with any known LAN architecture, such as an Ethernet configuration. In addition, each switch 20 preferably is a CENTLLLON™ ATM switch, available from Bay Networks, Inc of Santa Clara, California In some embodiments, however, each switch 20 may be distπbuted from different vendors. The network 10 preferably is an intranet that is administered by a central network administrator. Figure 2 shows a preferred process of tracing a channel through a channel based network. In a manner similar to figure 1, although the process shown in figure 2 is descπbed in terms of ATM, use of such protocol is by example only and should not be considered a limitation of the invention. In preferred embodiments, the process is executed as a JAVA applet executing on each of the nodes as descπbed below. Details of the process thus are descπbed below in terms of a JAVA applet. Pπor to initiation of the process, a virtual channel is established by conventional means between the host computer 12 and the remote computer 16. For example, the channel, which may be a permanent virtual channel or a switched virtual channel, may be defined by the host computer 12, host LAN 14, first switch 20, second switch 20, third switch 20, fourth switch 20, remote LAN 18, and remote computer 16. Accordingly, the cross-connect tables in each switch 20 are updated to form the channel. As is known in the art, the channel may be considered to be defined by a plurality of sub-channels between adjacent network devices. For example, when using the ATM protocol in a given channel, each sub-channel may be identified by a unique virtual channel identifier {i.e., a different virtual channel identifier than the other sub-channels in that given channel). The process preferably is initiated by a user on the host computer 12. In particular, the user may have a graphical user interface (figure 4, discussed below) with a button that. when selected, causes the process to begin tracing the channel from a selected base node in the network 10. In prefeπed embodiments, the user enters input parameters, such as the LP address of the base node, port identifiers, and virtual channel and path identifiers of the base node. These input parameters identify the base node and are used to configure the tracing process. The base node may be any node in the network 10, such as one of the switches 20, or the host computer 12. In the process of figure 2, for example, the second switch 20 is selected to be the base node, and the JAVA applet consequently begins executing on such switch 20. The process thus begins at step 200 in which a "next node" variable is set to be a node that is adjacent to the base node in the virtual channel. In particular, the next node is selected to be either one of the first switch 20, or the third switch 20 {i.e., a switch 20 either before or after the base node in the virtual channel). In this example, the next node is selected to be the third node. It should be noted that once the channel is traced in one direction via one of the adjacent nodes, the JAVA applet returns to trace the channel in the other direction via the other of the adjacent nodes. For example, if the channel is traced to the remote computer 16 via the third switch 20, then the JAVA applet returns to the base node to trace the channel to the host computer 12 via the first switch 20. The process then continues to step 202 in which it is determined if the LP address of the next switch 20 {i.e., the third switch 20) is listed in a look-up table on the second switch 20. In prefeπed embodiments, this look-up table is an LLMI neighbor information look-up table stored in memory of the second switch 20. For various reasons, however, the second switch 20 may not have the IP address of the third switch 20 in the look-up table. For example, the switches 20 may be manufactured by different vendors that do not share such information. Accordingly, if the IP address of the third switch 20 is not in the table, then the process continues to step 204 in which the IP address of the third switch 20 is determined by conventional means. For example, the network administrator may look up the IP address in a specification manual of the network 10. Once the IP address is determined, the process continues to step 206 in which the next node is inteπogated to determine switch specific information relating to the channel. To that end, in prefeπed embodiments, the JAVA applet is forwarded to the third switch 20 to execute the well known Simple Network Management Protocol (" SNMP " ) for inteπogating the third switch 20. As is known in the art, SNMP permits the JAVA applet to successfully inteπogate and obtain the necessary information since it knows the IP address of the third switch 20. Such information may include any channel specific information relating to the switch 20, such as the virtual channel and virtual path identifiers of sub-channels from the second switch 20 to the third switch 20, the outgoing interface in the third switch 20 used to forward cells to the next upstream switch 20 from the third switch 20 {i.e., the fourth switch 20), the virtual channel and virtual path identifiers of sub-channels from the third switch 20 to the fourth switch 20, and the LP address of the fourth switch 20 (if in the local LLMI tables). In response to an SNMP query, the switch interface (not shown) of the third switch 20 may utilize conventional methods to determine the virtual channel and virtual path identifiers for the sub-channel to the fourth switch 20. As noted above, some embodiments do not utilize switches 20 from a single vendor. As known in the art, switches typically are not standardized to interface with SNMP in a uniform manner. Specifically, many switches are configured to respond to SNMP when an SNMP query is received in a specific format that is configured to the specific switch. Accordingly, in prefeπed embodiments, a plurality of SNMP modules 22 are utilized on each switch 20 to form an application program interface that can utilize SNMP with various types of switches 20 (figure 3). Each SNMP module 22 is written to conform with the specifications of one specific type of switch. Among other types, such switch may be one of many switches of one vendor, all switches of a specific vendor, a family of switches of one vendor, or a family of switches of two or more vendors. As shown in figure 3, the JAVA applet first may determine the type of switch, and then utilize a module selector 24 to select the appropriate SNMP module 22 for interrogating the next switch. Once the information for the third switch 20 {i.e., the next node) is determined, the JAVA applet preferably transmits such information back to the host computer 12 from the third switch 20. The information may be stored in memory of the host computer 12, and/or displayed on a display device coupled with the host computer 12. Figure 4 shows a prefeπed graphical display of the information on the host computer 12. In particular, the display may have a results window with columns displaying the LP address of the switch 20, port identification, virtual channel and port identifiers of input and output interfaces, and the next upstream node. Figure 4 also shows a "START TRACE" button that initiates the process of tracing the channel. In prefeπed embodiments, the results window displays the channel trace information as such information is sequentially received, in real time, from each of the nodes in the channel. Once the located information is displayed, it is determined at step 210 if the next node is the last node in the channel in the immediate trace direction. In prefeπed embodiments, the next node is considered to be the last node when it is either one of an endpoint node, or a user network interface ("UNI"). Conversely, the next node is not considered to be the last node when it is a network to network interface ("NNI"). The process ends if it is determined to be the last node. If, however, it is determined not to be the last node, the process loops back to step 200 in which the next node variable is set to be the next node in the channel. Accordingly, in the example above, the next node variable is set to be the fourth switch 20. This process continues tracing from node to node until the last node of the channel in the direction of the remote computer 16 is inteπogated. As noted above, once the process ends, the JAVA applet is forwarded back to the base node to begin tracing the channel toward the host computer 12 {i.e., in the other direction). As noted above, prefeπed embodiments are initiated by a user. In alternative embodiments, the tracing process may be initiated automatically upon receipt of any selected information. For example, the tracing process may be initiated upon receipt of information indicating that message data is being dropped by the network 10. It also should be noted that any programming method may be utilized to implement preferred embodiments of the invention. For example, instead of using a JAVA applet, a program executing on the host computer 12 may interact with each of the switches 20 to gather the pertinent information. Specifically, the pertinent information may be retrieved via messages that are transmitted between each switch 20 and the executing program on the host computer 12. Prefeπed embodiments of the invention may be implemented in any conventional computer programming language. For example, prefeπed embodiments may be implemented in a procedural programming language {e g , "C") or an object oπented programming language (e g , "C++") Alternative embodiments of the invention may be implemented as preprogrammed hardware elements (e g , application specific integrated circuits), or other related components. As noted above, prefeπed embodiments are implemented as a JAVA applet Alternative embodiments of the invention may be implemented as a computer program product for use with a computer system Such implementation may include a seπes of computer instructions fixed either on a tangible medium, such as a computer readable media (e g , a diskette, CD-ROM, ROM, or fixed disk), or transmittable to a computer system via a modem or other interface device, such as a communications adapter connected to a network over a medium. The medium may be either a tangible medium (e g., optical or analog communications lines) or a medium implemented with wireless techniques {e.g , microwave, infrared or other transmission techniques). The seπes of computer instructions preferably embodies all or part of the functionality previously descπbed herein with respect to the system Those skilled in the art should appreciate that such computer instructions can be wπtten in a number of programming languages for use with many computer architectures or operating systems Furthermore, such instructions may be stored m any memory device, such as semiconductor, magnetic, optical or other memory devices, and may be transmitted using any communications technology, such as optical, infrared, microwave, or other transmission technologies It is expected that such a computer program product may be distπbuted as a removable medium with accompanying pπnted or electronic documentation {e.g., shπnk wrapped software), preloaded with a computer system {e.g., on system ROM or fixed disk), or distπbuted from a server or electronic bulletin board over the network (e g , the Internet or World Wide Web) Although vaπous exemplary embodiments of the invention have been disclosed, it should be apparent to those skilled in the art that vaπous changes and modifications can be made which will achieve some of the advantages of the invention without departing from the true scope of the invention. These and other obvious modifications are intended to be covered by the appended claims.

Claims: We claim: 1. A method of tracing a channel through a channel based network, the channel coupling a plurality of network devices, the method comprising: determining the identity of each network device coupled with the channel, the identity of each network device being represented by identification information; determining channel information relating to each of the network devices coupled to the channel; and forwarding at least one of the identification information and the channel information of each network device coupled to the channel, the forwarded information for each network device being forwarded from each network device to a monitoring network device. 2. The method as defined by claim 1 wherein the channel includes a plurality of subchannels, each subchannel coupling two of the plurality of network devices, the channel information including information relating to a given network device and its coupled subchannel. 3. The method as defined by claim 2 wherein the channel information includes virtual channel identifiers. 4. The method as defined by claim 2 wherein a first network device is coupled to a given subchannel, the first network device including an interface for determining the identity of the given sub-channel. 5. The method as defined by claim 1 further comprising: displaying at least one of the identification information and the channel information on a display device. 6. The method as defined by claim 1 further comprising: constructing the channel between two endpoint network devices. 7. The method as defined by claim 1 wherein a program is forwarded to each network device, the program forwarding the at least one of the identification information and the channel information to the monitoring network device. 8. The method as defined by claim 1 wherein the at least one of the identification information and the channel information is sequentially forwarded to the monitoring device as the information is determined. 9. An apparatus for tracing a channel through a channel based network, the channel coupling a plurality of network devices, the apparatus comprising: a determiner that determines the identity of each network device coupled with the channel, the identity of each network device being represented by identification information, the determiner also determining channel information relating to each of the network devices coupled to the channel; and an output that forwards at least one of the identification information and the channel information of each network device coupled to the channel, the forwarded information for each network device being forwarded from each network device to a monitoring network device. 10. The apparatus as defined by claim 9 wherein the channel includes a plurality of subchannels, each subchannel coupling two of the plurality of network devices, the channel information including information relating to a given network device and its coupled subchannel. 11. The apparatus as defined by claim 10 wherein the channel information includes virtual channel identifiers. 12. The apparatus as defined by claim 10 wherein a first network device is coupled to a given subchannel, the first network device including an interface for determining the identity of the given sub-channel. 13. The apparatus as defined by claim 9 further comprising: a display device that receives the forwarded information, the display device displaying at least one of the identification information and the channel information on a display device. 14. The apparatus as defined by claim 9 further comprising: a channel constructor that constructs the channel between two endpoint network devices. 15. The apparatus as defined by claim 9 wherein a program is forwarded to each network device, the program forwarding the at least one of the identification information and the channel information to the monitoring network device. 16. A computer program product for use on a computer system for tracing a channel through a channel based network, the channel coupling a plurality of network devices, the computer program product comprising a computer usable medium having computer readable program code thereon, the computer readable program code including: program code for determining the identity of each network device coupled with the channel, the identity of each network device being represented by identification information; program code for determining channel information relating to each of the network devices coupled to the channel; and program code for forwarding at least one of the identification information and the channel information of each network device coupled to the channel, the forwarded information for each network device being forwarded from each network device to a monitoring network device. 17. The computer program product as defined by claim 16 wherein the channel includes a plurality of subchannels, each subchannel coupling two of the plurality of network devices, the channel information including information relating to a given network device and its coupled subchannel. 18. The computer program product as defined by claim 17 wherein the channel information includes virtual channel identifiers. 19. The computer program product as defined by claim 17 wherein a first network device is coupled to a given subchannel, the first network device including an program code for determining the identity of the given sub-channel. 20. The computer program product as defined by claim 16 further comprising: program code for displaying at least one of the identification information and the channel information on a display device. 21. The computer program product as defined by claim 16 further comprising: program code for constructing the channel between two endpoint network devices. 22. The computer program product as defined by claim 16 wherein a program is forwarded to each network device, the program forwarding the at least one of the identification information and the channel information to the monitoring network device. 23. An apparatus for collecting data relating to a channel in a channel based network, the channel coupling a plurality of network devices, each network device including channel information relating to the channel, the apparatus comprising: a channel determiner that ascertains channel information relating to a given network device; a data forwarder that forwards the channel information to a monitoring network device; and a link transfeπer that locates a next network device coupled to the channel and transfers the apparatus to the next network device after the collected information is forwarded. 24. The apparatus as defined by claim 23 wherein the channel information includes virtual channel identifiers. 25. The apparatus as defined by claim 23 wherein the apparatus is transfeπed to each of the plurality of network devices coupled to the channel. 26. The apparatus as defined by claim 23 wherein the apparatus is a JAVA applet. 27. A computer program product for use on a network device for collecting data relating to a channel through a channel based network, the channel coupling a plurality of network devices, the network device being one of the plurality of network devices, each network device including channel information relating to the channel, the computer program product comprising a computer usable medium having computer readable program code thereon, the computer readable program code including: program code for ascertaining channel information relating to the network device; program code that forwards the ascertained channel information to a monitoring network device; program code that determines if a next network device is coupled to the network device via the channel; program code for controlling the network device to transfer the computer program product to the next network device if it is determined that the next network device is coupled to the network device via the channel. 28. The computer program product as defined by claim 27 wherein the channel information includes virtual channel identifiers. 29. The computer program product as defined by claim 27 wherein the computer program product is transfeπed to each of the plurality of network devices coupled to the channel. 30. The computer program product as defined by claim 27 wherein the computer program product is a JAVA applet. 31. A method of collecting data relating to a channel in a channel based network, the channel coupling a plurality of network devices, each network device including channel information relating to the channel, the method comprising: A. ascertaining channel information relating to a given network device; B. forwarding the ascertained channel information to a monitoring network device; C. determining if a next network device is coupled to the channel; D. if it is determined that the next network device is coupled to the channel, then repeating steps A-C for the next network device. 32. The method as defined by claim 31 wherein the channel information includes a virtual channel identifier.

Inventors: LISTE MATTHEW, MOELLER DOUGLAS, LISTE, MATTHEW, MOELLER, DOUGLAS
Applicants: LISTE MATTHEW, MOELLER DOUGLAS, NORTEL NETWORKS INC, LISTE, MATTHEW, MOELLER, DOUGLAS, NORTEL NETWORKS, INC.
Application year: 2000
Main classification: H04L12
IPC codes: H04L12, H04Q11