Referenz – Auswählen eines KommunikationsprotokollsReference - choose a communication protocol

Mit IoT Hub können Geräte die folgenden Protokolle für die geräteseitige Kommunikation verwenden:IoT Hub allows devices to use the following protocols for device-side communications:

  • MQTTMQTT
  • MQTT über WebSocketsMQTT over WebSockets
  • AMQPAMQP
  • AMQP über WebSocketsAMQP over WebSockets
  • HTTPSHTTPS

Informationen dazu, wie diese Protokolle bestimmte IoT Hub-Features unterstützen, finden Sie im Leitfaden zur D2C-Kommunikation und im Leitfaden zur C2D-Kommunikation.For information about how these protocols support specific IoT Hub features, see Device-to-cloud communications guidance and Cloud-to-device communications guidance.

Die folgende Tabelle enthält allgemeine Ratschläge für Ihre Protokollauswahl:The following table provides the high-level recommendations for your choice of protocol:

ProtocolProtocol Wann Sie dieses Protokoll auswählen solltenWhen you should choose this protocol
MQTTMQTT
MQTT über WebSocketsMQTT over WebSocket
Verwenden Sie dieses Protokoll auf allen Geräten, die sich nicht über dieselbe TLS-Verbindung mit mehreren Geräten verbinden müssen (von denen jedes eigene gerätebezogene Anmeldeinformationen hat).Use on all devices that do not require to connect multiple devices (each with its own per-device credentials) over the same TLS connection.
AMQPAMQP
AMQP über WebSocketsAMQP over WebSocket
Verwenden Sie es für Feld- und Cloudgateways, um die Vorteile geräteübergreifender Multiplexingverbindungen zu nutzen.Use on field and cloud gateways to take advantage of connection multiplexing across devices.
HTTPSHTTPS Verwenden Sie es für Geräte, die keine anderen Protokolle unterstützen können.Use for devices that cannot support other protocols.

Beachten Sie bei der Auswahl des Protokolls für die geräteseitige Kommunikation folgende Punkte:Consider the following points when you choose your protocol for device-side communications:

  • C2D-Muster.Cloud-to-device pattern. HTTPS bietet keine effiziente Methode zum Implementieren von Serverpushvorgängen.HTTPS does not have an efficient way to implement server push. Daher fragen Geräte bei Verwendung von HTTPS IoT Hub nach C2D-Nachrichten ab.As such, when you are using HTTPS, devices poll IoT Hub for cloud-to-device messages. Dieser Ansatz ist für das Gerät und auch für IoT Hub sehr ineffizient.This approach is inefficient for both the device and IoT Hub. Gemäß den aktuellen HTTPS-Richtlinien muss jedes Gerät mindestens alle 25 Minuten eine Abfrage nach Nachrichten durchführen.Under current HTTPS guidelines, each device should poll for messages every 25 minutes or more. MQTT und AMQP unterstützen Serverpush beim Empfangen von C2D-Nachrichten.MQTT and AMQP support server push when receiving cloud-to-device messages. Sie ermöglichen sofortiges Nachrichtenpushen von IoT Hub zum Gerät.They enable immediate pushes of messages from IoT Hub to the device. Wenn die Übermittlungslatenz eine wichtige Rolle spielt, sind MQTT oder AMQP die zu bevorzugenden Protokolle.If delivery latency is a concern, MQTT or AMQP are the best protocols to use. Bei nur selten verbundenen Geräten funktioniert auch HTTPS.For rarely connected devices, HTTPS works as well.

  • Bereichsgateways.Field gateways. Bei Verwendung von MQTT und HTTPS ist es nicht möglich, mehrere Geräte (jedes mit eigenen gerätebezogenen Anmeldeinformationen) mithilfe der gleichen TLS-Verbindung zu verbinden.When using MQTT and HTTPS, you cannot connect multiple devices (each with its own per-device credentials) using the same TLS connection. Für Bereichsgatewayszenarien, die für jedes verbundene Gerät eine TLS-Verbindung zwischen dem Bereichsgateway und IoT Hub benötigen, sind diese Protokolle nicht optimal.For Field gateway scenarios that require one TLS connection between the field gateway and IoT Hub for each connected device, these protocols are suboptimal.

  • Geräte mit eingeschränkten Ressourcen.Low resource devices. Die MQTT- und HTTPS-Bibliotheken haben weniger Speicherbedarf als die AMQP-Bibliotheken.The MQTT and HTTPS libraries have a smaller footprint than the AMQP libraries. Wenn daher das Gerät über beschränkte Ressourcen verfügt (beispielsweise weniger als 1 MB RAM), stehen möglicherweise nur diese Protokolle als Protokollimplementierung zur Verfügung.As such, if the device has limited resources (for example, less than 1-MB RAM), these protocols might be the only protocol implementation available.

  • Netzwerkausnahme.Network traversal. Das AMQP-Standardprotokoll verwendet Port 5671, und MQTT lauscht an Port 8883.The standard AMQP protocol uses port 5671, and MQTT listens on port 8883. Die Verwendung dieser Ports kann Probleme in Netzwerken verursachen, die für Nicht-HTTPS-Protokolle geschlossen sind.USe of these ports could cause problems in networks that are closed to non-HTTPS protocols. Verwenden Sie MQTT über WebSockets, AMQP über WebSockets oder HTTPS in diesem Szenario.Use MQTT over WebSockets, AMQP over WebSockets, or HTTPS in this scenario.

  • Größe der Nutzlast.Payload size. MQTT und AMQP sind binäre Protokolle und weisen daher kompaktere Nutzlasten als HTTPS auf.MQTT and AMQP are binary protocols, which result in more compact payloads than HTTPS.

