<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" []>
<?xml-stylesheet type='text/xsl' href='http://xml.resource.org/authoring/rfc2629.xslt' ?>
<?rfc rfcedstyle="yes"?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>

<rfc category="info" ipr="trust200902" number="7452" submissionType="IAB" consensus="yes">

  <front>
  <title abbrev="Smart Object Architectural Considerations">Architectural Considerations in Smart Object Networking</title>   

    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization>ARM Ltd.</organization>
      <address>
        <postal>
          <street>6060 Hall in Tirol</street>
          <city></city>
          <code></code>
          <country>Austria</country>
        </postal>
        <phone></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>One Microsoft Way</street>
                <city>Redmond</city>
                <region>WA</region>
                <code>98052</code>
                <country>United States</country>
            </postal>
            <email>dthaler@microsoft.com</email>
        </address>
    </author>

    <author initials="D." surname="McPherson" fullname="Danny McPherson">
        <organization/>
        <address>
            <postal>
                <street>12061 Bluemont Way</street>
                <city>Reston</city>
                <region>VA</region>
                <code>20190</code>
                <country>United States</country>
            </postal>
            <email>dmcpherson@verisign.com</email>
        </address>
    </author>
        
    <date month="February" year="2015"/>
    <keyword>IAB Statement</keyword>
    <keyword>Smart Objects</keyword>
    <abstract>

      <t>The term "Internet of Things" (IoT) denotes a trend where a large number of
         embedded devices employ communication services offered by Internet
         protocols.  Many of these devices, often called "smart objects", are
         not directly operated by humans but exist as components in buildings
         or vehicles, or are spread out in the environment.

     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.</t> 

  <t>This document offers guidance to engineers designing Internet-connected smart objects.</t> 

</abstract>

  </front>
  <middle>
<!--[rfced] Throughout the text, please review the use of Web and web
per the guidance in RFC 4949 and let us know if any updates are
necessary.

-->

<section anchor="introduction" title="Introduction">

  <t>RFC 6574 <xref target="RFC6574"/> refers 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 run Internet protocols and those
     that can't.
  </t>

  <t>Interconnecting smart objects with the Internet enables exciting new 
    use cases and products. An increasing number of products put 
    the Internet Protocol Suite on smaller and smaller devices and offer the 
    ability to process, visualize, and gain insight from the collected 
    sensor data. The network effect can be increased if the data collected 
    from many different devices can be combined.</t>

  <t>Developing embedded systems is a complex task, and designers must
     make a number of design decisions such as:
    <list style="symbols"> 
      <t>How long is the device designed to operate?
      </t>
      <t>How does it interact with the physical world? Is it a sensor or actuator or both?
      </t>
      <t>How many "owners" does it have? One? Many? Is the owner likely to change over the lifetime of the device?
      </t>
      <t>Is it continuously or intermittently powered? Does it sleep?
      </t>
      <t>Is it connected to a network, and if so, how?
      </t>
      <t>Will it be physically accessible for direct maintenance after deployment? 
         How does that affect the security model?
      </t>
    </list>
  </t>

  <t>While developing embedded systems is itself a complex task, designing Internet-connected
    smart objects is even harder since it requires expertise with 
    Internet protocols in addition to software programming 
    and hardware skills. To simplify the development task, and thereby to 
    lower the cost of developing new products and prototypes, we believe 
    that reuse of prior work is essential. Therefore, we provide high-level 
    guidance on the use of Internet technology for the development of smart 
    objects, and connected systems in general.</t> 

   <t>
     <list style="hanging"> 

     <t hangText="Utilize Existing Design Patterns"><vspace blankLines="1"/>Design 
        patterns are generally reusable solutions to a commonly occurring 
        design problem (see <xref target="Gamma"/> for more discussion). 
        Existing smart object deployments show communication patterns 
        that can be reused by engineers with the benefit of lowering the 
        design effort. As discussed in the sections below, individual patterns also have an implication on the 
        required interoperability between the different entities. Depending 
        on the desired functionality, already-existing patterns can be reused 
        and adjusted. <xref target="patterns"/> talks about various 
        communication patterns.
     </t> 

     <t hangText="Reuse Internet Protocols"><vspace blankLines="1"/> Most
        smart object deployments can make use of the already-standardized Internet Protocol Suite. Internet protocols can be 
        applied to almost any environment due to their generic design and 
        typically offer plenty of potential for reconfiguration, 
        which allows them to be tailored for the specific needs.
        <xref target="reuse"/> discusses this topic. 
     </t>

     <t hangText="The Deployed Internet Matters"><vspace blankLines="1"/>When 
        connecting smart objects to the Internet, take existing deployment 
        into consideration to avoid unpleasant surprises.  Assuming an ideal, 
        clean-slate deployment is, in many cases, far too optimistic since 
        the already-deployed infrastructure is convenient to use. In 
        <xref target="deployed"/>, we highlight the importance of this topic. 
     </t> 

     <t hangText="Design for Change"><vspace blankLines="1"/>The Internet 
        infrastructure, applications, and preferred building blocks evolve 
        over time. Especially long-lived smart object deployments need to take 
        this change into account, and <xref target="change"/> is dedicated to 
        that topic.</t> 
 
     </list> 
  </t> 


</section> 

<section anchor="patterns" title="Smart Object Communication Patterns"> 

<t>This section illustrates a number of communication patterns utilized in the smart object 
  environment. It is possible that more than one pattern can be applied at the same time in a product. 
  Developers reusing those patterns will benefit from the experience of others as well 
  as from documentation, source code, and available products.</t> 
  
