Internet DRAFT - draft-ikpark-core-shim

draft-ikpark-core-shim



CoRE Working Group                                           Seunghun Oh 
Internet Draft                                             Shimkwon Yoon 
Intended status: Standard Track                             Byungtak Lee 
Expires: August 14, 2014                                            ETRI 
                                                             Ilkyun Park 
                                                                  M2Soft 
                                                              Namhi Kang 
                                              Duksung Women's University
                                                       February 14, 2014 
                                      
           Shim Header for CoAP Transfer over non-TCP/IP Networks 
                       draft-ikpark-core-shim-02.txt 


Abstract 

   This document defines shim header for the transfer of CoAP messages 
   over non-TCP/IP constrained networks. In this environment, IP and UDP 
   or TCP are not used, so that additional shim header as a container 
   for addresses of sender/receiver and the length of CoAP header and 
   its payload is required. 

Status of this Memo 

   This Internet-Draft is submitted to IETF in full conformance with the 
   provisions of BCP 78 and BCP 79. 

   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF).  Note that other groups may also distribute 
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/. 

   Internet-Drafts are draft documents valid for a maximum of six months   
   and may be updated, replaced, or obsoleted by other documents at any   
   time.  It is inappropriate to use Internet-Drafts as reference   
   material or to cite them other than as "work in progress." 

   This Internet-Draft will expire on April 14, 2014. 

