Post on 08-Sep-2014
description
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