<section title="Device-to-Device Communication Pattern"> 

  <t><xref target="d2d"/> illustrates a communication pattern where two devices developed 
  by different manufacturers are desired to interoperate and communicate directly. To pick an example from 
  <xref target="RFC6574"/>, consider a light switch that talks to a light 
  bulb with the requirement that each may be manufactured by a different company, 
  represented as Manufacturer A and B. Other cases can be found with fitness 
  equipment, such as heart rate monitors and cadence sensors.</t>

  <t>
          <figure anchor="d2d" title="Device-to-Device Communication Pattern">
            <artwork>
              <![CDATA[
                     _,,,,    ,,,,                       
                    /     -'``    \                      
                   |  Wireless    |                     
                   \  Network     |                     
                   /               \                     
 ,''''''''|       /                 .       ,''''''''|   
 | Light  | ------|------------------\------| Light  |   
 | Bulb   |        .                 |      | Switch |   
 |........'         `'-              /      |........'   
                       \      _-...-`                    
 Manufacturer           `. ,.'              Manufacturer  
     A                    `                      B                                                                      
           ]]></artwork>
          </figure>
  </t>
  <t>In order to fulfill the promise that devices from different manufacturers are able to communicate out of the box,
  these vendors need to agree on the protocol stack. They need to make decisions about the following protocol-design
  aspects:</t>

  <t>
  <list style="symbols"> 
   <t>Which physical layer(s) should be supported? Does it use low-power radio technologies (e.g., Bluetooth Smart, IEEE 802.15.4)? </t>
   <t>Can devices be IPv6-only, or
      must they also support IPv4 for backward-compatibility reasons? What IPv4-IPv6 transition technologies are needed?</t>
   <t>Which IP address configuration mechanism(s) is integrated into the device?</t>
   <t>Which communication architectures shall be supported? Which devices are constrained, 
    and what are those constraints? Is there a classical client-server model or rather a 
    peer-to-peer model?</t>
   <t>Is there 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 (e.g., UDP) is used for conveying the sensor readings/commands?</t>
   <t>Which application-layer protocol is used (for example, the Constrained Application Protocol (CoAP) <xref target="RFC7252"/>)?</t>
   <t>What information model is used for expressing the different light levels?</t>
   <t>What data model is used to encode information? (See <xref target="RFC3444"/> for a discussion about the difference between data models and information models.)</t>
   <t>
   Finally, security and privacy require careful thought.
    This includes questions like: What are the security 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(s) reside? What privacy implications are caused by various design decisions?</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 takes time, but there are 
    obvious rewards for end customers and vendors.</t> 

</section> 

<section anchor="d2c" title="Device-to-Cloud Communication Pattern">

  <t><xref target="cloud"/> shows a communication pattern for uploading sensor data to an application service provider. Often 
  the application service provider (example.com in our illustration) also sells smart objects. In that case, 
  the entire communication happens internal to the provider and no need for interoperability arises. Still, it is
  useful for example.com to reuse existing specifications to lower the design, implementation, testing, and
  development effort.
  </t> 

  <t>While this pattern allows using IP-based communication end to end, it may still lead to silos. To prevent silos,
  example.com may allow third-party device vendors to connect to their server infrastructure as well. For those cases,
  the protocol interface used to communicate with the server infrastructure needs to be made available, and various
  standards are available, such as CoAP, Datagram Transport Layer Security (DTLS) <xref target="RFC6347"/>, UDP, IP, etc., as shown in
  <xref target="cloud"/>. 
  A frequent concern from end users is that a change in the business model (or bankruptcy) 
  of the IoT device/service provide might make the hardware become unusable. Companies might consider the possibility
  of releasing their source code for the IoT device or allowing other IoT operating systems (plus application software)
  to be installed on the IoT device.
  </t>

  <t>Similarly, in many situations it is desirable to change which cloud service a device connects to, such
  as when an application service provider changes its hosting provider.  Again, standard Internet protocols
  are needed.
  </t>
  
  <t>Since the access networks to which various smart objects are connected are typically not under the control of
  the application service provider, commonly used radio technologies (such as WLAN, wired Ethernet, and cellular
  radio) together with the network access authentication technology have to be reused. The same applies to standards
  used for IP address configuration. 
  </t> 
  <t>
    <figure anchor="cloud" title="Device-to-Cloud Communication Pattern">
            <artwork>
              <![CDATA[
         .................                       
         |  Application  |                       
         |  Service      |                       
         |  Provider     |                       
         |  example.com  |                       
         |_______________|                       
             _,   .                              
  HTTP     ,'      `.        CoAP          
  TLS    _,'          `.     DTLS              
  TCP  ,'               `._  UDP
  IP -'                    - IP                      
 ,'''''''''''''|       ,'''''''''''''''''|  
 | Device with |       | Device with     |  
 | Temperature |       | Carbon Monoxide |
 | Sensor      |       | Sensor          |       
 |.............'       |.................'               

TLS = Transport Layer Security
           ]]></artwork>
          </figure>
  </t>
</section> 

<section title="Device-to-Gateway Communication Pattern"> 
  <t>The device-to-cloud communication pattern, described in <xref target="d2c"/>, is convenient for vendors of smart
  objects and works well if they choose a radio technology that is widely deployed in the targeted market, such as
  Wi-Fi based on IEEE 802.11 for smart home use cases. Sometimes, less-widely-available radio technologies are needed (such
  as IEEE 802.15.4) or special application-layer functionality (e.g., local authentication and authorization) has
  to be provided or interoperability is needed with legacy, non-IP-based devices. In those cases, some form of gateway has to be 
  introduced into the communication architecture that bridges
  between the different technologies and performs other networking and security
  functionality. <xref target="gateway"/> shows this pattern graphically. Often, these gateways are provided by the
  same vendor that offers the IoT product, for example, because of the use of proprietary protocols, to lower the
  dependency on other vendors or to avoid potential interoperability problems. It is expected that in the future,
  more generic gateways will be deployed to lower cost and infrastructure complexity for end consumers, enterprises,
  and industrial environments.  Such generic gateways are more likely to exist if IoT device designs make use of generic Internet protocols and not require application-layer gateways that translate one application-layer protocol to another one. The use of application-layer gateways will, in general, lead to a more fragile deployment, as has been observed in the past with <xref target="RFC3724"/> and <xref target="RFC3238"/>.</t>

  <t>This communication pattern can frequently be found with smart object deployments that require remote configuration 
  capabilities and real-time interactions. The gateway is thereby assumed to be always connected to the Internet.</t> 
  <t>

    <figure anchor="gateway" title="Device-to-Gateway Communication Pattern">
<artwork>
              <![CDATA[
             .................
             |  Application  |
             |  Service      |
             |  Provider     |
             |  example.com  |
             |_______________|
                    |
                    | 
                    | IPv4/IPv6
             .................
             |    Local      |
             |   Gateway     |
             |               |
             |_______________|
                _,         .                              
  HTTP       ,'              `.         CoAP          
  TLS      _,' Bluetooth Smart  `.      DTLS              
  TCP    ,'     IEEE 802.11       `._   UDP
  IPv6 -'       IEEE 802.15.4         - IPv6                      
 ,'''''''''''''|          ,'''''''''''''''''|
 | Device with |          | Device with     |
 | Temperature |          | Carbon Monoxide |
 | Sensor      |          | Sensor          |
 |.............'          |.................'
]]></artwork>
   </figure>
  </t>

  <t>

  If the gateway is mobile, such as when the gateway is a smartphone, connectivity between the devices and
  the Internet may be intermittent.

  This limits the applicability of such a communication pattern but is 
  nevertheless very common with wearables and other IoT devices that do not need always-on Internet or real-time 
  Internet connectivity. From an interoperability point of view, it is worth noting that smartphones, with their 
  sophisticated software update mechanism via app stores, allow new functionality to be updated regularly at the 
  smartphone and sometimes even at the IoT device. With special apps that are tailored to each specific IoT device, 
  interoperability is mainly a concern with regard to the lower layers of the protocol stack, such as the radio 
  interface, and less so at the application layer (if users are willing to download a new app for each IoT device).</t>

  <t>It is also worth pointing out that a gateway allows supporting both IPv6 and IPv4 (for compatibility
  with legacy application service providers) externally, while allowing devices to be IPv6-only to reduce
  footprint requirements. If devices do not have the resources to support both IPv4 and IPv6 themselves,
  being IPv6-only (rather than IPv4-only) with a gateway enables the most flexibility, avoiding the
  need to update devices to support IPv6 later, whereas IPv4 address exhaustion makes it ill-suited to
  scale to smart object networks.  See <xref target="RFC6540"/> for further discussion.</t>
  