Warnung

Bei Verwendung von HTTPS muss jedes Gerät mindestens alle 25 Minuten eine Abfrage nach C2D-Nachrichten durchführen.When using HTTPS, each device should poll for cloud-to-device messages every 25 minutes or more. In der Entwicklungsphase darf freilich häufiger als alle 25 Minuten eine Abfrage erfolgen.However, during development, it is acceptable to poll more frequently than every 25 minutes.

PortnummernPort numbers

Geräte können mit IoT Hub in Azure über verschiedene Protokolle kommunizieren.Devices can communicate with IoT Hub in Azure using various protocols. In der Regel richtet sich die Wahl des Protokolls nach den spezifischen Anforderungen der Lösung.Typically, the choice of protocol is driven by the specific requirements of the solution. Die folgende Tabelle enthält die ausgehenden Ports, die geöffnet sein müssen, damit ein Gerät ein bestimmtes Protokoll verwenden kann:The following table lists the outbound ports that must be open for a device to be able to use a specific protocol:

ProtocolProtocol PortPort
MQTTMQTT 88838883
MQTT über WebSocketsMQTT over WebSockets 443443
AMQPAMQP 56715671
AMQP über WebSocketsAMQP over WebSockets 443443
HTTPSHTTPS 443443

Nachdem Sie einen IoT Hub in einer Azure-Region erstellt haben, behält er seine IP-Adresse für die gesamte Lebensdauer bei.Once you have created an IoT hub in an Azure region, the IoT hub keeps the same IP address for the lifetime of that IoT hub. Wenn der IoT Hub von Microsoft jedoch in eine andere Skalierungseinheit verschoben wird, um die Dienstqualität zu gewährleisten, wird ihm eine neue IP-Adresse zugewiesen.However, if Microsoft moves the IoT hub to a different scale unit to maintain quality of service, then it is assigned a new IP address.

Nächste SchritteNext steps

Weitere Informationen dazu, wie IoT Hub das MQTT-Protokoll implementiert, finden Sie unter Kommunikation mit Ihrem IoT Hub mithilfe des Protokolls MQTT.To learn more about how IoT Hub implements the MQTT protocol, see Communicate with your IoT hub using the MQTT protocol.