MQTT

Aus xinux.net
Zur Navigation springen Zur Suche springen

MQTT: Einführung und Grundlagen

  • MQTT (ursprünglich MQ Telemetry Transport) ist ein offenes Netzwerkprotokoll, das für Machine-to-Machine-Kommunikation (M2M) entwickelt wurde.
  • Es ermöglicht, trotz hoher Verzögerungen oder beschränkter Netzwerke die Kommunikation zwischen Geräten.
  • Entsprechende Geräte reichen von Sensoren und Aktoren, Mobiltelefonen, eingebetteten Systemen in Fahrzeugen oder Laptops bis zu voll entwickelten Rechnern.
  • MQTT war bis zur Version 3.1 ein Akronym für MQ Telemetry Transport,wobei MQ von MQSeries abgeleitet ist und für Message Queueing steht.
  • Mit Version 3.1.1 wurde definiert, dass MQTT für kein Akronym steht.
  • Das MQTT-Protokoll ist auch unter älteren Namen wie „WebSphere MQTT“ (WMQTT), „SCADA-Protokoll“ oder „MQ Integrator SCADA Device Protocol“ (MQIsdp) bekannt.
  • Die Internet Assigned Numbers Authority (IANA) reserviert für MQTT die Ports 1883 und 8883. MQTT-Nachrichten können mit dem TLS-Protokoll verschlüsselt werden.
  • Ein MQTT-Server („Broker“) hält die gesamte Datenlage seiner Kommunikationspartner und kann so als Zustands-Datenbank benutzt werden.
  • So ist es möglich, kleine unperformante MQTT-Geräte mit einem MQTT-Broker zu verbinden*
  • Die Geräte sammeln Daten oder nehmen Befehle entgegen, während ein komplexes Lagebild nur auf dem MQTT-Broker entsteht.
  • Stelleingriffe können so von einer oder mehreren leistungsfähigen Instanzen an den MQTT-Broker übermittelt und auf die einzelnen Geräte verbreitet werden.
  • Dadurch eignet sich MQTT sehr gut für Automatisierungslösungen und findet im Bereich IoT durch die einfache Verwendung große Verbreitung.

Spezifikation

  • Die MQTT-Spezifikation unterscheidet TCP/IP-basierte und Nicht-TCP/IP-Netzwerke und Systeme.
Haupt-Spezifikation
  • Das Protokoll ermöglicht auf eine einfache Art ein Beobachter-Verhaltensmuster. Es ist besonders geeignet für Verbindungen, die nur einen geringen Verwaltungsdatenanteil erlauben. Der OASIS-*Standardisierungsprozess basiert auf Version 3.1 der MQTT-Spezifikation.
  • Im Januar 2018 wurde Version 5 veröffentlicht, die die Verwendung für Entwickler komfortabler machen soll.
Spezifikation von MQTT-SN (ehemals MQTT-S), Version 1.2 (MQTT für Sensorgeräte)
  • Ausgelegt für eingebettete Geräte in non-TCP/IP-Netzwerken, wie zum Beispiel ZigBee. MQTT-SN ist ein Nachrichtenprotokoll nach dem Beobachter-Muster für Sensornetze.
  • Es erweitert MQTT für die Nutzung über TCP/IP-Infrastruktur hinaus und ist besonders optimiert für die Nutzung mit Sensor- und Aktor-Lösungen.
  • Der ursprüngliche Name war MQTT-S. Dieser erzeugte jedoch Missverständnisse (s für secure?), so dass 2013 eine Umbenennung in MQTT-SN angestoßen wurde (SN für Sensor Networks).