[recipe] Sleeping Nodes
Hannes Tschofenig <hannes.tschofenig@gmx.net> Fri, 15 July 2011 06:37 UTC
Return-Path: <hannes.tschofenig@gmx.net>
X-Original-To: recipe@ietfa.amsl.com
Delivered-To: recipe@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3CAF021F8573 for <recipe@ietfa.amsl.com>; Thu, 14 Jul 2011 23:37:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.586
X-Spam-Level:
X-Spam-Status: No, score=-102.586 tagged_above=-999 required=5 tests=[AWL=0.013, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GQtOLCn6o--b for <recipe@ietfa.amsl.com>; Thu, 14 Jul 2011 23:37:49 -0700 (PDT)
Received: from mailout-de.gmx.net (mailout-de.gmx.net [213.165.64.23]) by ietfa.amsl.com (Postfix) with SMTP id 1DE2321F854F for <recipe@ietf.org>; Thu, 14 Jul 2011 23:37:44 -0700 (PDT)
Received: (qmail invoked by alias); 15 Jul 2011 06:37:43 -0000
Received: from letku214.adsl.netsonic.fi (EHLO [10.0.0.6]) [194.29.195.214] by mail.gmx.net (mp025) with SMTP; 15 Jul 2011 08:37:43 +0200
X-Authenticated: #29516787
X-Provags-ID: V01U2FsdGVkX18Re9I2whIRR7NhYpQ2xkzAVx0HI9jmxV62Ddc1Qt oQXBdH4ERA+x2r
From: Hannes Tschofenig <hannes.tschofenig@gmx.net>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: quoted-printable
Date: Fri, 15 Jul 2011 09:37:42 +0300
Message-Id: <1F32F796-E219-4673-85CE-6CE11A72820F@gmx.net>
To: recipe@ietf.org
Mime-Version: 1.0 (Apple Message framework v1084)
X-Mailer: Apple Mail (2.1084)
X-Y-GMX-Trusted: 0
Subject: [recipe] Sleeping Nodes
X-BeenThere: recipe@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "RECIPE \(Reducing Energy Consumption with Internet Protocols Exploration\)" <recipe.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/recipe>, <mailto:recipe-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/recipe>
List-Post: <mailto:recipe@ietf.org>
List-Help: <mailto:recipe-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/recipe>, <mailto:recipe-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jul 2011 06:37:53 -0000
Hi all, in the recently published report from the Smart Object Workshop we have section about "sleeping nodes": http://tools.ietf.org/html//draft-iab-smart-object-workshop-01#section-3.2 Given the scope of this group you may find the writeup interesting. The writeup was based on the discussions at the workshop following Margaret's presentation, which can found here http://www.iab.org/wp-content/IAB-uploads/2011/04/Wasserman.ppt. You may also find her paper "IT’S NOT EASY BEING 'GREEN'" interesting: http://www.iab.org/wp-content/IAB-uploads/2011/03/Wasserman.pdf While Margaret talked a lot about ND I am wondering whether someone of you had looked into energy efficiency of other protocols already as well. Ciao Hannes -------- 3.2. Sleep Modes One limitation of smart objects is the available energy. To extend battery life, for example of a watch battery or single AAA battery for months, these small, low power devices have to sleep from 99% to 99.5% of their time. For example, a light sensor may wake up to check whether it is night-time to turn on light bulbs. Most parts of the system are off-line most of the time and particularly communication components are put into a sleeping state (e.g., WLAN radio interface) and only very few components of an embedded system board, such as sensors, are triggered periodically. When interesting events happen then these components wake-up other parts of the system, for example a radio interface to connect to the Internet. Every bit is precious, so is every round trip, and every millisecond of radio activity. Many IETF protocols implicitly assume that nodes in a network are always-on and respond to messages, i.e., to maintain a persistent presence on the network in order to respond to periodic messages that are required in order to maintain persistent sessions, connections, security associations, or state. These protocols work well on networks with sufficient network bandwidth, where there is a low cost to receiving/sending messages, and nodes are persistently available on the network. In the early days a machine had gotten a specific IP address allocated and it could use it when it wanted to send an IP packet. You might need to execute an ARP exchange first before sending the packet but you could keep the mapping in the cache for 15 minutes. Nowadays we want to make sure that we are on the right network before we send an IP packet, we run neighbor discovery, we cannot keep neighbor discovery for 15 minutes and so when a node wakes up again it essentially has to re-do it to refresh the cache, we want to run Detecting Network Attachment (DNA) procedures to check that hosts are on the same network either by re-getting an address using the Dynamic Host Configuration Protocol (DHCP) or by noticing that the node is using the same default gateway because of a received Router Advertisement (RA). Essentially, a number of steps have to be taken before sending a packet. However, these protocols do not work well, if at all, when the cost of sending/receiving those messages is high (in terms of bandwidth or battery life) or in cases where nodes sleep periodically and are not persistently available to receive those messages. A number of issue arise from these almost-always-off nodes. Also a lot of our protocols are getting more chatty. Keeping the receiver up for an additional roundtrip costs extra energy. Protocol messages can also be lengthy, e.g., many protocols carry XML-based payloads. There are a couple of ways to think about how to make the situation less worse: 1. The Always-On Assumption When designing a protocol that assumes that the nodes will always be there at least consider an alternative paradigm. For example, with duplicate address detection an alternative would be not to use it. There might be also the option to consider an architecture with a proxy node that these nodes can poll when they boot up to find out whether anyone tried to contact them or whether anything they care about has happened, or the proxy answers on behalf of another node. 2. High Cost to Rejoin the Network The goal of these things is to determine whether a wireless node is not moved to another network while it was asleep and that might be a viable thing to do. Expecting a wirelss node to go through all these steps every time it wakes up before it is allowed to send an Ip packet could be considered rather excessive. Can we find ways to reduce the number of protocol interactions that have to be executed for network attachment, including determining whether a node has moved or the environment has changed otherwise? 3. Verbose Protocols Some protocols involve multiple roundtrips and/or lengthy messages. As a result, low-powered nodes have to use more power in sending messages and have to stay powered on for a longer period of time as they wait for the protocol exchanges to complete. The best way to address these problems is to ensure that the simplest possible protocol exchanges are used when the protocols in question are designed. However, in some cases alternative encoding formats and compression may also help. One can argue that certain features are not useful in an environment where most nodes are sleeping. The main focus of past investigations has been on IPv6 and ND but other protocols do also deserve a deeper investigation, such as DNS, and DHCP. During the protocol design phase certain protocols were assumed to be used in a human-to-device context and therefore it was argued that the verbose encoding is helpful. Examples are the Hypertext Transfer Protocol (HTTP), the Session Initiation Protocol (SIP), and Extensible Messaging and Presence Protocol (XMPP). Nowadays these protocols are also being considered and used in device-to-device communication and the verbose nature is not helpful. While the principles seem to be most useful for low-power, battery powered devices they would also be useful for other devices as well. Energy efficiency is useful for normal devices as well, such as laptops and smart phones. For example, consider energy consumption in a home environment. The question is whether it will save more energy than it uses and therefore one has to consider the overall energy consumption of the entire solution. This is not always an easy question to answer. IEEE 802.11 nodes, for example, use a lot of power if they cannot be made to sleep most of the time. A light bulb may use less power but there is also the device that controls the bulb that may consume a lot of energy all the time. In total, more energy may be consumed when considering these two devices together.
- [recipe] Sleeping Nodes Hannes Tschofenig
- Re: [recipe] Sleeping Nodes Juergen Quittek
- Re: [recipe] Sleeping Nodes Hannes Tschofenig
- Re: [recipe] Sleeping Nodes JinHyeock Choi