Hallo, Habr-Bewohner! startet im Oktober bei OTUS. Die Anmeldung für den Kurs ist jetzt 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, Technologien und Protokollen basieren, die derzeit in Haushalten/Büros und im Internet verwendet werden, und bietet viele weitere Möglichkeiten.
Ziel dieses Leitfadens ist es, einen kurzen Überblick über Netzwerk- und Anwendungsprotokolle für IoT zu geben.
Hinweis: Sie sollten Kenntnisse in den .
IoT-Netzwerke haben.
IoT wird in bestehenden TCP/IP-Netzwerken betrieben.
TCP/IP verwendet ein vierstufiges Modell mit bestimmten Protokollen auf jeder Ebene. Siehe (wir betrachten das vierstufige Modell von TCP/IP).
In der folgenden Grafik wird ein Vergleich der derzeit verwendeten Protokolle und derjenigen gezeigt, die voraussichtlich für IoT verwendet werden.

Bemerkungen zur Grafik:
Die Schriftgröße spiegelt die Popularität des Protokolls wider. Zum Beispiel ist IPv4 links größer, da es im modernen Internet weitaus beliebter ist. Auf der rechten Seite ist es jedoch kleiner, da erwartet wird, dass IPv6 in der IoT-Welt beliebter wird.
Nicht alle Protokolle werden angezeigt.
Die meisten Änderungen erfolgen auf der Kanal- (Ebene 1 und 2) und Anwendungsebene (Ebene 4).
Die Netzwerk- und Transportschichten werden voraussichtlich unverändert bleiben.
Kanalprotokolle
Auf der Kanalelektronik (Data Link) müssen Sie Geräte miteinander verbinden. Diese können sowohl in der Nähe, wie in lokalen Netzwerken (local networks), als auch über große Distanzen, wie in städtischen (metropolitan area networks) und globalen Netzwerken (wide area networks), sein.
Aktuell werden auf dieser Ebene in Heim- und Büronetzwerken (LAN) Ethernet und Wi-Fi verwendet, während in mobilen Netzwerken (WAN) 3G / 4G zum Einsatz kommen. Allerdings sind viele IoT-Geräte energiearm, wie Sensoren, und werden nur mit Batterien betrieben. In diesen Fällen ist Ethernet nicht geeignet, aber low powered Wi-Fi und low powered Bluetooth können verwendet werden.
Obwohl bestehende drahtlose Technologien (Wi-Fi, Bluetooth, 3G / 4G) weiterhin für die Verbindung dieser Geräte genutzt werden, ist es ebenso wichtig, neue Technologien zu berücksichtigen, die speziell für IoT-Anwendungen entwickelt wurden. Deren Beliebtheit wird mit Sicherheit zunehmen.
Darunter:
BLE – Bluetooth Low Energy
LoRaWAN – Long Range WAN
SigFox
LTE-M
Eine detaillierte Beschreibung finden Sie im Artikel (Überblick über die drahtlosen IoT-Technologien).
Netzwerkschicht
Auf der Netzwerkschicht (Networking) wird langfristig das Protokoll dominieren. Es ist unwahrscheinlich, dass IPv4 eine wesentliche Rolle spielt, aber es könnte in den Anfangsphasen eine gewisse Bedeutung haben. Die meisten Smart-Home-IoT-Geräte, wie z. B. intelligente Glühbirnen, nutzen derzeit IPv4.
Transportschicht
Auf der Transportschicht (Transport) dominiert TCP im Internet und im Web. Es wird sowohl in HTTP als auch in vielen anderen gängigen Internetprotokollen (SMTP, POP3, IMAP4 usw.) verwendet.
MQTT, das meiner Einschätzung nach eines der Hauptprotokolle für Messaging auf Anwendungsebene werden wird, nutzt derzeit TCP.
In Zukunft erwarte ich jedoch, dass UDP aufgrund der geringeren Betriebskosten für IoT populärer wird. Wahrscheinlich wird sich auch , das über UDP arbeitet. Siehe den Vergleichsartikel .
Anwendungsschicht und Nachrichtenprotokolle
Wichtige Merkmale für IoT-Protokolle:
Geschwindigkeit – die Menge an übertragenen Daten pro Sekunde.
Latenz – die Zeit, die benötigt wird, um eine Nachricht zu übermitteln.
Energieverbrauch.
Sicherheit.
Verfügbarkeit von Softwaretools.
Derzeit werden auf dieser Ebene zwei Hauptprotokolle aktiv genutzt: HTTP und MQTT.
HTTP ist wahrscheinlich das bekannteste Protokoll dieser Ebene, das die Grundlage des Webs (WWW) bildet. Es bleibt weiterhin von großer Bedeutung für IoT, da es für REST APIs verwendet wird – den Hauptmechanismus für die Interaktion zwischen Webanwendungen und Diensten. Aufgrund der hohen Betriebskosten wird HTTP jedoch wahrscheinlich nicht das Hauptprotokoll für IoT werden, obwohl es weiterhin weit verbreitet im Internet eingesetzt wird.
MQTT (Message Queuing Telemetry Transport) ist das Hauptnachrichtenprotokoll im IoT geworden, dank seiner Leichtigkeit und Benutzerfreundlichkeit. 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 liegt an seiner Leichtigkeit und Geschwindigkeit im Vergleich zu HTTP und daran, dass es sich um ein 'Many-to-One'-Protokoll handelt, im Gegensatz zu 'One-to-One' (HTTP).
Viele moderne Webanwendungen würden MQTT anstelle von HTTP gerne verwenden, hätte es zum Zeitpunkt ihrer Entwicklung bereits zur Verfügung gestanden.
Ein gutes Beispiel ist die Übertragung von Informationen an mehrere Kunden, wie z.B. die Ankunft und Abfahrt von Zügen / Bussen / Flugzeugen. In diesem Szenario hat ein 'One-to-One'-Protokoll wie HTTP hohe Overhead-Kosten und belastet die Webserver stark. Die Skalierung dieser Webserver kann schwierig sein. Mit MQTT verbinden sich die Clients mit einem Broker, der leicht hinzugefügt werden kann, um die Last zu verteilen. Siehe dieses Tutorial mit Video. und den Artikel .
Andere Nachrichtenprotokolle
HTTP wurde nicht für IoT-Anwendungen entwickelt, wird jedoch, wie bereits erwähnt, noch eine Zeit lang aufgrund seiner weit verbreiteten Verwendung eingesetzt. .
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. Ein Message Broker ist für das „Publisher-Subscriber“-Modell erforderlich.
— (Advanced Message Queuing Protocol). Verwendet TCP/IP. Unterstützt die Modelle „Publisher-Subscriber“ und „Point-to-Point“.
— (Constrained Application Protocol). Verwendet UDP. Speziell für IoT entwickelt, nutzt das Anfrage-Antwort-Modell ähnlich wie HTTP. .
— (Data Distribution Service)
In diesem werden die grundlegenden Protokolle und deren Anwendungen betrachtet. Fazit dieses Artikels ist, dass IoT eine Reihe von Protokollen verwenden wird, abhängig von ihrem angestrebten Einsatz.
Wenn wir jedoch zurückblicken, war HTTP, das in den ersten Jahren des Internets, das später dominierend wurde, nur eines von vielen Protokollen.
Obwohl HTTP ursprünglich nicht für die Übertragung von Dateien und E-Mails konzipiert wurde, wird es heute für beides verwendet.
Ich erwarte, dass im IoT mit Messaging-Protokollen das Gleiche passiert: Die meisten Dienste werden ein vorherrschendes Protokoll verwenden.
Im Folgenden finden Sie Google Trends-Diagramme, die zeigen, wie sich die Popularität von MQTT, COAP und AMQP in den letzten Jahren verändert hat.
Übersicht der Google Trends

Unterstützung der Protokolle 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 erfolgen auf der Kanal- (Ebene 1 und 2) und Anwendungsebene (Ebene 4).
Die Netzwerk- und Transportschichten werden voraussichtlich unverändert bleiben.
Auf der Anwendungsebene werden IoT-Komponenten Nachrichtenprotokolle nutzen. Obwohl wir uns noch in einer frühen Phase der IoT-Entwicklung befinden, ist es durchaus möglich, dass ein oder möglicherweise zwei Nachrichtenprotokolle hervorgehoben werden.
In den letzten Jahren ist MQTT zum beliebtesten Protokoll geworden, und darauf konzentriere ich mich derzeit auf dieser Website.
HTTP wird ebenfalls weiterhin verwendet, da es bereits gut in bestehenden IoT-Plattformen integriert ist.
Das ist alles. Wir laden Sie ein, sich für eine kostenlose Demo-Lektion zum Thema .
Weiterlesen:
Quelle: habr.com
