One document matched: draft-tschofenig-smart-object-architecture-00.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" []>
<?xml-stylesheet type='text/xsl' href='http://xml.resource.org/authoring/rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="no"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc strict="no"?>
<?rfc compact="no"?>
<?rfc subcompact="no"?>
<rfc category="info" ipr="trust200902" docName="draft-tschofenig-smart-object-architecture-00.txt">
<front>
<title abbrev="Smart Object Architectural Considerations" >Architectural Considerations in Smart Object Networking</title>
<author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
<organization/>
<address>
<postal>
<street>Linnoitustie 6</street>
<city>Espoo</city>
<code>02600</code>
<country>Finland</country>
</postal>
<phone>+358 (50) 4871445</phone>
<email>Hannes.Tschofenig@gmx.net</email>
<uri>http://www.tschofenig.priv.at</uri>
</address>
</author>
<author initials="J" surname="Arkko" fullname="Jari Arkko">
<organization/>
<address>
<postal>
<street/>
<city>Jorvas</city> <code>02420</code>
<country>Finland</country>
</postal>
<email>jari.arkko@piuha.net</email>
</address>
</author>
<author initials="D." surname="Thaler" fullname="Dave Thaler">
<organization/>
<address>
<postal>
<street></street>
<city></city>
<region></region>
<code></code>
<country>US</country>
</postal>
<email>dthaler@microsoft.com</email>
</address>
</author>
<author initials="D." surname="McPherson" fullname="Danny McPherson">
<organization/>
<address>
<postal>
<street></street>
<city></city>
<region></region>
<code></code>
<country>US</country>
</postal>
<email>danny@tcb.net</email>
</address>
</author>
<date year="2012"/>
<keyword>Internet-Draft</keyword>
<keyword>IAB Statement</keyword>
<keyword>Smart Objects</keyword>
<abstract>
<t>Following the theme "Everything that can be connected will be
connected", engineers and researchers designing smart object networks
need to decide how to achieve this in practice. How can different
forms of embedded and constrained devices be interconnected? How can
they employ and interact with the currently deployed Internet? This
memo discusses smart objects and some of the architectural choices
involved in designing smart object networks and protocols that they
use.
</t>
<t><!-- This writeup describes the IAB's view on these issues. --> The
document is being discussed at
https://www.ietf.org/mailman/listinfo/architecture-discuss
</t>
</abstract>
</front>
<middle>
<!-- ====================================================================== -->
<section anchor="introduction" title="Introduction">
<t>In RFC 6574 <xref target="RFC6574"/>, we refer to smart objects as
devices with constraints on energy, bandwidth, memory, size, cost,
etc. This is a fuzzy definition, as there is clearly a
continuum in device capabilities and there is no hard line to draw
between devices that can be classified as smart objects and those
that can't.
</t>
<!-- and attempts to be more specific based on a device
classification, as done in Section 2.1 of <xref
target="I-D.bormann-lwig-guidance"/>, may not be suitable in
all cases either. Clearly. Understanding this unclear boundary
between "regular" Internet devices (like laptops, netbooks,
phones, routers, home gateways, or desktops) connected to the
Internet and other forms of devices (like sensors) is important
to understand our line of argument.-->
<t>Following the theme "Everything that can be connected will be
connected", engineers and researchers designing smart object networks
need to address a number of questions. How can different
forms of embedded and constrained devices be interconnected? How can
they employ and interact with the currently deployed Internet?
</t>
<t>These questions have been discussed at length. For instance, when
the Internet Architecture Board (IAB) scheduled a workshop on Smart
Objects, the IETF community was asked to develop views on how
Internet protocols can be utilized by smart objects. The workshop
participants contributed their views on the topic and a report was
published <xref target="RFC6574"/>.
</t>
<!--
This document uses the term "smart object" rather than
"Internet of Things (IoT)", or "Machine-to-Machine
communication" since they have a stronger marketing flavour.
-->
<t>This memo discusses smart objects and some of the architectural
choices involved in designing smart object networks and protocols
that they use. The main issues that we focus on are interaction with
the Internet, the use of Internet protocols for these applications,
models of interoperability, and approach to standardization.
</t>
<t>In drawing conclusions from the prior IETF work and from the IAB
workshop it is useful to look back at the criteria for success of the
Internet. Luckily, various publications provide valuable insight
into the history. Many of the statements are very much applicable
to the discussion on smart objects. RFC 1958 <xref target="RFC1958"/>
says:</t>
<t>
<list style="empty">
<t>"The Internet and its architecture have grown in evolutionary
fashion from modest beginnings, rather than from a Grand Plan."
</t>
</list>
</t>
<t>It goes on to add:</t>
<t>
<list style="empty">
<t>"A good analogy for the development of the Internet is that of
constantly renewing the individual streets and buildings of a
city, rather than razing the city and rebuilding it."</t>
</list>
</t>
<t>Internet protocols are immediately relevant for any smart object
development and deployment. However, building very small, often
battery-operated devices is challenging. It is difficult to resist
the temptation to build specific solutions tailored to a particular
application, or to re-design everything from scratch. Yet, due to
network effects, the case for using the Internet Protocol(s) and
other generic technology is compelling.
</t>
<!-- DT 7/3/12: Commented this out because it is not needed when we have
Table of Contents. Prior to my edit here, it was half-commented
out so that it only covered the latter half of the doc anyway.
<t>The rest of this document is structured as follows. <xref
target="related"/> points to related work on this topic. <xref
target="issues"/> discusses the architectural challenges. <xref
target="issue-internet"/> highlights the desire to integrate smart
object networks with Internet technology, <xref
target="issue-interop"/> discusses the different models of
interoperability, and <xref target="issue-standards"/> discusses the
varying approaches to standardization of smart object networking
technology. Finally, <xref target="recs"/> provides some
recommendations from the IAB on how to approach these challenges,
<xref target="SecurityConsiderations"/> discusses general security issues,
and privacy issues are discussed in <xref
target="PrivacyConsiderations"/>.
</t>
-->
<t>This writeup describes the IAB's view on these issues. The
document is being discussed at
https://www.ietf.org/mailman/listinfo/architecture-discuss.</t>
</section>
<section anchor="re-use" title="Protocol Re-Use and Deployment Reality">
<t>We see the attempt for re-design in many places;
sometimes only at the marketing level but often also in ignorance of
what had been developed in the past.
</t>
<t>The IETF has produced a number of important specifications that make
the Internet work. The Internet protocols are relevant for any smart
object development and deployment. In the context of one use case of
smart objects, the smart grids and smart meters in particular,
RFC 6272 "Internet Protocols for the Smart Grid" <xref target="RFC6272"/>
identifies a range of IETF protocols that can be utilized by those
people seeking guidance on how to construct an appropriate Internet
Protocol Suite profile for Smart Grids. The wide range of protocols
listed in that document illustrates the view of the authors about how
much can be re-used.
</t>
<t>Picking the right protocols for a specific use case can be tricky. As
the Internet has evolved over time, certain protocols and protocol
extensions cannot be utilized in all circumstances. The following list
illustrates a few of those challenges, and every communication protocol
comes with its own challenges. Protocol designers need to be aware of
the deployment challenges; it is not enough to just look at the
specifications.</t>
<t>
<list style="empty">
<t>In 2005, <xref target="IPoptions"/> studied the usage of IP
options-enabled packets in the Internet and found that overall,
approximately half of Internet paths drop packets with options,
making extensions using IP options "less ideal" for extending IP.
</t>
<t>In 2010, <xref target="HomeGateway"/> tested 34 different home gateways
regarding their packet dropping policy of UDP, TCP, DCCP, SCTP, ICMP,
and various timeout behavior. For example, more than half of the
tested devices do not conform to the IETF recommended timeouts for
UDP, and for TCP the measured timeouts are highly variable, ranging
from less than 4 minutes to longer than 25 hours. For NAT traversal
of DCCP and SCTP, the situation is poor. None of the tested devices,
for example, allowed establishing a DCCP connection.
</t>
<t>In 2011, <xref target="TCPextensions"/> tested the behavior of
networks with regard to various TCP extensions: "From our results
we conclude the middleboxes implementing layer 4 functionality are
very common -- at least 25% of paths interfered with TCP in some
way beyond basic firewalling."
</t>
</list>
</t>
<!--
<t>As it can be seen from the examples above the question about extensibility
and incremental deployment is not only about how well protocol developers
anticipate future use cases. In fact, the IAB publication RFC 5218 on
"What Makes For a Successful Protocol?" <xref target="RFC5218"/> defines
the ultimate goal to develop protocols that are deployed beyond their
envisioned use cases.
</t>
-->
<t>Extending protocols to fulfill new uses and to add new functionality may
range from very easy to difficult, as
<xref target="I-D.iab-extension-recs"/> investigates in great detail. A
challenge many protocol designers are facing is to ensure incremental
deployability and interoperability with incumbent elements in a number
of areas. In various cases, the effort it takes to design incrementally
deployable protocols has not been taken seriously enough at the outset.
</t>
<t>As these examples illustrate, protocol architects have to take
developments in the greater Internet into account, as not all features
can be expected to be usable in all environments. For instance,
middleboxes <xref target="RFC3234"/> complicate the use of extensions
in the basic IP protocols and transport layers.
</t>
<t>RFC 1958 <xref target="RFC1958"/> considers this aspect and says "... the
community believes that the goal is connectivity, the tool is the Internet
Protocol, and the intelligence is end to end rather than hidden in the
network." This statement is challenged more than ever with the perceived
need to develop clever intermediaries interacting with dumb end devices
but we have to keep in mind what RFC 3724 <xref target="RFC3724"/> has
to say about this crucial aspect: "One desirable consequence of the
end-to-end principle is protection of innovation. Requiring modification
in the network in order to deploy new services is still typically more
difficult than modifying end nodes." RFC 4924 <xref target="RFC4924"/>
adds that a network that does not filter or transform the data that it
carries may be said to be "transparent" or "oblivious" to the content
of packets. Networks that provide oblivious transport enable the
deployment of new services without requiring changes to the core. It
is this flexibility that is perhaps both the Internet's most essential
characteristic as well as one of the most important contributors to
its success.
</t>
</section>
<section anchor="issue-interop" title="The Need for Standards">
<t>New smart object applications are
developed every day; in many cases they are created using standardized Internet technology even though various components cannot easily be replaced by third party components.
Even where a common underlying technology (such as IP) is used,
current smart object networks often have challenges related to
interoperability of the entire protocol stack, including application
behavior. It is of strategic importance to make a conscious decision about the
desired level of
interoperability and where the points of interconnection are.
</t>
<t>It is valuable to look back at earlier IETF publications, for example,
RFC 1263 <xref target="RFC1263"/> considers different protocol design
strategies and makes an interesting observation about the decision to
design new protocols from scratch or to design them in a non-backwards
compatible way based on existing protocols:</t>
<t>
<list style="empty">
<t>"We hope to be
able to design and distribute protocols in less time than it takes a
standards committee to agree on an acceptable meeting time. This is
inevitable because the basic problem with networking is the
standardization process. Over the last several years, there has been
a push in the research community for lightweight protocols, when in
fact what is needed are lightweight standards. Also note that we
have not proposed to implement some entirely new set of 'superior'
communications protocols, we have simply proposed a system for making
necessary changes to the existing protocol suites fast enough to keep
up with the underlying change in the network. In fact, the first
standards organization that realizes that the primary impediment to
standardization is poor logistical support will probably win."</t>
</list>
</t>
<t>While <xref target="RFC1263"/> was written in 1991 when the standardization
process in the Internet community was far more lightweight than today
(among other reasons, because fewer stakeholders were interested in
participating in the standards process) it is remarkable to read these
thoughts since they are even more relevant today. This is particularly true for
the smart object environment.</t>
<t>
Regardless of how hard we work on optimizing the standard process,
designing systems in an open and transparent consensus process where many parties participate takes longer
than letting individual stakeholders develop their own proprietary
solutions. Therefore, it is important to make architectural decisions
that keep a good balance between proprietary developments vs. standardized
components. </t>
<!-- We will discuss this topic in more detail later in this
document.
<cref>DT: Much of this isn't specific to smart objects and might be
better done in a generic document rather than hidden in one that's
smart object specific.
</cref>
-->
<t>While RFC 1263 <xref target="RFC1263"/> certainly provides good food for
thought, it also gives recommendations that may not always be appropriate
for the smart object space, such as the preference for a so-called
evolutionary protocol design where new versions of the protocols are
allowed to be non-backwards compatible and all run independently on the
same device. RFC 1263 adds:
</t>
<t>
<list style="empty">
<t>"... the only real disadvantage of protocol evolution is the amount of
memory required to run several versions of the same protocol.
Fortunately, memory is not the scarcest resource in modern
workstations (it may, however, be at a premium in the BSD kernel and
its derivatives). Since old versions may rarely if ever be executed,
the old versions can be swapped out to disk with little performance
loss. Finally, since this cost is explicit, there is a huge incentive
to eliminate old protocol versions from the network."
</t>
</list>
</t>
<t>Even though it is common practice today to run many different software
applications that have similar functionality (for example, multiple
Instant Messaging clients) in parallel it may indeed not be the most preferred
approach for smart objects, which may have severe limitations regarding RAM, flash memory, and also power constraints.
</t>
<t>To deal with exactly this problem, the discussions at the IAB
workshop (see Section 3.1.2 of <xref target="RFC6574"/>) revealed the
preference of many participants to develop domain specific profiles that
select a minimum subset of protocols needed for a specific operating
environment. Various standardization organizations and industry fora
are currently engaged in activities of defining their preferred
profile(s). In <xref target="I-D.arkko-core-sleepy-sensors"/> Arkko,
et al. explain how the complexity of such a profile heavily depends
on the chosen communication architecture and discusses one such
profile with limited communication capabilities, which also translates
into a small code size. Ultimately, however, the number of domains
where smart objects can be used is essentially unbounded and so too
are the ever-evolving protocols and protocol extensions. Saying "no"
to a new protocol stack that only differs in minor ways may be appropriate
but could be interpreted as blocking innovation and, as
RFC 1263 <xref target="RFC1263"/> describes it nicely
"In the long term, we envision protocols being designed on an application
by application basis, without the need for central approval.". "Central
approval" here refers to the approval process that happens in a respective standards
developing organization.
</t>
<t>So, how can we embrace rapid innovation with distributed developments
and at the same time accomplish a high level of interoperability?
</t>
<t>Clearly, standardization of every domain-specific profile will not be
the solution. Many domain-specific profiles are optimizations that
will be already obsoleted by technological developments (e.g., new
protocol developments), new security threats, new stakeholders entering
the system or changing needs of existing stakeholders, new business
models, changed usage patterns, etc. RFC 1263 <xref target="RFC1263"/>
states the problem succinctly: "The most important conclusion of this RFC
is that protocol change happens and is currently happening at a very
respectable clip. We simply propose to explicitly deal with the changes
rather keep trying to hold back the flood."
</t>
<t>Even worse, different stakeholders that are part of the Internet milieu
have interests that may be adverse to each other, and these parties
each vie to favor their particular interests. In <xref target="Tussels"/>,
Clark, et al. call this process 'the tussle' and ask the important
question "How can we, as designers, build systems with desired
characteristics and improve the chances that they come out the way we
want?". In an attempt to answer that question, the authors of <xref target="Tussels"/> develop a
high-level principle, which is not tailored to smart object designs but to Internet protocol develop in general:
</t>
<t>
<list style="empty">
<t>"Design for variation in outcome, so that the outcome can be different
in different places, and the tussle takes place within the design,
not by distorting or violating it. Do not design so as to dictate
the outcome. Rigid designs will be broken; designs that permit
variation will flex under pressure and survive."
</t>
</list>
</t>
<t>In order to accomplish this, Clark, et al. suggest to
<list style="numbers">
<t>Break complex systems into modular parts.</t>
<t>Design for choice.</t>
</list>
</t>
<t>These are valid guidelines, and many protocols standardized in the
IETF have taken exactly this approach, namely to identify building
blocks that can be used in a wide variety of deployments. Others
then put the building blocks together in a way that suits their
needs. There are, however, limits to this approach. Certain
building blocks are only useful in a limited set of architectural
variants and producing generic building blocks requires a good
understanding of the different architectural variants and often limits
the ability to optimize. Sometimes the value of an individual
building block is hard for others to understand without providing
the larger context, which requires at least to illustrate one
deployment variant that comes with a specific architectural setup.
That said, it is also critical to consider
systemic interdependencies between the set of elements that constitute
a system, lest they impose constraints that weren't envisioned at
the outset.
</t>
<t>Since many Internet protocols are used as building blocks by other
organizations or in deployments that may have never been envisioned
by the original designs, one can argue that this approach has
been fairly successful. It may, however, not lead to the level of
interoperability many desire: they want interoperability of the entire
system rather than interoperability at a specific protocol level.
Consequently, an important architectural question arises, namely "What
level of interoperability should Internet protocol engineers aim
for?"
</t>
<t>In the diagrams below, we illustrate a few interoperability scenarios
with different interoperability needs. Note that these are highly
simplified versions of what protocol architects are facing,
since there are often more parties involved in a sequence of required
protocol exchanges, and the entire protocol stack has to be
considered - not just a single protocol layer. As such, the required coordination
and agreement between the different stakeholders is likely to be far
more challenging than illustrated. We do, however, believe
that these figures illustrate that the desired level of interoperability
needs to be carefully chosen.
</t>
<section anchor="no-inter" title="Internet Protocols for Proprietary Protocol Developments">
<t><xref target="no-interop"/> shows a typical deployment of many
Internet applications: an application service provider (example.com
in our illustration) wants to make an HTTP-based protocol interface available to its
customers. Example.com allows their customers to upload sensor measurements using a RESTful HTTP design.
Customers need to write code for their embedded systems to make use of the HTTP-based protocol interface (and keying material for authentication and authorization of the uploaded data). These
applications work with the servers operated by Example.com and with nobody else;
there is no interoperability with third parties (at the application
layer at least), i.e., Alice, a customer of Example.com, cannot use their embedded system which was programmed to use the protocol interface for Example.com with another service provider without re-writing at least parts of her embedded software. Nevertheless, Example.com re-use standardized protocol
components to speed-up the process of developing their software,
which is certainly useful from a time-to-market and cost efficiency
point of view. For example, Example.com relies on HTTP and offers JSON to encode sensor data. Example.com will also have to rely at least on IP to have their customers access the Internet in order
to reach their server farm.
</t>
<t>
<figure anchor="no-interop" title="Proprietary Deployment">
<artwork>
<![CDATA[
.................
| Application |
| Service |
| Provider |
| Example.com |
|_______________|
_, .
,' `. Proprietary
_,' `. Protocol offered
,' `._ by Example.com
-' -
,'''''''''''''| ,''''''''| Sensors
| Temperature | | Light | operated by
| Sensor | | Sensor | customers of
|.............' |........' Example.com
]]></artwork>
</figure>
</t>
<t>Clearly, the above scenario does not provide a lot of interoperability even though
standardized Internet protocols are re-used.
</t>
<t>Since example.com is focused on storage of sensor data and not on the actually processing it offers an HTTP-based protocol interface to others to get access to the uploaded sensor data. In our example, b-example.com and c-example.com are two of such companies that make use of this functionality in order to provide data visualization and data mining computations. Example.com again uses standardized protocols (such as RESTful HTTP design combined with OAuth) for offering access but overall the entire protocol stack is not standardized.</t>
<t>
<figure anchor="backend-interop" title="Backend Interworking">
<artwork>
<![CDATA[
.................
| Application |
.| Service |
,-` | Provider |
.` | b-example.com |
,-` |_______________|
.`
................. ,-`
| Application |-` Proprietary
| Service | Protocol
| Provider |
| example.com |-,
|_______________| '.
_, `',
Proprietary ,' '. ...
Protocol _,' `', .................
,' '. | Application |
-' `'| Service |
,''''''''| | Provider |
| Light | | c-example.com |
| Sensor | |_______________|
|........'
]]></artwork>
</figure>
</t>
</section>
<section anchor="full" title="Interoperability">
<t>In contrast to the scenario described in <xref target="no-inter"/> we illustrate a sensor where
two devices developed by independent manufacturers
are desired to interwork. This is shown in <xref target="full-interop"/>.
To pick an example from <xref target="RFC6574"/>,
consider a light bulb that talks to a light switch with the requirement
that each may be manufactured by a different company, represented as company A and B.
</t>
<t>
<figure anchor="full-interop" title="Interoperability between two random devices">
<artwork>
<![CDATA[
_,,,, ,,,,
/ -'`` \
| |
\ |
/ \
,''''''''| / Standardized . ,''''''''|
| Light | ------|---Protocol-------\------| Light |
| Bulb | . | | Switch |
|........' `'- / |........'
\ _-...-`
Manufacturer `. ,.' Manufacturer
A ` B
]]></artwork>
</figure>
</t>
<t>In order for this scenario to work manufacturer A, B, and probably many other manufacturers f
lightbulbs and light switches need to get together and agree on the protocol stack they would like to use.
Let us assume that they do not want any manual configuration by the user to happen and that these devices
should work in a typical home network this consortium needs to make a decision about the following protocol design
aspects:</t>
<t>
<list style="symbols">
<t>Which physical layer should be supported?</t>
<t>Which IP version should be used? </t>
<t>Which IP address configuration mechanism(s) are integrated into the device?</t>
<t>Which communication architecture shall be supported? (see
<xref target="I-D.arkko-core-sleepy-sensors"/>)</t>
<t>Whether there is a need for a service discovery mechanism to allow users to discover light bulbs they have in their home or office.</t>
<t>Which transport layer protocol is used for conveying the sensor readings/sensor commands? (e.g., UDP)</t>
<t>Which application layer protocol is used? (for example, CoAP)</t>
<t>How are requests encoded? (e.g., as URIs) How is the return data encoded? (e.g., JSON)</t>
<t>What data model is used for expressing the different light levels? (e.g., <xref target="I-D.jennings-senml"/>)</t>
<t>Finally, some thoughts will have to be spent about the security architecture. This includes questions like: what are the ssecurity threats? What security services need to be provided to deal with the identified threats? Where do the security credentials come from? At what layer(s) in the protocol stack should the security mechanism reside?</t>
</list>
</t>
<t>This list is not meant to be exhaustive but aims to illustrate that for every usage scenario many design decisions will have to be made in order to accommodate the constrained nature of a specific device in a certain usage scenario. Standardizing such a complete solution to accomplish a full level of interoperability between two devices manufactured by different vendors will take time.</t>
</section>
<section title="Design for Change">
<t>With the description in <xref target="no-inter"/> and in <xref target="full"/> we present two extreme cases of interoperability. To "design for varation in outcome", as postulated by <xref target="Tussels"/>, the design of the system does not need to be cast in stone during the standardization process but may be changed during run-time using software updates. </t>
<t>For many reasons, not only for adding new
functionality, it can be said that many smart objects will need a
solid software update mechanism. Note that adding new functionality
to smart objects may not be possible for certain classes of
constrained devices, namely those with severe memory limitations. As such, a certain level of sophistication from the embedded device is assumed in this section.</t>
<t>Software updates are common in operating systems and application programs today. Arguably, the Web today employs a very successful software update mechanism with code being provided by many different parties (i.e., by websites loaded into the browser or by the Web application). While JavaScript (or the proposed successor, Dart) may not be the right choice of software
distribution for smart objects, and other languages such as embedded
eLua <xref target="eLua"/> may be more appropriate, the basic idea of offering software distribution mechanisms may present a middleground between the two extreme interoperability scenario presented in this section. </t>
</section>
</section>
<!-- ====================================================================== -->
<section anchor="recs" title="Recommendations">
<t>Based on the previous description, we developed suggestions for
different audiences.
</t>
<t>For engineers in the IETF, we suggest the following.
<cref>DT: Some of the items below dont appear to be targeted only at the IETF.</cref>
<list style="symbols">
<t>The IETF has produced a number of building blocks as well as
architectural specifications that have provided good guidance
for implementers and the deployment community. We encourage
continuing the development of building blocks that are usable
in a number of deployment scenarios. A number of the recommendations
in <xref target="RFC6574"/> provide a good starting point. We
do, however, encourage protocol engineers to document the
interworking of various protocols in at least one architectural
variant to ensure that the indivual parts indeed fit together
without creating gaps or conflicts. Regarding architectural
documents, we observe that their number in the IETF has
increased over the years. We are convinced that focusing on
a subset of the protocol stack will be of increased importance
for a smart object environment.
<cref>DT: I dont know what it means to focus on a subset, so I'm not convinced.</cref>
Therefore, we suggest to
separate profiles that describe network-layer from application-layer
protocol interaction due to the different speed of innovation,
very much in the same style of the split between RFC 1122
"Requirements for Internet Hosts - Communication Layers"
<xref target="RFC1122"/> and RFC 1123 "Requirements for Internet
Hosts - Application and Support" <xref target="RFC1123"/>. The
application space has historically seen faster innovation
cycles, and separating network-layer from application-layer
functionality is therefore recommended. In general, we suggest
avoiding standardizing complete protocol stacks. The likelihood
that those will be outdated by the time standardization is
finished is far too high, particularly with application-layer
standards.
</t>
<t>As a starting point aim for an interoperability model that does not require component to be
offered by different vendors.
An architecture that requires fewer interoperability components
has a faster time to market. <!-- more likelihood for success in the market place.-->
</t>
<t>Even in the smart object space, try to aim for a generic design
instead of optimizing too early. Note that some optimizations
will only be possible in an architectural context, rather than
at the level of an individual protocol.
</t>
<t>We encourage engineers to take existing deployment constraints
into consideration to allow for a smooth transition path. This
requires a clear understanding of the deployment status and also
an analysis of the incentives of the different stakeholders.
</t>
<t>Over time, a wide range of middleboxes have been introduced
to the Internet protocol suite. Introducing middleboxes in
smart object deployments has been proposed many times but their
usage may turn out to be dangerous. We recommend carefully
investigaing whether new features introduced can be supported
without any change to middleboxes. This investigation will
likely have to go beyond pure specification work, and may
require extensive interoperability testing and a clearly
articulated extensiblity story. The guidance in
<xref target="I-D.iab-extension-recs"/> is relevant to this
discussion. The added architectural complexity, including
security and privacy challenges, has to be a subject of design
considerations. Middleboxes are often operated by parties other
than the communication endpoints. As such, they introduce
additional stakeholders into the architecture that often want
to be involved when new features are introduced and as such may
slow down the ability to innovate at a high speed.
</t>
</list>
</t>
<t>For researchers we offer the following suggestions:
<list style="symbols">
<t>We believe that the area of mobile code distribution provides a promising way to solve a range of security problems and the ability to deliver new functionality.
The rich experience from the Web environment can be taken into consideration as a starting point.
</t>
<!-- <t>The IETF has also kept a good balance between standardization
work that has almost research character (long-term) and
deployment relevant (short-term) work. This balance is useful
for the participants to ensure that forward-looking researchers
are sharing their views with those closer to deployment
problems. The exact worksplit between the IRTF and the IETF
community is left to the decision of the involved parties. We
encourage continuing with this model.
<cref>DT: This seems to be a low-value suggestion since not
suggesting anything would have the same effect.
</cref>
-->
<t>We encourage funding of software projects that produce libraries
and open source code for smart object operating systems. The
success of many IETF protocols can be attributed to the availability
of running code.
</t>
<t>We also propose to conduct ongoing research of the deployment
status of various Internet protocols.
These investigations provide a snapshot
for further interactions with the operator community to ensure
that IETF protocols can indeed be deployed in today's Internet
and may stimulate discussions on how to deal with unpleasant
deployment artifacts.
<!--
This type of applied research
will not only be useful to smart object protocol developments.
-->
</t>
</list>
</t>
<!-- <t>For those trying to re-use IETF protocols for the development of
their own IP-based smart object architecture, we suggest, in addition
to the recommendations in this document, to take the vast number
of IETF recommendations into consideration.
[Editor's Note: Add an example list of recommendation here.]
<cref>DT: need to do this</cref>
</t>
-->
</section>
<!-- ====================================================================== -->
<section anchor="SecurityConsiderations" title="Security Considerations">
<t>Section 3.3 of <xref target="RFC6574"/> reminds us about the IETF
workstyle regarding security:
<list style="empty">
<t>In the development of smart object applications, as with any other
protocol application solution, security must be considered early in
the design process. As such, the recommendations currently provided
to IETF protocol architects, such as RFC 3552 <xref target="RFC3552"/>,
and RFC 4101 <xref target="RFC4101"/>, apply also to the smart object
space.
</t>
</list>
</t>
<t>In the IETF, security functionality is incorporated into each
<!-- DT 7/3/12: removed since it's not true that every protocol includes
security functionality.
and every -->
protocol as appropriate, to deal with threats that are specific to
them. It is extremely unlikely that there is a one-size-fits-all
security solution given the large number of choices for the 'right'
protocol architecture (particularly at the application layer). For
this purpose, <xref target="RFC6272"/> offers a survey of IETF
security mechanisms instead of suggesting a preferred one.
</t>
<t>A more detailed security discussion can be found in the report from
the 'Smart Object Security' workshop.
that was held prior to
the IETF meeting in Paris, March 2012.
<cref>The workshop report has not been published yet. It will happen soon.</cref>
</t>
</section>
<!-- ====================================================================== -->
<section anchor="PrivacyConsiderations" title="Privacy Considerations">
<t>In 1980, the Organization for Economic Co-operation and Development
(OECD) published eight Guidelines on the Protection of Privacy and
Trans-Border Flows of Personal Data <xref target="OECD"/>, which are
often referred to as Fair Information Practices (FIPs). The FIPs,
like other privacy principles, are abstract in their nature and
have to be applied to a specific context.
</t>
<t>From a technical point of view, many smart object designs are not
radically different from other application design. Often, however,
the lack of a classical user interface, such as is used on a PC
or a phone, <!-- or Internet table, --> that allows users to
interact with the devices in a convenient and familiar way creates
problems to provide users with information about the data collection,
and to offer them the ability to express consent. Furthermore,
in some verticals (e.g., smart meter deployments) users are not
presented with the choice of voluntarily signing up for the service
but deployments are instead mandated through regulation. Therefore,
these users
<!-- are taken their ability to exercise their consent right -->
have no right to consent;
a right that is core to many privacy principles including the FIPs.
In other cases, the design is more focused on dealing with privacy
at the level of a privacy notice rather than by building privacy
into the design of the system, which
<xref target="I-D.iab-privacy-considerations"/> asks engineers to do.
</t>
<t>The interoperability models described in this document highlight
that standardized interfaces are not needed in all cases, nor that
this is even desirable. Depending on the choice of certain underlying
technologies, various privacy problems may be inherited by the
upper-layer protocols and therefore difficult to resolve as an
afterthought. Many smart objects leave users little ability for
enabling privacy-improving configuration changes. Technologies
exist that can be applied also to smart objects to involve users
in authorization decisions before data sharing takes place.
</t>
<t>As a summary, for an Internet protocol architect, the guidelines
described in <xref target="I-D.iab-privacy-considerations"/> are
applicable. For those looking at privacy from a deployment point
of view, the following additional guidelines are suggested:
<list style="hanging">
<t hangText="Transparency:"> The data processing should be completely
transparent to the smart object owner and user(s). Users must, except in rare exceptional cases,
be put in a position to easily understand what items of personal
information concerning them are collected and stored, as well
for what purposes they are sought.
</t>
<t hangText="Data Quality:">Smart objects should only store personal
data which are adequate, relevant and not excessive in relation
to the purpose(s) for which they are processed. The use of
anonymised data should be preferred wherever possible.
</t>
<t hangText="Data Access:">Before deployment starts, it is necessary
to consider who can access the personal data recorded in smart
objects and under which conditions, particularly with regard to
data subjects, to whom (in principle) full and free access to
his/her own data should be recognised. Appropriate and clear
procedures should be established in order to allow data subjects
to properly exercise their rights. A privacy and data protection
impact assessment is considered a useful tool for this analysis.
</t>
<t hangText="Data Security: ">
Standardized data security measures to prevent unlawful access,
alteration or loss of smart object data need to be defined and
universally adopted. Robust cryptographic techniques and proper
authentication frameworks should be used to limit the risk of
unintended data transfers or harmful attacks. The end-user
should be able to verify, in a straight-forward manner, that
smart objects are in full compliance with these standards.
</t>
</list>
</t>
</section>
<!-- ====================================================================== -->
<section anchor="Summary" title="Summary">
<t>Interconnecting smart objects with the Internet creates exciting new
use cases and engineers are eager to play with small and constrained
devices. With various standardization efforts ongoing and the
impression that smart objects require a new Internet Protocol and
many new extensions, we would like to provide a cautious warning. We
believe that protocol architects are best served by the following
high level guidance:
<list style="hanging">
<t hangText="Re-use Internet protocols."> Most, if not all, smart object deployments should employ the
Internet protocol suite. The Internet protocols can be applied to almost any
environment, and the rest of the suite can be tailored for the specific needs.
</t>
<t hangText="The deployed Internet matters.">When connecting smart objects to the Internet, take existing
deployment into consideration to avoid unpleasant surprises. Assuming an ideal, clean-slate
deployments is, in many cases, far too opimistic since already
available deployed infrastructure is sticky.
</t>
<t hangText="Decide about the level of interoperability."> Offering interoperability
between every entity in an architecture may be an ideal situation for a standards person
but comes with a certain cost. As such, starting with a less ambigious
standardization goal may be appropriate, particularly for early
deployments.
</t>
<t hangText="Don't optimize too early."> The constrained nature of smart
objects invites engineers to invent each and every technique to
optimize protocols for special use cases. While some of these
optimizations may be necessary, many of them make the overal
design complex and the outcome less usable for the generic use
case.
</t>
</list>
</t>
</section>
<!-- ====================================================================== -->
<section anchor="iana" title="IANA Considerations">
<t>This document does not require actions by IANA.
</t>
</section>
<!-- ====================================================================== -->
<section title="Acknowledgements">
<t>We would like to thank the participants of the IAB Smart Object
workshop for their input to the overall discussion about smart
objects.
</t>
<t>Furthermore, we would like to thank Atte Lansisalmi, Hannu Flinck,
Joel Halpern, and Markku Tuohino for their review comments.
</t>
</section>
</middle>
<!-- ====================================================================== -->
<back>
<!-- DT: this document really has no Normative references.
<references title="Normative References">
</references>
-->
<references title="Informative References">
<?rfc include="reference.RFC.6574"?>
<?rfc include="reference.I-D.tschofenig-post-standardization"?>
<?rfc include="reference.I-D.iab-extension-recs"?>
<?rfc include="reference.I-D.iab-privacy-considerations"?>
<?rfc include="reference.RFC.1263"?>
<?rfc include="reference.RFC.6272"?>
<?rfc include="reference.RFC.1958"?>
<?rfc include="reference.RFC.4924"?>
<?rfc include="reference.RFC.3234"?>
<?rfc include="reference.RFC.5218"?>
<?rfc include="reference.RFC.3552"?>
<?rfc include="reference.RFC.4101"?>
<?rfc include="reference.RFC.1122"?>
<?rfc include="reference.RFC.1123"?>
<?rfc include="reference.RFC.3724"?>
<?rfc include="reference.I-D.arkko-core-sleepy-sensors"?>
<?rfc include="reference.I-D.ietf-core-coap"?>
<?rfc include="reference.I-D.bormann-lwig-guidance"?>
<?rfc include="reference.I-D.rosenberg-internet-waist-hourglass"?>
<?rfc include="reference.I-D.jennings-senml"?>
<reference anchor="IPoptions">
<front>
<title>IP options are not an option, Technical Report UCB/EECS</title>
<author initials="R." surname="Fonseca" fullname="R. Fonseca">
<organization/>
</author>
<author initials="G." surname="Porter" fullname="G. Porter">
<organization/>
</author>
<author initials="R." surname="Katz" fullname="R. Katz">
<organization/>
</author>
<author initials="S." surname="Shenker" fullname="S. Shenker">
<organization/>
</author>
<author initials="I." surname="Stoica" fullname="I. Stoica">
<organization/>
</author>
<date year="2005"/>
</front>
<format type='HTML'
target='http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.123.4251' />
</reference>
<!--
<reference anchor="Laws">
<front>
<title>The 10 Laws of Smart Object Security Design, In Proc. of IAB Workshop on 'Interconnecting Smart Objects with the Internet', Prague, Czech Repulic</title>
<author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
<organization/>
</author>
<author initials="B." surname="Aboba" fullname="Bernard Aboba">
<organization/>
</author>
<date month="March" year="2011"/>
</front>
<format type='PDF'
target='http://www.iab.org/wp-content/IAB-uploads/2011/03/Tschofenig.pdf' />
</reference>
-->
<reference anchor="TCPextensions">
<front>
<title>Is it Still Possible to Extend TCP? In Proc. ACM Internet Measurement Conference (IMC), Berlin, Germany</title>
<author initials="M." surname="Honda" fullname="M. Honda">
<organization/>
</author>
<author initials="Y." surname="Nishida" fullname="Y. Nishida">
<organization/>
</author>
<author initials="A." surname="Greenhalgh" fullname="A. Greenhalgh">
<organization/>
</author>
<author initials="M." surname="Handley" fullname="M. Handley">
<organization/>
</author>
<author initials="H." surname="Tokuda" fullname="H. Tokuda">
<organization/>
</author>
<date month="Nov" year="2011"/>
</front>
<format type='PDF'
target='http://conferences.sigcomm.org/imc/2011/docs/p181.pdf' />
</reference>
<reference anchor="eLua">
<front>
<title>Embedded Lua Project</title>
<author>
<organization/>
</author>
<date year="2012"/>
</front>
<format type='HTML'
target='http://www.eluaproject.net/' />
</reference>
<reference anchor="HomeGateway">
<front>
<title>An experimental study of home gateway characteristics, In Proceedings of the '10th annual conference on Internet measurement'</title>
<author initials="L." surname="Eggert" fullname="Lars Eggert">
<organization/>
</author>
<date year="2010"/>
</front>
<format type='PDF'
target='http://eggert.org/papers/2010-imc-hgw-study.pdf' />
</reference>
<reference anchor="Tussels">
<front>
<title>Tussle in Cyberspace: Defining Tomorrow's Internet, In
Proc. ACM SIGCOMM</title>
<author initials="D." surname="Clark" fullname="D. Clark">
<organization/>
</author>
<author initials="J." surname="Wroslawski" fullname="J. Wroslawski">
<organization/>
</author>
<author initials="K." surname="Sollins" fullname="K. Sollins">
<organization/>
</author>
<author initials="R." surname="Braden" fullname="R. Braden">
<organization/>
</author>
<date year="2002"/>
</front>
<format type='HTML'
target='http://www.acm.org/sigcomm/sigcomm2002/papers/tussle.html' />
</reference>
<reference anchor="OECD">
<front>
<title>OECD Guidelines on the Protection of Privacy and Transborder Flows of Personal Data</title>
<author fullname="" initials="" surname="">
<organization>Organization for Economic Co-operation and Development</organization>
</author>
<date year="1980"/>
</front>
<seriesInfo
name="available at (September 2010)"
value=", http://www.oecd.org/EN/document/0,,EN-document-0-nodirectorate-no-24-10255-0,00.html"/>
<format target="http://www.oecd.org/EN/document/0,,EN-document-0-nodirectorate-no-24-10255-0,00.html" type="HTML"/>
</reference>
</references>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-22 21:53:55 |