Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

CoAP Course for m2m and Internet of Things scenarios

33,597 views

Published on

A course on CoRE-CoAP for m2m or IoT.
A section on practical scenarios and another on CoAP basics.
Many reference to other authors

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hi Carlosralli I could not understand Scenario 1: step 4 & 5 section 1.6) -- where should I run the ./coap-server command? Should I run it in my raspberry pi or in my laptop? which [ip] should we provide after ./coap-server -A [ip] & 3412 and what does this 3412 mean?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

CoAP Course for m2m and Internet of Things scenarios

  1. 1. CoAP 6LowPAN & Raspberry Pi M2M Community Cristina Peña Alcega Carlos Ralli Ucendo Telefónica Digital 19.12.2013 (@CrisisP) (@carlosralli)
  2. 2. Index I II DIY Scenarios & Solutions • Intro • Scenario #1: z-wave + REST • Scenario #2: 6LoWPAN + CoAP Behind the scenes: Constrained Application Protocol • Introduction and CoAP Architecture • Messaging Model, Sub-layers, Reliability, Request/Response rules, and • Proxying and Caching • Endpoints and URIs • Discovery • Multicast • Security • Status, advantages and limitations • Available implementations Message Format.
  3. 3. I. DIY Scenarios & Solutions
  4. 4. 01 How it all started… Things (Devices) are getting smarter, from Class-1 to Consumer Electronics. If a Thing is an Internet node, it’s subject of APIzation. REST is the most successful Internet/Web API. CoRE /CoAP So we decided to start ourselves investing some 480€ to play with: - 4 6LowPAN capable Motes (360€), 2 Raspberry PI (120€). - Plus lots of hours of DIY “fun”! M2M Community Telefónica Digital 4
  5. 5. 02 Is CoAP Rocket Science? No, it’s just REST Traditional REST WEB APIs relays on HTTP-TCP-IP CoRE/CoAP = REST APIs over UDP-IP M2M Community Telefónica Digital 5
  6. 6. 03 Scenario1: Building a CoAP (IoT) Gateway M2M Community Telefónica Digital 6
  7. 7. 04 Scenario1: Software Architecture M2M Community Telefónica Digital 7
  8. 8. 05 Scenario1: Step 1 1.1) Install & compile ccoap in your laptop https://github.com/ipflavors/ccoap/tree/master/doc M2M Community Telefónica Digital ? 8
  9. 9. 06 Scenario1: Step 2 1.2) Install Firefox Navigator plus Copper (CU) Plugin https://addons.mozilla.org/en-US/firefox/addon/copper-270430/ M2M Community Telefónica Digital ? 9
  10. 10. 07 Scenario1: Step 3 1.3) Test Firefox Copper with a CoAP server available in the Internet: coap://vs0.inf.ethz.ch:5683/ M2M Community Telefónica Digital 10
  11. 11. 08 Scenario1: Step 3b 1.3b) GET operation (of a long resource: 5x64bytes blocks): coap://vs0.inf.ethz.ch:5683/ M2M Community Telefónica Digital 11
  12. 12. 09 Scenario1: Steps 4 & 5 1.4) Install z-way-server & configure z-wave devices w/ RaspberryPI. pi@raspberrypi:~$ wget -q -O - razberry.z-wave.me/install | sudo bash To test installation: http://[IP_address]:8083 1.5) Install libcoap4.0.1 run server example in RaspberryPI. Download libcoap-4.0.1.tar.gz - http://sourceforge.net/projects/libcoap/ pi@raspberrypi:~$ tar xvzf libcoap-4.0.1.tar.gz pi@raspberrypi:~$ cd libcoap-4.0.1 pi@raspberrypi:~$ ./configure pi@raspberrypi:~$make M2M Community Telefónica Digital 12
  13. 13. 10 Scenario1: Steps 4 & 5 1.6) Run CoAP server example in RaspberryPI. M2M Community Telefónica Digital 13
  14. 14. 11 Scenario1: Step 6 1.6) Test against our RasPI server with Firefox Copper: coap://[2a02:9113:****:1f00:b***:****:****:***f]:5683/ M2M Community Telefónica Digital 14
  15. 15. 12 Scenario1: Step 6b 1.6b) Discover resources of our CoAP-RasPI server with Firefox Copper: coap://[2a02:9113:****:1f00:b***:****:****:***f]:5683/ M2M Community Telefónica Digital 15
  16. 16. 13 Scenario1: Step 6c 1.6c) GET operation (Firefox Copper): coap://[2a02:9113:****:1f00:b***:****:****:***f]:5683/ M2M Community Telefónica Digital 16
  17. 17. 14 Scenario1: Step 6d 1.6d) OBSERVE operation (PUSH Notifications) (Firefox Copper): coap://[2a02:9113:****:1f00:b***:****:****:***f]:5683/ M2M Community Telefónica Digital 17
  18. 18. 15 Scenario1: Step 7 1.7) Modify server example to create CoAP resources based on z-wave dev: - Follow IPSO Alliance Recs: http://www.ipso-alliance.org/wp-content/media/draft-ipso-app-framework-04.pdf M2M Community Telefónica Digital 18
  19. 19. 16 Scenario1: Implementing all this in FI-WARE We are updating some FI-WARE IoT Ges to support this: - “FIGWAY” SW to export CoAP resources too. https://github.com/telefonicaid/fiware-raspberryPI-M2M-Gateway M2M Community Telefónica Digital 19
  20. 20. 17 Scenario1: A nice Project out there WEBIPOI – Exports RasPI GPIO (wired) devices (CoRE & REST) http://code.google.com/p/webiopi/wiki/INTRODUCTION M2M Community Telefónica Digital ? 20
  21. 21. 18 Scenario2: CoAP (6LowPAN) Devices! Two (or more) Contiki-supported motes … http://www.contiki-os.org/hardware.html http://www.advanticsys.com/ http://www.zolertia.com http://www.libelium.com (own Stack / OS) “Nooliberry” -> 6LowPAN RasPI GPIO card Your laptop - MACOSX, Linux, Windows… Install Instant-Contiki VM in your Laptop http://www.contiki-os.org/start.html App coding: - Device: expose REST Resources over CoAP - Client: consume REST Resources (CoAP or HTTP) Web development as usual! Examples: https://github.com/contiki-os/contiki/blob/master/examples/rest-example/coap? M2M Community Telefónica Digital client-server-example.csc 21
  22. 22. 19 Scenario2: How it looks like? M2M Community Telefónica Digital 22
  23. 23. 20 Scenario2: Who’re already on board? “Talking at CES today, Cerf described his home's sensor network, which uses IPv6 radios and the Arch Rock PhyNet smart grid system to track information like light levels, temperature, and humidity. This is important for a wine cellar…” M2M Community Telefónica Digital 23
  24. 24. II. Constrained Application Protocol
  25. 25. 01 CoAP: Constrained Application Protocol Internet Constrained Enviroments    Low-power Lossy, high packet error rates Low thtoughpunt of 10s of kbps Sensor Resources CoAP HTTP Proxy Server HTTP Client CoAP UDP 6LoWPAN 802.15.4     Contiki, Tiny OS, … 8-bit microcontrollers Aprox. 100KB of RAM for code, heap, data… No filesystem CoAP is an application layer protocol that enables web services for even the most constrained devices and networks, while integrating with the web architecture and HTTP. M2M Community Telefónica Digital 25
  26. 26. 02 CoAP: Designed for M2M • CoAP implements the REST architectural style:  can be transparently mapped to HTTP • CoAP goes beyond HTTP providing:      M2M Community Telefónica Digital Very low over-head, avoids the need of IPv6 fragmentation Built-in discovery of services and resources Multicast support Asynchronous messages exchanges Native push notification 26
  27. 27. 02 CoAP: The Web Architecture vs CoAP Architecture The interaction model of CoAP is similar to the client/server model of the Web. However, M2M interactions typically result in a CoAP implementation acting in both client and server roles. M2M Community Telefónica Digital 27
  28. 28. 03 CoAP: Messaging Model • • • • • • • Short fixed-length binary header (4bytes) Messages must fit in a single IP datagram  Default IP: 1280bytes,  6LoWPAN and IEEE802.15.4 127bytes Messages can be confirmable (CON) or non confirmable (NON). Naturally runs over UDP and supports :  multicast IP destination addresses  DTLS security Piggy-backed REST request/response  The response to a CON message is carried in the ACK Request methods: GET, PUT, POST, and DELETE almost as in HTTP. Response methods: 2.xx (success), 4.xx (client error), 5.xx (server error). M2M Community Telefónica Digital 28
  29. 29. 04 CoAP: Sub-layers Source: Matthias Kovatsch M2M Community Telefónica Digital 29
  30. 30. 05 CoAP: Unreliable Transmission • • • Tipically, repeated readings from a sensor If server lacks context to answer the request, sends Reset (RST) Client can send the same mesage several times to ensure it reaches the server M2M Community Telefónica Digital 30
  31. 31. 06 CoAP: Observing resources without reliability Source: Klaus Hartke M2M Community Telefónica Digital 31
  32. 32. 07 CoAP: Reliable Transmission • Normally bounded to non-reliable transport protocols, CoAP implements a lightweight reliability mechanism based on:  Stop&wait retransmisssion for CON  Duplicated detection for CON and NON M2M Community Telefónica Digital 32
  33. 33. 08 CoAP: Observing resources with reliability Source: Klaus Hartke M2M Community Telefónica Digital 33
  34. 34. 09 CoAP: Request/Response Rules M2M Community Telefónica Digital Source: http://www.coapsharp.com 34
  35. 35. 10 CoAP: Message Format Source: Matthias Kovatsch M2M Community Telefónica Digital 35
  36. 36. 11 CoAP: Proxying and Caching • CoAP supports caching     Cacheability determined by response code An option number mask determines if it is a cache key. Max-age option indicates cache lifetime Validity checked using the Etag Option • Caching can be at endpoint or intermediary (proxy). • Proxy can be used to  Improve performance (reduce network load)  Access sleeping nodes  Security reasons • Very easy mapping CoAP (Cross-protocol-proxy)HTTP M2M Community Telefónica Digital 36
  37. 37. 12 CoAP: Proxying and Caching M2M Community Telefónica Digital 37
  38. 38. 13 CoAP: Endpoints and URIs • • • • • A CoAP endpoint is a source or destination of a message. URI representations for resources:  coap-URI = "coap:" "//" <HOST> [ ":" <PORT> ] <PATH> [ "?" <QUERY> ]  coaps-URI = "coaps:" "//" <HOST> [ ":" <PORT> ] <PATH> [ "?" <QUERY> ] HOST can be an IP address or a registered name. PORT where CoAP server is located (default CoAP port: 5683) Example: coap://example.com:436/sensors/temp?min=10     M2M Community Telefónica Digital Host: example.com Port: 436 Path: sensors/temp Query: min=10 38
  39. 39. 14 CoAP: Service and Resource Discovery 1. Discovering the servers:  If unknown, the client has to learn HOST server 2. Discovering the resources  The client queries the well known URI of the server on port 5683  The server returns the list of resources in CoRE Link Format GET /.well-known/core <sensors/temp>;sz=512;title=Temperature Sensor;ct=50, <actuators/jack>;sz=256;title=Hydraulic Jacks;ct=50 3. Both steps can be merged, querying the well known URI of “all 4. CoAP nodes” using multicast address FF0X:0:0:0:0:0:0:C0A7 Resource Directories can be used Related spec: • RFC 5785 defines the a path prefix for "well-known locations“ • RFC 5988 defines the types of web links and a registry for them • RFC 6690 defines a link format for user Web Link in CORE. M2M Community Telefónica Digital 39
  40. 40. 15 CoAP: RESTful Group Communication • CoAP supports making requests to IP multicast groups in NON • • Leisure time CoAP does not support yet the use of multicast with security M2M Community Telefónica Digital 40
  41. 41. 16 CoAP: Security • • • • • • • CoAP is secured using Datagram TLS (RFC6347) over UDP. The endpoint initiates session to the server and, after the DTLS handshake, it can send the 1st CoAP request. All CoAP messages are sent as DTLS “application data”. DTLS adds a limited per-datagram overhead of aprox 13 bytes. Security info (e.g. keys, ACLs) must be provided during the provisioning of the device. The device can be in 1 of 4 security modes:  NoSec: DTLS is disabled. Can be combined with alternative security (e.g. IPSEC)  PreSharedKey: DTLS enabled, preshared keys authenticate peers or groups of peers.  RawPublicKey: DTLS enabled, asymmetric keys without certificate.  Certificate: DTLS enabled, asymmetric keys with x.509 certificate. DTLS is not appropriate to group keying (multicast). M2M Community Telefónica Digital 41
  42. 42. 17 CoAP: Status, Advantages and Limitations • Proposed standard since July, 2013: draft-ietf-core-coap-18. • Advantages:     • Designed for M2M, IoT Easily mapped to HTTP, compatible with Proxy infrastructures. Easy to map legacy protocols to CoAP Extensions: push notifications, discovery and Multicast. Limitations and work in progress:  End to end secure connection required for CoAP/HTTP mapping at a proxy using DTLS/TLS.  Securing multicast communications.  Semantics should be standardized.  Caching of requests should also be allowed M2M Community Telefónica Digital 42
  43. 43. 18 CoAP: available implementations • Implementations       • • Contiki-2.6: Erbium http://www.contiki-os.org/ C: libcoap http://sourceforge.net/projects/libcoap/develop .NET (C#): CoAPSharp http://www.coapsharp.com/ Python: http://sourceforge.net/projects/coapy JAVA: Californium https://github.com/mkovatsc/Californium Firefox JavaScript browser plugin: Copper https://github.com/mkovatsc/Copper, https://addons.mozilla.org/de/firefox/addon/copper-270430/ Proxies:  Squid 3.1.9 with transparent HTTP-CoAP mapping module http://telecom.dei.unipd.it/pages/read/90/  jcoap Proxy http://code.google.com/p/jcoap/  Californium cf-proxy https://github.com/mkovatsc/Californium Updated List: http://en.wikipedia.org/wiki/Constrained_Application_Protocol#Implementati ons M2M Community Telefónica Digital 43

×