One document matched: draft-rahman-core-sleepy-problem-statement-00.xml
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
There has to be one entity for each item to be referenced.
An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY I-D.ietf-core-coap SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-core-coap.xml">
<!ENTITY I-D.ietf-core-link-format SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-core-link-format.xml">
<!ENTITY I-D.ietf-core-observe SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-core-observe.xml">
<!ENTITY I-D.shelby-core-resource-directory SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.shelby-core-resource-directory.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
(Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="3"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
(using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-rahman-core-sleepy-problem-statement-00" ipr="trust200902">
<!-- category values: std, bcp, info, exp, and historic
ipr values: full3667, noModification3667, noDerivatives3667
you can add the attributes updates="NNNN" and obsoletes="NNNN"
they will automatically be output with "(if approved)" -->
<!-- ************************* Front Matter ************************ -->
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<front>
<!-- The abbreviated title is used in the page header - it is only necessary if the
full title is longer than 39 characters -->
<title abbrev="Sleepy Devices - Problem Statement">Sleepy Devices in CoAP - Problem Statement</title>
<!-- add 'role="editor"' below for the editors if appropriate -->
<!-- Another author who claims to be an editor -->
<author fullname="Akbar Rahman" initials="A."
surname="Rahman">
<organization>InterDigital Communications, LLC</organization>
<address>
<postal>
<street></street>
<!-- Reorder these if your country does things differently -->
<city>Montreal</city>
<region>Quebec</region>
<code>H3A 3G4</code>
<country>Canada</country>
</postal>
<phone>+1-514-585-0761</phone>
<email>akbar.rahman@interdigital.com</email>
<!-- uri and facsimile elements may also be added -->
</address>
</author>
<!-- Another author who claims to be an editor -->
<author fullname="Thomas Fossati" initials="T."
surname="Fossati">
<organization>KoanLogic</organization>
<address>
<postal>
<street></street>
<!-- Reorder these if your country does things differently -->
<city></city>
<region></region>
<code></code>
<country></country>
</postal>
<phone></phone>
<email>tho@koanlogic.com</email>
<!-- uri and facsimile elements may also be added -->
</address>
</author>
<!-- Another author who claims to be an editor -->
<author initials="S." surname="Loreto" fullname="Salvatore Loreto">
<organization>Ericsson</organization>
<address>
<postal>
<street>Hirsalantie 11</street>
<code>02420</code>
<city>Jorvas</city>
<country>Finland</country>
</postal>
<email>Salvatore.Loreto@ericsson.com</email>
</address>
</author>
<!-- Another author who claims to be an editor -->
<author fullname="Matthieu Vial" initials="M."
surname="Vial">
<organization>Schneider-Electric</organization>
<address>
<postal>
<street></street>
<!-- Reorder these if your country does things differently -->
<city></city>
<region></region>
<code></code>
<country></country>
</postal>
<phone></phone>
<email>matthieu.vial@schneider-electric.com</email>
<!-- uri and facsimile elements may also be added -->
</address>
</author>
<date day="15" month="October" year="2012" />
<!-- Meta-data Declarations -->
<area>General</area>
<workgroup>CORE WG</workgroup>
<!-- WG name at the upperleft corner of the doc,
IETF is fine for individual submissions.
If this element is not present, the default is "Network Working Group",
which is used by the RFC Editor as a nod to the history of the IETF. -->
<abstract>
<t>This document analyzes the COAP protocol issues related to
sleeping devices. The only goal of this document is to trigger discussions in the
CORE WG so that all relevant considerations for sleeping devices
are taken into account when designing CoAP.</t>
</abstract>
</front>
<!-- ************************** Main Body ************************** -->
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<middle>
<section title="Terminology and Conventions">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in
<xref target="RFC2119">RFC 2119</xref>.</t>
<t>This document assumes readers are familiar with the terms
and concepts that are used in <xref target="I-D.ietf-core-coap"/>,
<xref target="I-D.ietf-core-link-format"/>,
<xref target="I-D.ietf-core-observe"/>,
<xref target="I-D.shelby-core-resource-directory"/>.</t>
<t>In addition, this document defines the following terminology:</t>
<t><cref>Glossary of terms</cref></t>
<t><list style="hanging">
<t hangText="Sleeping End Point (SEP):">
is a special kind of CoAP enabled device that spends a large amount of its lifetime
disconnected from the network, mainly to save power, or just because it is downright
unable to store the energy required for its functioning. It nonetheless owns and
hosts a set of resources, and needs to make them available to the other participants
in the same constrained RESTful environment. In this respect it has to devise and
implement the mechanisms that allows to work around its limitation, and let its
resources be accessible as if it were an usual, always connected, CoAP server.</t>
<t hangText="Resource Delegation:">
is the transfer of control over the handling of a resource from an endpoint (the owner)
to another (the deputy), without the actual ownership being relinquished.
</t><t>The retention of ownership implies two things: first, that a genuine resource delegation
cannot be recursive, and second, that it must always be entirely reversible, at any
time the owning endpoint deems appropriate.
</t><t> A Resource Delegation mechanism may comprise
the transfer of the following information from the owner to the deputy endpoint:
<?rfc subcompact="yes"?>
<list style="format (%c)">
<t>complete or partial namespace,</t>
<t>one or more representations of the resource,</t>
<t>associated metadata,</t>
<t>allowed methods,</t>
<t>access control information,</t>
<t>temporal bounds of the delegation.</t>
</list>
<?rfc subcompact="no"?>
Said mechanism may also provide authentication to the parties involved in the delegation process.
</t>
</list></t>
</section>
<section title="What is a Sleeping Device?">
<t>A Sleeping device is a device able to cut power to unneeded subsystems and so significantly reduce battery consumption.
Some Sleeping devices only cut power to the radio system while continuing to run normally the other ones. Other Sleeping
devices are even more energy efficient being able to save the machine state in the RAM memory, putting the RAM into a
minimum power state, and cutting power to all the other subsystems. Finally other Sleeping device are able to save the
machine state on an hard disk and completely switching off themselves.</t>
<section title="Sleeping behaviors.">
<t>In this section we discuss different behaviors and scenarios of
sleeping nodes. Such behaviors can affect the design of applications
(such as CoAP) and network topologies (such as proxies and caching).</t>
<t>Sleeping nodes can have various sleeping patterns. Sleep patterns can
be predictable or totally unpredictable. For example, some nodes
sleep at a fixed interval or upon certain triggers. Some nodes may
sleep at irregular time intervals, or switch to sleep mode
spontaneously. Some nodes stay in sleep mode and only wake up upon
certain event triggers. A network may thus not be well aware of the
sleeping state of a node at a given time.</t>
<t>The duration of sleeping mode also varies largely, possibly from a
few seconds to days. From the perspective of applications, it may not
be affected by the sleeping period if it is very short. For example,
a HTTP/TCP connection may still work (even if sub-optimally) if the
sleep cycle is much shorter than the TCP retransmission timer. In
contrast, if the sleeping period of a node exceeds a certain
threshold it can impact an application. This threshold however, can
be difficult to predict and often can vary from device to device and
network to network. For example, this threshold can be very dependent
on the topology of a constrained network especially for the case
where a multi-hop path consists of multiple sleeping nodes. For this
case, the cumulative effect of multiple sleeping nodes must be
considered.</t>
<t>The network topology also affects how to handle sleeping nodes. For
example, in a star shaped network, a proxy node (assuming to be not a
sleeping node) can cache for the sleeping nodes within the network in
a centralized manner. However, in a P2P or mesh network, especially
when multi-hops are involved, caching can be difficult and delivering
of messages can be largely delayed due to nodes' sleeping cycles. In
this case distributed proxying and caching at intermediate nodes
within the network (rather than just a single node such as the border
node or sink) may make sense, if intermediate nodes are not sleeping
nodes and have adequate resources to support caching.</t>
</section>
<section title="Different Sleep Modes">
<section title="Always-On">
<t>Any sleep is so short that it is invisible to L3 and upper which gives the
illusion of the sleepy node of being always on => usual
Server Model can be efficiently used.
</t>
</section>
<section title="Intermittent Presence">
<t>Long and possibly non pre-determined sleep periods (more than
1 sec, but typically in the order of minutes or hours)
=> Server Model not working anymore. SEP state must be
handled by other mechanisms.
</t>
</section>
</section>
</section>
<section title="Assumptions">
<t>The characteristics of SEPs varies widely. Some may be cheap, rudimentary
widgets with very limited computational and storage capabilities;
other can be more functional devices yet in need to save energy since
they have to be in operation for a long period while battery powered.</t>
<t>This great variance implies that a fair number of often contradictory assumptions
must be taken into consideration, and carefully weighted, when designing
a comprehensive solution for the problem. For example:
<list style="symbols">
<t>Is SEP able to maintain soft state ?</t>
<t>Is SEP sleep/awake scheduling predictable ?</t>
<t><cref source="TF">add more</cref></t>
</list>
</t>
<t>Luckily, and by definition, it can be assumed that all the SEPs participating in a
CoRE domain share a (realistically limited) subset of the REST principles.
At the very least we will assume a SEP understands and implements:
<list style="symbols">
<t>the concept of information resource and its representational state;</t>
<t>the semantics and syntax of URIs;</t>
<t>the semantics associated to the most basic methods (i.e. GET, PUT, POST, DELETE);</t>
</list>
that will provide the common ground on which to build their integration into the hosting CoRE domain.</t>
</section>
<section title="Objectives">
<t> The CORE WG aim is to design a solution that, leveraging on
the existing CoAP features and its REST architecture, allows SEP devices
to be easily and smoothly integrated within any CoRE domain together
with the all the other CoAP enabled devices.</t>
<t> The ideal solution should:
<list style="symbols">
<t>Make the set of resource owned and hosted by any SEP available
to all the other participants, in the same constrained RESTful
environment, without making any assumption on the presence of
specific or special entities neither on the network topology.</t>
<t>Provide the possibility to use Client or Observer Model to access
resources owned and hosted by a SEP.</t>
<t>Allow the (Secure) delegation of resource handling while retaining
ownership.</t>
<t>Minimize the configuration needs to bootstrap a SEP within an
existing CoRE domain.</t>
<t>Maximize the integration with base CoRE Features
(i.e. Resource Discovery, Multicast, Observer, Block).</t>
<t>Reuse already available CoAP mechanisms as much as possible.</t>
</list>
</t>
</section>
<section anchor="Acknowledgements" title="Acknowledgements">
<t>TBD.</t>
</section>
<!-- Possibly a 'Contributors' section ... -->
<section anchor="IANA" title="IANA Considerations">
<t>This memo includes no request to IANA.</t>
</section>
<section anchor="Security" title="Security Considerations">
<t>TBD. (All drafts are required to have a security considerations section.
See <xref target="RFC3552">RFC 3552</xref> for a guide.)</t>
</section>
</middle>
<!-- ************************** Back Matter ************************ -->
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<!-- **************************************************************** -->
<back>
<!-- References split into informative and normative -->
<!-- There are 2 ways to insert reference entries from the citation libraries:
1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
(for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")
Both are cited textually in the same manner: by using xref elements.
If you use the PI option, xml2rfc will, by default, try to find included files in the same
directory as the including file. You can also define the XML_LIBRARY environment variable
with a value containing a set of directories to search. These can be either in the local
filing system or remote ones accessed by http (http://domain/dir/... ).-->
<references title="Normative References">
<!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
&RFC2119;
&I-D.ietf-core-coap;
&I-D.ietf-core-link-format;
&I-D.ietf-core-observe;
&I-D.shelby-core-resource-directory;
</references>
<references title="Informative References">
&RFC3552;
</references>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-23 18:32:04 |