Internet DRAFT - draft-ruellan-webpush-low-energy-requirement
draft-ruellan-webpush-low-energy-requirement
WebPush Working Group H. Ruellan
Internet-Draft Canon CRF
Intended status: Informational K. Yasuma
Expires: January 7, 2016 T. Sakai
Canon
July 06, 2015
Low Energy Requirements for WebPush
draft-ruellan-webpush-low-energy-requirement-00
Abstract
Many devices are now connected to the Internet. Receiving
instantaneous notifications from the Web is an appealing but possibly
power-hungry feature. This can be a substantial problem for light
devices with limited battery capacities. WebPush alleviates this
problem by enabling a server to push notifications to the device
instead of having the device regularly poll the server. This is a
first step towards more energy efficient devices, but is still not
sufficient for enabling batteries to last weeks or months without
recharging.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 7, 2016.
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
Ruellan, et al. Expires January 7, 2016 [Page 1]
Internet-Draft Low Energy July 2015
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Real-Time Notification . . . . . . . . . . . . . . . . . 2
1.2. Energy Consumption . . . . . . . . . . . . . . . . . . . 2
1.3. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
2. Increasing Energy Efficiency with WebPush . . . . . . . . . . 3
3. WebPush Energy Inefficiency . . . . . . . . . . . . . . . . . 3
4. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . 4
5. Security Considerations . . . . . . . . . . . . . . . . . . . 4
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 4
6.1. Normative References . . . . . . . . . . . . . . . . . . 4
6.2. Informative References . . . . . . . . . . . . . . . . . 5
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 5
1. Introduction
1.1. Real-Time Notification
There is a strong trend of making all devices connected. For a
connected device, real-time notification is an important feature.
Indeed, both major mobile phone platforms offer a notification
service: Apple Push Notification service - APNs - for iOS and Google
Cloud Messaging - GCM - for Android.
WebPush [I-D.thomson-webpush-protocol] is a protocol taking advantage
of HTTP/2 [RFC7540] server push feature for transmitting events or
notifications to a user agent. The Push API
[W3C.WD-push-api-20150427] enables to surface the events received
through WebPush at the web application level. The combination of
these two specifications provides a mechanism for an application
server to push notifications to any web application.
1.2. Energy Consumption
Energy consumption is an important problem for light devices. Users
are keen to have devices that last weeks or months on a single
charge. Not only users are requesting long-lasting battery life, but
standards and regulations for energy-efficient products put always
stricter limits on the energy consumption of devices.
Ruellan, et al. Expires January 7, 2016 [Page 2]
Internet-Draft Low Energy July 2015
In a device, the screen, CPU, and network access - usually through a
wireless network - consume much of the available energy available.
In particular, real-time notification consumes both CPU and wireless
communication. These consumptions should be reduced as much as
possible for preserving battery life.
1.3. Terminology
In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119
[RFC2119].
2. Increasing Energy Efficiency with WebPush
The legacy mechanism for receiving notifications from a web server is
to use polling. However, polling has a main drawback: it requires to
send frequent poll requests to check whether a new notification is
available on the server side. Sending a request consumes CPU and
bandwidth, which translates to energy consumption.
In addition, polling is rather inefficient: most of the time the
requests sent to the server will return no new notification. This
inefficiency can be reduced by increasing the interval between poll
requests, but this is to the detriment of latency: a new notification
will only be received after the next poll request occurs.
Pushing is much more efficient: all the messages sent by the server
contain one or more notifications. As such, no energy is wasted for
unnecessary messages, which can greatly reduce the energy consumption
related to notifications.
3. WebPush Energy Inefficiency
WebPush is improving the energy efficiency related to transmitting
notifications from a web server to a device. However, there are
still some areas that could be improved.
WebPush is relying on HTTP/2, which itself relies on TCP. To be able
to send a notification, the WebPush protocol needs an open HTTP/2
connection, which in turns needs an open TCP connection.
Maintaining the TCP connection open requires to send some _Keep-
Alive_ messages (for example to prevent a NAT, or a Firewall from
dropping the connection). These messages, while not useful for
transmitting notifications per-se still require using the device's
wireless connection.
Ruellan, et al. Expires January 7, 2016 [Page 3]
Internet-Draft Low Energy July 2015
Studies have found that the frequency of Keep-Alive messages required
on Cellular Network can be quite high. In [Wang2011], a study of
cellular ISPs found that 15% of them had a timeout for idle TCP
connection of less than 10 mn. The authors estimated that this 10 mn
timeout increased the energy consumption by 10%. A few ISPs had even
shorter timeout durations, further increasing the energy consumption.
In addition, some push server could use HTTP/2 PING frames to check
whether the underlying TCP connection is alive. A high frequency of
PING frames would also impact the energy efficiency of the
transmission of notifications.
Another problem is that, if no specific care is taken, two
consecutive notifications could be sent separately, even if they are
separated only by a short time-interval. Sending them jointly would
be more efficient energy-wise. They could either be transmitted
inside the same TCP segment, or at least during the same active
period of the device wireless sub-system. Such a grouping would be
similar to TCP Nagle Algorithm: the push server would slightly delay
the transmission of a notification to have the possibility of
grouping it with any further notification incoming shortly after.
4. Conclusion
WebPush is a clear improvement towards energy efficient notification
systems for connected devices. Further improving the energy
efficiency of this technology would widen its applicability. A first
step could be to identify and evaluate the problems. Work could then
be started on providing solutions to the identified problems through
guidelines, profiles and/or new standards.
5. Security Considerations
TBD.
6. References
6.1. Normative References
[I-D.thomson-webpush-protocol]
Thomson, M., Damaggio, E., and B. Raymor, "Generic Event
Delivery Using HTTP Push", draft-thomson-webpush-
protocol-00 (work in progress), April 2015.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
Ruellan, et al. Expires January 7, 2016 [Page 4]
Internet-Draft Low Energy July 2015
6.2. Informative References
[RFC1122] Braden, R., "Requirements for Internet Hosts -
Communication Layers", STD 3, RFC 1122, October 1989.
[RFC7540] Belshe, M., Peon, R., and M. Thomson, "Hypertext Transfer
Protocol Version 2 (HTTP/2)", RFC 7540, May 2015.
[W3C.WD-push-api-20150427]
Sullivan, B., Fullea, E., and M. Ouwerkerk, "Push API",
World Wide Web Consortium WD WD-push-api-20150427, April
2015, <http://www.w3.org/TR/2015/WD-push-api-20150427>.
[Wang2011]
Wang, Z., Qian, Z., Xu, Q., Mao, Z., and M. Zhang, "An
Untold Story of Middleboxes in Cellular Networks", SIGCOMM
'11 , 2011.
Authors' Addresses
Herve Ruellan
Canon CRF
Email: herve.ruellan@crf.canon.fr
Kensuke Yasuma
Canon
Email: nws-ky@list.canon.co.jp
Tomoya Sakai
Canon
Email: nws-ts@list.canon.co.jp
Ruellan, et al. Expires January 7, 2016 [Page 5]