Transcript
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