The invention generally relates to wireless networks. In particular, embodiments of the invention relate to power saving for one or more client devices in a wireless network.
A wireless access point (AP) is a device that “connects” wireless devices together to create a wireless network. The wireless devices, also known as “client devices”, communicate with each other or with other networks through the AP.
A client device may, or may not, be battery-powered. For example, a client device, such as a wireless-enabled laptop, a wireless-enabled cellphone, a wireless-enabled personal digital assistant (PDA), and the like, may sometimes be battery-powered, and at other times may receive power from an external source, such as a power outlet. Other client devices, such as a desktop computer, may receive power from an external source, such as a power outlet, and may not have the option to be battery-powered.
It may be beneficial to enhance the battery lifetime of battery-powered client devices.
Embodiments of the invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like reference numerals indicate corresponding, analogous or similar elements, and in which:
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity.
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of embodiments of the invention. However it will be understood by those of ordinary skill in the art that the embodiments of the invention may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the embodiments of the invention.
AP 102 has at least one antenna 116 and is configurable to support at least one wireless network name, for example, at least one service set identifier (SSID). A non-exhaustive list of examples for antenna 116 includes a dipole antenna, a monopole antenna, a multilayer ceramic antenna, a planar inverted-F antenna, a loop antenna, a shot antenna, a dual antenna, an omnidirectional antenna and any other suitable antenna. AP 102 may include a router.
Exemplary communications system 100 includes wireless-enabled laptops 120 and 122, wireless-enabled cellphones 124 and 126 and wireless-enabled personal digital assistants (PDAs) 128 and 130. Each of wireless-enabled laptops 120 and 122, wireless-enabled cellphones 124 and 126 and wireless-enabled PDAs 128 and 130 is able to execute an initialization process to associate themselves in a wireless network with AP 102.
For example, wireless-enabled laptops 120 and 122, wireless-enabled cellphones 124 and 126 and wireless-enabled PDAs 128 and 130 may become associated with AP 102 over a wireless network 118. Wireless-enabled laptops 120 and 122, cellphones 124 and 126 and PDAs 128 and 130 are referred to as “client devices”.
The client devices shown in
In this example, AP 102 and the client devices are all “802.11-enabled”, which means that wireless communications therebetween are in accordance with one or more of the following standards defined by the Institute of Electrical and Electronic Engineers (IEEE) for Wireless LAN MAC and Physical layer (PHY) specifications:
However, it will be obvious to those of ordinary skill in the art how to modify the following for other existing WLAN standards or future related standards, including 802.11.
The 1999 edition of the 802.11 standard (as reaffirmed Jun. 12, 2003) distinguishes between infrastructure WLANs and ad-hoc WLANs. The following description is for infrastructure WLANs, involving the use of access points.
The 802.11 standard explains that access points transmit beacon frames at substantially regular time periods to announce the existence of and to synchronize wireless networks. The number of time units between target beacon transmission times is referred to as a “beacon interval”. The format of beacon frames and their contents is explained in detail in the 802.11 standard. The beacon interval is included in each beacon frame.
Each beacon frame also includes a timestamp which is the value of a clock internal to the access point at the actual transmission time of the beacon. Due to use of carrier sense multiple access/collision detection (CSMA/CD) techniques, the actual transmission time may be later than the target beacon transmission time. Consequently, the timestamp field of the beacon frame is not filled until the actual transmission occurs. A client device receiving the beacon frame will update its internal clock according to the timestamp in the received beacon frame.
Each beacon frame also includes a Traffic Indication Map (TIM) that identifies client devices for which unicast traffic is pending and buffered in the access point. This information is encoded in a partial virtual bitmap. The TIM also includes an indication whether broadcast or multicast traffic is pending.
There are two different TIM types: TIM and delivery TIM (DTIM). A TIM includes a “DTIM count” field that indicates how many beacon frames (including the current frame) appear before the next DTIM. A DTIM count of zero indicates that the current TIM is a DTIM. The “DTIM period” field indicates the number of beacon intervals between successive DTIMs. Every DTIM period, a TIM of type “DTIM” is transmitted within a beacon, rather than an ordinary TIM. After a DTIM, the access point sends out the buffered broadcast or multicast traffic using normal frame transmission rules, before transmitting any unicast frames.
A client device may be in one of two different power states: “Awake”—the client device is fully powered; and “Doze”—the client device is unable to transmit or receive and consumes very low power. The manner in which a client device transitions between these two power states is determined by the power management mode of the client device. In “Active mode”, the client device may receive frames at any time and is in the “Awake” state. In “Power Save mode”, the client device listens to selected beacon frames (based upon the client device's “Listen Interval” parameter) and sends “Power Save poll (PS-poll)” frames to the access point if the TIM element in the most recent beacon frame indicates buffered unicast traffic for that client device.
In Power Save mode, a client device is in the Doze state and enters the Awake state to receive selected beacons, to receive broadcast and multicast transmissions following certain received beacons, to transmit, and to await responses to transmitted PS-poll frames or (for CF-pollable client devices) to receive contention-free transmissions of buffered traffic.
An access point maintains a Power Management status for each currently associated client device that indicates in which Power Management mode the client device is currently operating. Depending on the Power Management mode of the station, the access point temporarily buffers traffic destined for the client device. The access point transmits buffered unicast traffic to a client device in Power Save mode only in response to a PS-poll from that client device or during the contention-free (CF) period in the case of a CF-pollable client device in Power Save mode.
The “Listen Interval” parameter of a client device specifies the maximum number of beacon intervals that may pass before the client device awakens and listens for the next beacon frame. The client device informs the access point of its “Listen Interval” parameter during the association with the access point. The parameter may be determined, for example, by the desired power consumption/performance target of the client device.
The access point has an aging function to delete buffered traffic when it has been buffered for an excessive period of time. The aging function is based on the “Listen Interval” parameter, so that buffered traffic is retained for a period that is at least as long as a product of the Beacon Interval and the “Listen Interval” parameter of the client device for which the traffic is buffered.
The client device also has a Boolean parameter, entitled “Receive DTIMs”, which is set when the client device informs the access point of a change in the power management mode of the client device. When the “Receive DTIMs” parameter is true, the client device awakens to receive all beacon frames that include a DTIM. When the parameter is false, the client device is not required to awaken for every beacon frame that includes a DTIM.
More detail about the power-management operation of the access point and client devices during the contention period and the contention-free period is given in the section of the 802.11 standard entitled “Power management in an infrastructure network”.
The “Listen Interval” parameter of a particular client device affects the particular client device's power save behavior regarding unicast traffic, and the “DTIM period” of the access point and the “Receive DTIMs” parameter of the client devices affect the power save behavior of all client devices in the wireless network regarding broadcast and multicast traffic.
Client devices in a wireless network may have conflicting requirements for power consumption and communication throughput when in Power Save mode. Moreover, the need for power saving in a battery-powered client device may increase over time as the battery drains, overriding communication throughput considerations for the battery-powered client device.
Currently, an access point is able to store only a single DTIM period. Consequently, different client devices in Power Save mode will all wake up for the same beacon frames according to the single DTIM period. Currently, a network manager may need to balance the conflicting requirements for power consumption and communication throughput when in Power Save mode of client devices in a wireless network when configuring the DTIM period of an access point.
Currently, a client device that has its “Receive DTIMs” parameter set to true and is in Power Save mode will awaken according to the DTIM period of the access point with which it is associated in order to listen to DTIMs and determine whether to stay awake to receive broadcast or multicast traffic. That same client device will also awaken within a period determined by its “Listen Interval” parameter to listen to TIMs and determine whether to stay awake to issue a PS-poll frame for buffered unicast traffic.
Each client device has a unique hardware address, for example a medium access control (MAC) address, and is assigned an Internet Protocol (IP) address by a dynamic host configuration protocol (DHCP) server, which may be embedded in the access point. Alternatively, the IP address of a client device may be statically configured. In addition, an access point assigns an “association identifier (AID)” to client devices associated therewith and maintains a mapping of AIDs to MAC addresses. The access point identifies those client devices for which it has buffered unicast traffic by setting bits in the TIM's partial virtual bitmap that correspond to the appropriate AIDs. Moreover, the access point maintains an Address Resolution Protocol (ARP) table that contains a mapping of Internet Protocol (IP) addresses to MAC addresses.
A network gateway may receive from an external network one or more information frames to forward to a network device associated with a particular IP address. The network gateway may have to resolve the MAC address of the network device associated with the particular IP address in order to include the MAC address in the information frames and to send the information frames to the network device. The network gateway may generate an ARP request and send it to the various network devices, including the access point, which will treat it as broadcast traffic. The network device (or client device associated with the access point) having the particular IP address may respond to the ARP request with its MAC address.
According to an embodiment of the invention, AP 102 may handle received broadcast or multicast traffic as multiple instances of unicast traffic, where each instance is destined for a corresponding client device associated with AP 102. AP 102 will indicate in a TIM the existence of each instance that is destined for a client device in Power Save mode. This indication will be repeated in subsequent TIMs until the aging function of AP 102 has caused the instance to be discarded or until the client device has issued a PS-poll frame or has received the instance in a contention-free transmission of buffered traffic, whichever comes first.
AP 102 will no longer indicate in a DTIM the existence of the broadcast or multicast traffic and will no longer transmit the broadcast or multicast traffic following a DTIM. Consequently, this embodiment will affect all client devices associated with AP 102. Alternatively, AP 102 will continue to indicate in a DTIM the existence of the broadcast or multicast traffic and to transmit the broadcast or multicast traffic following the DTIM, in addition to the transmission of the broadcast or multicast traffic as multiple instances of unicast traffic. In this alternative embodiment, only those client devices having a “Receive DTIMs” parameter set to false will be affected.
For example, laptop 122, cellphone 126 and PDAs 128 and 130 may be in Power Save mode, with “Listen Interval” parameters of 4, 8, 8 and 6, respectively.
For example, if AP 102 receives an ARP request 201 prior to beacon frame 202, AP 102 will handle the broadcast traffic as multiple instances of unicast traffic, where each instance is destined for a corresponding wireless client device associated with AP 102. Since laptop 120 and cellphone 124 are in Active mode, AP 102 will transmit ARP request 201 to laptop 120 and cellphone 124 as soon as possible. AP 102 will buffer ARP request 201 for each of the client devices in Power Save mode.
AP 102 will then include in TIMs of subsequent beacon frames indications of this buffered “unicast” data. For example, AP 102 will include in the TIM of beacon frame 202 indications that unicast data is buffered for laptop 122, cellphone 126 and PDAs 128 and 130. Laptop 122 may awaken from Power Save mode to listen to the TIM of beacon frame 202, may identify that unicast data is buffered, and may send a PS-poll frame 204 to AP 102 in response. AP 102 may then transmit ARP request 201 to laptop 122.
AP 102 will then include in the TIM of beacon frame 206 indications that unicast data is buffered for cellphone 126 and PDAs 128 and 130. PDA 130 may awaken from Power Save mode to listen to the TIM of beacon frame 206, may identify that unicast data is buffered, and may send a PS-poll frame 208 to AP 102 in response. AP 102 may then transmit ARP request 201 to PDA 130.
AP 102 will then include in the TIMs of beacon frames 210, 212, 214, 216 and 218 indications that unicast data is buffered for cellphone 126 and PDA 128. Cellphone 126 and PDA 128 may awaken from Power Save mode to listen to the TIM of beacon frame 218, may identify that unicast data is buffered, and may send PS-poll frames 220 and 222, respectively, to AP 102 in response. AP 102 may then transmit ARP request 201 to cellphone 126, followed by a transmission of ARP request 201 to PDA 128.
AP 102 also includes a wired network interface 306 coupled to a wired network controller 308. The wired network(s) may be, for example, Ethernet network(s), token rings, Universal Serial Bus (USB), wired network(s) according to the IEEE 1394-1995, IEEE 1394a-2000, and IEEE 1394b standards (commonly known as “FireWire”), or any combination thereof. Wired network interface 306 is able to use wired connections 108 and 110.
Radio 302 and processor 304 may be part of the same integrated circuit or in separate integrated circuits. Similarly, processor 304 and wired network controller 308 may be part of the same integrated circuit or in separate integrated circuits.
AP 102 also includes a memory 310, which may be fixed in or removable from AP 102. Memory 310 may be coupled to processor 304 or partly embedded in processor 304. A non-exhaustive list of examples for memory 310 includes any combination of the following:
Processor 304 and wired network controller 308 may be coupled by signals 311 to coordinate their activities, for example access to memory 310.
Memory 310 may store mappings 312 of MAC addresses of client devices associated with AP 102 to respective IP addresses, and mappings 314 of MAC addresses of client devices associated with AP 102 to respective AIDs. Alternatively, any or all of these mappings may be stored internally in processor 304. For example, cellphone 126 may have AID=1, PDA 130 may have AID=2, PDA 128 may have AID=3, laptop 122 may have AID=4, cellphone 124 may have AID=5, and laptop 120 may have AID=6.
Memory 310 may also include a buffering system 318 to store incoming traffic destined for client devices. For example, data 320 of incoming traffic may be transferred to buffering system 318 under control signals 322 of wired network controller 308.
Buffering system 318 already includes buffers to store unicast traffic on a per-client device basis.
In one embodiment, AP 102 will simply copy the received broadcast or multicast traffic to the buffers of each of the client devices which are to receive the traffic.
In another embodiment, AP 102 may maintain lists for each associated client device (indexed, for example, by the AID). AP 102 may allocate a buffer upon receipt of broadcast or multicast data and may include a pointer to the allocated buffer (or any other suitable indication of the allocated buffer) in the list for each client device in Power Save mode that is destined to receive the data. Each such allocated buffer is associated with a counter that is set to the total number of client devices in Power Save mode that are destined to receive the broadcast or multicast data. Each time the buffered data is sent to one of the client devices, the counter is decremented. Once the counter is zero, AP 102 is free to deallocate the allocated buffer and discard the buffered data.
For example, as AP 102 receives ARP request 201 prior to beacon frame 202 (
Once AP 102 has transmitted ARP request 201 to laptop 122 (following the PS-poll frame sent by laptop 122 in response to beacon frame 202), the pointer to buffer A is removed from the list for AID 4, and counter 324 is decremented by 1.
Once AP 102 has transmitted ARP request 201 to PDA 130 (following the PS-poll frame sent by PDA 130 in response to beacon frame 206), the pointer to buffer A is removed from the list for AID 2, and counter 324 is decremented by 1.
Once AP 102 has transmitted ARP request 201 to cellphone 126 (following the PS-poll frame sent by cellphone 126 in response to beacon frame 218) and to PDA 128 (following the PS-poll frame sent by PDA 128 in response to beacon frame 218), the pointer to buffer A is removed from the lists for AID 1 and 3, and counter 324 is decremented by 2.
Processor 304 may handle the received broadcast or multicast traffic as multiple instances of unicast traffic, where each of the instances is destined for a corresponding wireless client device associated with AP 102, by accessing buffering system 318 through data signals 330 and control signals 332.
Client device 400 also includes a memory 410, which may be fixed in or removable from client device 400. Memory 410 may be coupled to processor 404 or partly embedded in processor 404. A non-exhaustive list of examples for memory 410 includes any combination of the following:
Processor 404 may access data stored in memory 410 through data signals 430 and control signals 432. Memory 410 may store an indication of its “Listen Interval” parameter. Memory 410 may store a default hard-coded value for the “Listen Interval” parameter. The “Listen Interval” parameter may be configurable by a user of client device 400.
Processor 404 may adjust the “Listen Interval” parameter according to predefined considerations. A non-exhaustive list of examples for such considerations includes:
Processor 404 may initiate a reassociation request to declare this adjusted “Listen Interval” parameter to AP 102.
If a client device sets its “Receive DTIMs” parameter to False, then in Power Save mode, the client device will not wake up for DTIMs according to the DTIM period, yet will awaken to listen to TIMs within a period defined by the product of its “Listen Interval” and the beacon interval. If the client device has a “Listen Interval” parameter that is greater than the DTIM period of AP 102, then in this embodiment of the invention, the client device will increase its power-saving potential while retaining the ability to receive broadcast and multicast traffic. This increase in power-saving potential is in comparison to a client device having its “Receive DTIMs” parameter set to True and that is associated with an access point that buffers broadcast or multicast traffic for clients in Power Save mode, indicates the existence of the buffered broadcast or multicast traffic in a DTIM and transmits the buffered broadcast or multicast traffic following the DTIM and that does not handle the broadcast or multicast traffic as multiple instances of unicast traffic.
In order to make use of some embodiments of the invention, a client device may recognize that an access point with which the device is associated handles received broadcast and multicast traffic as multiple instances of unicast traffic, where the instances are destined for corresponding wireless client devices associated with the access point. The client device may set its “Receive DTIMs” parameter to false when entering Power Save mode.
The client device may configured manually or automatically to use this behavior. For example, manual configuration may be achieved through an option screen or configuration file of the client device or the like. Automatic configuration may be achieved by pushing the appropriate configuration to the client device, for example, by over-the-air policy management or by connecting the client device to a computer and loading the configuration information via the connection. Automatic configuration may be achieved through communication with the access point. For example, the client device could wait for an ARP to be sent either as a unicast message or as a broadcast message, and then configure its “Receive DTIMs” parameter appropriately on the assumption that the access point will continue to transmit broadcast traffic in the same manner. In another example, the access point could send a particular flag in one of the downlink frames to indicate that it intends to pursue this broadcast-free connection mode. In yet another example, the client device could query the access point regarding its handling of broadcast and multicast traffic.
While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those of ordinary skill in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the spirit of the invention.