NDN, CoAP, and MQTT: A Comparative Measurement Study in the IoT ACM ICN 2018, Boston Cenk Gündoğan 1 Peter Kietzmann 1 Martine Lenders 2 Hauke Petersen 2 Thomas C. Schmidt 1 Matthias Wählisch 2 1 HAW Hamburg 2 Freie Universität Berlin
CoAP Request–response protocol on UDP IETF solution for constrained IoT ICN Promising candidate for future IoT Intensifying attention since 2014 MQTT Publish–subscribe protocol on TCP Constrained IoT: MQTT-SN on UDP Common IoT Communication ▶ Sensors and actuators connect to clouds ▶ Today mainly based on MQTT Cloud report control Sensor nodes 2 / 56
CoAP Request–response protocol on UDP IETF solution for constrained IoT ICN Promising candidate for future IoT Intensifying attention since 2014 Common IoT Communication ▶ Sensors and actuators connect to clouds ▶ Today mainly based on MQTT Cloud ▶ MQTT ▶ Publish–subscribe protocol on TCP ▶ Constrained IoT: MQTT-SN on UDP report control Sensor nodes 3 / 56
ICN Promising candidate for future IoT Intensifying attention since 2014 Common IoT Communication ▶ Sensors and actuators connect to clouds ▶ Today mainly based on MQTT Cloud ▶ MQTT ▶ Publish–subscribe protocol on TCP ▶ Constrained IoT: MQTT-SN on UDP ▶ CoAP ▶ Request–response protocol on UDP ▶ IETF solution for constrained IoT report control Sensor nodes 4 / 56
Common IoT Communication ▶ Sensors and actuators connect to clouds ▶ Today mainly based on MQTT Cloud ▶ MQTT ▶ Publish–subscribe protocol on TCP ▶ Constrained IoT: MQTT-SN on UDP ▶ CoAP ▶ Request–response protocol on UDP ▶ IETF solution for constrained IoT report control ▶ ICN ▶ Promising candidate for future IoT Sensor nodes ▶ Intensifying attention since 2014 5 / 56
Research Question How do these protocols perform and which is most appropriate for the IoT? 6 / 56
Outline Protocol Overview Metrics & Experiment Setup Evaluation Single-hop: Push vs. Pull Protocols Multi-hop: Reliability and Protocol Performance Conclusion & Outlook 7 / 56
PUT /temp 21 C 2.04 Changed PUT (c) PUT /temp 21 C GET /temp 2.05 Content 21 C PUT /temp 21 C GET /temp [OBS] 2.04 Changed GET (c) 2.05 Content 21 C GET /temp . . . 2.05 Content 22 C CoAP GET GET /temp 2.05 Content 21 ◦ C 8 / 56
PUT /temp 21 C 2.04 Changed PUT (c) PUT /temp 21 C PUT /temp 21 C GET /temp [OBS] 2.04 Changed 2.05 Content 21 C . . . 2.05 Content 22 C GET /temp 2.05 Content 21 C CoAP GET GET /temp 2.05 Content 21 ◦ C GET (c) GET /temp X 9 / 56
PUT /temp 21 C 2.04 Changed PUT (c) PUT /temp 21 C PUT /temp 21 C GET /temp [OBS] 2.04 Changed 2.05 Content 21 C . . . 2.05 Content 22 C GET /temp 2.05 Content 21 C CoAP GET GET /temp 2.05 Content 21 ◦ C GET (c) GET /temp X 2.05 Content 21 ◦ C 10 / 56
PUT /temp 21 C 2.04 Changed PUT (c) PUT /temp 21 C PUT /temp 21 C GET /temp [OBS] 2.04 Changed 2.05 Content 21 C . . . 2.05 Content 22 C CoAP GET GET /temp 2.05 Content 21 ◦ C GET (c) GET /temp X 2.05 Content 21 ◦ C GET /temp 2.05 Content 21 ◦ C 11 / 56
PUT /temp 21 C 2.04 Changed GET /temp [OBS] PUT (c) 2.05 Content 21 C PUT /temp 21 C . . . 2.05 Content 22 C CoAP GET PUT GET /temp PUT /temp 21 ◦ C 2.05 Content 21 ◦ C 2.04 Changed GET (c) GET /temp X 2.05 Content 21 ◦ C GET /temp 2.05 Content 21 ◦ C 12 / 56
GET /temp [OBS] 2.05 Content 21 C . . . 2.05 Content 22 C PUT /temp 21 C 2.04 Changed CoAP GET PUT GET /temp PUT /temp 21 ◦ C 2.05 Content 21 ◦ C 2.04 Changed GET (c) PUT (c) GET /temp PUT /temp 21 ◦ C X X 2.05 Content 21 ◦ C GET /temp 2.05 Content 21 ◦ C 13 / 56
GET /temp [OBS] 2.05 Content 21 C . . . 2.05 Content 22 C PUT /temp 21 C 2.04 Changed CoAP GET PUT GET /temp PUT /temp 21 ◦ C 2.05 Content 21 ◦ C 2.04 Changed GET (c) PUT (c) GET /temp PUT /temp 21 ◦ C X X 2.05 Content 21 ◦ C 2.04 Changed GET /temp 2.05 Content 21 ◦ C 14 / 56
GET /temp [OBS] 2.05 Content 21 C . . . 2.05 Content 22 C CoAP GET PUT GET /temp PUT /temp 21 ◦ C 2.05 Content 21 ◦ C 2.04 Changed GET (c) PUT (c) GET /temp PUT /temp 21 ◦ C X X 2.05 Content 21 ◦ C 2.04 Changed GET /temp PUT /temp 21 ◦ C 2.05 Content 21 ◦ C 2.04 Changed 15 / 56
CoAP GET PUT OBS GET /temp PUT /temp 21 ◦ C GET /temp [OBS] 2.05 Content 21 ◦ C 2.04 Changed GET (c) PUT (c) 2.05 Content 21 ◦ C GET /temp PUT /temp 21 ◦ C . . X . X 2.05 Content 21 ◦ C 2.04 Changed 2.05 Content 22 ◦ C GET /temp PUT /temp 21 ◦ C 2.05 Content 21 ◦ C 2.04 Changed 16 / 56
Q0 PUBLISH topic id 21 C Q1 PUBLISH topic id 21 C PUBLISH topic id 21 C PUBACK MQTT-SN CONNECT CONNACK REGISTER /temp REGACK topic id SUBSCRIBE /temp SUBACK 17 / 56
Q1 PUBLISH topic id 21 C PUBLISH topic id 21 C PUBACK MQTT-SN Q0 CONNECT PUBLISH topic id 21 ◦ C CONNACK REGISTER /temp REGACK topic id SUBSCRIBE /temp SUBACK 18 / 56
PUBLISH topic id 21 C PUBACK MQTT-SN Q0 CONNECT PUBLISH topic id 21 ◦ C CONNACK REGISTER /temp Q1 PUBLISH topic id 21 ◦ C X REGACK topic id SUBSCRIBE /temp SUBACK 19 / 56
PUBLISH topic id 21 C PUBACK MQTT-SN Q0 CONNECT PUBLISH topic id 21 ◦ C CONNACK REGISTER /temp Q1 PUBLISH topic id 21 ◦ C REGACK topic id X PUBACK SUBSCRIBE /temp SUBACK 20 / 56
MQTT-SN Q0 CONNECT PUBLISH topic id 21 ◦ C CONNACK REGISTER /temp Q1 PUBLISH topic id 21 ◦ C REGACK topic id X PUBACK SUBSCRIBE /temp PUBLISH topic id 21 ◦ C SUBACK PUBACK 21 / 56
Interest /temp/ 21 C NAM ACK ACK ACK Data /temp/ 21 C [ACK] Interest /temp Interest /temp/ 21 C Interest /temp NAM Data /temp 21 C Interest /temp Interest /temp/ 21 C Interest /temp ACK ACK ACK Data /temp 21 C Data /temp/ 21 C [ACK] Data /temp 21 C ICN NDN Interest /temp Data /temp 21 ◦ C 22 / 56
Interest /temp/ 21 C NAM ACK ACK ACK Data /temp/ 21 C [ACK] Interest /temp/ 21 C Interest /temp NAM Data /temp 21 C Interest /temp Interest /temp/ 21 C Interest /temp ACK ACK ACK Data /temp 21 C Data /temp/ 21 C [ACK] Data /temp 21 C ICN NDN Interest /temp Data /temp 21 ◦ C Interest /temp X 23 / 56
Interest /temp/ 21 C NAM ACK ACK ACK Data /temp/ 21 C [ACK] Interest /temp/ 21 C Interest /temp NAM Data /temp 21 C Interest /temp Interest /temp/ 21 C Interest /temp ACK ACK ACK Data /temp 21 C Data /temp/ 21 C [ACK] Data /temp 21 C ICN NDN Interest /temp Data /temp 21 ◦ C Interest /temp X Data /temp 21 ◦ C 24 / 56
Interest /temp/ 21 C NAM ACK ACK ACK Data /temp/ 21 C [ACK] Interest /temp/ 21 C Interest /temp NAM Data /temp 21 C Interest /temp/ 21 C Interest /temp ACK ACK ACK Data /temp/ 21 C [ACK] Data /temp 21 C ICN NDN Interest /temp Data /temp 21 ◦ C Interest /temp X Data /temp 21 ◦ C Interest /temp Data /temp 21 ◦ C 25 / 56
NAM Interest /temp/ 21 C Interest /temp NAM Data /temp 21 C Interest /temp/ 21 C Interest /temp ACK ACK ACK Data /temp/ 21 C [ACK] Data /temp 21 C ICN NDN I-Not Interest /temp Interest /temp/ 21 ◦ C ACK ACK ACK Data /temp 21 ◦ C Data /temp/ 21 ◦ C [ACK] Interest /temp X Data /temp 21 ◦ C Interest /temp Data /temp 21 ◦ C 26 / 56
NAM Interest /temp NAM Data /temp 21 C Interest /temp/ 21 C Interest /temp ACK ACK ACK Data /temp/ 21 C [ACK] Data /temp 21 C ICN NDN I-Not Interest /temp Interest /temp/ 21 ◦ C ACK ACK ACK Data /temp 21 ◦ C Data /temp/ 21 ◦ C [ACK] Interest /temp Interest /temp/ 21 ◦ C X X Data /temp 21 ◦ C Interest /temp Data /temp 21 ◦ C 27 / 56
NAM Interest /temp NAM Data /temp 21 C Interest /temp/ 21 C Interest /temp ACK ACK ACK Data /temp/ 21 C [ACK] Data /temp 21 C ICN NDN I-Not Interest /temp Interest /temp/ 21 ◦ C ACK ACK ACK Data /temp 21 ◦ C Data /temp/ 21 ◦ C [ACK] Interest /temp Interest /temp/ 21 ◦ C X X ACK ACK Data /temp 21 ◦ C Data /temp/ 21 ◦ C [ACK] Interest /temp Data /temp 21 ◦ C 28 / 56
NAM Interest /temp NAM Data /temp 21 C Interest /temp Data /temp 21 C ICN NDN I-Not Interest /temp Interest /temp/ 21 ◦ C ACK ACK ACK Data /temp 21 ◦ C Data /temp/ 21 ◦ C [ACK] Interest /temp Interest /temp/ 21 ◦ C X X ACK ACK Data /temp 21 ◦ C Data /temp/ 21 ◦ C [ACK] Interest /temp Interest /temp/ 21 ◦ C ACK ACK ACK Data /temp 21 ◦ C Data /temp/ 21 ◦ C [ACK] 29 / 56
Interest /temp NAM Data /temp 21 C Interest /temp Data /temp 21 C ICN NDN I-Not HoPP Interest /temp Interest /temp/ 21 ◦ C NAM ACK ACK ACK Data /temp 21 ◦ C Data /temp/ 21 ◦ C [ACK] Interest /temp Interest /temp/ 21 ◦ C X X ACK ACK Data /temp 21 ◦ C Data /temp/ 21 ◦ C [ACK] Interest /temp Interest /temp/ 21 ◦ C ACK ACK ACK Data /temp 21 ◦ C Data /temp/ 21 ◦ C [ACK] 30 / 56
Interest /temp Data /temp 21 C ICN NDN I-Not HoPP Interest /temp Interest /temp/ 21 ◦ C NAM ACK ACK ACK Data /temp 21 ◦ C Data /temp/ 21 ◦ C [ACK] Interest /temp Interest /temp/ 21 ◦ C Interest /temp NAM X X ACK ACK Data /temp 21 ◦ C Data /temp/ 21 ◦ C [ACK] Data /temp 21 ◦ C Interest /temp Interest /temp/ 21 ◦ C ACK ACK ACK Data /temp 21 ◦ C Data /temp/ 21 ◦ C [ACK] 31 / 56
Recommend
More recommend