Copyright Notice 

   Copyright (c) 2013 IETF Trust and the persons identified as the   
   document authors.  All rights reserved. 

   This document is subject to BCP 78 and the IETF Trust's Legal 
   Provisions Relating to IETF Documents 
   (http://trustee.ietf.org/license-info) in effect on the date of 
   publication of this document.  Please review these documents 
   carefully, as they describe your rights and restrictions with respect 
 
 
 
ikpark, et al.         Expires April 16, 2014                 [Page 1] 

Internet-Draft             CoAP Shim Header               October 2013 
    

   to this document.  Code Components extracted from this document must 
   include Simplified BSD License text as described in Section 4.e of 
   the Trust Legal Provisions and are provided without warranty as 
   described in the Simplified BSD License. 

    








































 
 
ikpark, et al.         Expires April 16, 2014                 [Page 2] 

Internet-Draft             CoAP Shim Header               October 2013 
    

Table of Contents 

    
   1. Introduction ................................................ 4 
   2. Terminology ................................................. 4 
   3. Shim Header ................................................. 5 
      3.1. Header Format .......................................... 5 
      3.2. Distinguishing between CoAP Header and Shim Header...... 6 
      3.3. Example ................................................ 7 
   4. Security Considerations...................................... 9 
   5. IANA Considerations ......................................... 9 
   6. Acknowledgments ............................................ 10 
   7. References ................................................. 10 
      7.1. Normative References .................................. 10 
      7.2. Informative References ................................ 10 
    






























 
 
ikpark, et al.         Expires April 16, 2014                 [Page 3] 

Internet-Draft             CoAP Shim Header               October 2013 
    

    

1. Introduction 

   CoAP [CoAP] is a data transfer protocol over constrained nodes and 
   networks, e.g., 6LoWPAN. This protocol uses TCP/IP suit and some 
   other additional protocols designed for low-power and lossy networks 
   (LLN) like Routing Protocol for LLN (RPL) [RPL]. 

   Nowadays many kinds of sensor are applied in variable areas like 
   industry, building management, security service, environmental 
   monitoring and etc. Many of sensor manufactures are still reluctant 
   to use TCP/IP stack. TCP/IP still seems to be heavy to be applied to 
   the constrained node. Instead, they use various vender-specific 
   transfer protocols over various media like IEEE 802.15.4, RS485, CAN, 
   and RS232 (or UART). This is a big hurdle for CoAP to be prevalent. 

   In order to make it easy to apply CoAP to these non-TCP/IP 
   constrained node, we need to define new very simple header which 
   mimic IP header. But there are two restrictions on applying CoAP to 
   the non-TCP/IP nodes. The first is the lack of address. Peer-to-peer-
   type media like UART and RS232 has no address to identify nodes. 
   RS485 has an integer value as an identifier, but there is no 
   standardized way to present or carry this value over networks. IEEE 
   802.15.4 has network address in their standard, but this address is 
   allocated by a coordinator dynamically. 64-bit-long extended address 
   is too long and sometimes not used. 

   The second restriction is that CoAP does not have PDU size 
   information in its header. CoAP calculates the PDU size with the 
   information from underlying protocol layer like the payload size in 
   IP header.  

   Therefore, in order to apply CoAP to non-TCP/IP nodes, new header for 
   CoAP must be defined to complement these two restrictions. In this 
   document, new Shim Header is specifies as a underlying protocol for 
   CoAP, and an example is added to explain this shim header. 

2. Terminology 

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 
   "OPTIONAL" in this document are to be interpreted as described in 
   [RFC2119] when they appear in ALL CAPS. These words may also appear 
   in this document in lower case as plain English words, absent their 
   normative meanings. 

 
 
ikpark, et al.         Expires April 16, 2014                 [Page 4] 

Internet-Draft             CoAP Shim Header               October 2013 
    

    

   Shim Header 

       In front of a CoAP header, a slim header is inserted instead of 
       IP header and this contains addresses of CoAP sender and receiver 
       and the length of CoAP header and its payload. 

   Local ID 

       A local ID is an address of CoAP sender or receiver, and it is 
       uniqueness in a vender-specific non-TCP/IP constrained network. 
       This ID has a 16-bit-long hexadecimal value, that is IEEE 
       802.15.4 network address compatible, and it can be extensible 
       later. 

   CoAP Proxy 

       A CoAP proxy in this document is a CoAP-to-CoAP proxy from [CoAP]. 
       In additional, this CoAP proxy can read and insert a shim header 
       from/to the front of CoAP header. 

   Additional terminology for CoAP can be found in [CoAP]. 

     

3. Shim Header 

       3.1. Header Format 

    

                         +----+----+---------+ 
                         |Pre |Ver | Length  | 
                         +----+----+---------+ 
                         | CoAP Src Local ID | 
                         +-------------------+ 
                         | CoAP Dst Local ID | 
                         +-------------------+ 
                        Figure 1 Shim Header Format 

   Fig. 1 shows a basic format of shim header. Next is the explanation 
   of each field in the header. 

       * Pre: it is abbreviation of Preamble, and a 4-bit-long field, 
             and has a meaning of the start of shim header. '0xa' is 
             used currently. 
 
 
ikpark, et al.         Expires April 16, 2014                 [Page 5] 

Internet-Draft             CoAP Shim Header               October 2013 
    

       * Ver: it is abbreviation of Version, and also a 4-bit-long field. 
             Currently the version number is '1'. 

       * Length: it is the length of CoAP header and its payload 
             followed by the shim header. This has a value between 1 
             and 255. 

       * CoAP Source Local ID, CoAP Destination Local ID: are the local 
             IDs of the sender and receiver of its CoAP message. Each 
             field has 16-bit field. 

   Fig. 2 shows the extended format of shim header. This format is used 
   when the length of CoAP header and its payload is larger than 255. In 
   order to have an extended length field, the value of Length field is 
   set to '0', which means the next field is not CoAP source ID, but 16-
   bit extended length field. This field can have a range of value from 
   0 to 65535. 

    

                         +----+----+---------+ 
                         |Pre |Ver |  0x00   | 
                         +----+----+---------+ 
                         |    Ext. Length    | 
                         +-------------------+ 
                         | CoAP Dst Local ID | 
                         +-------------------+ 
                         | CoAP Dst Local ID | 
                         +-------------------+ 
              Figure 2 Shim Header Format with Extended Length 

    

       3.2. Distinguishing between CoAP Header and Shim Header 

   According to the type of constrained nodes, Shim header can be 
   hardcoded, or not be involved in the CoAP node implementation. But at 
   the following cases, CoAP and shim header must be distinguished when 
   a packet receiver of a node meets a start point of some header. 

       * The CoAP receiver has multiple heterogeneous media, and is not 
        able to identify the received interface among them. And some 
        media use shim header on their interfaces and the others are 
        not. 

       * The CoAP receiver receives CoAP messages from two or more other 
        CoAP nodes. 
 
 
ikpark, et al.         Expires April 16, 2014                 [Page 6] 

Internet-Draft             CoAP Shim Header               October 2013 
    

   As a result, the start point of shim header must be differentiated 
   from it of CoAP header. According to the CoAP draft, CoAP header 
   starts with version and message type, which has a range of values 
   from 0x04 to 0x07. But in the case of shim header, it starts with 
   preamble field, and its value is '0xa' to identify shim header 
   against COAP header. 

       3.3. Example 

   As shown in [CoAP], the first example in Appendix A illustrates a 
   basic confirmable CoAP request and response in piggy-backed manner. 
   In this section, we add shim header to this example. In this case, 
   the client and the server are connected via non-TCP/IP. The client 
   can be a data collector node or a proxy node. The server may be a 
   temperature sensor. In this example, we assume that IDs of the client 
   and the server are 0x0000, and 0x0001 respectively.   






























 
 
ikpark, et al.         Expires April 16, 2014                 [Page 7] 

Internet-Draft             CoAP Shim Header               October 2013 
    

    

    Client   Server 
   (0x0000) (0x0001) 
         |      | 
         |      |       Shim: Length=16, Src=0x0000, Dst=0x0001 
         +----->|     Header: GET (T=CON, Code=0.01, MID=0x7d34) 
         | GET  |   Uri-Path: "temperature" 
         |      | 
         |      |       Shim: Length=11, Src=0x0001, Dst=0x0000 
         |<-----+     Header: 2.05 Content (T=ACK, Code=2.05, 
         |      |                           MID=0x7d34) 
         | 2.05 |    Payload: "22.3 C" 
         |      | 
    
    
       0                   1                   2                   3 
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      |  0xa  |   1   |   Length=16   |       Source ID=0x0000        | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      |     Destination ID=0x0001     | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      | 1 | 0 |   0   |     GET=1     |          MID=0x7d34           | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      |  11   |  11   |      "temperature" (11 B) ... 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    
       0                   1                   2                   3 
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      |  0xa  |   1   |   Length=11   |       Source ID=0x0001        | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      |     Destination ID=0x0000     | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      | 1 | 2 |   0   |    2.05=69    |          MID=0x7d34           | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      |1 1 1 1 1 1 1 1|      "22.3 C" (6 B) ... 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
                          
                   Figure 3 Message flow and Shim header 

    




 
 
ikpark, et al.         Expires April 16, 2014                 [Page 8] 

Internet-Draft             CoAP Shim Header               October 2013 
    

4. Security Considerations 

   The shim header for the transfer of CoAP messages is not intended to 
   use TCP/IP protocol suits. Fundamental motivation of the approach is 
   that lots of things (i.e. sensors and actuators) used in current 
   operation for several service domain as well as to be used as nodes 
   connected with Internet to build an IoT network frequently utilize 
   vender-specific protocols instead of TCP/IP protocols. Therefore, 
   several TCP/IP based security mechanisms cannot be used directly for 
   the approach in this draft. These are IKEv2, IPSec, DTLS, HIP and 
   others considered in [SecCon]. In particular, security binding to 
   DTLS, which is one of main features of CoAP, cannot work in a service 
   domain using shim header.  

   Instead, vendor specific secure protocols can be applied. Several 
   security protocols that can be standard solutions (e.g. security 
   architecture for ZigBee or EAP for IEEE 802.15.4) or proprietary 
   solutions have been proposed for several transmission media. Also, 
   development of secure scheme running in application layer can be an 
   alternative solution. 

   To use shim header in IoT, this draft considers heterogeneous 
   networks using different protocols suited for their transmission 
   media. A proxy box is required for the scenario. A CoAP-Shim proxy 
   supports protocol translation for allowing a node used shim header to 
   communicate with CoAP enabled nodes.  

   In case of using a proxy, end to end security and privacy are major 
   concerns from the aspect of security. If the proxy is infected or 
   spoofed, all messages translated by the proxy are simply eavesdropped, 
   modified, replayed, selectively forwarded and/or falsely delivered. 
   These attacks can subsequently lead to more serious threats. Several 
   vulnerabilities and possible threats to the CoAP have been well 
   described in [CoAP] and [SecCon]. Especially, section 11.2 of [CoAP] 
   presents security issues introduced by using proxy. In addition, 
   availability of proxy must be guaranteed even though computing power 
   and memory space are better than those of resource constrained nodes 
   in IoT. It is naturally obvious strategy that an attacker sends 
   flooded false packets to a proxy, thereby lunching denial-of-service 
   attacks since a death of proxy results in death of network used shim 
   header. 

    

5. IANA Considerations 

   (TBD) 
 
 
ikpark, et al.         Expires April 16, 2014                 [Page 9] 

Internet-Draft             CoAP Shim Header               October 2013 
    

    

6. Acknowledgments 

   (TBD) 

    

7. References 

       7.1. Normative References 

   [CoAP] Z. Shelby, K. Hartke, C. Bormann, "Constrained Application 
             Protocol (CoAP)", draft-ietf-core-coap-18, June 28, 2013. 

   [RFC6550] T. Winter, P. Thubert, A. Brandt, J. Hui, R. Kelsey, P. 
             Levis, K. Pister, R. Struik, JP. Vasseur, and R. Alexander, 
             "RPL: IPv6 Routing Protocol for Low-Power and Lossy 
             Networks", RFC 6550, March 2012. 

   [RFC4944] G. Montenegro, N. Kushalnagar, J. Hui, and D. Culler, 
             "Transmission of IPv6 Packets over IEEE 802.15.4 Networks", 
             RFC 4944, September 2007. 

    

       7.2. Informative References 

   [RFC2119] S. Brander, "Key words for use in RFCs to Indicate 
             Requirement Levels", BCP 14, RFC 2119, March 1997. 

   [IEEE 802.15.4] IEEE Computer Society, "IEEE STd. 802.15.4-2003", 
             October 2003. 

   [SecCon] O. Garcia-Morchon, S. Kumar, S. Keoh, R. Hummen, R. Struik, 
             "Security Considerations in the IP-based Internet of 
             Things", draft-garcia-core-security-06, September 11, 2013. 

    







 
 
ikpark, et al.         Expires April 16, 2014                [Page 10] 

Internet-Draft             CoAP Shim Header               October 2013 
    

Author's Addresses 
  
   Seung-Hun Oh 
   ETRI 
   1000-6 Oryong-dong, Buk-gu, Gwangju, 500-480, 
   Korea  
   Phone: +82-62-970-6655 
   Email: osh93@etri.re.kr 

   Shimkwon Yoon 
   ETRI 
   1000-6 Oryong-dong, Buk-gu, Gwangju, 500-480, 
   Korea  
   Phone: +82-62-970-6969 
   Email: yoonsk@etri.re.kr 
 
   Byung-Tak Lee 
   ETRI 
   1000-6 Oryong-dong, Buk-gu, Gwangju, 500-480, 
   Korea  
   Phone: +82-62-970-6624 
   Email: bytelee@etri.re.kr 

   Ilkyun Park 
   M2Soft 
   27 Seongsuiro7gil, Seongdong-gu, Seoul, 133-827, 
   Korea  
   Phone: +82-2-2188-8558 
   Email: ikpark@m2soft.co.kr 
    
   Namhi Kang  
   Duksung Women's University  
   419 Sangmoon-dong, Dobong-gu, Seoul, 132-714 
   Korea   
   Email: kang@duksung.ac.kr  
   URI:  http://www.duksung.ac.kr 










 
 
ikpark, et al.         Expires April 16, 2014                [Page 11]