Hallo, Habr-Leute! beginnt im OTUS bereits im Oktober. Momentan sind die Anmeldungen für den Kurs geöffnet, weshalb wir weiterhin nützliche Materialien mit Ihnen teilen.

Das Internet der Dinge (IoT, Internet of Things) wird auf der bestehenden Netzwerk-Infrastruktur, den Technologien und Protokollen basieren, die derzeit in Häusern/Büros und im Internet verwendet werden, und viele weitere Möglichkeiten bieten.
Ziel dieses Leitfadens ist es, einen kurzen Überblick über Netzwerk- und Anwendungsprotokolle für IoT zu geben.
Hinweis: Sie sollten Kenntnisse über .
IoT-Netzwerke
Das IoT wird in bestehenden TCP/IP-Netzwerken funktionieren.
TCP/IP verwendet ein vierstufiges Modell mit spezifischen Protokollen auf jeder Ebene. Siehe (Verständnis des vierstufigen TCP/IP-Modells).
Im folgenden Diagramm werden die derzeit verwendeten Protokolle und die wahrscheinlich für IoT verwendeten Protokolle verglichen.

Anmerkungen zum Diagramm:
Die Schriftgröße zeigt die Verbreitung des Protokolls an. Zum Beispiel ist IPv4 links größer, da es im modernen Internet viel populärer ist. Rechts ist es jedoch kleiner, da erwartet wird, dass IPv6 im IoT beliebter sein wird.
Es sind nicht alle Protokolle dargestellt.
Die meisten Änderungen kümmern sich um die Datenlink- (Ebenen 1 und 2) und die Anwendungsebenen (Ebene 4).
Die Netzwerk- und Transportschichten werden wahrscheinlich unverändert bleiben.
Protokolle der Datenlink-Schicht
Auf der Datenlink-Schicht müssen Sie Geräte miteinander verbinden. Diese können sowohl nah beieinander, wie in lokalen Netzwerken, als auch weit voneinander entfernt, in städtischen (metropolitan area networks) und globalen Netzwerken (wide area networks), sein.
Derzeit werden auf dieser Ebene in Haushalts- und Büronetzwerken (LAN) Ethernet und Wi-Fi eingesetzt, und in mobilen (WAN) -Netzen 3G/4G. Viele IoT-Geräte sind jedoch energieeffizient, zum Beispiel Sensoren, und werden nur mit Batterien betrieben. In diesen Fällen ist Ethernet ungeeignet, aber man kann low powered Wi-Fi und low powered Bluetooth verwenden.
Obwohl für die Verbindung dieser Geräte nach wie vor bestehende drahtlose Technologien (Wi-Fi, Bluetooth, 3G/4G) verwendet werden, sollte auch auf neue Technologien geachtet werden, die speziell für IoT-Anwendungen entwickelt wurden und wahrscheinlich an Popularität gewinnen werden.
Zu diesen gehören:
BLE – Bluetooth Low Energy
LoRaWAN – Long Range WAN
SigFox
LTE-M
Genauer beschrieben werden sie im Artikel (Überblick über drahtlose IoT-Technologien).
Netzwerkschicht
In der Netzwerkschicht (Networking) wird langfristig das Protokoll dominieren . Es ist unwahrscheinlich, dass IPv4 verwendet wird, aber es könnte in den frühen Phasen eine bestimmte Rolle spielen. Die meisten IoT-Geräte für Zuhause, wie intelligente Glühbirnen, nutzen derzeit IPv4.
Transportschicht
In der Transportschicht (Transport) dominieren TCP im Internet und im Web. Es wird sowohl in HTTP als auch in vielen anderen beliebten Internetprotokollen (SMTP, POP3, IMAP4 usw.) verwendet.
MQTT, das ich als eines der Hauptprotokolle der Anwendungsebene für Nachrichtenübertragung erwarte, verwendet derzeit TCP.
Ich gehe jedoch davon aus, dass in Zukunft aufgrund geringerer Overhead-Kosten UDP populärer für IoT werden wird. Wahrscheinlich wird sich , das über UDP läuft, weiter verbreiten. Siehe den Artikel über den Vergleich .
Anwendungsebene und Nachrichtenprotokolle
Wichtige Merkmale für IoT-Protokolle:
Geschwindigkeit – die Menge an übertragenen Daten pro Sekunde.
Latenz – die Zeit, die für die Übertragung einer Nachricht benötigt wird.
Energieverbrauch.
Sicherheit.
Verfügbarkeit von Softwaretools.
Derzeit werden auf dieser Ebene aktiv zwei Hauptprotokolle verwendet: HTTP und MQTT.
HTTP ist wahrscheinlich das bekannteste Protokoll auf dieser Ebene, das die Grundlage des Webs (WWW) bildet. Es wird nach wie vor eine wichtige Rolle für IoT spielen, da es für REST-APIs – den Hauptmechanismus für die Interaktion von Webanwendungen und -diensten – verwendet wird. Aufgrund des hohen Overheads wird HTTP jedoch wahrscheinlich nicht das Hauptprotokoll für IoT werden, obwohl es weiterhin weit verbreitet im Internet verwendet wird.
MQTT (Message Queuing Telemetry Transport) hat sich aufgrund seiner Leichtigkeit und Benutzerfreundlichkeit als Hauptprotokoll für die Nachrichtenübertragung in IoT durchgesetzt. Siehe den Artikel (Einführung in MQTT für Anfänger).
Vergleich von HTTP und MQTT für IoT
MQTT wird schnell zum De-facto-Standard für IoT-Anwendungen. Dies geschieht aufgrund seiner Leichtigkeit und Geschwindigkeit im Vergleich zu HTTP und weil es ein „eins zu vielen“-Protokoll und nicht ein „eins zu eins“-Protokoll (wie HTTP) ist.
Viele moderne Webanwendungen würden gerne MQTT anstelle von HTTP nutzen, sofern es zum Zeitpunkt ihrer Entwicklung verfügbar gewesen wäre.
Ein gutes Beispiel ist die Übermittlung von Informationen an viele Kunden, z. B. zu Ankünften und Abfahrten von Zügen / Bussen / Flugzeugen. In diesem Szenario hat das "Eins-zu-Eins"-Protokoll, wie HTTP, hohe Overheads und belastet die Webserver stark. Die Skalierung dieser Webserver kann schwierig sein. Mit MQTT verbinden sich die Clients mit einem Broker, der leicht zur Lastenverteilung hinzugefügt werden kann. Siehe dazu dieses Tutorial mit Video. und Artikel .
Andere Nachrichtenprotokolle
HTTP wurde nicht für IoT-Anwendungen entwickelt, wird aber, wie bereits erwähnt, noch eine Weile aufgrund seiner weit verbreiteten Nutzung genutzt werden. .
Fast alle IoT-Plattformen unterstützen sowohl HTTP als auch MQTT.
Es gibt jedoch auch andere Protokolle, die in Betracht gezogen werden sollten.
Protokolle
- (Message Queuing Telemetry Transport). Verwendet TCP/IP. Für das Modell "Publisher-Subscriber" ist ein Nachrichtenbroker erforderlich.
- (Advanced Message Queuing Protocol). Verwendet TCP/IP. Modelle "Publisher-Subscriber" und "Point-to-Point".
- (Constrained Application Protocol). Verwendet UDP. Speziell für IoT entwickelt, verwendet es ein Anfrage-Antwort-Modell wie HTTP. .
- (Data Distribution Service)
In diesem werden die wichtigsten Protokolle und deren Anwendungen behandelt. Das Fazit dieses Artikels ist, dass IoT eine Sammlung von Protokollen verwenden wird, abhängig von ihrer beabsichtigten Anwendung.
Wenn wir jedoch zurückblicken, war in den ersten Jahren des Internets das HTTP-Protokoll, das später dominant wurde, nur eines von vielen Protokollen.
Obwohl HTTP ursprünglich nicht für den Austausch von Dateien und E-Mails gedacht war, wird es heute sowohl dafür als auch für das andere verwendet.
Ich erwarte, dass im IoT mit Nachrichtenprotokollen das Gleiche passiert: Die meisten Dienste werden ein dominierendes Protokoll verwenden.
Im Folgenden sind Grafiken aus Google Trends zu sehen, die zeigen, wie sich die Beliebtheit von MQTT, COAP und AMQP in den letzten Jahren verändert hat.
Google Trends Überblick

Protokollunterstützung nach Plattformen
- MQTT, AMQP, HTTP und HTTPS
- MQTT, HTTPS, MQTT über WebSockets
IBM Bluemix – MQTT, HTTPS, MQTT
- MQTT, HTTPS, MQTT, AMQP
Zusammenfassung
Die meisten Änderungen kümmern sich um die Datenlink- (Ebenen 1 und 2) und die Anwendungsebenen (Ebene 4).
Die Netzwerk- und Transportschichten werden wahrscheinlich unverändert bleiben.
Auf praktischer Ebene werden IoT-Komponenten Messaging-Protokolle verwenden. Obwohl wir uns noch in der frühen Entwicklungsphase des IoT befinden, ist es sehr wahrscheinlich, dass sich eines oder möglicherweise zwei Messaging-Protokolle herauskristallisieren werden.
In den letzten Jahren wurde MQTT das beliebteste, und genau darauf konzentriere ich mich derzeit auf dieser Website.
HTTP wird ebenfalls weiterhin verwendet, da es bereits gut in bestehende IoT-Plattformen integriert ist.
Das ist alles. Wir laden Sie ein, sich für eine kostenlose Demo-Stunde zum Thema anzumelden .
Weiterlesen:
Quelle: habr.com
