<?xmlversion="1.0" encoding="iso-8859-1" ?>version='1.0' encoding='utf-8'?> <!DOCTYPE rfcSYSTEM "rfc2629.dtd">[ <!ENTITY nbsp " "> <!ENTITY zwsp "​"> <!ENTITY nbhy "‑"> <!ENTITY wj "⁠"> ]> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" 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"?>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 CoAPdevices">BuildingDevices">Building Power-EfficientCoAPConstrained 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>Ericsson</organization><organization>Independent</organization> <address> <postal> <street/> <city>Stockholm</city> <code>164 83</code> <country>Sweden</country> </postal><email>anders.e.eriksson@ericsson.com</email><email>anders.e.eriksson@posthem.se</email> </address> </author> <author initials="A"surname="Keranen"surname="Keränen" fullname="AriKeranen">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> <dateyear="2016" />month="May" year="2022"/> <keyword>CoAP</keyword> <keyword>cellular networks</keyword> <abstract> <t>This memo discusses the use of the Constrained Application Protocol (CoAP)protocolin building sensors and other devices that employ cellular networks as a communications medium. Building communicating devices that employ these networks is obviously well known, but this memo focuses specifically on techniques necessary to minimize power consumption.</t> </abstract> </front> <middle> <section anchor="intro"title="Introduction">numbered="true" toc="default"> <name>Introduction</name> <t>This memo discusses the use of the Constrained Application Protocol (CoAP)protocol<xreftarget="RFC7252"/>target="RFC7252" format="default"/> in building sensors and other devices that employ cellular networks as a communications medium. Building communicating devices that employ these networks is obviously well known, but this memo focuses specifically on techniques necessary to minimize power consumption. CoAP has many advantages, including being simple to implement; a thousand lines of code for the entiresoftwareapplication above the IP layer is plenty for a CoAP-based sensor, for instance. However, while many of these advantages are obvious and easily obtained, optimizing power consumption remains challenging and requires careful design <xreftarget="I-D.arkko-core-sleepy-sensors"/>.</t> <t>Thetarget="I-D.arkko-core-sleepy-sensors" format="default"/>.</t> <t>This memotargetsprimarily targets 3GPP cellular networks in their 2G, 3G, LTE, andLTE5G variants and their future enhancements, including possible power efficiency improvements at the radio and link layers. The exact 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 is suitable for any large-scale, public network that employs a point-to-point communications model and radio technology for the devices in the network.</t> <t>Our focus is on devices that need to be optimized for powerusage,usage andondevices that employ CoAP. As a general technology, CoAP is similar to HTTP. It can be used in variouswaysways, and network entities may take on different roles. This freedom allows the technology to be used in efficient and less efficient ways. Some guidance is needed to understand what types of communicationmodelsover CoAP are recommended when low power usage is a critical goal.</t> <t>The recommendations in this memo should be taken as complementary to device hardware optimization, microelectronics improvements, and further evolution of the underlying link and radio layers. Further 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 IP, transport, and application layers to provide the best possible power efficiency. Application implementors generally have to use thecurrent generationcurrent-generation microelectronics, currently available radio 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 areas is unnecessary. Such evolution is useful,isongoing, andisgenerally complementary to the techniques presented in this memo.The evolutionHowever, the list ofunderlying technologies may change whattechniques describedhere arein this document as useful for a particularapplication, however.</t>application may change with the evolution of these underlying technologies.</t> <t>The rest of this memo is structured as follows. <xreftarget="lowpow"/>target="lowpow" format="default"/> discusses the need and goals for low-power devices. <xreftarget="model"/>target="model" format="default"/> outlines our expectations for thelow layerlow-layer communications model. <xreftarget="scen"/>target="scen" format="default"/> describes the two scenarios that weaddress, and <xref target="disc"/>,address. Sections <xref target="disc" format="counter"/>, <xreftarget="data"/>,target="data" format="counter"/>, <xreftarget="rt"/>target="rt" format="counter"/>, and <xreftarget="sens"/>target="sens" format="counter"/> give guidelines for the use of CoAP in these scenarios.</t> <t>This document was originally finalized in 2016 but is published six years later 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 discussed here, and some of the references point to documents that were state of the art in 2016.</t> </section> <section anchor="lowpow"title="Goalsnumbered="true" toc="default"> <name>Goals for Low-PowerOperation">Operation</name> <t>There are many situations where power usage optimization is unnecessary. Optimization may not be necessary on devices that can run on a power feed over wired communications media, such as in Power-over-Ethernet (PoE) solutions. These devices may require a rudimentary level of power optimization techniques just to keep overall energy costs and aggregate power feed sizes at a reasonable level, but more extreme techniques necessary forbattery poweredbattery-powered devices are not required. The situation is similar with devices that can easily be connected to mains power. Other types of devices may get an occasional charge of power fromenergy harvestingenergy-harvesting techniques. For instance, some environmental sensors can run on solar cells. Typically, these devices still have to regulate their power usage in a strictmanner,manner -- forinstanceinstance, to be able to use solar cells that are as small and inexpensivesolar cellsas possible.</t> <t>Inbattery operated devices thebattery-operated devices, power usage is even more important. For instance, one of the authors employs over a hundred different sensor devices inhistheir home network. A majority of these devices are wired and run on PoE, but in most environments this would be impractical because the necessary wires do not exist. The future is in wireless solutions that can cover buildings and other environments without assuming a pre-existing wired infrastructure. In addition, in many cases it is impractical to provide a mains power source.OftenOften, 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 and power adapters would be more complicated than installing a standalone device without any wires.</t> <t>Yet, with a large number ofdevicesdevices, the battery lifetimes become critical. Cost and practical limits dictate that devices can be 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 change for one device within the network. This may be impractical in many environments. In addition, some devices may be physically difficult to reach for a battery change. Or, a large group of devices -- such as utility meters or environmental sensors -- cannot be economically serviced too often, even if in theory the batteries could be changed. </t> <t>Many of these situations lead to a requirement for minimizing power usage and/or maximizing battery lifetimes. Using the power usage strategies described in <xreftarget="RFC7228"/>,target="RFC7228" format="default"/>, mains-powered sensor-type devices can use the Always-onstrategystrategy, whereasbatterybattery-operated orenergy harvestingenergy-harvesting devices need to adjust behavior based on the communication interval. For intervalsinon the order of seconds, the Low-power strategy is appropriate. For intervals ranging from minutes tohourshours, either the Low-power or Normally-offstrategies arestrategy is suitable. Finally, for intervals lasting daysandor longer, Normally-off is usually the best choice. Unfortunately, much of our current technology has been built with different objectives inmind. Networkedmind -- for instance, networked devices that are "always on", gadgets that require humans to recharge them every couple of days, and protocols that have been optimized to maximize throughput rather than conserve resources.</t> <t>Long battery lifetimes are required for many applications, however. In somecasescases, these lifetimes should beinon the order of years or even a decade or longer. Some communication devices already reach multi-year lifetimes, and continuousimprovementimprovements in low-power electronics and advances in radio technology keep pushing these lifetimes longer. However, it is perhaps fair to say that battery lifetimes are generally too short atpresent time.</t>present.</t> <t>Power usagecan notcannot be evaluatedsolelybased solely onlower layerlower-layer communications. The entire system, includingupper layerupper-layer protocols andapplicationsapplications, is responsible for the power consumption as a whole. The lower communication layers have already adopted many techniques that can be used to reduce power usage, such as scheduling device wake-up times. Further reductions will likely need someco-operationcooperation from the upper layers so that unnecessary communications, denial-of-service attacks on power consumption, and other power drains are eliminated.</t> <t>Of course, application requirements ultimately determine what kinds of communications are necessary. For instance, some applications 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, but to provide guidance on how to minimize the amount of communications overhead that is not directly required by the application. While such optimization is generally useful, itisis, relativelyspeakingspeaking, most noticeable in applications that transfer only a small amount ofdata,data or operate only infrequently.</t> </section> <section anchor="model"title="Link-Layer Assumptions">numbered="true" toc="default"> <name>Link-Layer Assumptions</name> <t>We assume that the underlying communications network can be any large-scale, public network that employs a point-to-point communications model and radio technology.2G, 2G, 3G, LTE, andLTE5G networks are examples of suchnetworks,networks but are not the only possible networks with these characteristics.</t> <t>In thefollowingfollowing, we look at some of these characteristics and their implications. Note that in most cases these characteristics are not properties of the specific networks but rather are inherent in the concept of public networks.<list style="hanging"> <t hangText="Public networks"><vspace blankLines="1"/> Using</t> <ul spacing="normal"> <li> <t>Public Networks</t> <t>Using a public network service implies that applications can be deployed without having to build a network to go with them. For economic reasons, only the largest users (such as utility companies) could afford to build their own network, and even they would not be able to providea world-wideworldwide coverage. This means that applications where coverage is important can be built. For instance, mosttransport sectortransport-sector applications require national or evenworld-wideworldwide coverage towork. <vspace blankLines="1"/> Butwork.</t> <t>But there are otherimplications,implications as well. By definition, the network is not tailored for thisapplication andapplication, and, with some exceptions, the traffic passes through the Internet. One implication of this is that there are generally no application-specific network configurations or discovery support. For instance, the public network helps devices to get on the Internet, set up default routers, configure DNS servers, and so on, but does nothing for configuring possible higher-layer functions, such as serversthethat a device might need to contact to perform its application functions.<vspace blankLines="1"/> Public</t> <t>Public networks often provide web proxies and other functionality thatcancan, in somecasescases, makeasignificantimprovement forimprovements related to delays andcostcosts of communication over the wireless link. For instance, resolving server DNS names in a proxy instead of the user's device may cut down on the general chattiness of the communications, therefore reducing overall delay in completing the entire transaction. Likewise, a CoAP proxy orpub/sub brokerPublish-Subscribe (pub&wj;/sub) Broker <xreftarget="I-D.koster-core-coap-pubsub"/>target="I-D.ietf-core-coap-pubsub" format="default"/> can assist a CoAP device in communication. However, unlike HTTP web proxies, CoAP proxies and brokers are not yet widely deployed in publicnetworks. <vspace blankLines="1"/> Similarly,networks.</t> <t>Similarly, given the lack of available IPv4 addresses,thechances are that many devices are behind anetwork address translationNetwork Address Translation (NAT) device. This means that they are not easily reachable as servers. Alternatively, the devices may be directly on the global Internet(either on(on either IPv4 or IPv6) and easily reachable as servers. Unfortunately, this may mean that they also receive unwanted traffic, which may have implications for both power consumption and service costs.</t><t hangText="Point-to-point link model"><vspace blankLines="1"/> This</li> <li><t>Point-to-Point Link Model</t> <t>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, except maybe for the service provider's router. As a result, multicast discoverycan notcannot be reasonably used for any local discovery purposes. While the configuration of the service provider's router for specific users is theoretically possible,in practicethis is difficult toachieve,achieve in practice, at least for any small user thatcan notcannot afford a network-wide contract for a private APN (Access Point Name). The public network access service has little per-user tailoring.</t><t hangText="Radio technology"><vspace blankLines="1"/> The</li> <li> <t>Radio Technology</t> <t>The use of radio technology means that power is needed to operate the radios. Transmission generally requires more power than reception. However, radio protocols have generally been designed 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 consumes energy. Research has shown that these periodic checks (such as LTE paging message reception) are often a far bigger contributor to energy consumption than messagetransmission. <vspace blankLines="1"/> Notetransmission.</t> <t>Note that for situations where there are several applications on the same device wishing to communicate with the Internet in some manner, bundling those applications together so that they can communicate at the same time can be very useful. Some guidance for these techniques in the smartphone context can be found in <xreftarget="Android-Bundle"/>. </t> </list> </t>target="Android-Bundle" format="default"/>.</t> </li> </ul> <t>Naturally, each device hasathe freedom to decide when it sends messages. In addition, we assume that there is some way for the devices to control when or how oftenit wantsthey want to receive messages. Specific methods for doing this depend on the specific network being used and also tend to change as improvements in the design of these networks are incorporated. The reception control methods generally come in twovariants, fine grainedvariants: (1) fine-grained mechanisms that deal with how often the device needs towake-upwake up for pagingmessages,messages andmore crude(2) cruder mechanisms where the device simply disconnects from the network for a period of time. There areassociatedcosts and benefitstoassociated with each method, but those are not relevant for this memo, as long as some control method exists. Furthermore, devices could use Delay-Tolerant Networking (DTN)<xref target="RFC4838"/>mechanisms <xref target="RFC4838" format="default"/> to relax the requirements for timeliness of connectivity and message delivery. </t> </section> <section anchor="scen"title="Scenarios">numbered="true" toc="default"> <name>Scenarios</name> <t>Not all applications or situations are equal. They may require different solutions or communication models. This memo focuses on two common scenariosatin cellular networks:<list style="hanging"> <t hangText="Real-Time</t> <ul spacing="normal"> <li> <t>Real-Time ReachableDevices"><vspace blankLines="1"/> ThisDevices</t> <t>This scenario involves all communication that requires real-time ornear real-timenear-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, and nopre-agreedpreviously agreed-upon wake-up schedule can be arranged. By"real-time""real-time", we mean any reasonable end-to-end communications latency, be it measured in milliseconds or seconds. However, unpredictable sleep states are notexpected. <vspace blankLines="1"/> Examplesexpected.</t> <t>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 and actuators that require immediate action, such as light bulbs or doorlocks. </t> <t hangText="Sleepy Devices"><vspace blankLines="1"/> Thislocks.</t> </li> <li> <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 its time. The device itself can choose when it communicates, or it lets the network assist in thistask. <vspace blankLines="1"/> Examplestask.</t> <t>Examples of devices in this category include sensors that track slowly changing values, such as temperature sensors and actuators that control a relatively slow process, such as heatingsystems. <vspace blankLines="1"/> Notesystems.</t> <t>Note that there may be hard real-time requirements, but they are expressed in terms of how fast the device cancommunicate,communicate -- not in terms of how fast it can respond toanetwork stimuli. For instance, 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 communications without delay.</t></list> </t></li> </ul> </section> <section anchor="disc"title="Discoverynumbered="true" toc="default"> <name>Discovery andRegistration">Registration</name> <t>In bothscenariosscenarios, the device will be attached to a public network. Without special arrangements, the device will also get a dynamically assigned IP address or an IPv6 prefix. At least one but typically several router hops separate the device from its communicating peers such as application servers. As a result, the address or even the existence of the device is typically not immediately obvious to the other nodes participating in the application. As discussed earlier, multicast discovery has limited value in public networks; network nodes cannot practically discover individual devices in a large public network. And the devicescan notcannot discover who they need totalk,talk to, as the public network offers just basic Internet connectivity.</t> <t>Our recommendation is to initiate a discovery and registration 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 address. Registration also facilitates low-poweroperationoperation, since a device can delegate part of the discovery signaling and reachability requirements to anothernode. </t>node.</t> <t>The registration part iseasyeasy, e.g., with a resource directory. The device should perform the necessary registration withthese devices,such a resource directory -- for instance, as specified in <xreftarget="I-D.ietf-core-resource-directory"/>.target="RFC9176" format="default"/>. In order to do this registration, the device needs to know itsCoREConstrained RESTful Environments (CoRE) Link Format description, as specified in <xreftarget="RFC6690"/>.target="RFC6690" format="default"/>. In essence, the registration process involves performing a GET on .well-known/core/?rt=core-rd at the address of the resourcedirectory,directory and then doing a POST on the path of the discovered resource.</t> <t>Other mechanisms enabling device discovery and delegation of functionality to a non-sleepy node include those discussed in <xreftarget="I-D.vial-core-mirror-proxy"/>target="I-D.vial-core-mirror-proxy" format="default"/> and <xreftarget="I-D.koster-core-coap-pubsub"/>.</t>target="I-D.ietf-core-coap-pubsub" format="default"/>.</t> <t>However, current CoAP specifications provide only limited support for discovering the resource directory or other registration services. Local multicast discovery only works in LAN-typenetworks, butnetworks; it does not work inthesethe public cellularnetworks. Our recommendednetworks discussed in this document. We recommend the following alternate methods fordiscovery are the following: <list style="hanging"> <t hangText="Manual Configuration"><vspace blankLines="1"/> Thediscovery:</t> <ul spacing="normal"> <li> <t>Manual Configuration</t> <t>The DNS name of the resource directory is manually configured. This approach is suitable in situations where the owner of the devices has the resources and capabilities to do the configuration. For instance, a utility company can typically program its metering devices to point to the company servers.</t><t hangText="Manufacturer Server"><vspace blankLines="1"/> The</li> <li> <t>Manufacturer Server</t> <t>The DNS name of the directory or proxy is hardwired to the software by the manufacturer, and the directory or proxy is actually run by the manufacturer. This approach is suitable in many consumer usage scenarios, where it would be unreasonable to assume that the consumer runs any specific network services. The manufacturer's web interface and the directory/proxy servers canco-operatecooperate to provide the desired functionality to the end user. For instance, the end user can register a device identity in the manufacturer's web interface and ask that specific actionstobe taken when the device doessomething. </t> <t hangText="Delegatingsomething.</t> </li> <li> <t>Delegating ManufacturerServer"><vspace blankLines="1"/> TheServer</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 request to a directory or proxy run bythewhoever bought the device. This approach is suitable in many enterprise environments, as it allows the enterprise to be in charge of actual data collection and device registries; only the initial bootstrap goes through the manufacturer. In manycasescases, there are even legal requirements (such as EU privacy laws) that prevent providing unnecessary information to thirdparties. </t> <t hangText="Commonparties.</t> </li> <li> <t>Common Global ResolutionInfrastructure"><vspace blankLines="1"/> TheInfrastructure</t> <t>The delegating manufacturer server model could be generalized into areverse-DNS -likereverse-DNS-like discovery infrastructure thatcouldcould, for example, answer the question"this"This is a device with identityID,ID 2456; where is my home registrationserver?".server?" However, atpresentpresent, no such resolution system exists. (Note: The EPCGlobal system forRFIDRadio Frequency Identification (RFID) resolution is reminiscent of thisapproach.) </t> </list> </t> <t> Besidesapproach.)</t> </li> </ul> <t>Besides manual configuration, these alternate mechanisms are mostly suitable for large manufacturers and deployments. Good automatedmechanismmechanisms for discovery of devices that are manufactured and deployed in small quantities are stillneeded. </t>needed.</t> </section> <section anchor="data"title="Data Formats">numbered="true" toc="default"> <name>Data Formats</name> <t>A variety of data formats exist for passing around data. These data formats include XML, JavaScript Object Notation (JSON) <xreftarget="RFC7159"/>,target="RFC8259" format="default"/>, Efficient XML Interchange (EXI) <xreftarget="W3C.REC-exi-20110310"/>,target="W3C.REC-exi-20140211" format="default"/>, Concise Binary Object Representation (CBOR) <xref target="RFC8949"/>, and various text formats. Message lengths can have a significant effect on the amount of energy required for the communications, and as such it is highly desirable to keep message lengths minimal. At the same time, extreme optimization can affect flexibility and ease of programming. The authors recommend that readers refer to <xreftarget="I-D.jennings-core-senml"/> astarget="RFC8428" format="default"/> for acompact, yetcompact but easily processed and extendabletextualformat.</t> </section> <section anchor="rt"title="Real-Timenumbered="true" toc="default"> <name>Real-Time ReachableDevices">Devices</name> <t>These devices are often best modeled as CoAP servers. The device will have limited controlonover when it receives messages, and it will have to listen actively for messages, up to the limits of the underlying link layer. If in some phase of its operation the deviceactsalso acts inclientthe rolein some phaseofits operation,a client, it can control how many transmissions it makes on its own behalf.</t> <t>The packet reception checks should be tailored according to the requirements of the application. If sub-second response time is not needed, a more infrequent checking process may save some power.</t> <t>For sensor-type devices, the CoAP Observe extension (Observe option) <xreftarget="RFC7641"/>target="RFC7641" format="default"/> may be supported. This allows the sensor to track changes to the sensedvalue,value and make an immediate observation 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 that the device needs to be listening for requests. Subscription requests fromotherclients other than the currently registeredoneclient may come 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 sensorcan notcannot rely on having to communicate only on its own choice of observation interval.</t> <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 network. If thethedevice is hosted on a private network, then all other nodes that need to access this device also need to reside in the same private network. There are multiple ways to provide private networks over public cellular networks. One approach is to dedicate a special APN for the private network. Corporate access via cellular networks has often been arranged in this manner, for instance. Another approach is to use Virtual PrivateNetworkingNetwork (VPN)technology,technology -- forinstanceinstance, IPsec-based VPNs.</t> <t>Power consumption from unwanted traffic is problematic in these devices, unless they are placed in a private network or protected byaan operator-provided firewall service. Devices on an IPv6 network willhavebe afforded some protectionthroughdue to the nature of the2^642<sup>64</sup> address allocation 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 protects only the device from processing a packet, but since the network will still deliver the packet to any of the addresses within the assigned 64-bit prefix, packet reception costs are still incurred.</t> <t>Note that thetheVPN approachcan notcannot prevent unwanted traffic received at the tunnel endpointaddress,address and may require keep-alive traffic. Special APNs can solve thisissue,issue but require an explicit arrangement with the service provider.</t> </section> <section anchor="sens"title="Sleepy Devices">numbered="true" toc="default"> <name>Sleepy Devices</name> <t>These devices are best modeled as devices that can delegate queries to some othernode. Fornode -- for instance, as mirrorproxyservers <xreftarget="I-D.vial-core-mirror-proxy"/>target="I-D.vial-core-mirror-proxy" format="default"/> or CoAPPublish-Subscribepub&wj;/sub Clients <xreftarget="I-D.koster-core-coap-pubsub"/> clients.target="I-D.ietf-core-coap-pubsub" format="default"/>. When the device initializes itself, it makes a registration of itself in aproxyserver or broker as described above in <xreftarget="disc"/>target="disc" format="default"/> and then continues to send periodic updates of sensor values.</t> <t>As a result, the device acts only as aclient,client and not as a server, and can shut down all communication channelswhile it isduring its sleeping period. The length of the sleeping period depends on power and application requirements. Some environmental sensors might use a day or a week as the period, while other devices may useasmaller values ranging from minutes to hours.</t><t>Other approaches for delegation include CoAP-options described in <xref target="I-D.castellani-core-alive"/> <xref target="I-D.fossati-core-publish-monitor-options"/>. In this memo we use mirror proxies as an example, because of their ability to work with both HTTP and CoAP implementations; but the concepts are similar and the IETF work is still in progress so the final protocol details are yet to be decided.</t><t>The ability to shut down communications and act as only a client has fourimpacts: <list style="symbols"> <t>Radioimpacts:</t> <ul spacing="normal"> <li>Radio transmission and reception can be turned off during the sleeping period, reducing power consumptionsignificantly.</t> <t>However,significantly.</li> <li>However, some power and timeisare consumed by having tore-attachreattach to the network after the end of a sleepperiod.</t> <t>Theperiod.</li> <li>The window of opportunity for unwanted traffic to arrive is much smaller, as the device is listening for traffic only part of the time.NoteNote, however, that networks may cache packets for sometime though.time. On the other hand, stateful firewalls can effectively remove much of the unwanted traffic forclient type devices.</t> <t>Theclient-type devices.</li> <li>The device may exist behind a NAT or a firewall without being impacted. Note that"Simple Security"the "simple security" basic IPv6 firewall capability <xreftarget="RFC6092"/>target="RFC6092" format="default"/> blocks inbound UDP traffic by default, so just moving to IPv6 is not a direct solution to thisproblem.</t> </list> </t>problem.</li> </ul> <t>For sleepy devices that represent actuators, it is also possible to use the mirrorproxyserver or pub/sub broker model.TheA device canmake periodic polls toreceive information from theproxy to determine if aserver or broker about variablehas changed.</t>changes via either polling or notifications.</t> <sectiontitle="Implementation Considerations">numbered="true" toc="default"> <name>Implementation Considerations</name> <t>There are several challengesinrelated to implementing sleepy devices. They need hardware that can beput toplaced in an appropriate sleep mode butyetawakened 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 down as much of the hardware as possible, preferably down to everything else except a clock circuit. The platform also needs to supportre-awakeningreawakening at suitabletime scales,timescales, as otherwise the device needs to be powered up too frequently.</t> <t>Most commercial cellular modem platforms do not allow applications to suspend the state of the communications stack. Hence, after a power-offperiodperiod, they need to re-establish communications, which takes some amount of time and extra energy.</t> <t>Implementations should have a coordinated understanding of the 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 told that the next possible paging opportunity is some time away.</t> <t>The cellular networks have a number of adjustable configuration parameters, such as the maximum used paging interval. Propersettingsettings of these valueshashave an impact on the power consumption of the device, but withthecurrent business practices, such settings are rarely negotiated when the user's subscription is provisioned.</t> </section> </section> <sectiontitle="Security Considerations">numbered="true" toc="default"> <name>Security Considerations</name> <t>There are no particular security aspectswithrelated to what has been 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 obvious security issueswhichthat have largely NOT yet been addressed in the relevantInternet DraftsInternet-Drafts <xreftarget="I-D.vial-core-mirror-proxy"/>target="I-D.vial-core-mirror-proxy" format="default"/> <xreftarget="I-D.castellani-core-alive"/>target="I-D.castellani-core-alive" format="default"/> <xreftarget="I-D.fossati-core-publish-monitor-options"/>.target="I-D.fossati-core-publish-monitor-options" format="default"/>. However, we point outthatthat, in general, security issues in delegation can be solvedeitherthrough either reliance on your local network support nodes (which may be quite reasonable in many environments) or explicit end-to-end security. Explicit end-to-end security through nodes that are awake at different timesmeansmeans, inpracticepractice, end-to-end data object security. We have implemented one such mechanism for sleepy nodes as described in <xreftarget="I-D.aks-lwig-crypto-sensors"/>.</t>target="RFC8387" format="default"/>.</t> <t>The security considerations relating to CoAP <xreftarget="RFC7252"/>target="RFC7252" format="default"/> and the relevant link layers should apply. Note that cellular networks universally employ per-device authentication, integrity protection,andand, for most of the world, encryption of all their communications. Additional protection of transport sessions is possible through mechanisms described in <xreftarget="RFC7252"/>target="RFC7252" format="default"/> or data objects.</t> </section> <section anchor="iana"title="IANA Considerations"> <t>There arenumbered="true" toc="default"> <name>IANA Considerations</name> <t>This document has no IANAimpacts in this memo.</t>actions.</t> </section> </middle> <back><references title="Normative References"> <?rfc include="reference.RFC.7159.xml"?> <?rfc include="reference.RFC.6690.xml"?> <?rfc include="reference.RFC.7252.xml"?> <?rfc include="reference.RFC.7641.xml"?> <?rfc include="reference.I-D.ietf-core-resource-directory.xml"?><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-Publ-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"/> <!-- 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"/> <referenceanchor="W3C.REC-exi-20110310">anchor="W3C.REC-exi-20140211" target="https://www.w3.org/TR/exi/"> <front> <title>Efficient XML Interchange (EXI) Format1.0</title>1.0 (Second Edition)</title> <authorinitials='T' surname='Kamiya'> <organization />initials="J" surname="Schneider"> <organization/> </author> <authorinitials='J' surname='Schneider'> <organization />initials="T" surname="Kamiya"> <organization/> </author> <author initials="D" surname="Peintner"> <organization/> </author> <author initials="R" surname="Kyusakov"> <organization/> </author> <datemonth='March' year='2011' />month="February" year="2014"/> </front><seriesInfo name='World<refcontent>World Wide Web Consortium RecommendationREC-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' />REC-exi-20140211</refcontent> </reference><?rfc include="reference.I-D.jennings-core-senml.xml"?> <?rfc include="reference.RFC.7228.xml"?><!-- 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"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7228.xml"/> </references><references title="Informative References"> <?rfc include="reference.RFC.4838.xml"?> <?rfc include="reference.RFC.6092.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"?><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"/> <!-- draft-arkko-core-sleepy-sensors (Expired) --> <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-arkko-core-sleepy-sensors.xml"/> <!-- draft-aks-lwig-crypto-sensors (replaced by draft-ietf-lwig-crypto-sensors, then published as RFC 8387) --> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8387.xml"/> <!-- draft-castellani-core-alive (Expired) Have to do "long way" to fix author initials --> <referenceanchor='Android-Bundle'>anchor="I-D.castellani-core-alive"> <front><title>Optimizing Downloads for Efficient Network Access</title><title>CoAP Alive Message</title> <authorfullname='Developer.Android.Com'> <organization />fullname="Angelo P. Castellani" surname="Castellani" initials="A"> </author> <author fullname="Salvatore Loreto" surname="Loreto" initials="S"> </author> <datemonth='February' year='2013'month="March" day="29" year="2012" /> </front> <seriesInfoname='Android developer note' value='http://developer.android.com/training/efficient-downloads/efficient-network-access.html' /> <format type='HTML' target='http://developer.android.com/training/efficient-downloads/efficient-network-access.html'name="Internet-Draft" value="draft-castellani-core-alive-00" /> </reference> <!-- draft-fossati-core-publish-monitor-options (Expired) --> <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-fossati-core-publish-monitor-options.xml"/> <!-- draft-vial-core-mirror-proxy (Expired) --> <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-vial-core-mirror-proxy.xml"/> <!-- 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"/> <reference anchor="Android-Bundle" target="https://developer.android.com/training/efficient-downloads/efficient-network-access.html"> <front> <title>Optimize network access</title> <author/> <date month="May" year="2022"/> </front> <refcontent>Android developer note</refcontent> </reference> </references> </references> <sectiontitle="Acknowledgments">numbered="false" toc="default"> <name>Acknowledgments</name> <t>The authors would like to thankZach Shelby, Jan Holler, Salvatore Loreto, Matthew Vial, Thomas Fossati, Mohit Sethi, Jan Melen, Joachim Sachs, Heidi-Maria Rissanen, Sebastien Pierrel, Kumar Balachandran, Muhammad<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 WaqasMir, Cullen Jennings, Markus Isomaki, Hannes Tschofenig, and Anna LarmoMir"/>, <contact fullname="Cullen Jennings"/>, <contact fullname="Markus Isomaki"/>, <contact fullname="Hannes Tschofenig"/>, and <contact fullname="Anna Larmo"/> for interesting discussions in this problem space.</t> </section> </back> </rfc>