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

  • View
    18.400

  • Download
    0

  • Category

    Internet

Preview:

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.

Citation preview

How do Things talk ?

Christian Götz, dc-square

3rd June 2014IoT Application Protocols

GPSGPS

GPSGPS

GPSGPS

GPS

Detected: Traffic Jam!

GPS

GPS

GPS

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

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

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

Language of the IoT?

Widely Known and Used

Polling

One way communication

Detailed Header

HTTP suitable for IOT ?

Challenges

Scalability

Security

Constrained Devices

Mobile

IoT challenges

“Real time” Data

HTTP is too verbose

HTTPCoAP

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

CoAP RESTful

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

coap://localhost:5683/temp!

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

CoAP

UDP

6LoWPan

HTTP

TCP

IP

CoAP vs HTTP

Client Server

Request

Response

Non-Confirmable Message

1/2

CoAP Message Flow

Client Server

Request

Response

Ack

Ack

Confirmable Message2/2

CoAP Message Flow

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

CoAP RESTful

Discovery of Resources /.well-known/core

Multicast

Content-Negotiation

Proxy CoAP-HTTP and HTTP-CoAP

DTLS

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

XMPP

developed for chat

based on XML

extensible

decentral / inter-server

TLS and SASL

XMPP at a glance

XMPP

XMPP

TCP

IP

XMPP stack

XMPP flow

<iq type =’get’!

from =’client@jax.de’!

to =‘tempsensor@jax.de’!

id =’S0001’>!

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

</iq>

1/3

XMPP flow

<iq type =’result’!

from =’client@jax.de’!

to =‘tempsensor@jax.de’!

id =’S0001’>!

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

</iq>

2/3

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

From chat to IoT - status quo

Who’s a friend ?

Description...

Description...

Description...

Description...

Source: Wikipedia

implementations

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

It’s still XML

XMPP Tool

Clients !

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

Server !

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

Subscribe

Publish

Temperature Sensor MQTT-Broker

Laptop

Smart Phone

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

publish: “21°C“

subscribe

subscribe

Topics

lightweight

QoS Levels

Retained / LWT

MQTT over Websockets

Bridging

SSL

MQTT at a glance

London

BigBen

London Eye

people

temp

people

temp

/

/

MQTT topics 101

/

London

BigBen

London Eye

people

temp

people

temp

/

/

MQTT topics 101

/

The temperature of Big Ben London/BigBen/temp

London

BigBen

London Eye

people

temp

people

temp

/

/

MQTT topics 101

All temperature values London/+/temp

/

London

BigBen

London Eye

people

temp

people

temp

/

/

MQTT topics 101

All from the London Eye London/LondonEye/#

/

London

BigBen

London Eye

people

temp

people

temp

/

/

MQTT topics 101

All messages #

/

MQTT Broker

central communication point different implementations additional features

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

MQTT for WSN

utilizes UDP

Gateway to MQTT

Topic Preregistration

Sleeping Clients

MQTT at a glance

-SN

Description...

Description...

Description...

MQTT-SN

UDP

6LoWPan

MQTT

TCP

IP

MQTT and MQTT-SN

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

Description...

MQTT real world usage

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

10150259350998920

MQTT tools

Public Broker http://mqttdashboard.com

Java-Broker with Plugin SDK

Client Lib

CoAP

HTTP+ Others

protocol war

You Mean the One and Unique Solutions

For All Problems !

DOES NOT EXIST?

coexistence

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 ?

15 NEW STORES

Description...

How to choose a protocol?

Thanks! IoT Expo 2014