Computer networks and methods of their control

Abstract: A segmented computer network (100) has a plurality of segments (110,120) branching off from a router (104). Each segment (110,120) has a plurality of computer terminals (114..., 124...) connected to it. The router (104) functions to direct commands for terminals issued from a network management station (102) to the appropriate segment and contains a routing table giving the network addresses of the terminals. The routing table is periodically updated. A user terminal can be put into a power-saving suspend mode, in which case its network address will be deleted from the routing table at a subsequent update and it may not receive a wake-up signal. To prevent such a failure each segment includes a proxy terminal (112, 122) to receive wake-up requests intended for terminals in its segment which are in suspend mode. Network addresses of terminals in suspend mode are not deleted from proxy terminals (112,122).

Description: This invention relates to computer networks and methods of their control. It is concerned with computer networks of the kind comprising a plurality of interconnected computer terminals. More particularly it is concerned with segmented computer networks. Such networks have a plurality of segments branching off from a router, which functions to direct commands for the terminals issued from a network management station to the appropriate segment. A modern user terminal, such as a workstation or personal computer (PC), provides an advanced power management (APM) feature, in which the user terminal can be set in a hibernation state (called suspend mode). In suspend mode, most of the components of a user terminal are in a state that consumes minimal power, and are not functional; some of the components, such as the system bus, are completely un-powered. Conventionally, a user terminal can be brought out of suspend mode by a user's activation of an input device, such as a mouse or keyboard, indicating the user requires full functionality of the terminal to perform work. A problem occurs when a network management station tries to get access to a user terminal in suspend mode via a network, because when the user terminal is in suspend mode it is not able to listen to the network. As a result, the user terminal will not respond to network management commands from across the network. Without having access to the user terminal, it is impossible to perform backups for the user terminal, to configure the user terminal, or to do software distribution to the user terminal via the network. At present, a leading solution to this problem is, while a user terminal is in suspend mode, to maintain its network adapter powered to the extent that the network adapter can listen to the network to which the user terminal is coupled. Specific circuitry is provided to detect a data packet with a special data pattern. Upon receiving such a packet, the network adapter generates an interrupt to bring that user terminal out of suspend mode. In introducing such technology, Advanced Micro Devices and Hewlett Packard have used a special data pattern in a packet, called a magic packet. This special data pattern is the unique network address of the user terminal in suspend mode and may be repeated many times, for example sixteen times, within the magic packet. Unfortunately, the magic packet approach does not wake up user terminals when the magic packet is sent across a network that uses routers to separate the network into segments. A router can take a magic packet generated in one network segment and forward it to an intended user terminal located on another network segment according to path information indicated by a routing table inside the router. To improve efficiency, the router frequently updates its routing table, and old routing information in the routing table is replaced by new routing information. Thus, it can occur that a router receives from one network segment a magic packet destined to a user terminal on another network segment after the path information to that user terminal has been deleted from its routing table. In this situation, before routing the magic packet, the router could send a broadcast packet to all the segments connected to it and wait for an acknowledgment from the network on which the user terminal is located. However, if the destined user terminal is in suspend mode, it will only listen to a magic packet, and will not respond to a broadcast packet. When the router hears no acknowledgment from the destined user terminal, it will assume that the destined user terminal does not exist and discard the magic packet. As a result, the destined user terminal can never be brought out of suspend mode by a magic packet. Therefore, in a situation where user terminals are connected to a network via a router whose routing information is periodically updated, there is a need to restore access to the user terminals from the network when the user terminals are in suspend mode. According to the invention in one aspect a computer network comprising a router, a plurality of network segments branching off from the router, and a plurality of computer terminals connected in each segment, the terminals being of the kind that can be switched from an operational mode into a power-saving suspend mode, and the router having storage means for storing routing information giving the segment locations of terminals and writing means for updating routing information so that it relates only to terminals which are in an operational mode wherein each segment of the network is provided with a proxy terminal and each proxy terminal has storage means for storing routing information for terminals in its segment, which routing information is retained when a terminal in its segment is switched into suspend mode, characterized in that a network management station is provided which is coupled to the router through a network bus, which station includes means for issuing request signals for bringing a selected terminal out of its suspend mode, which request signals include the network address of the selected terminal. In carrying out the invention a network management station is preferably provided which is coupled to the router through a network bus, which station includes means for issuing request signals for bringing a selected terminal out of its suspend mode which request signals include the network address of a selected terminal. Preferably the routing information contained in the router and in the proxy terminals comprises routing tables containing network addresses of terminals matched to their physical addresses. According to the invention in another aspect a method of controlling computer terminals connected to a network, which comprises a plurality of segments Branching off from a router, the terminals being of the kind that can be switched from an operational mode into a power-saving suspend mode, the method comprising the steps of storing in the router routing information giving the locations of terminals and updating such routing information so that it relates only to terminals which are in an operational mode, wherein each segment of the network is provided with a proxy terminal and including the further steps of storing in the proxy terminals routing information for terminals in its segment, and retaining such routing information when a terminal in its segment is switched into suspend mode characterized by the step of generating a request signal in a network management station for bringing a selected terminal out of its suspend mode, which request signal includes the network address of the selected terminal. The purpose and advantages of the present invention will be apparent to those skilled in the art from the following detailed description in conjunction with the appended drawing, in which: Figure 1 shows a network including two network segments that are separated by a router, in accordance with the present invention; Figure 2 shows a block of diagram of a proxy terminal, in accordance with the present invention; Figure 3A is a flowchart illustrating operational steps of processing ARP packets and management request packets, in accordance with the present invention; Figure 3B is a flowchart illustrating the steps of processing an ARP packet, in accordance with the present invention; and Figure 3C is a flowchart illustrating the steps of processing a management request packet, in accordance with the present invention. Referring to figure 1, there is shown a network 100, including a network management station 102, a router 104, two bridges (106 and 108), network segment A (110), and network segment B (120). As shown in figure 1, network segment A includes a proxy terminal A (112) and a plurality of user terminals from A 1 to A N . Proxy terminal A and the user terminals from A 1 to A N are all coupled to network local bus 113, which is in turn coupled to router 104 via link 105. Network segment B includes a proxy terminal B (122) and a plurality of user terminals from B 1 to B M . Proxy terminal B and the user terminals from B 1 to B M are all coupled to network local bus 123, which is in turn coupled to router 104 via link 107. Bridge 106 is able to pass packets between network local bus 113 and link 105. Bridge 108 is able to pass packets between network local bus 123 and link 107. In figure 1, the proxy terminals and user terminals can be personal computers or workstations. Each user terminal is capable of being set in suspend mode and able to respond to a unique pattern packet, called a magic packet in suspend mode. The proxy terminals remain "alert" while any or all of the user terminals are in suspend mode. Router 104 is coupled to network management station 102 via network bus 103. Router 104 maintains a routing table that maps user terminals' high-level (or logical) network addresses (such as IP (Internet Protocol) addresses) against user terminals' physical addresses (such as 48 bit IEEE format MAC (Media Access Control) address). The routing table also contains network segment numbers, which are never deleted. All terminals connected to a common network segment (A or B) have a common network segment number. Each of proxy terminals A and B also maintains a routing table for the user terminals that are connected to its respective network segment (A or B). Like routing table in router 104, the routing table in proxy terminal A or B contains high-level (logical) network addresses that map against physical network addresses. Unlike the routing table in router 104, however, the network addresses routing table in proxy terminal A or B will never be deleted. Therefore, while a high-level network address assigned to one of the user terminals shown in figure 1 may disappear from the routing table in router 104, it will stay in and be known by proxy terminal A or B, so long as the terminal is connected to network segment A or network segment B. In addition, the routing table in proxy terminal A or B maintains the segment number for the network segment to which it is connected. It is known that router 104 can use a two-step process in compliance with the so called address resolution protocol (ARP) to build and update its routing table. Some protocol suits, such as TCP/IP and Microsoft's Server Message Block (SMB), include such an address resolution protocol. In the ARP process, the router first broadcasts a packet (called an ARP request packet) containing the high-level network address of a destined user terminal that the router is looking for. Upon receiving the broadcast packet, the designated user terminal returns to the router a packet (called ARP response packet) containing the high-level network address and its physical network address. After receiving the returned packet, the router stores the pair of network addresses into its routing table. In the present invention, a proxy terminal (A or B) can use this two step process to build its own routing table. In the first step, while a router (104) is broadcasting a packet that contains high-level network address of a user terminal that the router is looking for, a proxy terminal (A or B) listens and receives this packet. The proxy terminal first checks the subnetwork portion of the high-level network address, and if the subnetwork does not match its own segment number, it discards the packet. If the subnetwork portion does match its own segment number, it further checks its routing table, to decide whether the high-level network address in the packet exists in the routing table. If the high-level network address does not exist in the routing table, the proxy terminal creates a new entry to store the high-level network address. The physical network address for that new entry is marked as unknown at this step. In the second step the proxy terminal located on the same network segment as the user terminal that the router is looking for, listens for and receives the response packet returned from the user terminal to the router. As discussed above, this returned packet contains the high-level network address originally requested by the router and the physical network address assigned to the user terminal. Upon receiving the returned packet, the proxy terminal stores the physical network address into the entry corresponding to the high-level network address. In the second step for a proxy terminal located on different network segment from the user terminal that the router is looking for, no response packet will be received from any user terminals in the segment in which it sits. Since no new routing table entry was created in the first step, no further action is needed. To bring a user terminal out of suspend mode, network management station 102 sends a management request imbedded in a packet (called a management request packet) via router 104 to network segment A or network segment B. A management request from a management station should comply with a predetermined network management protocol, such as Simple Network Management Protocol (SNMP), Common Management Information Protocol (CMIP), or other propriety network management protocol. A management request packet contains a command section to perform different functions, such as: reading network management information from a user terminal, or writing network management information into a user terminal, along with a data section that may contain data associated with the command. In this case, the management request packet contains in its command section a command to wake-up a particular user terminal from suspend mode, and in its data section the high-level address of the particular terminal. In this example, it is assumed that: (1) Network management station 102 has sent a management request packet to proxy terminal B via router 104 with a command to bring user terminal B 1 out of suspend mode. Router 104 sends the request packet to proxy station B based on the subnetwork portion of the high-level network address in the management packet (in this case, subnetwork portion indicates network segment B); (2) User terminal B, is in suspend mode; and (3) The management request packet contains the high-level network address assigned to user terminal B 1 . Upon listening to the management request packet, proxy terminal B receives the packet and locates the entry in its routing table, which contains the high-level network address of terminal B. Since user terminal B 1 is located in network segment B, proxy terminal B can find the physical network address that corresponds to that high-level network address. In compliance with the command in the management request packet, proxy terminal B builds a magic packet, sends it to user terminal B 1 based on the physical network address assigned to terminal B 1 , and returns a completion code to management station 102. Since the network adapter of user terminal B 1 is powered to the extent that it can listen to the magic packet, it responds to the magic packet by generating an interrupt to bring user terminal B 1 out of suspend mode. Referring to figure 2, there is shown a block diagram of proxy terminal A or B. As shown in figure 2, the proxy terminal includes a processor 210, a memory 212, a buffer circuitry 216, and a network adapter 218. Memory 212 is able to store programs (which comprise instructions and data). Buffer circuitry 216 is able to store management request packets, ARP packets, and magic packets generated by processor 210. Network adapter 218 is able to listen for, receive ARP packets and management request packets from network local bus 113 (or 123), and to store them in buffer circuitry 216 for processing by processor 210. Network adapter 218 is also able to read respond packets that contain response codes generated by processor 210 and stored in buffer circuitry 216, and to transmit them to network management station 102 via router 104. Network adapter 216 is further able to read magic packets generated by processor 210 and stored in buffer circuitry 216, and to transmit them to the user terminals on the network segments it connects. To listen for and receive all management request packets, respond packets, and ARP packets from the network segment to which it is connected, network adapter 218 is set to be "promiscuous" to these types of packets. However, network adapter 218 also has its own network address to other types of packets, meaning it listens to the other types of packets, but only acts upon the packets that contain network addresses matching its own network address. Processor 210 has access to memory 212 and is able to execute the programs stored in the memory to perform desired functions. The processor is also able to control the operation of, and manipulate the contents (such as data or packets) stored in, buffer circuitry 216. Referring to figure 3A, there is shown a flowchart illustrating operational steps of processing ARP packets and management request packets, in accordance with the present invention. In step 304, a proxy terminal (A or B) listens and receives an ARP packet or a management request packet that is delivered to its network adapter 218 (see figure 2). In step 310, the proxy terminal determines whether the received packet is an ARP packet. If the determination is positive, the operation is led to figure 3B. If the determination is negative, the operation is led to step 312. In step 312, the proxy terminal determines whether the packet received is a management request packet. If the determination is negative, the packet is discarded, and the operation is led back to step 304. If the determination is positive, the operation is led to figure 3C. Referring to figure 3B, there is shown a flowchart illustrating the steps of processing an ARP packet, in accordance with the present invention. In step 324, the proxy terminal (proxy terminal A or B) determines whether the received ARP packet is an ARP request packet. If the determination is negative, the operation is led to step 326. If the determination is positive, the operation is led to step 336. In step 336, the proxy terminal retrieves the high-level network address contained in the ARP request packet. In step 337, the proxy terminal determines whether the subnetwork portion in high-level network address matches the segment number of network segment B. If the determination is negative, the operation is led back to step 304 in figure 3A. If the determination is positive, the operation is led to step 340. In step 340, the proxy terminal determines whether an entry exists in its routing table for the high-level network address. If the determination is positive, the operation is led back to step 304 in figure 3A. If the determination is negative, the proxy terminal creates a blank entry in the routing table and stores the high-level network address into this newly created entry. Then, the operation is led to step 304 in figure 3A. If the determination in step 324 is negative, the operation is led to step 326 to further determine whether the received packet is an ARP response packet. In step 326, if the determination is negative, the operation is led back to step 304 in figure 3A. If the determination is positive, the operation is led to step 328. In step 328, the proxy terminal retrieves the high-level network address from the ARP response packet. In step 330, the proxy terminal locates the entry from its routing table, which contains the high-level network address. In step 332, the proxy terminal retrieves the physical network address from the ARP response packet. In step 334, the proxy terminal stores the physical address into the entry that contains the high-level network address. Then, the operation is led to step 304 in figure 3A. Referring to figure 3C, there is shown a flowchart illustrating the steps of processing a management request packet, in accordance with the present invention. In step 358, the proxy terminal (proxy terminal A or B) determines whether the received request packet contains a command to wake up a user terminal. If the determination is negative, the operation is led to step 304 in figure 3A. If the determination is positive, the operation is led to step 360. In step 360, the proxy terminal retrieves the high-level network address from the received request packet. In step 362, the proxy terminal locates the entry from its routing table, which contains the high-level network address. In step 363, the proxy terminal determines whether the physical network address in the located entry is unmarked. If the determination is positive, the operation is led to step 364 in which the proxy terminal sends a failure code to the sender of the management request packet. The operation is then led to step 304 in figure 3A. In step 363, if the determination is negative, the operation is led to step 365, in which the proxy terminal retrieves the physical network address from the located entry. In step 366, the proxy terminal creates a magic packet. In step 368, the proxy terminal sends the magic packet containing the physical network address to the user terminal associated with the physical network address, to bring it out of suspend mode. In step 369, the proxy terminal sends a complete code to the sender of the management request packet. Then, the operation is led to step 304 in figure 3A. In the present invention, the programs for performing the functions shown in figures 3A, 38 and 3C can be stored in memory 212 and executed by processor 210. While the invention has been illustrated and described in detail in the drawing and foregoing description, it should be understood that the invention may be implemented through alternative embodiments within the scope of the present invention. Thus, the scope of the invention is not intended to be limited to the illustration and description in this specification, but is to be defined by the appended claims.

Claims: A computer network (100) comprising a router (104), a plurality of network segments (110,120) branching off from the router (104), and a plurality of computer terminals (114...,124...) connected in each segment, the terminals being of the kind that can be switched from an operational mode into a power-saving suspend mode, and the router (104) having storage means for storing routing information giving the segment locations of terminals and writing means for updating routing information so that it relates only to terminals which are in an operational mode wherein each segment of the network is provided with a proxy terminal (112,122) and each proxy terminal (112,122) has storage means for storing routing information for terminals in its segment, which routing information is retained when a terminal in its segment is switched into suspend mode, characterized in that a network management station (102) is provided which is coupled to the router (104) through a network bus (103), which station includes means for issuing request signals for bringing a selected terminal out of its suspend mode, which request signals include the network address of the selected terminal. The network according to claim 1 in which the routing information contained in the router (104) and in the proxy terminals (112,122) comprises routing tables containing network addresses of terminals matched to their physical addresses. The network according to claim 2 in which the proxy terminals (112,122) include processor means which function in response to the detection of a request signal to generate a command signal to bring the selected terminal out of its suspend mode, which command signal includes the physical address of the selected terminal. A method of controlling computer terminals (114...,124...) connected to a network (100) which comprises a plurality of segments (110,120) branching off from a router (104), the terminals being of the kind that can be switched from an operational mode into a power-saving suspend mode, the method comprising the steps of storing in the router (104) routing information giving the locations of terminals and updating such routing information so that it relates only to terminals which are in an operational mode, wherein each segment (110,120) of the network (100) is provided with a proxy terminal (112,122) and including the further steps of storing in the proxy terminals (112,122) routing information for terminals in its segment, and retaining such routing information when a terminal in its segment is switched into suspend mode characterized by the step of generating a request signal in a network management station (102) for bringing a selected terminal out of its suspend mode, which request signal includes the network address of the selected terminal.

Inventors: CONE KEVIN A, CONE, KEVIN A.
Applicants: NCR INT INC, NCR INTERNATIONAL, INC.
Application year: 1997
Main classification: H04L12
IPC codes: H04L12, H04L29