</section> 

<section title="Back-End Data Sharing Pattern"> 
  <t>The device-to-cloud pattern often leads to silos; IoT devices upload data only to a single application service
  provider. However, users often demand the ability to export and to analyze data in combination with data from other
  sources. Hence, the desire for granting access to the uploaded sensor data to third parties arises. This design is
  shown in <xref target="backend"/>. This pattern is known from the Web in case of mashups and is, therefore, reapplied
  to the smart object context. To offer familiarity for developers, typically a RESTful API design in combination
  with a federated authentication and authorization technology (like OAuth 2.0 <xref target="RFC6749"/>) is reused. 
  While this offers reuse at the level of building blocks, the entire protocol stack (including the information/data model and RESTful Web APIs) is often not standardized.</t>

  <t>
          <figure anchor="backend" title="Back-End Data Sharing Pattern">
            <artwork>
              <![CDATA[
                                           .................
                                           |  Application  |
                                          .|  Service      |
                                       ,-` |  Provider     |
                                     .`    | b-example.com |
                                  ,-`      |_______________|
                                .`                          
          .................  ,-`   
          |  Application  |-` HTTPS
          |  Service      |   OAuth 2.0
          |  Provider     |   JSON
          |  example.com  |-,    
          |_______________|  '.            
               _,              `',                          
             ,'                   '.                      
          _,' CoAP or               `',    .................
        ,'   HTTP                      '.  |  Application  |
      -'                                 `'|  Service      |
   ,''''''''|                              |  Provider     |
   | Light  |                              | c-example.com |
   | Sensor |                              |_______________|
   |........'                                                                                                           
           ]]></artwork>
          </figure>
  </t>

</section> 

</section> 


