rfc9178xml2.original.xml | rfc9178.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="iso-8859-1" ?> | <?xml version='1.0' encoding='utf-8'?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | ||||
<rfc ipr="trust200902" | ||||
docName="draft-ietf-lwig-cellular-06" | ||||
category="info"> | ||||
<?rfc toc="yes"?> <?rfc symrefs="yes"?> <?rfc autobreaks="yes"?> | ||||
<?rfc tocindent="yes"?> <?rfc compact="yes"?> <?rfc subcompact="no"?> | ||||
<front> | ||||
<title abbrev="Power-Efficient Cellular CoAP devices">Building Power-Efficient C | ||||
oAP Devices for Cellular Networks</title> | ||||
<author initials="J" surname="Arkko" fullname="Jari Arkko"> | ||||
<organization>Ericsson</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city>Jorvas</city> <code>02420</code> | ||||
<country>Finland</country> | ||||
</postal> | ||||
<email>jari.arkko@piuha.net</email> | ||||
</address> | ||||
</author> | ||||
<author initials="A" surname="Eriksson" fullname="Anders Eriksson"> | ||||
<organization>Ericsson</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city>Stockholm</city> <code>164 83</code> | ||||
<country>Sweden</country> | ||||
</postal> | ||||
<email>anders.e.eriksson@ericsson.com</email> | ||||
</address> | ||||
</author> | ||||
<author initials="A" surname="Keranen" fullname="Ari Keranen"> | ||||
<organization>Ericsson</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city>Jorvas</city> <code>02420</code> | ||||
<country>Finland</country> | ||||
</postal> | ||||
<email>ari.keranen@ericsson.com</email> | ||||
</address> | ||||
</author> | ||||
<date year="2016" /> | ||||
<keyword>CoAP</keyword> | ||||
<keyword>cellular networks</keyword> | ||||
<abstract> | <!DOCTYPE rfc [ | |||
<!ENTITY nbsp " "> | ||||
<!ENTITY zwsp "​"> | ||||
<!ENTITY nbhy "‑"> | ||||
<!ENTITY wj "⁠"> | ||||
]> | ||||
<t>This memo discusses the use of the Constrained Application Protocol | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" | |||
(CoAP) protocol in building sensors and other devices that employ | docName="draft-ietf-lwig-cellular-06" number="9178" category="info" | |||
obsoletes="" updates="" submissionType="IETF" consensus="true" xml:lang="en | ||||
" tocInclude="true" symRefs="true" version="3"> | ||||
<!-- xml2rfc v2v3 conversion 3.1.1 --> | ||||
<front> | ||||
<title abbrev="Power-Efficient Cellular CoAP Devices">Building | ||||
Power-Efficient Constrained Application Protocol (CoAP) Devices for Cellular | ||||
Networks</title> | ||||
<seriesInfo name="RFC" value="9178"/> | ||||
<author initials="J" surname="Arkko" fullname="Jari Arkko"> | ||||
<organization>Ericsson</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city>Jorvas</city> | ||||
<code>02420</code> | ||||
<country>Finland</country> | ||||
</postal> | ||||
<email>jari.arkko@piuha.net</email> | ||||
</address> | ||||
</author> | ||||
<author initials="A" surname="Eriksson" fullname="Anders Eriksson"> | ||||
<organization>Independent</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city>Stockholm</city> | ||||
<code>164 83</code> | ||||
<country>Sweden</country> | ||||
</postal> | ||||
<email>anders.e.eriksson@posthem.se</email> | ||||
</address> | ||||
</author> | ||||
<author initials="A" surname="Keränen" fullname="Ari Keränen"> | ||||
<organization>Ericsson</organization> | ||||
<address> | ||||
<postal> | ||||
<street/> | ||||
<city>Jorvas</city> | ||||
<code>02420</code> | ||||
<country>Finland</country> | ||||
</postal> | ||||
<email>ari.keranen@ericsson.com</email> | ||||
</address> | ||||
</author> | ||||
<date month="May" year="2022"/> | ||||
<keyword>CoAP</keyword> | ||||
<keyword>cellular networks</keyword> | ||||
<abstract> | ||||
<t>This memo discusses the use of the Constrained Application Protocol | ||||
(CoAP) in building sensors and other devices that employ | ||||
cellular networks as a communications medium. Building communicating | cellular networks as a communications medium. Building communicating | |||
devices that employ these networks is obviously well known, but this | devices that employ these networks is obviously well known, but this | |||
memo focuses specifically on techniques necessary to minimize power | memo focuses specifically on techniques necessary to minimize power | |||
consumption.</t> | consumption.</t> | |||
</abstract> | ||||
</abstract> | </front> | |||
<middle> | ||||
</front> | <section anchor="intro" numbered="true" toc="default"> | |||
<middle> | <name>Introduction</name> | |||
<t>This memo discusses the use of the Constrained Application Protocol | ||||
<section anchor="intro" title="Introduction"> | (CoAP) <xref target="RFC7252" format="default"/> in building | |||
<t>This memo discusses the use of the Constrained Application Protocol | ||||
(CoAP) protocol <xref target="RFC7252"/> in building | ||||
sensors and other devices that employ cellular networks as a | sensors and other devices that employ cellular networks as a | |||
communications medium. Building communicating devices that employ | communications medium. Building communicating devices that employ | |||
these networks is obviously well known, but this memo focuses | these networks is obviously well known, but this memo focuses | |||
specifically on techniques necessary to minimize power consumption. | specifically on techniques necessary to minimize power consumption. | |||
CoAP has many advantages, including being simple to implement; a | CoAP has many advantages, including being simple to implement; a | |||
thousand lines for the entire software above IP layer is plenty for a | thousand lines of code for the entire application above the IP layer is plenty f or a | |||
CoAP-based sensor, for instance. However, while many of these | CoAP-based sensor, for instance. However, while many of these | |||
advantages are obvious and easily obtained, optimizing power | advantages are obvious and easily obtained, optimizing power | |||
consumption remains challenging and requires careful design <xref | consumption remains challenging and requires careful design <xref target="I-D.ar | |||
target="I-D.arkko-core-sleepy-sensors"/>.</t> | kko-core-sleepy-sensors" format="default"/>.</t> | |||
<t>This memo primarily targets 3GPP cellular networks in their 2G, 3G, | ||||
<t>The memo targets primarily 3GPP cellular networks in their 2G, 3G, | LTE, and 5G variants and their future enhancements, including possible | |||
and LTE variants and their future enhancements, including possible | ||||
power efficiency improvements at the radio and link layers. The exact | power efficiency improvements at the radio and link layers. The exact | |||
standards or details of the link layer or radios are not relevant for | standards or details of the link layer or radios are not relevant for | |||
our purposes, however. To be more precise, the material in this memo | our purposes, however. To be more precise, the material in this memo | |||
is suitable for any large-scale, public network that employs | is suitable for any large-scale, public network that employs a | |||
point-to-point communications model and radio technology for the | point-to-point communications model and radio technology for the | |||
devices in the network.</t> | devices in the network.</t> | |||
<t>Our focus is on devices that need to be optimized for power usage and | ||||
<t>Our focus is devices that need to be optimized for power usage, and | devices that employ CoAP. As a general technology, CoAP is similar | |||
on devices that employ CoAP. As a general technology, CoAP is similar | to HTTP. It can be used in various ways, and network entities may take | |||
to HTTP. It can be used in various ways and network entities may take | ||||
on different roles. This freedom allows the technology to be used in | on different roles. This freedom allows the technology to be used in | |||
efficient and less efficient ways. Some guidance is needed to | efficient and less efficient ways. Some guidance is needed to | |||
understand what communication models over CoAP are recommended when | understand what types of communication over CoAP are recommended when | |||
low power usage is a critical goal.</t> | low power usage is a critical goal.</t> | |||
<t>The recommendations in this memo should be taken as complementary | ||||
<t>The recommendations in this memo should be taken as complementary | ||||
to device hardware optimization, microelectronics improvements, and | to device hardware optimization, microelectronics improvements, and | |||
further evolution of the underlying link and radio layers. Further | further evolution of the underlying link and radio layers. Further | |||
gains in power efficiency can certainly be gained on several fronts; | gains in power efficiency can certainly be gained on several fronts; | |||
the approach that we take in this memo is to do what can be done at | the approach that we take in this memo is to do what can be done at | |||
the IP, transport, and application layers to provide the best possible | the IP, transport, and application layers to provide the best possible | |||
power efficiency. Application implementors generally have to use the | power efficiency. Application implementors generally have to use the | |||
current generation microelectronics, currently available radio | current-generation microelectronics, currently available radio | |||
networks and standards, and so on. This focus in our memo should by no | networks and standards, and so on. This focus in our memo should by no | |||
means be taken as an indication that further evolution in these other | means be taken as an indication that further evolution in these other | |||
areas is unnecessary. Such evolution is useful, is ongoing, and is | areas is unnecessary. Such evolution is useful, ongoing, and | |||
generally complementary to the techniques presented in this memo. The | generally complementary to the techniques presented in this memo. | |||
evolution of underlying technologies may change what techniques | However, the list of techniques described in this document as useful for a | |||
described here are useful for a particular application, however.</t> | particular application may change with the evolution of these underlying | |||
technologies.</t> | ||||
<t>The rest of this memo is structured as follows. <xref | <t>The rest of this memo is structured as follows. <xref target="lowpow" f | |||
target="lowpow"/> discusses the need and goals for low-power | ormat="default"/> discusses the need and goals for low-power | |||
devices. <xref target="model"/> outlines our expectations for the low | devices. <xref target="model" format="default"/> outlines our expectations for t | |||
layer communications model. <xref target="scen"/> describes the two | he low-layer communications model. <xref target="scen" format="default"/> descri | |||
scenarios that we address, and <xref target="disc"/>, <xref | bes the two | |||
target="data"/>, <xref target="rt"/> and <xref target="sens"/> give | scenarios that we address. Sections <xref target="disc" format="counter"/>, | |||
guidelines for use of CoAP in these scenarios.</t> | <xref target="data" format="counter"/>, <xref target="rt" format="counter"/>, a | |||
nd <xref target="sens" format="counter"/> give | ||||
</section> | guidelines for the use of CoAP in these scenarios.</t> | |||
<t>This document was originally finalized in 2016 but is published six years lat | ||||
<section anchor="lowpow" title="Goals for Low-Power Operation"> | er due to waiting for key references to reach RFC status. Therefore, some of the | |||
latest advancements in cellular network, CoAP, and other technologies are not d | ||||
<t>There are many situations where power usage optimization is | iscussed here, and some of the references point to documents that were state of | |||
the art in 2016.</t> | ||||
</section> | ||||
<section anchor="lowpow" numbered="true" toc="default"> | ||||
<name>Goals for Low-Power Operation</name> | ||||
<t>There are many situations where power usage optimization is | ||||
unnecessary. Optimization may not be necessary on devices that can run | unnecessary. Optimization may not be necessary on devices that can run | |||
on power feed over wired communications media, such as in | on a power feed over wired communications media, such as in | |||
Power-over-Ethernet (PoE) solutions. These devices may require a | Power-over-Ethernet (PoE) solutions. These devices may require a | |||
rudimentary level of power optimization techniques just to keep | rudimentary level of power optimization techniques just to keep | |||
overall energy costs and aggregate power feed sizes at a reasonable | overall energy costs and aggregate power feed sizes at a reasonable | |||
level, but more extreme techniques necessary for battery powered | level, but more extreme techniques necessary for battery-powered | |||
devices are not required. The situation is similar with devices that | devices are not required. The situation is similar with devices that | |||
can easily be connected to mains power. Other types of devices may | can easily be connected to mains power. Other types of devices may | |||
get an occasional charge of power from energy harvesting techniques. | get an occasional charge of power from energy-harvesting techniques. | |||
For instance, some environmental sensors can run on solar | For instance, some environmental sensors can run on solar | |||
cells. Typically, these devices still have to regulate their power | cells. Typically, these devices still have to regulate their power | |||
usage in a strict manner, for instance to be able to use as small and | usage in a strict manner -- for instance, to be able to use solar cells that | |||
inexpensive solar cells as possible.</t> | are as small and inexpensive as possible.</t> | |||
<t>In battery-operated devices, power usage is even more | ||||
<t>In battery operated devices the power usage is even more | ||||
important. For instance, one of the authors employs over a hundred different | important. For instance, one of the authors employs over a hundred different | |||
sensor devices in his home network. A majority of these devices are | sensor devices in their home network. A majority of these devices are | |||
wired and run on PoE, but in most environments this would be | wired and run on PoE, but in most environments this would be | |||
impractical because the necessary wires do not exist. The future is in | impractical because the necessary wires do not exist. The future is in | |||
wireless solutions that can cover buildings and other environments | wireless solutions that can cover buildings and other environments | |||
without assuming a pre-existing wired infrastructure. In addition, in | without assuming a pre-existing wired infrastructure. In addition, in | |||
many cases it is impractical to provide a mains power source. Often | many cases it is impractical to provide a mains power source. Often, | |||
there are no power sockets easily available in the locations that the | there are no power sockets easily available in the locations that the | |||
devices need to be in, and even if there were, setting up the wires | devices need to be in, and even if there were, setting up the wires | |||
and power adapters would be more complicated than installing a | and power adapters would be more complicated than installing a | |||
standalone device without any wires.</t> | standalone device without any wires.</t> | |||
<t>Yet, with a large number of devices, the battery lifetimes become | ||||
<t>Yet, with a large number of devices the battery lifetimes become | ||||
critical. Cost and practical limits dictate that devices can be | critical. Cost and practical limits dictate that devices can be | |||
largely just bought and left on their own. For instance, with hundred | largely just bought and left on their own. For instance, with a hundred | |||
devices, even a ten-year battery lifetime results in a monthly battery | devices, even a ten-year battery lifetime results in a monthly battery | |||
change for one device within the network. This may be impractical in | change for one device within the network. This may be impractical in | |||
many environments. In addition, some devices may be physically | many environments. In addition, some devices may be physically | |||
difficult to reach for a battery change. Or, a large group of devices | difficult to reach for a battery change. Or, a large group of devices | |||
-- such as utility meters or environmental sensors -- cannot be | -- such as utility meters or environmental sensors -- cannot be | |||
economically serviced too often, even if in theory the batteries could | economically serviced too often, even if in theory the batteries could | |||
be changed. </t> | be changed. </t> | |||
<t>Many of these situations lead to a requirement for minimizing power | ||||
<t>Many of these situations lead to a requirement for minimizing power | ||||
usage and/or maximizing battery lifetimes. Using the power usage | usage and/or maximizing battery lifetimes. Using the power usage | |||
strategies described in <xref target="RFC7228"/>, mains-powered | strategies described in <xref target="RFC7228" format="default"/>, mains-powered | |||
sensor-type devices can use the Always-on strategy whereas battery or | sensor-type devices can use the Always-on strategy, whereas battery-operated or | |||
energy harvesting devices need to adjust behavior based on the | energy-harvesting devices need to adjust behavior based on the | |||
communication interval. For intervals in the order of seconds, | communication interval. For intervals on the order of seconds, the | |||
Low-power strategy is appropriate. For intervals ranging from minutes | Low-power strategy is appropriate. For intervals ranging from minutes | |||
to hours either Low-power or Normally-off strategies are | to hours, either the Low-power or Normally-off strategy is | |||
suitable. Finally, for intervals lasting days and longer, Normally-off | suitable. Finally, for intervals lasting days or longer, Normally-off | |||
is usually the best choice. Unfortunately, much of our current | is usually the best choice. Unfortunately, much of our current technology has be | |||
technology has been built with different objectives in mind. Networked | en built with different objectives in mind -- for instance, networked devices th | |||
devices that are "always on", gadgets that require humans to recharge | at are "always on", gadgets that require humans to recharge them every couple of | |||
them every couple of days, and protocols that have been optimized to | days, and protocols that have been optimized to maximize throughput rather than | |||
maximize throughput rather than conserve resources.</t> | conserve | |||
resources.</t> | ||||
<t>Long battery lifetimes are required for many applications, | <t>Long battery lifetimes are required for many applications, | |||
however. In some cases these lifetimes should be in the order of years | however. In some cases, these lifetimes should be on the order of years | |||
or even a decade or longer. Some communication devices already reach | or even a decade or longer. Some communication devices already reach | |||
multi-year lifetimes, and continuous improvement in low-power | multi-year lifetimes, and continuous improvements in low-power | |||
electronics and advances in radio technology keep pushing these | electronics and advances in radio technology keep pushing these | |||
lifetimes longer. However, it is perhaps fair to say that battery | lifetimes longer. However, it is perhaps fair to say that battery | |||
lifetimes are generally too short at present time.</t> | lifetimes are generally too short at present.</t> | |||
<t>Power usage cannot be evaluated based solely on lower-layer | ||||
<t>Power usage can not be evaluated solely based on lower layer | communications. The entire system, including upper-layer protocols and | |||
communications. The entire system, including upper layer protocols and | applications, is responsible for the power consumption as a whole. The | |||
applications is responsible for the power consumption as a whole. The | ||||
lower communication layers have already adopted many techniques that | lower communication layers have already adopted many techniques that | |||
can be used to reduce power usage, such as scheduling device wake-up | can be used to reduce power usage, such as scheduling device wake-up | |||
times. Further reductions will likely need some co-operation from the | times. Further reductions will likely need some cooperation from the | |||
upper layers so that unnecessary communications, denial-of-service | upper layers so that unnecessary communications, denial-of-service | |||
attacks on power consumption, and other power drains are | attacks on power consumption, and other power drains are | |||
eliminated.</t> | eliminated.</t> | |||
<t>Of course, application requirements ultimately determine what kinds | ||||
<t>Of course, application requirements ultimately determine what kinds | ||||
of communications are necessary. For instance, some applications | of communications are necessary. For instance, some applications | |||
require more data to be sent than others. The purpose of the | require more data to be sent than others. The purpose of the | |||
guidelines in this memo is not to prefer one or the other application, | guidelines in this memo is not to prefer one or the other application, | |||
but to provide guidance on how to minimize the amount of | but to provide guidance on how to minimize the amount of | |||
communications overhead that is not directly required by the | communications overhead that is not directly required by the | |||
application. While such optimization is generally useful, it is | application. While such optimization is generally useful, it is, | |||
relatively speaking most noticeable in applications that transfer only | relatively speaking, most noticeable in applications that transfer only | |||
a small amount of data, or operate only infrequently.</t> | a small amount of data or operate only infrequently.</t> | |||
</section> | ||||
</section> | <section anchor="model" numbered="true" toc="default"> | |||
<name>Link-Layer Assumptions</name> | ||||
<section anchor="model" title="Link-Layer Assumptions"> | <t>We assume that the underlying communications network can be any | |||
large-scale, public network that employs a point-to-point communications | ||||
<t>We assume that the underlying communications network can be any | model and radio technology. 2G, 3G, LTE, and 5G networks are examples of s | |||
large-scale, public network that employs point-to-point communications | uch | |||
model and radio technology. 2G, 3G, and LTE networks are examples of such | networks but are not the only possible networks with these characteristics.</t> | |||
networks, but not the only possible networks with these characteristics.</t> | <t>In the following, we look at some of these characteristics and their | |||
<t>In the following we look at some of these characteristics and their | ||||
implications. Note that in most cases these characteristics are not | implications. Note that in most cases these characteristics are not | |||
properties of the specific networks but rather inherent in the concept | properties of the specific networks but rather are inherent in the concept | |||
of public networks. | of public networks. | |||
</t> | ||||
<list style="hanging"> | <ul spacing="normal"> | |||
<li> | ||||
<t hangText="Public networks"><vspace blankLines="1"/> | <t>Public Networks</t> | |||
<t>Using a public network service implies that applications can be | ||||
Using a public network service implies that applications can be | ||||
deployed without having to build a network to go with them. For | deployed without having to build a network to go with them. For | |||
economic reasons, only the largest users (such as utility companies) | economic reasons, only the largest users (such as utility companies) | |||
could afford to build their own network, and even they would not be | could afford to build their own network, and even they would not be | |||
able to provide a world-wide coverage. This means that applications | able to provide worldwide coverage. This means that applications | |||
where coverage is important can be built. For instance, most transport | where coverage is important can be built. For instance, most | |||
sector applications require national or even world-wide coverage to | transport-sector applications require national or even worldwide coverage to | |||
work. | work.</t> | |||
<t>But there are other implications as well. By definition, the networ | ||||
<vspace blankLines="1"/> | k | |||
But there are other implications, as well. By definition, the network | is not tailored for this application, and, with some exceptions, the | |||
is not tailored for this application and with some exceptions, the | ||||
traffic passes through the Internet. One implication of this is that | traffic passes through the Internet. One implication of this is that | |||
there are generally no application-specific network configurations or | there are generally no application-specific network configurations or | |||
discovery support. For instance, the public network helps devices to | discovery support. For instance, the public network helps devices to | |||
get on the Internet, set up default routers, configure DNS servers, | get on the Internet, set up default routers, configure DNS servers, | |||
and so on, but does nothing for configuring possible higher-layer | and so on, but does nothing for configuring possible higher-layer | |||
functions, such as servers the device might need to contact to perform | functions, such as servers that a device might need to contact to perform | |||
its application functions. | its application functions. | |||
</t> | ||||
<vspace blankLines="1"/> | <t>Public networks often provide web proxies and other functionality t | |||
Public networks often provide web proxies and other functionality that | hat | |||
can in some cases make a significant improvement for delays and cost | can, in some cases, make significant improvements related to delays and costs | |||
of communication over the wireless link. For instance, resolving | of communication over the wireless link. For instance, resolving | |||
server DNS names in a proxy instead of the user's device may cut down | server DNS names in a proxy instead of the user's device may cut down | |||
on the general chattiness of the communications, therefore reducing | on the general chattiness of the communications, therefore reducing | |||
overall delay in completing the entire transaction. Likewise, a CoAP | overall delay in completing the entire transaction. Likewise, a CoAP | |||
proxy or pub/sub broker <xref target="I-D.koster-core-coap-pubsub"/> | proxy or Publish-Subscribe (pub&wj;/sub) Broker <xref target="I-D.ietf-core-coap -pubsub" format="default"/> | |||
can assist a CoAP device in communication. However, unlike HTTP web | can assist a CoAP device in communication. However, unlike HTTP web | |||
proxies, CoAP proxies and brokers are not yet widely deployed in | proxies, CoAP proxies and brokers are not yet widely deployed in | |||
public networks. | public networks.</t> | |||
<t>Similarly, given the lack of available IPv4 addresses, chances are | ||||
<vspace blankLines="1"/> | that many devices are behind a Network Address Translation (NAT) | |||
Similarly, given the lack of available IPv4 addresses, the chances are | ||||
that many devices are behind a network address translation (NAT) | ||||
device. This means that they are not easily reachable as servers. | device. This means that they are not easily reachable as servers. | |||
Alternatively, the devices may be directly on the global Internet | Alternatively, the devices may be directly on the global Internet | |||
(either on IPv4 or IPv6) and easily reachable as | (on either IPv4 or IPv6) and easily reachable as | |||
servers. Unfortunately, this may mean that they also receive unwanted | servers. Unfortunately, this may mean that they also receive unwanted | |||
traffic, which may have implications for both power consumption and | traffic, which may have implications for both power consumption and | |||
service costs.</t> | service costs.</t> | |||
</li> | ||||
<t hangText="Point-to-point link model"><vspace blankLines="1"/> | <li><t>Point-to-Point Link Model</t> | |||
<t>This is a common link model in cellular networks. One implication of | ||||
This is a common link model in cellular networks. One implication of | ||||
this model is that there will be no other nodes on the same link, | this model is that there will be no other nodes on the same link, | |||
except maybe for the service provider's router. As a result, multicast | except maybe for the service provider's router. As a result, multicast | |||
discovery can not be reasonably used for any local discovery purposes. | discovery cannot be reasonably used for any local discovery purposes. | |||
While the configuration of the service provider's router for specific | While the configuration of the service provider's router for specific | |||
users is theoretically possible, in practice this is difficult to | users is theoretically possible, this is difficult to | |||
achieve, at least for any small user that can not afford a | achieve in practice, at least for any small user that cannot afford a | |||
network-wide contract for a private APN (Access Point Name). The | network-wide contract for a private APN (Access Point Name). The | |||
public network access service has little per-user tailoring.</t> | public network access service has little per-user tailoring.</t> | |||
</li> | ||||
<t hangText="Radio technology"><vspace blankLines="1"/> | <li> | |||
<t>Radio Technology</t> | ||||
The use of radio technology means that power is needed to operate the | <t>The use of radio technology means that power is needed to operate the | |||
radios. Transmission generally requires more power | radios. Transmission generally requires more power | |||
than reception. However, radio protocols have generally been designed | than reception. However, radio protocols have generally been designed | |||
so that a device checks periodically whether it has messages. In a | so that a device checks periodically to see whether it has messages. In a | |||
situation where messages arrive seldom or not at all, this checking | situation where messages arrive seldom or not at all, this checking | |||
consumes energy. Research has shown that these periodic checks (such | consumes energy. Research has shown that these periodic checks (such | |||
as LTE paging message reception) are often a far bigger contributor to | as LTE paging message reception) are often a far bigger contributor to | |||
energy consumption than message transmission. | energy consumption than message transmission.</t> | |||
<t>Note that for situations where there are several applications on the | ||||
<vspace blankLines="1"/> | ||||
Note that for situations where there are several applications on the | ||||
same device wishing to communicate with the Internet in some manner, | same device wishing to communicate with the Internet in some manner, | |||
bundling those applications together so that they can communicate at | bundling those applications together so that they can communicate at | |||
the same time can be very useful. Some guidance for these techniques | the same time can be very useful. Some guidance for these techniques | |||
in the smartphone context can be found in <xref | in the smartphone context can be found in <xref target="Android-Bundle" format=" | |||
target="Android-Bundle"/>. | default"/>.</t> | |||
</t> | </li> | |||
</ul> | ||||
</list> | ||||
</t> | ||||
<t>Naturally, each device has a freedom to decide when it sends | <t>Naturally, each device has the freedom to decide when it sends | |||
messages. In addition, we assume that there is some way for the | messages. In addition, we assume that there is some way for the | |||
devices to control when or how often it wants to receive messages. | devices to control when or how often they want to receive messages. | |||
Specific methods for doing this depend on the specific network being | Specific methods for doing this depend on the specific network being | |||
used and also tend to change as improvements in the design of these | used and also tend to change as improvements in the design of these | |||
networks are incorporated. The reception control methods generally | networks are incorporated. The reception control methods generally | |||
come in two variants, fine grained mechanisms that deal with how often | come in two variants: (1) fine-grained mechanisms that deal with how often | |||
the device needs to wake-up for paging messages, and more crude | the device needs to wake up for paging messages and (2) cruder | |||
mechanisms where the device simply disconnects from the network for a | mechanisms where the device simply disconnects from the network for a | |||
period of time. There are associated costs and benefits to each | period of time. There are costs and benefits associated with each | |||
method, but those are not relevant for this memo, as long as some | method, but those are not relevant for this memo, as long as some | |||
control method exists. Furthermore, devices could use Delay-Tolerant | control method exists. Furthermore, devices could use Delay-Tolerant | |||
Networking (DTN) <xref target="RFC4838"/> mechanisms to relax the | Networking (DTN) mechanisms <xref target="RFC4838" format="default"/> to relax t he | |||
requirements for timeliness of connectivity and message delivery. </t> | requirements for timeliness of connectivity and message delivery. </t> | |||
</section> | ||||
</section> | <section anchor="scen" numbered="true" toc="default"> | |||
<name>Scenarios</name> | ||||
<section anchor="scen" title="Scenarios"> | <t>Not all applications or situations are equal. They may require | |||
<t>Not all applications or situations are equal. They may require | ||||
different solutions or communication models. This memo focuses on two | different solutions or communication models. This memo focuses on two | |||
common scenarios at cellular networks: | common scenarios in cellular networks: | |||
</t> | ||||
<list style="hanging"> | ||||
<t hangText="Real-Time Reachable Devices"><vspace blankLines="1"/> | ||||
This scenario involves all communication that requires real-time or | <ul spacing="normal"> | |||
near real-time communications with a device. That is, a network entity | <li> | |||
<t>Real-Time Reachable Devices</t> | ||||
<t>This scenario involves all communication that requires real-time or | ||||
near-real-time communications with a device. That is, a network entity | ||||
must be able to reach the device with a small time lag at any time, | must be able to reach the device with a small time lag at any time, | |||
and no pre-agreed wake-up schedule can be arranged. By "real-time" we | and no previously agreed-upon wake-up schedule can be arranged. By "real-time", we | |||
mean any reasonable end-to-end communications latency, be it measured | mean any reasonable end-to-end communications latency, be it measured | |||
in milliseconds or seconds. However, unpredictable sleep states are | in milliseconds or seconds. However, unpredictable sleep states are | |||
not expected. | not expected.</t> | |||
<t>Examples of devices in this category include sensors that must be measurable | ||||
<vspace blankLines="1"/> | ||||
Examples of devices in this category include sensors that must be measurable | ||||
from a remote source at any instant in time, such as process automation sensors | from a remote source at any instant in time, such as process automation sensors | |||
and actuators that require immediate action, such as light bulbs or door locks. | and actuators that require immediate action, such as light bulbs or door locks.< | |||
</t> | /t> | |||
</li> | ||||
<t hangText="Sleepy Devices"><vspace blankLines="1"/> | <li> | |||
This scenario involves freedom to choose when device communicates. The | <t>Sleepy Devices</t> | |||
<t>This scenario involves the freedom to choose when a device communicates. The | ||||
device is often expected to be able to be in a sleep state for much of | device is often expected to be able to be in a sleep state for much of | |||
its time. The device itself can choose when it communicates, or it lets | its time. The device itself can choose when it communicates, or it lets | |||
the network assist in this task. | the network assist in this task.</t> | |||
<t>Examples of devices in this category include sensors that track slowly | ||||
<vspace blankLines="1"/> | ||||
Examples of devices in this category include sensors that track slowly | ||||
changing values, such as temperature sensors and actuators that | changing values, such as temperature sensors and actuators that | |||
control a relatively slow process, such as heating systems. | control a relatively slow process, such as heating systems.</t> | |||
<t>Note that there may be hard real-time requirements, but they are | ||||
<vspace blankLines="1"/> | expressed in terms of how fast the device can communicate -- not in | |||
Note that there may be hard real-time requirements, but they are | terms of how fast it can respond to network stimuli. For instance, | |||
expressed in terms of how fast the device can communicate, not in | ||||
terms of how fast it can respond to a network stimuli. For instance, | ||||
a fire detector can be classified as a sleepy device as long as it | a fire detector can be classified as a sleepy device as long as it | |||
can internally quickly wake up on detecting fire and initiate the necessary | can internally quickly wake up on detecting fire and initiate the necessary | |||
communications without delay.</t> | communications without delay.</t> | |||
</li> | ||||
</list> | </ul> | |||
</t> | </section> | |||
<section anchor="disc" numbered="true" toc="default"> | ||||
</section> | <name>Discovery and Registration</name> | |||
<t>In both scenarios, the device will be attached to a public network. | ||||
<section anchor="disc" title="Discovery and Registration"> | ||||
<t>In both scenarios the device will be attached to a public network. | ||||
Without special arrangements, the device will also get a dynamically | Without special arrangements, the device will also get a dynamically | |||
assigned IP address or an IPv6 prefix. At least one but typically | assigned IP address or an IPv6 prefix. At least one but typically | |||
several router hops separate the device from its communicating peers | several router hops separate the device from its communicating peers | |||
such as application servers. As a result, the address or even the | such as application servers. As a result, the address or even the | |||
existence of the device is typically not immediately obvious to the | existence of the device is typically not immediately obvious to the | |||
other nodes participating in the application. As discussed earlier, | other nodes participating in the application. As discussed earlier, | |||
multicast discovery has limited value in public networks; network | multicast discovery has limited value in public networks; network | |||
nodes cannot practically discover individual devices in a large public | nodes cannot practically discover individual devices in a large public | |||
network. And the devices can not discover who they need to talk, as | network. And the devices cannot discover who they need to talk to, as | |||
the public network offers just basic Internet connectivity.</t> | the public network offers just basic Internet connectivity.</t> | |||
<t>Our recommendation is to initiate a discovery and registration | ||||
<t>Our recommendation is to initiate a discovery and registration | ||||
process. This allows each device to inform its peers that it has | process. This allows each device to inform its peers that it has | |||
connected to the network and that it is reachable at a given IP | connected to the network and that it is reachable at a given IP | |||
address. Registration also facilitates low-power operation since a | address. Registration also facilitates low-power operation, since a | |||
device can delegate part of the discovery signaling and reachability | device can delegate part of the discovery signaling and reachability | |||
requirements to another node. </t> | requirements to another node.</t> | |||
<t>The registration part is easy, e.g., with a resource directory. The | ||||
<t>The registration part is easy e.g., with a resource directory. The | device should perform the necessary registration with such a resource directory | |||
device should perform the necessary registration with these devices, | -- | |||
for instance, as specified in <xref | for instance, as specified in <xref target="RFC9176" format="default"/>. In orde | |||
target="I-D.ietf-core-resource-directory"/>. In order to do this | r to do this | |||
registration, the device needs to know its CoRE Link Format | registration, the device needs to know its Constrained RESTful Environments (CoR | |||
description, as specified in <xref target="RFC6690"/>. In essence, the | E) Link Format | |||
description, as specified in <xref target="RFC6690" format="default"/>. In essen | ||||
ce, the | ||||
registration process involves performing a GET on | registration process involves performing a GET on | |||
.well-known/core/?rt=core-rd at the address of the resource directory, | .well-known/core/?rt=core-rd at the address of the resource directory | |||
and then doing a POST on the path of the discovered resource.</t> | and then doing a POST on the path of the discovered resource.</t> | |||
<t>Other mechanisms enabling device discovery and delegation of | ||||
<t>Other mechanisms enabling device discovery and delegation of | functionality to a non-sleepy node include those discussed in <xref target="I-D. | |||
functionality to a non-sleepy node include <xref | vial-core-mirror-proxy" format="default"/> and <xref target="I-D.ietf-core-coap- | |||
target="I-D.vial-core-mirror-proxy"/> and <xref | pubsub" format="default"/>.</t> | |||
target="I-D.koster-core-coap-pubsub"/>.</t> | <t>However, current CoAP specifications provide only limited support | |||
<t>However, current CoAP specifications provide only limited support | ||||
for discovering the resource directory or other registration | for discovering the resource directory or other registration | |||
services. Local multicast discovery only works in LAN-type networks, | services. Local multicast discovery only works in LAN-type networks; it does | |||
but not in these public cellular networks. Our recommended alternate | not work in the public cellular networks discussed in this document. We recommen | |||
methods for discovery are the following: | d the following alternate methods for discovery:</t> | |||
<list style="hanging"> | ||||
<t hangText="Manual Configuration"><vspace blankLines="1"/> | <ul spacing="normal"> | |||
<li> | ||||
<t>Manual Configuration</t> | ||||
The DNS name of the resource directory is manually configured. This | <t>The DNS name of the resource directory is manually configured. This | |||
approach is suitable in situations where the owner of the devices has | approach is suitable in situations where the owner of the devices has | |||
the resources and capabilities to do the configuration. For instance, | the resources and capabilities to do the configuration. For instance, | |||
a utility company can typically program its metering devices to point | a utility company can typically program its metering devices to point | |||
to the company servers.</t> | to the company servers.</t> | |||
</li> | ||||
<t hangText="Manufacturer Server"><vspace blankLines="1"/> | <li> | |||
<t>Manufacturer Server</t> | ||||
The DNS name of the directory or proxy is hardwired to the software by | <t>The DNS name of the directory or proxy is hardwired to the | |||
the manufacturer, and the directory or proxy is actually run by the | software by the manufacturer, and the directory or proxy is actually ru | |||
n by the | ||||
manufacturer. This approach is suitable in many consumer usage | manufacturer. This approach is suitable in many consumer usage | |||
scenarios, where it would be unreasonable to assume that the consumer | scenarios, where it would be unreasonable to assume that the consumer | |||
runs any specific network services. The manufacturer's web interface | runs any specific network services. The manufacturer's web interface | |||
and the directory/proxy servers can co-operate to provide the desired | and the directory/proxy servers can cooperate to provide the desired | |||
functionality to the end user. For instance, the end user can register | functionality to the end user. For instance, the end user can register | |||
a device identity in the manufacturer's web interface and ask specific | a device identity in the manufacturer's web interface and ask that specific | |||
actions to be taken when the device does something. | actions be taken when the device does something.</t> | |||
</li> | ||||
</t> | ||||
<t hangText="Delegating Manufacturer Server"><vspace blankLines="1"/> | ||||
The DNS name of the directory or proxy is hardwired to the software by | <li> | |||
<t>Delegating Manufacturer Server</t> | ||||
<t>The DNS name of the directory or proxy is hardwired to the software by | ||||
the manufacturer, but this directory or proxy merely redirects the | the manufacturer, but this directory or proxy merely redirects the | |||
request to a directory or proxy run by the whoever bought the | request to a directory or proxy run by whoever bought the | |||
device. This approach is suitable in many enterprise environments, as | device. This approach is suitable in many enterprise environments, as | |||
it allows the enterprise to be in charge of actual data collection and | it allows the enterprise to be in charge of actual data collection and | |||
device registries; only the initial bootstrap goes through the | device registries; only the initial bootstrap goes through the | |||
manufacturer. In many cases there are even legal requirements (such as | manufacturer. In many cases, there are even legal requirements (such as | |||
EU privacy laws) that prevent providing unnecessary information to | EU privacy laws) that prevent providing unnecessary information to | |||
third parties. | third parties.</t> | |||
</t> | </li> | |||
<t hangText="Common Global Resolution Infrastructure"><vspace blankLines="1"/> | ||||
The delegating manufacturer server model could be generalized into a | ||||
reverse-DNS -like discovery infrastructure that could answer the question | ||||
"this is device with identity ID, where is my home registration server?". | ||||
However, at present no such resolution system exists. | ||||
(Note: The EPCGlobal system for RFID resolution is reminiscent | ||||
of this approach.) | ||||
</t> | ||||
</list> | <li> | |||
</t> | <t>Common Global Resolution Infrastructure</t> | |||
<t> | <t>The delegating manufacturer server model could be generalized into | |||
Besides manual configuration, these alternate mechanisms are mostly | a reverse-DNS-like discovery infrastructure that could, for example, answer the | |||
question "This is a device with identity ID 2456; where is my home registration | ||||
server?" However, at present, no such resolution system exists. | ||||
(Note: The EPCGlobal system for Radio Frequency Identification (RFID) resolution | ||||
is reminiscent | ||||
of this approach.)</t> | ||||
</li> | ||||
</ul> | ||||
<t>Besides manual configuration, these alternate mechanisms are mostly | ||||
suitable for large manufacturers and deployments. Good automated | suitable for large manufacturers and deployments. Good automated | |||
mechanism for discovery of devices that are manufactured and deployed | mechanisms for discovery of devices that are manufactured and deployed | |||
in small quantities are still needed. | in small quantities are still needed.</t> | |||
</t> | </section> | |||
<section anchor="data" numbered="true" toc="default"> | ||||
</section> | <name>Data Formats</name> | |||
<t>A variety of data formats exist for passing around data. These data | ||||
<section anchor="data" title="Data Formats"> | formats include XML, JavaScript Object Notation (JSON) <xref target="RFC8259" | |||
format="default"/>, Efficient XML Interchange (EXI) <xref | ||||
<t>A variety of data formats exist for passing around data. These data | target="W3C.REC-exi-20140211" format="default"/>, Concise Binary Object Represen | |||
formats include XML, JavaScript Object Notation (JSON) <xref | tation (CBOR) <xref target="RFC8949"/>, and various text formats. Message length | |||
target="RFC7159"/>, Efficient XML Interchange (EXI) <xref | s can | |||
target="W3C.REC-exi-20110310"/>, and text formats. Message lengths can | ||||
have a significant effect on the amount of energy required for the | have a significant effect on the amount of energy required for the | |||
communications, and such it is highly desirable to keep message | communications, and as such it is highly desirable to keep message | |||
lengths minimal. At the same time, extreme optimization can affect | lengths minimal. At the same time, extreme optimization can affect | |||
flexibility and ease of programming. The authors recommend <xref | flexibility and ease of programming. The authors recommend that readers refer | |||
target="I-D.jennings-core-senml"/> as a compact, yet easily processed | to <xref target="RFC8428" format="default"/> for a compact but easily processed | |||
and extendable textual format.</t> | and extendable format.</t> | |||
</section> | ||||
</section> | <section anchor="rt" numbered="true" toc="default"> | |||
<name>Real-Time Reachable Devices</name> | ||||
<section anchor="rt" title="Real-Time Reachable Devices"> | <t>These devices are often best modeled as CoAP servers. The device | |||
will have limited control over when it receives messages, and it will | ||||
<t>These devices are often best modeled as CoAP servers. The device | ||||
will have limited control on when it receives messages, and it will | ||||
have to listen actively for messages, up to the limits of the | have to listen actively for messages, up to the limits of the | |||
underlying link layer. If the device acts also in client role in some | underlying link layer. If in some phase of its operation the device also acts in | |||
phase of its operation, it can control how many transmissions it makes | the role of a client, it can control how many transmissions it makes | |||
on its own behalf.</t> | on its own behalf.</t> | |||
<t>The packet reception checks should be tailored according to the | ||||
<t>The packet reception checks should be tailored according to the | ||||
requirements of the application. If sub-second response time is not | requirements of the application. If sub-second response time is not | |||
needed, a more infrequent checking process may save some power.</t> | needed, a more infrequent checking process may save some power.</t> | |||
<t>For sensor-type devices, the CoAP Observe extension (Observe option) <x | ||||
<t>For sensor-type devices, the CoAP Observe extension <xref | ref target="RFC7641" format="default"/> may be supported. This allows the sensor | |||
target="RFC7641"/> may be supported. This allows the sensor to track | to track | |||
changes to the sensed value, and make an immediate observation | changes to the sensed value and make an immediate observation | |||
response upon a change. This may reduce the amount of polling needed | response upon a change. This may reduce the amount of polling needed | |||
to be done by the client. Unfortunately, it does not reduce the time | to be done by the client. Unfortunately, it does not reduce the time | |||
that the device needs to be listening for requests. Subscription | that the device needs to be listening for requests. Subscription | |||
requests from other clients than the currently registered one may come | requests from clients other than the currently registered client may come | |||
at any time, the current client may change its request, and the device | in at any time, the current client may change its request, and the device | |||
still needs to respond to normal queries as a server. As a result, the | still needs to respond to normal queries as a server. As a result, the | |||
sensor can not rely having to communicate only on its own choice of | sensor cannot rely on having to communicate only on its own choice of | |||
observation interval.</t> | observation interval.</t> | |||
<t>In order to act as a server, the device needs to be placed in a | ||||
<t>In order to act as a server, the device needs to be placed in a | public IPv4 address, be reachable over IPv6, or be hosted in a private | |||
public IPv4 address, be reachable over IPv6, or hosted in a private | network. If the device is hosted on a private network, then all | |||
network. If the the device is hosted on a private network, then all | other nodes that need to access this device also need to reside in the same | |||
other nodes need to access this device also need to reside in the same | ||||
private network. There are multiple ways to provide private networks | private network. There are multiple ways to provide private networks | |||
over public cellular networks. One approach is to dedicate a special | over public cellular networks. One approach is to dedicate a special | |||
APN for the private network. Corporate access via cellular networks | APN for the private network. Corporate access via cellular networks | |||
has often been arranged in this manner, for instance. Another approach | has often been arranged in this manner, for instance. Another approach | |||
is to use Virtual Private Networking (VPN) technology, for instance | is to use Virtual Private Network (VPN) technology -- for instance, | |||
IPsec-based VPNs.</t> | IPsec-based VPNs.</t> | |||
<t>Power consumption from unwanted traffic is problematic in these | ||||
<t>Power consumption from unwanted traffic is problematic in these | devices, unless they are placed in a private network or protected by an | |||
devices, unless placed in a private network or protected by a | ||||
operator-provided firewall service. Devices on an IPv6 network will | operator-provided firewall service. Devices on an IPv6 network will | |||
have some protection through the nature of the 2^64 address allocation | be afforded some protection due to the nature of the 2<sup>64</sup> address allo cation | |||
for a single terminal in a 3GPP cellular network; the attackers will | for a single terminal in a 3GPP cellular network; the attackers will | |||
be unable to guess the full IP address of the device. However, this | be unable to guess the full IP address of the device. However, this | |||
protects only the device from processing a packet, but since the | protects only the device from processing a packet, but since the | |||
network will still deliver the packet to any of the addresses within | network will still deliver the packet to any of the addresses within | |||
the assigned 64-bit prefix, packet reception costs are still | the assigned 64-bit prefix, packet reception costs are still | |||
incurred.</t> | incurred.</t> | |||
<t>Note that the VPN approach cannot prevent unwanted traffic | ||||
<t>Note that the the VPN approach can not prevent unwanted traffic | received at the tunnel endpoint address and may require keep-alive | |||
received at the tunnel endpoint address, and may require keep-alive | traffic. Special APNs can solve this issue but require an explicit | |||
traffic. Special APNs can solve this issue, but require explicit | ||||
arrangement with the service provider.</t> | arrangement with the service provider.</t> | |||
</section> | ||||
</section> | <section anchor="sens" numbered="true" toc="default"> | |||
<name>Sleepy Devices</name> | ||||
<section anchor="sens" title="Sleepy Devices"> | <t>These devices are best modeled as devices that can delegate queries | |||
to some other node -- for instance, as mirror servers <xref | ||||
<t>These devices are best modeled as devices that can delegate queries | target="I-D.vial-core-mirror-proxy" format="default"/> or CoAP | |||
to some other node. For instance, as mirror proxy <xref | pub&wj;/sub Clients <xref target="I-D.ietf-core-coap-pubsub" | |||
target="I-D.vial-core-mirror-proxy"/> or CoAP Publish-Subscribe <xref | format="default"/>. When the device initializes | |||
target="I-D.koster-core-coap-pubsub"/> clients. When the device initializes | itself, it makes a registration of itself in a server or broker as described | |||
itself, it makes a registration of itself in a proxy as described | above in <xref target="disc" format="default"/> and then continues to send perio | |||
above in <xref target="disc"/> and then continues to send periodic | dic | |||
updates of sensor values.</t> | updates of sensor values.</t> | |||
<t>As a result, the device acts only as a client and not as a server, and | ||||
<t>As a result, the device acts only as a client, not a server, and | can shut down all communication channels during its | |||
can shut down all communication channels while it is during its | ||||
sleeping period. The length of the sleeping period depends on power | sleeping period. The length of the sleeping period depends on power | |||
and application requirements. Some environmental sensors might use a | and application requirements. Some environmental sensors might use a | |||
day or a week as the period, while other devices may use a smaller | day or a week as the period, while other devices may use smaller | |||
values ranging from minutes to hours.</t> | values ranging from minutes to hours.</t> | |||
<t>The ability to shut down communications and act as only a client | ||||
<t>Other approaches for delegation include CoAP-options described in | has four impacts:</t> | |||
<xref target="I-D.castellani-core-alive"/> <xref | <ul spacing="normal"> | |||
target="I-D.fossati-core-publish-monitor-options"/>. In this memo we | <li>Radio transmission and reception can be turned off during the | |||
use mirror proxies as an example, because of their ability to work | sleeping period, reducing power consumption significantly.</li> | |||
with both HTTP and CoAP implementations; but the concepts are similar | <li>However, some power and time are consumed by having to reattach to | |||
and the IETF work is still in progress so the final protocol details | the network after the end of a sleep period.</li> | |||
are yet to be decided.</t> | <li>The window of opportunity for unwanted traffic to arrive is much | |||
<t>The ability to shut down communications and act as only a client | ||||
has four impacts: | ||||
<list style="symbols"> | ||||
<t>Radio transmission and reception can be turned off during the | ||||
sleeping period, reducing power consumption significantly.</t> | ||||
<t>However, some power and time is consumed by having to re-attach to | ||||
the network after the end of a sleep period.</t> | ||||
<t>The window of opportunity for unwanted traffic to arrive is much | ||||
smaller, as the device is listening for traffic only part of the | smaller, as the device is listening for traffic only part of the | |||
time. Note that networks may cache packets for some time though. On | time. Note, however, that networks may cache packets for some time. On | |||
the other hand, stateful firewalls can effectively remove much of | the other hand, stateful firewalls can effectively remove much of the | |||
unwanted traffic for client type devices.</t> | unwanted traffic for client-type devices.</li> | |||
<li>The device may exist behind a NAT or a firewall without being | ||||
<t>The device may exist behind a NAT or a firewall without being | impacted. Note that the "simple security" basic IPv6 firewall capability | |||
impacted. Note that "Simple Security" basic IPv6 firewall capability | <xref target="RFC6092" format="default"/> blocks inbound UDP traffic by default, | |||
<xref target="RFC6092"/> blocks inbound UDP traffic by default, so just | so just | |||
moving to IPv6 is not direct solution to this problem.</t> | moving to IPv6 is not a direct solution to this problem.</li> | |||
</ul> | ||||
</list> | <t>For sleepy devices that represent actuators, it is also possible to | |||
use the mirror server or pub/sub broker model. A device can receive information | ||||
</t> | from the server or broker about variable changes via either polling or notificat | |||
ions.</t> | ||||
<t>For sleepy devices that represent actuators, it is also possible to | <section numbered="true" toc="default"> | |||
use the mirror proxy model. The device can make periodic polls to the | <name>Implementation Considerations</name> | |||
proxy to determine if a variable has changed.</t> | <t>There are several challenges related to implementing sleepy devices. | |||
They | ||||
<section title="Implementation Considerations"> | need hardware that can be placed in an appropriate sleep mode but | |||
<t>There are several challenges in implementing sleepy devices. They | ||||
need hardware that can be put to an appropriate sleep mode but yet | ||||
awakened when it is time to do something again. This is not always | awakened when it is time to do something again. This is not always | |||
easy in all hardware platforms. It is important to be able to shut | easy in all hardware platforms. It is important to be able to shut | |||
down as much of the hardware as possible, preferably down to | down as much of the hardware as possible, preferably down to | |||
everything else except a clock circuit. The platform also needs to support | everything else except a clock circuit. The platform also needs to support | |||
re-awakening at suitable time scales, as otherwise the device needs to be | reawakening at suitable timescales, as otherwise the device needs to be | |||
powered up too frequently.</t> | powered up too frequently.</t> | |||
<t>Most commercial cellular modem platforms do not allow applications | ||||
<t>Most commercial cellular modem platforms do not allow applications | ||||
to suspend the state of the communications stack. Hence, after a | to suspend the state of the communications stack. Hence, after a | |||
power-off period they need to re-establish communications, which takes | power-off period, they need to re-establish communications, which takes | |||
some amount of time and extra energy.</t> | some amount of time and extra energy.</t> | |||
<t>Implementations should have a coordinated understanding of the | ||||
<t>Implementations should have a coordinated understanding of the | ||||
state and sleeping schedule. For instance, it makes no sense to keep a | state and sleeping schedule. For instance, it makes no sense to keep a | |||
CPU powered up, waiting for a message when the lower layer has been | CPU powered up, waiting for a message when the lower layer has been | |||
told that the next possible paging opportunity is some time away.</t> | told that the next possible paging opportunity is some time away.</t> | |||
<t>The cellular networks have a number of adjustable configuration | ||||
<t>The cellular networks have a number of adjustable configuration | parameters, such as the maximum used paging interval. Proper settings | |||
parameters, such as the maximum used paging interval. Proper setting | of these values have an impact on the power consumption of the device, | |||
of these values has an impact on the power consumption of the device, | but with current business practices, such settings are rarely | |||
but with the current business practices, such settings are rarely | ||||
negotiated when the user's subscription is provisioned.</t> | negotiated when the user's subscription is provisioned.</t> | |||
</section> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
</section> | <name>Security Considerations</name> | |||
<t>There are no particular security aspects related to what has been | ||||
<section title="Security Considerations"> | ||||
<t>There are no particular security aspects with what has been | ||||
discussed in this memo, except for the ability to delegate queries for | discussed in this memo, except for the ability to delegate queries for | |||
a resource to another node. Depending on how this is done, there are | a resource to another node. Depending on how this is done, there are | |||
obvious security issues which have largely NOT yet been addressed in | obvious security issues that have largely NOT yet been addressed in | |||
the relevant Internet Drafts <xref | the relevant Internet-Drafts <xref target="I-D.vial-core-mirror-proxy" format="d | |||
target="I-D.vial-core-mirror-proxy"/> | efault"/> | |||
<xref target="I-D.castellani-core-alive"/> | <xref target="I-D.castellani-core-alive" format="default"/> | |||
<xref target="I-D.fossati-core-publish-monitor-options"/>. However, | <xref target="I-D.fossati-core-publish-monitor-options" format="default" | |||
we point out that in general, security issues in delegation can be | />. However, | |||
solved either through reliance on your local network support nodes | we point out that, in general, security issues in delegation can be | |||
solved through either reliance on your local network support nodes | ||||
(which may be quite reasonable in many environments) or explicit | (which may be quite reasonable in many environments) or explicit | |||
end-to-end security. Explicit end-to-end security through nodes that | end-to-end security. Explicit end-to-end security through nodes that | |||
are awake at different times means in practice end-to-end data object | are awake at different times means, in practice, end-to-end data object | |||
security. We have implemented one such mechanism for sleepy nodes as | security. We have implemented one such mechanism for sleepy nodes as | |||
described in <xref | described in <xref target="RFC8387" format="default"/>.</t> | |||
target="I-D.aks-lwig-crypto-sensors"/>.</t> | <t>The security considerations relating to CoAP <xref target="RFC7252" for | |||
mat="default"/> and the relevant link layers should | ||||
<t>The security considerations relating to CoAP <xref | ||||
target="RFC7252"/> and the relevant link layers should | ||||
apply. Note that cellular networks universally employ per-device | apply. Note that cellular networks universally employ per-device | |||
authentication, integrity protection, and for most of the world, | authentication, integrity protection, and, for most of the world, | |||
encryption of all their communications. Additional protection of | encryption of all their communications. Additional protection of | |||
transport sessions is possible through mechanisms described in <xref | transport sessions is possible through mechanisms described in <xref target="RFC | |||
target="RFC7252"/> or data objects.</t> | 7252" format="default"/> or data objects.</t> | |||
</section> | ||||
</section> | <section anchor="iana" numbered="true" toc="default"> | |||
<name>IANA Considerations</name> | ||||
<t>This document has no IANA actions.</t> | ||||
</section> | ||||
</middle> | ||||
<back> | ||||
<section anchor="iana" title="IANA Considerations"> | <displayreference target="I-D.arkko-core-sleepy-sensors" to="Tiny-CoAP"/> | |||
<displayreference target="I-D.castellani-core-alive" to="CoAP-Alive"/> | ||||
<displayreference target="I-D.fossati-core-publish-monitor-options" to="CoAP-Pub | ||||
l-Monitor"/> | ||||
<displayreference target="I-D.vial-core-mirror-proxy" to="CoRE-Mirror"/> | ||||
<displayreference target="I-D.ietf-core-coap-pubsub" to="CoAP-PubSub"/> | ||||
<references> | ||||
<name>References</name> | ||||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8259. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6690. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7252. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7641. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8949. | ||||
xml"/> | ||||
<t>There are no IANA impacts in this memo.</t> | <!-- draft-ietf-core-resource-directory (RFC 9176 - published 2022-04-25) --> | |||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9176. | ||||
xml"/> | ||||
</section> | <reference anchor="W3C.REC-exi-20140211" target="https://www.w3.org/TR/e | |||
xi/"> | ||||
<front> | ||||
<title>Efficient XML Interchange (EXI) Format 1.0 (Second Edition)</ | ||||
title> | ||||
<author initials="J" surname="Schneider"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="T" surname="Kamiya"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="D" surname="Peintner"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="R" surname="Kyusakov"> | ||||
<organization/> | ||||
</author> | ||||
<date month="February" year="2014"/> | ||||
</front> | ||||
<refcontent>World Wide Web Consortium Recommendation REC-exi-20140211< | ||||
/refcontent> | ||||
</reference> | ||||
</middle> | <!-- draft-jennings-core-senml (replaced by draft-ietf-core-senml, then | |||
published as RFC 8428) --> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8428. | ||||
xml"/> | ||||
<back> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7228. | |||
xml"/> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4838. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6092. | ||||
xml"/> | ||||
<references title="Normative References"> | <!-- draft-arkko-core-sleepy-sensors (Expired) --> | |||
<?rfc include="reference.RFC.7159.xml"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-arkko-core-slee | |||
<?rfc include="reference.RFC.6690.xml"?> | py-sensors.xml"/> | |||
<?rfc include="reference.RFC.7252.xml"?> | ||||
<?rfc include="reference.RFC.7641.xml"?> | ||||
<?rfc include="reference.I-D.ietf-core-resource-directory.xml"?> | ||||
<reference anchor="W3C.REC-exi-20110310"> | <!-- draft-aks-lwig-crypto-sensors (replaced by draft-ietf-lwig-crypto-sensors, | |||
<front> | then published as RFC 8387) --> | |||
<title>Efficient XML Interchange (EXI) Format 1.0</title> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8387. | |||
<author initials='T' surname='Kamiya'> | xml"/> | |||
<organization /> | ||||
</author> | ||||
<author initials='J' surname='Schneider'> | ||||
<organization /> | ||||
</author> | ||||
<date month='March' year='2011' /> | ||||
</front> | ||||
<seriesInfo name='World Wide Web Consortium | ||||
Recommendation REC-exi-20110310' value='http://www.w3.org/TR/2011/ | ||||
REC-exi-20110310' /> | ||||
<format type='HTML' target='http://www.w3.org/TR/2011/REC-exi-20110310' / | ||||
> | ||||
</reference> | ||||
<?rfc include="reference.I-D.jennings-core-senml.xml"?> | <!-- draft-castellani-core-alive (Expired) | |||
<?rfc include="reference.RFC.7228.xml"?> | Have to do "long way" to fix author initials --> | |||
</references> | <reference anchor="I-D.castellani-core-alive"> | |||
<front> | ||||
<title>CoAP Alive Message</title> | ||||
<author fullname="Angelo P. Castellani" surname="Castellani" initials="A"> | ||||
</author> | ||||
<author fullname="Salvatore Loreto" surname="Loreto" initials="S"> | ||||
</author> | ||||
<date month="March" day="29" year="2012" /> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-castellani-core-alive-00" /> | ||||
</reference> | ||||
<references title="Informative References"> | <!-- draft-fossati-core-publish-monitor-options (Expired) --> | |||
<?rfc include="reference.RFC.4838.xml"?> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-fossati-core-pu | |||
<?rfc include="reference.RFC.6092.xml"?> | blish-monitor-options.xml"/> | |||
<?rfc include="reference.I-D.arkko-core-sleepy-sensors.xml"?> | ||||
<?rfc include="reference.I-D.aks-lwig-crypto-sensors.xml"?> | ||||
<?rfc include="reference.I-D.castellani-core-alive.xml"?> | ||||
<?rfc include="reference.I-D.fossati-core-publish-monitor-options.xml"?> | ||||
<?rfc include="reference.I-D.vial-core-mirror-proxy.xml"?> | ||||
<?rfc include="reference.I-D.koster-core-coap-pubsub.xml"?> | ||||
<reference anchor='Android-Bundle'> | ||||
<front> | ||||
<title>Optimizing Downloads for Efficient Network Access</title> | ||||
<author fullname='Developer.Android.Com'> | ||||
<organization /> | ||||
</author> | ||||
<date month='February' year='2013' /> | ||||
</front> | ||||
<seriesInfo name='Android developer note' value='http://developer.android | ||||
.com/training/efficient-downloads/efficient-network-access.html' /> | ||||
<format type='HTML' target='http://developer.android.com/training/efficie | ||||
nt-downloads/efficient-network-access.html' /> | ||||
</reference> | ||||
</references> | <!-- draft-vial-core-mirror-proxy (Expired) --> | |||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-vial-core-mirro | ||||
r-proxy.xml"/> | ||||
<section title="Acknowledgments"> | <!-- draft-koster-core-coap-pubsub (replaced by draft-ietf-core-coap-pubsub; | |||
Expired. Since it's a "replaced by," had to change | ||||
"I-D.koster-core-coap-pubsub" to "I-D.ietf-core-coap-pubsub" to get | ||||
<displayreference> to work) (I-D Exists) --> | ||||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-core-coap- | ||||
pubsub.xml"/> | ||||
<t>The authors would like to thank Zach Shelby, Jan Holler, Salvatore | <reference anchor="Android-Bundle" | |||
Loreto, Matthew Vial, Thomas Fossati, Mohit Sethi, Jan Melen, Joachim | target="https://developer.android.com/training/efficient-downloads/efficient-net | |||
Sachs, Heidi-Maria Rissanen, Sebastien Pierrel, Kumar Balachandran, | work-access.html"> | |||
Muhammad Waqas Mir, Cullen Jennings, Markus Isomaki, Hannes | <front> | |||
Tschofenig, and Anna Larmo for interesting discussions in this problem | <title>Optimize network access</title> | |||
<author/> | ||||
<date month="May" year="2022"/> | ||||
</front> | ||||
<refcontent>Android developer note</refcontent> | ||||
</reference> | ||||
</references> | ||||
</references> | ||||
<section numbered="false" toc="default"> | ||||
<name>Acknowledgments</name> | ||||
<t>The authors would like to thank <contact fullname="Zach Shelby"/>, | ||||
<contact fullname="Jan Holler"/>, <contact fullname="Salvatore | ||||
Loreto"/>, <contact fullname="Matthew Vial"/>, <contact fullname="Thomas | ||||
Fossati"/>, <contact fullname="Mohit Sethi"/>, <contact fullname="Jan | ||||
Melen"/>, <contact fullname="Joachim Sachs"/>, <contact | ||||
fullname="Heidi-Maria Rissanen"/>, <contact fullname="Sebastien | ||||
Pierrel"/>, <contact fullname="Kumar Balachandran"/>, <contact | ||||
fullname="Muhammad Waqas Mir"/>, <contact fullname="Cullen Jennings"/>, | ||||
<contact fullname="Markus Isomaki"/>, <contact fullname="Hannes Tschofenig | ||||
"/>, and <contact fullname="Anna Larmo"/> for interesting discussions in this pr | ||||
oblem | ||||
space.</t> | space.</t> | |||
</section> | ||||
</section> | </back> | |||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 122 change blocks. | ||||
508 lines changed or deleted | 511 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |