

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Gerätekommunikationsprotokolle
<a name="protocols"></a><a name="iot-message-broker"></a>

AWS IoT Core unterstützt Geräte und Clients, die die Protokolle MQTT und MQTT over WebSocket Secure (WSS) verwenden, um Nachrichten zu veröffentlichen und zu abonnieren, sowie Geräte und Clients, die das HTTPS-Protokoll zum Veröffentlichen von Nachrichten verwenden. Alle Protokolle unterstützen IPv4 und. IPv6 In diesem Abschnitt werden die verschiedenen Verbindungsoptionen für Geräte und Kunden beschrieben.

## TLS-Protokollversionen
<a name="connection-protocol-tls"></a>

AWS IoT Core verwendet [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) [Version 1.2](https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_1.2) und [TLS Version 1.3](https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_1.3), um die gesamte Kommunikation zu verschlüsseln. Sie können zusätzliche TLS-Richtlinienversionen für Ihren Endpunkt konfigurieren, indem Sie die [TLS-Einstellungen in den Domänenkonfigurationen konfigurieren](https://docs.aws.amazon.com//iot/latest/developerguide/iot-endpoints-tls-config.html). [Beim Verbinden von Geräten mit können Clients die [Server Name Indication (SNI) -Erweiterung](https://tools.ietf.org/html/rfc3546#section-3.1) senden, die für Funktionen wie die [Registrierung mehrerer Konten](https://docs.aws.amazon.com//iot/latest/developerguide/x509-client-certs.html#multiple-account-cert), [konfigurierbare Endpunkte, [benutzerdefinierte Domänen](https://docs.aws.amazon.com//iot/latest/developerguide/iot-custom-endpoints-configurable-custom.html) und VPC-Endpunkte](https://docs.aws.amazon.com//iot/latest/developerguide/iot-custom-endpoints-configurable.html) erforderlich ist. AWS IoT Core](https://docs.aws.amazon.com//iot/latest/developerguide/IoTCore-VPC.html) Weitere Informationen finden Sie unter [Transportsicherheit in AWS IoT](transport-security.html).

[AWS IoT Gerät SDKs](iot-connect-devices.md#iot-connect-device-sdks) unterstützen MQTT und MQTT over WSS und unterstützen die Sicherheitsanforderungen von Client-Verbindungen. Wir empfehlen die Verwendung von [AWS IoT Gerät SDKs](iot-connect-devices.md#iot-connect-device-sdks), um Clients mit dem AWS IoT zu verbinden.

## Protokolle, Port-Zuweisungen und Authentifizierung
<a name="protocol-mapping"></a><a name="protocol-port-mapping"></a>

[Wie ein Gerät oder ein Client eine Verbindung zum Message Broker herstellt, kann mithilfe eines Authentifizierungstyps konfiguriert werden.](#connection-protocol-auth-mode) Standardmäßig oder wenn keine SNI-Erweiterung gesendet wird, basiert die Authentifizierungsmethode auf dem Anwendungsprotokoll, dem Port und der TLS-Erweiterung Application Layer Protocol Negotiation (ALPN), die Geräte verwenden. In der folgenden Tabelle ist die erwartete Authentifizierung auf der Grundlage von Port, Port und ALPN aufgeführt.


**Protokolle, Authentifizierung und Port-Zuweisungen**  

| Protocol (Protokoll) | Unterstützte Operationen | Authentifizierung | Port | ALPN-Protokollname | 
| --- | --- | --- | --- | --- | 
| MQTT über WebSocket | Veröffentlichen, Abonnieren | Signaturversion 4 | 443 | – | 
| MQTT vorbei WebSocket | Veröffentlichen, Abonnieren | Benutzerdefinierte Authentifizierung | 443 | – | 
| MQTT | Veröffentlichen, Abonnieren | X.509-Clientzertifikat | 443† | `x-amzn-mqtt-ca` | 
| MQTT | Veröffentlichen, Abonnieren | X.509-Clientzertifikat | 8883 | – | 
| MQTT | Veröffentlichen, Abonnieren | Benutzerdefinierte Authentifizierung | 443† | `mqtt` | 
| HTTPS | Nur veröffentlichen | Signaturversion 4 | 443 | – | 
| HTTPS | Nur veröffentlichen | X.509-Clientzertifikat | 443† | `x-amzn-http-ca` | 
| HTTPS | Nur veröffentlichen | X.509-Clientzertifikat | 8443 | – | 
| HTTPS | Nur veröffentlichen | Benutzerdefinierte Authentifizierung | 443 | – | 

**ALPN (Application Layer Protocol Negotiation)**  
† Bei Verwendung von Standard-Endpunktkonfigurationen müssen Clients, die sich über Port 443 mit X.509-Client-Zertifikatsauthentifizierung verbinden, die TLS-Erweiterung [Application Layer Protocol Negotiation (ALPN)](https://tools.ietf.org/html/rfc7301) implementieren und den [ALPN-Protokollnamen](https://tools.ietf.org/html/rfc7301#section-3.1) verwenden, der in der vom Client ProtocolNameList gesendeten ALPN als Teil der Nachricht aufgeführt ist. `ClientHello`  
[Auf Port 443 unterstützt der [IoT:Data-ATS-Endpunkt x-amzn-http-ca ALPN-HTTP, der IoT:Jobs-Endpunkt](iot-connect-devices.md#iot-connect-device-endpoint-table) jedoch nicht.](iot-connect-devices.md#iot-connect-device-endpoint-table)  
[Auf Port 8443 HTTPS und Port 443 MQTT mit ALPN kann die benutzerdefinierte Authentifizierung nicht verwendet werden. x-amzn-mqtt-ca](custom-authentication.md)

Clients stellen eine Verbindung zu ihren Geräteendpunkten AWS-Konto her. Informationen darüber, wie Sie die Geräteendpunkte Ihres Kontos finden, finden Sie unter [AWS IoT Gerätedaten und Dienstendpunkte](iot-connect-devices.md#iot-connect-device-endpoints).

**Anmerkung**  
AWS SDKs benötigen nicht die gesamte URL. Sie benötigen nur den Endpunkt-Hostnamen, z. B. das [`pubsub.py`Beispiel für AWS IoT Device SDK for Python on GitHub](https://github.com/aws/aws-iot-device-sdk-python-v2/blob/master/samples/pubsub.py#L100). Wenn Sie die gesamte URL wie in der folgenden Tabelle aufgeführt übergeben, kann dies zu einem Fehler wie einem ungültigen Hostnamen führen.


**Verbindung herstellen zu AWS IoT Core**  

|  Protocol (Protokoll)  |  Endpunkt oder URL  | 
| --- | --- | 
| MQTT | `{{iot-endpoint}}` | 
| MQTT over WSS | `wss://{{iot-endpoint}}/mqtt` | 
| HTTPS | `https://{{iot-endpoint}}/topics` | 

## Wählen Sie ein Anwendungsprotokoll für Ihre Gerätekommunikation
<a name="protocol-selection"></a>

Für den Großteil der IoT-Gerätekommunikation über die Geräteendpunkte sollten Sie die Protokolle Secure MQTT oder MQTT over WebSocket Secure (WSS) verwenden. Die Geräteendpunkte unterstützen jedoch auch HTTPS.

In der folgenden Tabelle wird verglichen, wie die beiden High-Level-Protokolle (MQTT und HTTPS) für die Gerätekommunikation AWS IoT Core verwendet werden.


**AWS IoT Geräteprotokolle (MQTT und HTTPS) side-by-side**  

|  Funktion  |  [MQTT](mqtt.md)  |  [HTTPS](http.md)  | 
| --- | --- | --- | 
| Unterstützung von Veröffentlichen/Abonnieren | Veröffentlichen und Abonnieren | Nur veröffentlichen | 
| SDK-Unterstützung | [AWS Geräte SDKs](iot-connect-devices.md#iot-connect-device-sdks) unterstützen die Protokolle MQTT und WSS | Keine SDK-Unterstützung, aber Sie können sprachspezifische Methoden verwenden, um HTTPS-Anfragen zu stellen | 
| Qualität der Service-Unterstützung | [MQTT QoS Stufen 0 und 1](mqtt.md#mqtt-qos) | QoS wird durch die Übergabe eines Abfragezeichenfolge-Parameter ?qos=qos unterstütz, dessen Wert 0 oder 1 sein kann. Sie können diese Abfragezeichenfolge hinzufügen, um eine Nachricht mit dem gewünschten QoS-Wert zu veröffentlichen. | 
| Können empfangene Nachrichten verpasst werden, während das Gerät offline war | Ja | Nein | 
| Unterstützung von `clientId`-Feldern | Ja | Nein | 
| Erkennung von Geräteunterbrechungen | Ja | Nein | 
| Sichere Kommunikationen | Ja. Siehe [Protokolle, Port-Zuweisungen und Authentifizierung](#protocol-mapping) | Ja. Siehe [Protokolle, Port-Zuweisungen und Authentifizierung](#protocol-mapping) | 
| Themendefinitionen | Anwendung definiert | Anwendung definiert | 
| Format der Nachrichtendaten | Anwendung definiert | Anwendung definiert | 
| Protokoll-Overhead | Niedriger | Höher | 
| Stromverbrauch | Niedriger | Höher | 

## Wählen Sie einen Authentifizierungstyp für Ihre Gerätekommunikation
<a name="connection-protocol-auth-mode"></a>

Sie können den Authentifizierungstyp für Ihren IoT-Endpunkt mithilfe konfigurierbarer Endpunkte konfigurieren. Verwenden Sie alternativ die Standardkonfiguration und legen Sie fest, wie sich Ihre Geräte mit der Kombination aus Anwendungsprotokoll, Port und ALPN TLS-Erweiterung authentifizieren. Der von Ihnen gewählte Authentifizierungstyp bestimmt, wie sich Ihre Geräte authentifizieren, wenn sie eine Verbindung herstellen. AWS IoT Core Es gibt fünf Authentifizierungstypen: 

**X.509-Zertifikat enthalten**

Authentifizieren Sie Geräte mithilfe von [X.509-Client-Zertifikaten](https://docs.aws.amazon.com//iot/latest/developerguide/x509-client-certs.html), wodurch die Authentifizierung des AWS IoT Core Geräts bestätigt wird. Dieser Authentifizierungstyp funktioniert mit den Protokollen Secure MQTT (MQTT over TLS) und HTTPS.

**X.509-Zertifikat mit benutzerdefiniertem Authorizer**

Authentifizieren Sie Geräte mithilfe von [X.509-Client-Zertifikaten](https://docs.aws.amazon.com//iot/latest/developerguide/x509-client-certs.html) und führen Sie zusätzliche Authentifizierungsaktionen mit einem [benutzerdefinierten Authorizer](https://docs.aws.amazon.com//iot/latest/developerguide/config-custom-auth.html) durch, der X.509-Client-Zertifikatsinformationen empfängt. Dieser Authentifizierungstyp funktioniert mit den Protokollen Secure MQTT (MQTT over TLS) und HTTPS. Dieser Authentifizierungstyp ist nur mit konfigurierbaren Endpunkten mit benutzerdefinierter X.509-Authentifizierung möglich. Es gibt keine ALPN-Option.

**AWS Signatur Version 4 (SigV4)**

Authentifizieren Sie Geräte mit Cognito oder Ihrem Backend-Service und unterstützen Sie so den Verbund von sozialen Netzwerken und Unternehmen. Dieser Authentifizierungstyp funktioniert mit den Protokollen MQTT over WebSocket Secure (WSS) und HTTPS.

**Benutzerdefinierter Autorisierer**

Authentifizieren Sie Geräte, indem Sie eine Lambda-Funktion konfigurieren, um benutzerdefinierte Authentifizierungsinformationen zu verarbeiten, an die gesendet werden. AWS IoT Core Dieser Authentifizierungstyp funktioniert mit den Protokollen Secure MQTT (MQTT over TLS), HTTPS und MQTT over WebSocket Secure (WSS).

**Standard**

Authentifizieren Sie Geräte auf der Grundlage der von den Geräten verwendeten ALPN-Erweiterung (Port and/or Application Layer Protocol Negotiation). Einige zusätzliche Authentifizierungsoptionen werden nicht unterstützt. Weitere Informationen finden Sie unter [Protokolle, Port-Zuweisungen und Authentifizierung](#protocol-mapping).

Die folgende Tabelle zeigt alle unterstützten Kombinationen von Authentifizierungstypen und Anwendungsprotokollen.


**Unterstützte Kombinationen von Authentifizierungstypen und Anwendungsprotokollen**  

| Authentifizierungstyp | Sicheres MQTT (MQTT über TLS) | MQTT über WebSocket Secure (WSS) | HTTPS | Standard | 
| --- | --- | --- | --- | --- | 
| X.509-Zertifikat enthalten | ✓ |  | ✓ |  | 
| X.509-Zertifikat mit benutzerdefiniertem Authorizer | ✓ |  | ✓ |  | 
| AWS Signatur Version 4 (Sigv4) |  | ✓ | ✓ |  | 
| Benutzerdefinierter Autorisierer | ✓ | ✓ | ✓ |  | 
| Standard |  |  |  | ✓ | 

## Einschränkungen der Verbindungsdauer
<a name="connection-duration"></a>

Es kann nicht garantiert werden, dass HTTPS-Verbindungen länger dauern als die Zeit, die für den Empfang und die Beantwortung von Anfragen benötigt wird.

Die Dauer der MQTT-Verbindung ist von der Authentifizierungsfunktion abhängig, die Sie verwenden. In der folgenden Tabelle ist die maximale Verbindungsdauer unter idealen Bedingungen für jede Funktion aufgeführt.


**MQTT-Verbindungsdauer nach Authentifizierungsfunktion**  

|  Feature  |  Maximale Dauer \*  | 
| --- | --- | 
| X.509-Clientzertifikat | 1 bis 2 Wochen | 
| Benutzerdefinierte Authentifizierung | 1 bis 2 Wochen | 
| Signaturversion 4 | Bis zu 24 Stunden | 

\* Nicht garantiert

Mit X.509-Zertifikaten und benutzerdefinierter Authentifizierung gibt es keine feste Grenze für die Verbindungsdauer, sie kann jedoch auch nur wenige Minuten lang sein. Verbindungsunterbrechungen können aus verschiedenen Gründen auftreten. Die folgende Liste enthält einige der gängigsten Gründe.
+ Unterbrechungen der Wi-Fi-Verfügbarkeit
+ Verbindungsunterbrechungen des Internetdienstanbieters (ISP)
+ Service-Patches
+ Dienstbereitstellungen
+ Service Auto Scaling
+ Nicht verfügbarer Dienst-Host
+ Load Balancer-Probleme und -Aktualisierungen
+ Client-seitige Fehler

Ihre Geräte müssen Strategien zur Erkennung von Verbindungsabbrüchen und zur Wiederherstellung der Verbindung implementieren. Informationen zu Trennungsereignissen und Anleitungen, wie Sie damit umgehen können, finden Sie in [Ereignisse im Lebenszyklus](life-cycle-events.md) unter [„Verbinden/Verbindung trennen“-Ereignisse](life-cycle-events.md#connect-disconnect).