<section anchor="reuse" title="Reuse Internet Protocols">

   <t>When discussing the need for reuse of available standards versus 
    extending or redesigning protocols, it is useful to look back at 
    the criteria for success of the Internet.</t>

    <t>RFC 1958 <xref target="RFC1958"/> provides lessons from the early days
    of the Internet and 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>And adds:</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>Yet, because building very small, battery-powered
    devices is challenging, it may be difficult to resist
    the temptation to build solutions tailored to specific
    applications, or even to redesign networks from scratch to suit 
    a particular application. 
  </t>

  <t>While developing consensus-based standards in an open and
    transparent process takes longer than developing proprietary
    solutions, the resulting solutions often remain relevant over a
    longer period of time.</t>
     
  <t>RFC 1263 <xref target="RFC1263"/> considers protocol-design strategy 
    and the decision to design new protocols or to use existing protocols 
    in a non-backward compatible way:
  </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 was
    more lightweight than today, these thoughts remain relevant
    in smart object development.  </t>
     
  <t>Interestingly, a large number of already-standardized protocols are relevant 
    for smart object deployments. RFC 6272 <xref target="RFC6272"/>, for example, 
    made the attempt to identify relevant IETF specifications for use in smart 
    grids.</t>

  <t>Still, many commercial products contain proprietary or industry-specific 
    protocol mechanisms, and researchers have made several attempts to design 
    new architectures for the entire Internet system. There are several 
    architectural concerns that deserve to be highlighted:

  <list style="hanging">

  <t hangText="Vertical Profiles"><vspace blankLines="1"/>
     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).  Ultimately, however, the number of domains 
     where smart objects can be used is essentially unbounded. There is also
     an ever-evolving set of protocols and protocol extensions. 

     <vspace blankLines="1"/>
     However, merely changing the networking protocol to IP does not
     necessarily bring the kinds of benefits that industries are
     looking for in their evolving smart object deployments. In particular,
     a profile is rigid and leaves little room for interoperability among
     slightly differing or competing technology variations. As an example,
     Layer 1 through 7 type profiles do not account for the possibility that
     some devices may use different physical media than others, and that in such
     situations, a simple router could still provide an ability to communicate
     between the parties.</t>

  <t hangText="Industry-Specific Solutions"><vspace blankLines="1"/>
     The Internet Protocol Suite is more extensive than merely the use of
     IP. Often, significant benefits can be gained from using additional, widely
     available, generic technologies, such as the Web. Benefits from using
     these kinds of tools include access to a large available workforce, 
     software, and education already geared towards employing the technology.</t>

  <t hangText="Tight Coupling"><vspace blankLines="1"/>
     Many applications are built around a specific set of servers, devices,
     and users. However, often the same data and devices could be useful for
     many purposes, some of which may not be easily identifiable at the time
     the devices are deployed.</t>

  </list></t>

  <t>In addition to the architectural concerns, developing new protocols
  and mechanisms is generally more risky and expensive than reusing
  existing standards, due to the additional costs involved in design,
  implementation, testing, and deployment. Secondary costs, such as the training of technical staff and, in the worst case, the training of end users, can be substantial. 
  
  </t>

  <t>As a result, 
  while there are some cases where specific solutions are needed, the
  benefits of general-purpose technology are often compelling, be it
  choosing IP over some more specific communication mechanism, a
  widely deployed link layer (such as wireless LAN) over a more
  specific one, web technology over application-specific protocols,
  and so on.</t>

  <t>However, when employing these technologies, it is important to
  embrace them in their entirety, allowing for the architectural
  flexibility that is built into them.  As an example, it rarely makes
  sense to limit communications to on-link or to specific media.
  Design your applications so that the participating devices can 
  easily interact with multiple other applications.</t>

</section>


