How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

57
How do Things talk ? Christian Götz, dc-square 3rd June 2014 IoT Application Protocols

description

Analysts predict that by 2020, 50 billion devices will be connected to the Internet. Together with the fact that more and more of these “things” are connected over cellular networks, new challenges are introduced to the communication of Internet of Things (IoT) and machine-to-machine (M2M) scenarios. There are a lot of protocols which claim to be ideal for these use cases, for example MQTT and CoAP. In this session you will get an overview of commonly used protocols and their underlying architectural styles. We will also look at advantages/disadvantages, use cases and the ecosystem around them.

Transcript of How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Page 1: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

How do Things talk ?

Christian Götz, dc-square

3rd June 2014IoT Application Protocols

Page 2: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London
Page 3: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

GPSGPS

GPSGPS

GPSGPS

GPS

Detected: Traffic Jam!

GPS

GPS

GPS

Page 4: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

...but wait …who’s talking here ??

Page 5: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

CEO & Founder of dc-square

We do IoT communication at scale

I talk and write about IoT and MQTT

I love to build new things

Christian Götz dc-square

goetzchr

Page 6: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

20,000,000,000 devices

250 new devices every second

every person owns ≈ 7 devices

2020

http://blogs.cisco.com/news/cisco-connections-counter/ http://www.cisco.com/web/about/ac79/docs/innov/IoT_IBSG_0411FINAL.pdf

Page 7: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Language of the IoT?

Page 8: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London
Page 9: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Widely Known and Used

Polling

One way communication

Detailed Header

HTTP suitable for IOT ?

Page 10: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Challenges

Page 11: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Scalability

Security

Constrained Devices

Mobile

IoT challenges

“Real time” Data

Page 12: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

HTTP is too verbose

Page 13: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

HTTPCoAP

Page 14: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

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!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+!|Ver| T | TKL | Code | Message ID |!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+!| Token (if any, TKL bytes) ...!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+!| Options (if any) ...!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+!|1 1 1 1 1 1 1 1| Payload (if any) ...!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+!

CoAP no more headers

Page 15: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

CoAP RESTful

coap://host:port/path?param=value !

coap://localhost:5683/temp!

coap://server/temp/critical?above=42

Page 16: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

CoAP

UDP

6LoWPan

HTTP

TCP

IP

CoAP vs HTTP

Page 17: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Client Server

Request

Response

Non-Confirmable Message

1/2

CoAP Message Flow

Page 18: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Client Server

Request

Response

Ack

Ack

Confirmable Message2/2

CoAP Message Flow

Page 19: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Server

Client

http://tools.ietf.org/html/draft-ietf-core-observe-13

Get O

pt O

bser

ve Response

Response

Response

Response

10 ℃ 8 ℃ 7 ℃ 5 ℃ 4 ℃

10 ℃ 8 ℃ 7 ℃ 4 ℃

lost

Response

5 ℃

CoAP Observe

Page 20: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

CoAP RESTful

Discovery of Resources /.well-known/core

Multicast

Content-Negotiation

Proxy CoAP-HTTP and HTTP-CoAP

DTLS

Page 21: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

CoAP Tools & Implementations

Californium and Copper Logo from http://people.inf.ethz.ch/mkovatsc/

Californium & Copper

+ More Implementations

http://en.wikipedia.org/wiki/Constrained_Application_Protocol#Implementations

Page 22: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

XMPP

Page 23: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

developed for chat

based on XML

extensible

decentral / inter-server

TLS and SASL

XMPP at a glance

XMPP

Page 24: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

XMPP

TCP

IP

XMPP stack

Page 25: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

XMPP flow

<iq type =’get’!

from =’[email protected]’!

to =‘[email protected]’!

id =’S0001’>!

<req xmlns =’urn:xmpp:iot:sensordata’ seqnr =’1’ momentary =’true’ >!

</iq>

1/3

Page 26: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

XMPP flow

<iq type =’result’!

from =’[email protected]’!

to =‘[email protected]’!

id =’S0001’>!

<accepted xmlns =’urn:xmpp:iot:sensordata’ seqnr =’1’/ >!

</iq>

2/3

Page 27: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

XMPP flow<message from =’...’ to =’...’> <fields xmlns=’urn:xmpp:iot:sensordata’ seqnr =’1’ done =’true’> <node nodeId =’Device01’> <timestamp value=‘2013-03-07T16:24:30’>"

<numeric name =’Temperature’ momentary =‘true’ automaticReadout =’true’ "

value =’23.4’ unit =’°C’ >"

</timestamp>"

</node></fields></message>

3/3

Page 28: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

From chat to IoT - status quo

Page 29: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Who’s a friend ?

Page 30: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Description...

Description...

Description...

Description...

Source: Wikipedia

implementations

Page 31: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

323 Sensor Data experimental 04/2014324 Provisioning experimental 03/2014325 Control experimental 04/2014326 Concentrators experimental 03/2014347 Discovery experimental 04/2014??? Interoperability not approved??? Pub/Sub IoT not existent

Source: http://xmpp.org/xmpp-protocols/xmpp-extensions/

XMPP extensions

Page 32: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

It’s still XML

Page 33: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

XMPP Tool

Clients !

http://xmpp.org/xmpp-software/libraries/ !

Server !

http://xmpp.org/xmpp-software/servers/

Page 34: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London
Page 35: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London
Page 36: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Subscribe

Page 37: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Publish

Page 38: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Temperature Sensor MQTT-Broker

Laptop

Smart Phone

publish: “21°C“publish: “21°C“

publish: “21°C“

subscribe

subscribe

Page 39: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Topics

lightweight

QoS Levels

Retained / LWT

MQTT over Websockets

Bridging

SSL

MQTT at a glance

Page 40: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

London

BigBen

London Eye

people

temp

people

temp

/

/

MQTT topics 101

/

Page 41: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

London

BigBen

London Eye

people

temp

people

temp

/

/

MQTT topics 101

/

The temperature of Big Ben London/BigBen/temp

Page 42: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

London

BigBen

London Eye

people

temp

people

temp

/

/

MQTT topics 101

All temperature values London/+/temp

/

Page 43: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

London

BigBen

London Eye

people

temp

people

temp

/

/

MQTT topics 101

All from the London Eye London/LondonEye/#

/

Page 44: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

London

BigBen

London Eye

people

temp

people

temp

/

/

MQTT topics 101

All messages #

/

Page 45: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

MQTT Broker

central communication point different implementations additional features

+ othershttp://mqtt.org/wiki/doku.php/brokers

Page 46: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

MQTT for WSN

utilizes UDP

Gateway to MQTT

Topic Preregistration

Sleeping Clients

MQTT at a glance

-SN

Page 47: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Description...

Description...

Description...

MQTT-SN

UDP

6LoWPan

MQTT

TCP

IP

MQTT and MQTT-SN

Page 48: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

REVAMPED REVAMPED

MQTT (with SSL) vs HTTPS

less battery

- Establishing 1st Connection(compensated after 5,5 min)

+ Reconnect

+ Maintaining Connection

+ Receiving Messages

+ Sending Messages

better throughput

+ Less Overhead

+ Persistent Sessions

+ Pub/Sub Architecture

Source: http://stephendnicholas.com/archives/1217

Page 49: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Description...

MQTT real world usage

https://www.facebook.com/notes/facebook-engineering/building-facebook-messenger/

10150259350998920

Page 50: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

MQTT tools

Public Broker http://mqttdashboard.com

Java-Broker with Plugin SDK

Client Lib

Page 51: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

CoAP

HTTP+ Others

Page 52: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

protocol war

Page 53: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

You Mean the One and Unique Solutions

For All Problems !

DOES NOT EXIST?

Page 54: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

coexistence

Page 55: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

How to choose a protocol?

How constrained are the devices?

Reliable/unreliable network?

What is the message rate?

How is the data processed further?

Push or Pull ?

Page 56: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

15 NEW STORES

Description...

How to choose a protocol?

Page 57: How Do ‘Things’ Talk? - An Overview of the IoT/M2M Protocol Landscape at IoT Expo 2014 in London

Thanks! IoT Expo 2014