Upload
christian-goetz
View
18.398
Download
0
Embed Size (px)
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 =’[email protected]’!
to =‘[email protected]’!
id =’S0001’>!
<req xmlns =’urn:xmpp:iot:sensordata’ seqnr =’1’ momentary =’true’ >!
</iq>
1/3
XMPP flow
<iq type =’result’!
from =’[email protected]’!
to =‘[email protected]’!
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