Freigeben über


Auswählen eines Protokolls für die Gerätekommunikation

Mit IoT Hub können Geräte die folgenden Protokolle für die geräteseitige Kommunikation verwenden:

Hinweis

IoT Hub bietet eingeschränkte Featureunterstützung für MQTT. Wenn Ihre Lösung MQTT v3.1.1 oder v5-Unterstützung benötigt, lesen Sie die Übersicht über das MQTT-Broker-Feature in Azure Event Grid. Weitere Informationen finden Sie im Abschnitt Vergleich der MQTT-Unterstützung in IoT Hub und Event Grid unter Kommunizieren Sie mit einem IoT-Hub über das MQTT-Protokoll.

Informationen dazu, wie diese Protokolle bestimmte IoT Hub-Features unterstützen, finden Sie im Leitfaden zur D2C-Kommunikation und im Leitfaden zur C2D-Kommunikation.

Die folgende Tabelle enthält allgemeine Ratschläge für Ihre Protokollauswahl:

Protocol Wann Sie dieses Protokoll auswählen sollten
MQTT
MQTT über WebSockets
Verwenden Sie dieses Protokoll auf allen Geräten, die sich nicht über dieselbe TLS-Verbindung mit mehreren Geräten verbinden müssen (wobei es für jedes Gerät eigene Anmeldeinformationen gibt).
AMQP
AMQP über WebSockets
Verwenden Sie es für Feld- und Cloudgateways, um die Vorteile geräteübergreifender Multiplexingverbindungen zu nutzen.
HTTPS Verwenden Sie dieses Protokoll für Geräte, die keine anderen Protokolle unterstützen können.

Beachten Sie bei der Auswahl des Protokolls für die geräteseitige Kommunikation folgende Punkte:

  • C2D-Muster. HTTPS bietet keine effiziente Methode zum Implementieren von Serverpushvorgängen. Daher fragen Geräte IoT Hub bei Verwendung von HTTPS nach Cloud-zu-Gerät (C2D)-Nachrichten ab. Dieser Ansatz ist für das Gerät und auch für IoT Hub sehr ineffizient. Gemäß den aktuellen HTTPS-Richtlinien muss jedes Gerät mindestens alle 25 Minuten eine Abfrage nach Nachrichten durchführen. Die Ausgabe von mehr HTTPS-Empfangsvorgängen führt dazu, dass die Anforderungen von IoT Hub gedrosselt werden. MQTT und AMQP unterstützen Serverpush beim Empfangen von C2D-Nachrichten. Sie ermöglichen sofortiges Nachrichtenpushen von IoT Hub zum Gerät. Wenn die Übermittlungslatenz eine wichtige Rolle spielt, sind MQTT oder AMQP die zu bevorzugenden Protokolle. Bei nur selten verbundenen Geräten funktioniert auch HTTPS.

  • Bereichsgateways. MQTT und HTTPS unterstützen nur eine einzelne Geräteidentität (Geräte-ID plus Anmeldeinformationen) pro TLS-Verbindung. Aus diesem Grund werden diese Protokolle bei Szenarien mit Bereichsgateways nicht unterstützt, die ein Multiplexing von Nachrichten unter Verwendung mehrerer Geräteidentitäten entweder über eine einzelne Verbindung oder über mehrere Upstreamverbindungen mit IoT Hub erfordern. Solche Gateways können für den Upstreamdatenverkehr ein Protokoll verwenden, das mehrere Geräteidentitäten pro Verbindung unterstützt, wie z. B. AMQP.

  • Geräte mit eingeschränkten Ressourcen. Die MQTT- und HTTPS-Bibliotheken haben weniger Speicherbedarf als die AMQP-Bibliotheken. Wenn das Gerät begrenzte Ressourcen bereitstellt (z. B. weniger als 1 MB RAM), sind diese Protokolle möglicherweise die einzige verfügbare Protokollimplementierung.

  • Netzwerkausnahme. Das AMQP-Standardprotokoll verwendet Port 5671, und MQTT lauscht an Port 8883. Die Verwendung dieser Ports könnte Probleme in Netzwerken verursachen, die für Nicht-HTTPS-Protokolle geschlossen sind. Verwenden Sie MQTT über WebSockets, AMQP über WebSockets oder HTTPS in diesem Szenario.

  • Größe der Nutzlast. MQTT und AMQP sind binäre Protokolle und weisen daher kompaktere Nutzlasten als HTTPS auf.

Warnung

Wenn Geräte das HTTPS-Protokoll verwenden, sollte jedes Gerät nicht mehr als einmal alle 25 Minuten für Cloud-zu-Gerät-Nachrichten abfragen. Bei der Entwicklung kann jedes Gerät bei Bedarf häufiger Abfragen durchführen.

Portnummern

Geräte können mit IoT Hub in Azure über verschiedene Protokolle kommunizieren. In der Regel bestimmen die spezifischen Anforderungen der Lösung die Auswahl des Protokolls. Die folgende Tabelle enthält die ausgehenden Ports, die geöffnet sein müssen, damit ein Gerät ein bestimmtes Protokoll verwenden kann:

Protocol Port
MQTT 8883
MQTT über WebSockets 443
AMQP 5671
AMQP über WebSockets 443
HTTPS 443

Die IP-Adresse eines IoT-Hubs kann ohne vorherige Ankündigung geändert werden. Wenn Sie erfahren möchten, wie Sie die Auswirkungen von IP-Adressänderungen bei IoT-Hubs auf Ihre IoT-Lösung und IoT-Geräte verringern können, lesen Sie unter IP-Adressen von IoT Hub den Abschnitt Bewährte Methoden.

Nächste Schritte

Weitere Informationen dazu, wie IoT Hub das MQTT-Protokoll implementiert, finden Sie unter Kommunizieren mit einem IoT-Hub mithilfe des MQTT-Protokolls.