1. Field of the Invention
The invention generally relates to network communications, and, in particular, to awakening client devices located in a different subnetwork from a host device.
2. Description of the Related Art
In network systems, remote wake-up abilities are often provided for clients. This type of feature allows a client to be turned on (or awakened) through the network. With this feature, a system administrator or other user may wake up a sleeping client by sending a network packet. For example, with a network adapter, such as an Ethernet controller, the adapter is modified to listen for a special wake-up packet on a local area network (LAN) even when the client in which the network adapter is located is asleep (i.e., in power conservation mode). Upon receiving the wake-up packet, the network adapter checks the packet content to ensure that the packet is destined for this particular client. If the packet is destined for the client, the adapter wakes up the sleeping client.
The “wake-up” feature may be used in a large network, where, for example, the administrator's computer may be located on a different subnet from the clients that are being managed by the administrator. In such a case, the “wake-up” packet may be forwarded from the administrator's computer via one or more intermediate network routers to the client that is located on a different subnet from the administrator's computer. However, in instances where the client is located on a different subnet from the transmitting machine, the “wake-up” packet cannot be unicasted to the target client for reasons described next. When a “wake-up” packet arrives at the router of the destination subnet, the router attempts to resolve the medium access control (MAC) address for the target client by sending an address resolution protocol (ARP) request to the target client. However, because the target client is asleep, it will not respond to the ARP request. Thus, a “wake-up” packet cannot be unicasted where the client is located on a different subnet from the transmitting machine.
The above shortcoming is presently solved in the current version of Internet Protocol version 4 (IPv4) by sending the “wake-up” packet via a subnet-directed broadcast to the client that is to be woken up. When the “wake-up” packet reaches the router at the target client's subnet, the router forwards this subnet-directed broadcast packet onto the final subnet where the packet is picked up by each network controller on that subnet.
Transmitting the “wake-up” packet as a subnet-directed broadcast, however, has several drawbacks. First, some routers may not forward the broadcast packets. Thus, the target client may never receive the “wake-up” packet. Second, even if the router broadcasts the “wake-up” packet, every network adapter on the subnet receives, and subsequently processes, the packet. Thus, even the machines that were not the intended recipient may expend valuable resources to process the received packet only to determine that the packet is intended for another machine on the subnet. As such, subnet-directed broadcasts of “wake-up” packets can be inefficient.
The present invention is directed to addressing, or at least reducing, the effects of, one or more of the problems set forth above.
In one aspect of the instant invention, a method is provided for waking up client devices. A method comprising determining a first network address associated with a client device and a second network address associated with the client device and transmitting at least a portion of the first network address and the second network address to a remote device while the client device is in sleep mode.
In another aspect of the instant invention, an apparatus is provided for waking up client devices. An apparatus comprising a storage unit communicatively coupled to a control unit. The storage unit is adapted to store a first network address associated with a client device and a second network address associated with the client device. The control unit is adapted to access the first network address and the second network address and transmit information representative of the first network address and the second address to a remote device at a user-defined time interval at least while the client device is in sleep mode.
In yet another aspect of the instant invention, an article comprising one or more machine-readable storage media containing instructions is provided for waking up client devices. The instructions, when executed, enable a processor to determine a first network address associated with a client device and a second network address associated with the client device, defining a time interval at which to transmit the first network address and the second network address to a remote device, and transmit at least a portion of the first network address and the second network address to a remote device at the defined time interval at least during a portion of a period the client device is in sleep mode.
The invention may be understood by reference to the following description taken in conjunction with the accompanying drawings, in which like reference numerals identify like elements.
While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the description herein of specific embodiments is not intended to limit the invention to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.
Illustrative embodiments of the invention are described below. In the interest of clarity, not all features of an actual implementation are described in this specification. It will of course be appreciated that in the development of any such actual embodiment, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which will vary from one implementation to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure.
The words and phrases used herein should be understood and interpreted to have a meaning consistent with the understanding of those words and phrases by those skilled in the relevant art. No special definition of a term or phrase, i.e., a definition that is different from the ordinary and customary meaning as understood by those skilled in the art, is intended to be implied by consistent usage of the term or phrase herein. To the extent that a term or phrase is intended to have a special meaning, i.e., a meaning other than that understood by skilled artisans, such a special definition will be expressly set forth in the specification in a definitional manner that directly and unequivocally provides the special definition for the term or phrase.
Referring to
In the illustrated embodiment, a host device 105 is associated with the first subnet 102, and a plurality of client devices 110(1-3) are associated with the second subnet 104. It should be appreciated that the arrangement of the communications system 100 of
As described in greater detail below, in accordance with one embodiment of the present invention, the host device 105 is able to transmit a “wake-up” packet 118 directed to a particular client device 110 located in a different subnet to awaken that client device 110. That is, instead of relying on a subnet-directed broadcast to awaken a client device 110 situated in a different subnet, the host device 105 is capable of transmitting the “wake-up” packet 118 directed to the particular client device 110 via a unicast transmission. A “wake-up” packet 118 may be a data packet that contains an identifiable (or unique) sequence of bits in the payload field of an IP data packet that enables the receiving network adapter to identify the packet as a “wake-up” packet. An exemplary “wake-up” packet is shown in
In the illustrated embodiment of
The various devices 105, 110, 120, 125 of the communications system 100 in
The routers 120, 125, in the illustrated embodiment, utilize Address Resolution Protocol (ARP) for mapping an Internet Protocol address (IP address) to a physical machine address that is recognized in a network. For example, in IP Version 4, an address is 32 bits long, while in an Ethernet network, the addresses for attached devices (e.g., 105, 110) are 48 bits long. The physical machine address is also known as a Media Access Control (or MAC address). In the illustrated embodiment, the second router 125 utilizes an address mapping table 140 for maintaining a correlation between a network-level address (e.g., Internet Protocol) and a link-level address (e.g., MAC address). In other embodiments, the address mapping table 140 (sometimes also referred to as the “mapping table” in this discussion) may provide a correlation between any variety of protocols or different levels of protocols, depending on the implementation goals. In the context of IPv4, the ARP protocol provides rules for making this correlation. In one embodiment, although not shown, the first router 120 may also include a mapping table.
A brief description of the operation of the ARP protocol is described next in the context of the communications system 100 of
In accordance with one embodiment of the present invention, the network adapter 127 of the client device 110 includes an address update (AU) module 150 that, at user-defined time intervals, transmits information representative of its IP address and MAC address to the router 125 while the client device 110 is in sleep mode. Upon receiving the IP/MAC address information of the client device 110, the router 125 updates its mapping table 140 based on the received address information. Once the mapping table 140 includes an entry for the client device 110, the host device 105 is able to transmit the “wake-up” packet 118 directed to that client device 110. In one embodiment, the network adapter 127 may transmit the address information of the client device 110 to the router 125 at least once while the client device 110 is asleep. In an alternative embodiment, the address information may be transmitted periodically (or at some user-defined interval) to the router 125. It may be desirable to periodically (or at least occasionally) transmit the address information to the router 125 in the event the router 125 clears or deletes entries from its mapping table 140 after expiration of some time period, which may be programmable. In the illustrated embodiment of
The various modules 150, 155 illustrated in
For illustrative purposes, the flow diagrams of FIGS. 2A-B are described in the context of
The AU module 150 determines (at 210) if the timer has expired (i.e., the “selected time” has elapsed). In one embodiment, the expiration of the timer may generate an interrupt. This generation of the interrupt may constitute the act of determining (at 210) that the timer has expired. If it is determined (at 210) that the timer has not expired, the AU module 150 continues to check if the timer has expired. In one embodiment, the AU module 150 may wait a predetermined amount of time before rechecking to see if the timer has expired (at 210).
If the AU module 150 determines (at 210) that the timer has expired, then the AU module 150 transmits (at 215) information representative of the IP address and the MAC address of the client device 110(1) to update the mapping table 140 of the router 125. In one embodiment, the information representative of the IP address and the MAC address may comprise transmitting the entire IP and MAC address, or, alternatively, may comprise transmitting at least a portion of the IP and MAC address. The AU module 150 may transmit (at 215) the address information associated with the client device 110(1) to the router 125 in a variety of ways, including in a message or a data packet. The type of “data packet” that may be transmitted to the router 125 can vary from one implementation to another. For example, if the network protocol employed is IPv4, then the packet may be an ARP packet, and if the network protocol employed is IPv6, then the packet may be an NDP (Neighbor Discovery Protocol) packet. The router 125, upon receiving the address information, may update its mapping table 140 with the appropriate IP-MAC address information. In one embodiment, the IP address and the MAC address may be stored in a local memory (shown as element 462 in
In one embodiment, the AU module 150 may update (at 215) the mapping table 140 of the router 125 while the client device 110(1) is in sleep mode. That is, the AU module 150 may continue to transmit the IP and MAC address of the client device 110(1) to the router 125 at each scheduled time interval at least during the duration the client device 110(1) is asleep. This transmission of the address information may, in one embodiment, cease once the client device 110(1) is awakened by a “wake-up” packet.
In accordance with one embodiment of the present invention, because the AU module 155 periodically (or at some other user-defined intervals) transmits the address mapping information to the mapping table 140 of the router 125, the host device 105 no longer needs to transmit the “wake-up” packet 118 as a subnet-directed broadcast. Instead, the host device 105 may, in one embodiment, directly address the “wake-up” packet to the client device 110 that is to be woken up. When the “wake-up” packet reaches the router 125 for the destination subnet (e.g., subnet 104 in this case), the router 125 has, because of its updated mapping table 140, access to the appropriate IP-MAP address mapping. As such, the router 125 can forward the “wake-up” packet to the appropriate machine. By removing, or at least reducing, the need to use subnet-directed broadcasts to wake-up client devices 110 located on a different subnet from the host device 105, one or more embodiments of the present invention improve the efficiency of the network because the “wake-up” packet 118 no longer needs to be processed by every client device 110 on that subnet. Moreover, because some routers 125 may not transmit subnet-directed broadcasts, the likelihood of losing “wake-up” messages/packets can also be reduced.
If it is determined (at 225) that a data packet has been received, the wake-up module 155 determines (at 230) if the received data packet is a wake-up packet. The module 155 may identify a “wake-up” packet, in one embodiment, based on the sequence of bits stored in the data field of the packet (i.e., the “wake-up” packet includes a unique sequence of bits in the data packet's payload). If it is determined that the received packet is not a “wake-up” packet, the module 155 discards (at 240) the received data packet. The received data packet may be discarded because the client device 110(1) may not desire to receive packets while it is in the sleep mode.
If the module 155 determines (at 230) that the packet received (at 225) is a “wake-up” packet, the module 155 determines (at 245) if the received “wake-up” packet is directed for the client device 110(1). This may be accomplished by comparing the destination address stored in the destination address field of the “wake-up” packet to the network address of the client device 110(1). If the received “wake-up” packet is not intended for the client device 110(1), the wake-up module 155 discards (at 240) the received “wake-up” packet. A “wake-up” packet may not be intended for the client device 110(1), for example, if it is a subnet-directed broadcast to all the client devices 110(1-3), even though the actual (or intended) destination may be the second client device 110(2) or the third client device 110(3).
If it is determined (at 245) that the received “wake-up” packet is destined for the client device 110(1), the module 155 wakes up (at 250) the client device 110(1). The module 155 may wake up (at 250) the client device 110(1) in any variety of ways, including sending a signal from the network adapter 127 to the motherboard (or processor) of the client device 110(1). The above-described process may be repeated each time the client device 110(1) enters the sleep mode, in one embodiment.
The “wake-up” packet 300 includes a plurality of sections 310(1-7). The first six sections 310(1-6) are collectively referred to as the “header” section of the packet 300, and the last section 310(7) is commonly referred to as the “payload” section (where the data is stored for the packet 300). The sections 310(1-7) are defined in the IPv4 protocol, and are thus well-known to those skilled the art. As can be seen, the “wake-up” packet 300 illustrated in
Referring now to
A storage unit 450 is coupled to the south bridge 435. Although not shown, it should be appreciated that in one embodiment an operating system, such as AIX, Windows®, Disk Operating System®, Unix®, OS/2®, Linux®, MAC OS®, or the like, may be stored on the storage unit 450 and executable by the control unit 415. The storage unit 450 may also include device drivers (not shown) for the various hardware components of the system 400.
In the illustrated embodiment, the processor-based device 400 includes a display interface 447 that is coupled to the south bridge 435. The processor-based device 400 may display information on a display device 448 via the display interface 447. The south bridge 435 of the processor-based device 400 may include a controller (not shown) to allow a user to input information using an input device, such as a keyboard 448 and/or a mouse 449, through an input interface 446.
The south bridge 435 of the system 400, in the illustrated embodiment, is coupled to a network interface 460, which may be adapted to receive, for example, a local area network card. In an alternative embodiment, the network interface 460 may be a Universal Serial Bus interface or an interface for wireless communications. The processor-based device 400 communicates with other devices coupled to the network through the network interface 460. Although not shown, associated with the network interface 460 may be a network protocol stack, with one example being a UDP/IP (User Datagram Protocol/Internet Protocol) stack. UDP is described in RFC 768, entitled “User Datagram Protocol,” dated August 1980. In one embodiment, both inbound and outbound packets may be passed through the network interface 460 and the network protocol stack.
The network interface 460 may interface with the network adapter 127 (see
It should be appreciated that the configuration of the processor-based device 400 of
The various system layers, routines, or modules may be executable control units (such as control unit 415, 461 (see
The particular embodiments disclosed above are illustrative only, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. Furthermore, no limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope and spirit of the invention. Accordingly, the protection sought herein is as set forth in the claims below.