The document discusses several protocols for Internet of Things (IoT) communication including CoAP, HTTP, XMPP, and MQTT. It provides overviews of each protocol, including key features such as message formats, flows, implementations, and example usage scenarios. While each protocol has advantages for different IoT applications, the document concludes that there is no single solution and protocols need to coexist based on factors like device constraints, network reliability, data rates, and processing needs.
5. 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
6. 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
20. CoAP RESTful
Discovery of Resources /.well-known/core
Multicast
Content-Negotiation
Proxy CoAP-HTTP and HTTP-CoAP
DTLS
21. 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
25. 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
26. 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
27. 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
55. 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 ?