<section anchor="deployed" title="The Deployed Internet Matters"> 

  <t>Despite the applicability of Internet protocols for smart
  objects, picking the specific protocols for a particular use case
  can be tricky.  As the Internet has evolved, certain
  protocols and protocol extensions have become the norm, and others
  have become difficult to use in all circumstances.</t>

  <t>Taking into account these constraints is particularly important
  for smart objects, as there is often a desire to employ specific
  features to support smart object communication. For instance, from a
  pure protocol-specification perspective, some transport protocols
  may be more desirable than others.  These constraints apply both to
  the use of existing protocols as well as designing new ones on top
  of the Internet protocol stack.</t>

  <t>The following list illustrates a few of those constraints, 
    but every communication protocol comes with its own challenges.</t>
 
  <t>In 2005, Fonseca, et al. <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, Honda, et al. <xref target="HomeGateway"/> tested 34 different home gateways 
        regarding their packet dropping policy of UDP, TCP, the Datagram Congestion Control 
        Protocol (DCCP), the Stream Control Transmission Protocol (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, the behavior of 
        networks with regard to various TCP extensions was tested in 
        <xref target="TCPextensions"/>: "From our results 
        we conclude that the middleboxes implementing layer 4 functionality are 
        very common -- at least 25% of paths interfered with TCP in some 
        way beyond basic firewalling."
  </t>
 

  <t>Extending protocols to fulfill new uses and to add new functionality may 
     range from very easy to difficult, as <xref target="RFC6709"/> explains 
     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. RFC 5218 on "What Makes For a Successful Protocol" <xref target="RFC5218"/> defines wildly successful protocols as protocols 
     that are widely deployed beyond their envisioned use cases. 
  </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 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 intermediaries interacting with less intelligent end devices.
     However, RFC 3724 <xref target="RFC3724"/> has this to say about this crucial aspect: 
     "One desirable consequence of the end&nbhy;to&nbhy;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." Even this statement will become challenged, as 
     large numbers of devices are deployed, and it indeed might be the case
     that changing those devices will be hard. But 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="change" title="Design for Change">
  <t>How to embrace rapid innovation and at the same time accomplish a high 
    level of interoperability is one of the key aspects for competing in the 
    marketplace.  
    RFC 1263 <xref target="RFC1263"/> points out that "protocol change happens 
    and is currently happening at a very respectable 
    clip...We simply propose [for engineers developing the technology] to 
    explicitly deal with the changes rather [than] keep trying to hold back the 
    flood."</t>

  <t>In <xref target="Tussles"/>, Clark, et al. suggest to "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." The 
    term "tussle" refers to the process whereby different parties, which are part 
    of the Internet milieu and have interests that may be adverse to each other, 
    adapt their mix of mechanisms to try to achieve their conflicting goals, and 
    others respond by adapting the mechanisms to push back.</t>

   <t>In order to accomplish this, Clark, et al. suggest to: 
     <list style="numbers"> 
        <t>Break complex systems into modular parts, so that
          one tussle does not spill over and distort unrelated
          issues.</t>
        <t>Design for choice to permit the different players to
          express their preferences. Choice often requires open interfaces.</t>
     </list> 
  </t>

  <t>The main challenge with the suggested approach is predicting how 
    conflicts among the different players will evolve. Since tussles 
    evolve over time, there will be changes to the architecture, too. 
    It is certainly difficult to pick the right set of building blocks 
    and to develop a communication architecture that will last a long 
    time, and many smart object deployments are envisioned to be rather
    long lived.</t>
  <t>Luckily, the design of the system does not need to be cast in 
    stone during the design phase. It may adjust dynamically since many 
    of the protocols allow for configurability and dynamic discovery. 
    But, ultimately, software update mechanisms may provide the flexibility
    needed to deal with more substantial changes. </t>
  
  <t>A solid software update mechanism is needed not only for dealing 
     with the changing Internet communication environment and for 
     interoperability improvements but also for adding new features and 
     for fixing security bugs. This approach may appear to be in conflict 
     with classes of severely restricted devices since, in addition to a 
     software update mechanism, spare flash and RAM capacity is needed. 
     It is, however, a trade-off worth thinking about since better product
     support comes with a price.</t>
     
 <t>As technology keeps advancing, the constraints that technology
 places on devices evolve as well. Microelectronics have become more
 capable as time goes by, often making it possible for new
 devices to be both less expensive and more capable than their
 predecessors. This trend can, however, be in some cases offset by the
 desire to embed communications technology in even smaller and cheaper
 objects. But it is important to design communications technology not
 just for today's constraints but also for tomorrow's. This is particularly important 
 since the cost of a product is not only determined by the cost of hardware but 
 also by the cost of  
 not reusing already-available protocol stacks and software libraries by developing custom 
 solutions.
</t>

     <t>Software updates are common in operating systems and application 
      programs today. Without them, most devices would pose a latent 
      risk to the Internet at large. Arguably, the JavaScript-based web 
      employs a very rapid software update mechanism with code being
      provided by many different parties (e.g., by websites loaded into
      the browser or by smartphone apps).</t>

</section> 

<section anchor="SecurityConsiderations" title="Security Considerations">
  <t>Security is often even more important for smart objects than for more
     traditional computing systems, since interacting directly with the physical
     world can present greater dangers, and smart objects often operate autonomously without any human interaction for a long time period.   The problem is compounded by the fact
     that there are often fewer resources available in constrained devices to
     actually implement security (e.g., see the discussion of "Class 0 devices" in Section 3 of
     <xref target="RFC7228"/>).  As such, it is critical to design for security,
     taking into account a number of key considerations:

     <list style="symbols"> 
     <t>A key part of any smart object design is the problem of how to establish trust
        for a smart object.  Typically, bootstrapping trust involves giving the device the credentials it needs
        to operate within a larger network of devices or services.
     </t>
     <t>Smart objects will, in many cases, be deployed in places where additional
        physical security is difficult or impossible.  Designers should
        take into account that any such device can and will be compromised by an attacker with direct
        physical access.  Thus, trust models should distinguish between devices
        susceptible to physical compromise and devices with some level of
        physical security. Physical attacks, such as timing, power analysis, and glitching, are commonly applied to extract secrets <xref target="PhysicalAttacks"/>. 
     </t>
     <t>Smart objects will, in many cases, be deployed as collections of identical or
        near identical devices.  Protocols should be designed so that a compromise
        of a single device does not result in compromise of the entire collection,
        especially since the compromise of a large number of devices can enable
        additional attacks such as a distributed denial of service.
		Sharing secret keys across an entire product family is, therefore, also problematic 
		since compromise of a single device might leave all devices from that product family 
		vulnerable. 			
     </t>
     <t>Smart objects will, in many cases, be deployed in ways that the designer
        never considered.  Designers should either seek to minimize the impact of misuse of their systems 
        and devices or implement controls to prevent such misuse where applicable.
     </t>
     <t>It is anticipated that smart objects will be deployed with a long (e.g., 5-40 years) life cycle.
        Any security mechanism chosen at the outset may not be "good enough" for the full lifespan of the device.
        Thus, long-lived devices should start with good security and provide a path to deploy
        new security mechanisms over the lifetime of the device.
     </t>
	 <t>Security protocols often rely on random numbers, and offering randomness in embedded devices is challenging. For this reason, it is important to consider the use of hardware-based random number generators during early states of the design process. </t>
     </list> 
  </t>

  <t>A more detailed security discussion can be found in the "Report from 
     the Smart Object Security Workshop" <xref target="RFC7397"/> that was
     held prior to the IETF meeting in Paris, March 2012, and in the report from the
     National Science Foundation's "Cybersecurity Ideas Lab" workshop <xref target="NSF"/>
     that was held in February 2014.
     For example, <xref target="NSF"/> includes, among other recommendations,
     these recommendations specific to the Internet of Things:
     <list style="empty"> 
     <t>Enhance the Security of the Internet of Things by Identifying Enclaves:
        The security challenges posed by the emerging Internet of Things should be
        addressed now, to prepare before it is fully upon us. By identifying specific
        use segments, or "enclaves", Internet of Things infrastructure stakeholders can
        address the security requirements and devise event remediations for that
        enclave.
     </t>
     <t>Create a Framework for Managing Software Updates:
        The Internet of Things will challenge our current channels for distributing
        security updates. An environment must be developed for distributing security
        patches that scales to a world where almost everything is connected to the
        Internet and many "things" are largely unattended.
     </t> 
     </list> 
  </t>

  <t>Finally, we reiterate that use of standards that have gotten wide review can often avoid a number
     of security issues that could otherwise arise.
     Section 3.3 of <xref target="RFC6574"/> reminds us about the IETF 
     work style regarding security: 

     <list style="empty"> 
     <t>In the development of smart object applications, as with any other
        protocol application solution, security has to 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 
     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> 
   
</section>

<section anchor="PrivacyConsiderations" title="Privacy Considerations">

<t>This document mainly focuses on an engineering audience, i.e., those 
  who are designing smart object protocols and architectures. Since there is 
  no value-free design, privacy-related decisions also have to be made, even 
  if they are just implicit in the reuse of certain technologies.
  RFC 6973 <xref target="RFC6973"/> and the threat model in 
  <xref target="CONFIDENTIALITY"/>
  were written as guidance specifically for that 
  audience and are also applicable to the smart object context.</t> 

<t>For those looking at privacy from a deployment point of view, the following 
  additional guidelines are suggested: 

     <list style="hanging"> 

     <t hangText="Transparency:"> Transparency of data collection and processing
     is key to avoid unpleasant surprises for owners and users of smart objects.  
     Users and impacted parties must be put in a position 
     to understand what items of personal data concerning them are collected and
     stored, as well for what purposes they are sought.
     </t>

     <t hangText="Data Collection / Use Limitation:">Smart objects should only store personal 
        data that is adequate, relevant, and not excessive in relation 
        to the purpose(s) for which they are processed.  The use of 
        anonymized data should be preferred wherever possible.
     </t>

     <t hangText="Data Access:">Before deployment starts, it is necessary 
        to consider who can access personal data collected by smart 
        objects and under which conditions.  Appropriate and clear 
        procedures should be established in order to allow data subjects 
        to properly exercise their rights. 
     </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 
        deployed. Robust cryptographic techniques and proper 
        authentication frameworks have to be used to limit the risk of 
        unintended data transfers or unauthorized access.
     </t>
     </list> 
  </t> 
 <t>
 A more detailed treatment of privacy considerations that extend beyond engineering can be found in a publication from the Article 29 Working Party <xref target="WP223"/>. </t>
</section>
    
  </middle>

  <back>

    
    <references title="Informative References"> 
    
<reference anchor='RFC6574' target='http://www.rfc-editor.org/info/rfc6574'>
<front>
<title>Report from the Smart Object Workshop</title>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'>
<organization /></author>
<author initials='J.' surname='Arkko' fullname='J. Arkko'>
<organization /></author>
<date year='2012' month='April' />
</front>
<seriesInfo name='RFC' value='6574' />
</reference>

<reference anchor='RFC6709' target='http://www.rfc-editor.org/info/rfc6709'>
<front>
<title>Design Considerations for Protocol Extensions</title>
<author initials='B.' surname='Carpenter' fullname='B. Carpenter'>
<organization /></author>
<author initials='B.' surname='Aboba' fullname='B. Aboba'>
<organization /></author>
<author initials='S.' surname='Cheshire' fullname='S. Cheshire'>
<organization /></author>
<date year='2012' month='September' />
</front>
<seriesInfo name='RFC' value='6709' />
</reference>
    
<reference anchor='RFC6973'  target='http://www.rfc-editor.org/info/rfc6973'>
<front>
<title>Privacy Considerations for Internet Protocols</title>
<author initials='A.' surname='Cooper' fullname='A. Cooper'>
<organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'>
<organization /></author>
<author initials='B.' surname='Aboba' fullname='B. Aboba'>
<organization /></author>
<author initials='J.' surname='Peterson' fullname='J. Peterson'>
<organization /></author>
<author initials='J.' surname='Morris' fullname='J. Morris'>
<organization /></author>
<author initials='M.' surname='Hansen' fullname='M. Hansen'>
<organization /></author>
<author initials='R.' surname='Smith' fullname='R. Smith'>
<organization /></author>
<date year='2013' month='July' />
</front>
<seriesInfo name='RFC' value='6973' />
</reference>

<reference anchor='RFC1263' target='http://www.rfc-editor.org/info/rfc1263'>
<front>
<title abbrev='TCP Extensions Considered Harmful'>TCP Extensions Considered Harmful</title>
<author initials='S.' surname='O&apos;Malley' fullname='Sean O&apos;Malley'>
<organization>University of Arizona, Department of Computer Sciences</organization>
</author>
<author initials='L.L.' surname='Peterson' fullname='Larry L. Peterson'>
<organization>University of Arizona, Department of Computer Sciences</organization>
</author>
<date year='1991' day='1' month='October' />
</front>
<seriesInfo name='RFC' value='1263' />
</reference>
     
<reference anchor='RFC6272' target='http://www.rfc-editor.org/info/rfc6272'>
<front>
<title>Internet Protocols for the Smart Grid</title>
<author initials='F.' surname='Baker' fullname='F. Baker'>
<organization /></author>
<author initials='D.' surname='Meyer' fullname='D. Meyer'>
<organization /></author>
<date year='2011' month='June' />
</front>
<seriesInfo name='RFC' value='6272' />
</reference>

<reference anchor='RFC1958'  target='http://www.rfc-editor.org/info/rfc1958'>
<front>
<title>Architectural Principles of the Internet</title>
<author initials='B.' surname='Carpenter' fullname='Brian E. Carpenter'>
<organization>CERN, European Laboratory for Particle Physics</organization>
</author>
<date year='1996' month='June' />
</front>
<seriesInfo name='RFC' value='1958' />
</reference>

<reference anchor='RFC4924'  target='http://www.rfc-editor.org/info/rfc4924'>
<front>
<title>Reflections on Internet Transparency</title>
<author initials='B.' surname='Aboba' fullname='B. Aboba'>
<organization /></author>
<author initials='E.' surname='Davies' fullname='E. Davies'>
<organization /></author>
<date year='2007' month='July' />
</front>
<seriesInfo name='RFC' value='4924' />
</reference>
 
<reference anchor='RFC3234' target='http://www.rfc-editor.org/info/rfc3234'>
<front>
<title>Middleboxes: Taxonomy and Issues</title>
<author initials='B.' surname='Carpenter' fullname='B. Carpenter'>
<organization /></author>
<author initials='S.' surname='Brim' fullname='S. Brim'>
<organization /></author>
<date year='2002' month='February' />
</front>
<seriesInfo name='RFC' value='3234' />
</reference>
     
<reference anchor='RFC5218' target='http://www.rfc-editor.org/info/rfc5218'>
<front>
<title>What Makes For a Successful Protocol?</title>
<author initials='D.' surname='Thaler' fullname='D. Thaler'>
<organization /></author>
<author initials='B.' surname='Aboba' fullname='B. Aboba'>
<organization /></author>
<date year='2008' month='July' />
</front>
<seriesInfo name='RFC' value='5218' />
</reference>
    
<reference anchor='RFC3552' target='http://www.rfc-editor.org/info/rfc3552'>
<front>
<title>Guidelines for Writing RFC Text on Security Considerations</title>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'>
<organization /></author>
<author initials='B.' surname='Korver' fullname='B. Korver'>
<organization /></author>
<date year='2003' month='July' />
</front>
<seriesInfo name='BCP' value='72' />
<seriesInfo name='RFC' value='3552' />
</reference>

<reference anchor='RFC4101' target='http://www.rfc-editor.org/info/rfc4101'>
<front>
<title>Writing Protocol Models</title>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'>
<organization /></author>
<author>
<organization>IAB</organization></author>
<date year='2005' month='June' />
</front>
<seriesInfo name='RFC' value='4101' />
</reference>
   
<reference anchor='RFC3724'  target='http://www.rfc-editor.org/info/rfc3724'>
<front>
<title>The Rise of the Middle and the Future of End-to-End: Reflections on the Evolution of the Internet Architecture</title>
<author initials='J.' surname='Kempf' fullname='J. Kempf'>
<organization /></author>
<author initials='R.' surname='Austein' fullname='R. Austein'>
<organization /></author>
<author>
<organization>IAB</organization></author>
<date year='2004' month='March' />
</front>
<seriesInfo name='RFC' value='3724' />
</reference>
      
<reference anchor='RFC6540' target='http://www.rfc-editor.org/info/rfc6540'>
<front>
<title>IPv6 Support Required for All IP-Capable Nodes</title>
<author initials='W.' surname='George' fullname='W. George'>
<organization /></author>
<author initials='C.' surname='Donley' fullname='C. Donley'>
<organization /></author>
<author initials='C.' surname='Liljenstolpe' fullname='C. Liljenstolpe'>
<organization /></author>
<author initials='L.' surname='Howard' fullname='L. Howard'>
<organization /></author>
<date year='2012' month='April' />
</front>
<seriesInfo name='BCP' value='177' />
<seriesInfo name='RFC' value='6540' />
</reference>
       
<reference anchor='RFC6749' target='http://www.rfc-editor.org/info/rfc6749'>
<front>
<title>The OAuth 2.0 Authorization Framework</title>
<author initials='D.' surname='Hardt' fullname='D. Hardt'>
<organization /></author>
<date year='2012' month='October' />
</front>
<seriesInfo name='RFC' value='6749' />
</reference>
	
<reference anchor='RFC3238'  target='http://www.rfc-editor.org/info/rfc3238'>
<front>
<title>IAB Architectural and Policy Considerations for Open Pluggable Edge Services</title>
<author initials='S.' surname='Floyd' fullname='S. Floyd'>
<organization /></author>
<author initials='L.' surname='Daigle' fullname='L. Daigle'>
<organization /></author>
<date year='2002' month='January' />
</front>
<seriesInfo name='RFC' value='3238' />
</reference>

<reference anchor='RFC3444' target='http://www.rfc-editor.org/info/rfc3444'>
<front>
<title>On the Difference between Information Models and Data Models</title>
<author initials='A.' surname='Pras' fullname='A. Pras'>
<organization /></author>
<author initials='J.' surname='Schoenwaelder' fullname='J. Schoenwaelder'>
<organization /></author>
<date year='2003' month='January' />
</front>
<seriesInfo name='RFC' value='3444' />
</reference>
  
<reference anchor='RFC7228' target='http://www.rfc-editor.org/info/rfc7228'>
<front>
<title>Terminology for Constrained-Node Networks</title>
<author initials='C.' surname='Bormann' fullname='C. Bormann'>
<organization /></author>
<author initials='M.' surname='Ersue' fullname='M. Ersue'>
<organization /></author>
<author initials='A.' surname='Keranen' fullname='A. Keranen'>
<organization /></author>
<date year='2014' month='May' />
</front>
<seriesInfo name='RFC' value='7228' />
</reference>

<reference anchor='RFC7252'  target='http://www.rfc-editor.org/info/rfc7252'>
<front>
<title>The Constrained Application Protocol (CoAP)</title>
<author initials='Z.' surname='Shelby' fullname='Z. Shelby'>
<organization /></author>
<author initials='K.' surname='Hartke' fullname='K. Hartke'>
<organization /></author>
<author initials='C.' surname='Bormann' fullname='C. Bormann'>
<organization /></author>
<date year='2014' month='June' />
</front>
<seriesInfo name='RFC' value='7252' />
</reference>
 
<reference anchor='RFC6347' target='http://www.rfc-editor.org/info/rfc6347'>
<front>
<title>Datagram Transport Layer Security Version 1.2</title>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'>
<organization /></author>
<author initials='N.' surname='Modadugu' fullname='N. Modadugu'>
<organization /></author>
<date year='2012' month='January' />
</front>
<seriesInfo name='RFC' value='6347' />
</reference>

<reference anchor='RFC7397' target='http://www.rfc-editor.org/info/rfc7397'>
<front>
<title>Report from the Smart Object Security Workshop</title>
<author initials='J.' surname='Gilger' fullname='J. Gilger'>
<organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'>
<organization /></author>
<date year='2014' month='December' />
</front>
<seriesInfo name='RFC' value='7397' />
</reference>

<!--draft-iab-privsec-confidentiality-threat, Active-->
<reference anchor='CONFIDENTIALITY'>
<front>
<title>Confidentiality in the Face of Pervasive Surveillance: A Threat Model and Problem Statement</title>
<author initials='R' surname='Barnes' fullname='Richard Barnes'>
    <organization />
</author>
<author initials='B' surname='Schneier' fullname='Bruce Schneier'>
    <organization />
</author>
<author initials='C' surname='Jennings' fullname='Cullen Jennings'>
    <organization />
</author>
<author initials='T' surname='Hardie' fullname='Ted Hardie'>
    <organization />
</author>
<author initials='B' surname='Trammell' fullname='Brian Trammell'>
    <organization />
</author>
<author initials='C' surname='Huitema' fullname='Christian Huitema'>
    <organization />
</author>
<author initials='D' surname='Borkmann' fullname='Daniel Borkmann'>
    <organization />
</author>
<date month='December' year='2014' />
</front>
<seriesInfo name='Work in Progress,' value='draft-iab-privsec-confidentiality-threat-01' />
</reference>
		 
<reference anchor="PhysicalAttacks" target='http://link.springer.com/chapter/10.1007%2F11554578_3'>
        <front>
          <title>A Tutorial on Physical Security and Side-Channel Attacks</title>
            <author initials="F." surname="Koeune" fullname="F. Koeune">
              <organization></organization>
            </author>
            <author initials="F.-X." surname="Standaert" fullname="F.-X. Standaert">
               <organization></organization>
            </author>
          <date month="September" year="2005"/>
        </front>
       <seriesInfo name='in Foundations of Security Analysis and Design III: FOSAD 2004/2005 Tutorial Lectures;' value='Lecture Notes in Computer Science, Vol. 3655, pp. 78-108' />
      </reference>
      
    <reference anchor="WP223" target='http://ec.europa.eu/justice/data-protection/article-29/documentation/opinion-recommendation/files/2014/wp223_en.pdf'>
        <front>
          <title>Opinion 8/2014 on the Recent Developments on the Internet of Things</title>
            <author>
              <organization>Article 29 Data Protection Working Party</organization>
            </author>
          <date month="September" year="2014"/>
        </front>
      <seriesInfo name='14/EN,' value='WP 223' />
      </reference>
		 
      <reference anchor="IPoptions" target='http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.123.4251'>
        <front>
          <title>IP options are not an option</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>
       <seriesInfo name='Technical Report' value='UCB/EECS2005-24' />
      </reference>
      
      <reference anchor="TCPextensions"  target='http://conferences.sigcomm.org/imc/2011/docs/p181.pdf'>
        <front>
          <title>Is it Still Possible to Extend TCP?</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="November" year="2011"/>
        </front>
       <seriesInfo name='In Proceedings of the ACM Internet Measurement Conference (IMC),' value='Berlin, Germany' />
      </reference>
      
      <reference anchor="HomeGateway" target='http://eggert.org/papers/2010-imc-hgw-study.pdf'>
        <front>
          <title>An Experimental Study of Home Gateway Characteristics</title>
            <author initials="L." surname="Eggert" fullname="Lars Eggert">
              <organization/>
            </author>
          <date year="2010"/>
        </front>
       <seriesInfo name='In Proceedings of the' value='10th annual Internet Measurement Conference' />
      </reference>

      <reference anchor="Gamma">
        <front>
          <title>Design Patterns: Elements of Reusable Object-Oriented Software</title>
          <author initials="E." surname="Gamma" fullname="Erich Gamma">
              <organization/>
          </author>
          <date year="1995"/>
        </front>
      </reference>

      <reference anchor="NSF" target='http://www.nsf.gov/cise/news/CybersecurityIdeasLab_July2014.pdf'>
        <front>
          <title>Interdisciplinary Pathways towards a More Secure Internet </title>
          <author initials="" surname="" fullname="">
              <organization>National Science Foundation</organization>
          </author>
          <date month="February" year="2014"/>
        </front>
      <seriesInfo name='A report on the NSF-sponsored
                 Cybersecurity Ideas Lab held in' value='Arlington, Virginia' />
      </reference>

      <reference anchor="Tussles" target='http://conferences.sigcomm.org/sigcomm/2002/papers/tussle.html'>
        <front>
          <title>Tussle in Cyberspace: Defining Tomorrow's Internet</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>
        <seriesInfo name='In Proceedings of' value='ACM SIGCOMM' />
      </reference>

    </references>

<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 Mike St. Johns, Jan Holler, Patrick Wetterwald, Atte Lansisalmi, Hannu Flinck, 
     Bernard Aboba, Markku Tuohino, Wes George, Robert Sparks, S. Moonsesamy, Dave Crocker, and Steve Crocker
     in particular for their review comments.
  </t>

</section>
<section title="IAB Members at the Time of Approval">
  <figure>
    <artwork>
Jari Arkko
Mary Barnes
Marc Blanchet
Joel Halpern
Ted Hardie
Joe Hildebrand
Russ Housley
Eliot Lear
Xing Li
Erik Nordmark
Andrew Sullivan
Dave Thaler
Brian Trammell
    </artwork>
  </figure>
</section>



  </back>
</rfc>
