

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.

# Multiplex-Datenströme und gleichzeitige Verwendung von TCP-Verbindungen in einem sicheren Tunnel
<a name="multiplexing"></a>

Mithilfe der Multiplexing-Funktion für Secure Tunneling können Sie mehrere Datenströme pro Tunnel verwenden. Mit Multiplexing können Sie Fehler bei Geräten beheben, die mehrere Datenströme verwenden. Sie können auch Ihre Betriebslast reduzieren, indem Sie nicht mehr mehrere lokale Proxys erstellen, bereitstellen und starten oder mehrere Tunnel zum selben Gerät öffnen müssen. Multiplexing kann beispielsweise für einen Webbrowser verwendet werden, der das Senden mehrerer HTTP- und SSH-Datenströme erfordert.

 AWS IoT Sicheres Tunneling unterstützt für jeden Datenstrom gleichzeitige TCP-Verbindungen. Durch die Verwendung gleichzeitiger Verbindungen wird das Risiko eines Timeouts bei mehreren Anfragen vom Client verringert. So kann beispielsweise die Ladezeit beim Fernzugriff auf einen Webserver reduziert werden, der sich lokal auf dem Zielgerät befindet.

In den folgenden Abschnitten werden weitere Informationen zum Multiplexing und zur Verwendung gleichzeitiger TCP-Verbindungen sowie deren verschiedenen Anwendungsfälle erläutert.

**Topics**
+ [Multiplexing mehrerer Datenströme in einem sicheren Tunnel](multiplexing-multiple-streams.md)
+ [Gleichzeitige TCP-Verbindungen in einem sicheren Tunnel verwenden](multiplexing-simultaneous-tcp.md)

# Multiplexing mehrerer Datenströme in einem sicheren Tunnel
<a name="multiplexing-multiple-streams"></a>

Sie können die Multiplexing-Funktion für Geräte verwenden, die mehrere Verbindungen oder Anschlüsse verwenden. Multiplexing kann auch verwendet werden, wenn Sie mehrere Verbindungen zu einem Remote-Gerät zur Behebung von Fehlern benötigen. Es kann beispielsweise für einen Webbrowser verwendet werden, der das Senden mehrerer HTTP- und SSH-Datenströme erfordert. Die Anwendungsdaten aus beiden Streams werden gleichzeitig über den Multiplex-Tunnel an das Gerät gesendet.

## Beispielanwendungsfall
<a name="multiplexing-use-case"></a>

Sagen wir, Sie müssen eine Verbindung zu einer geräteinternen Webanwendung zum Ändern einiger Netzwerkparameter herstellen und gleichzeitig Shell-Befehle über das Terminal eingeben, um die ordnungsgemäße Funktion des Geräts mit den neuen Netzwerkparametern zu überprüfen. In diesem Szenario müssen Sie möglicherweise sowohl über HTTP als auch über SSH eine Verbindung zum Gerät herstellen und zwei parallel Datenströme übertragen, um gleichzeitig auf die Webanwendung und das Terminal zuzugreifen. Mit der Multiplexing-Funktion können diese beiden unabhängigen Ströme gleichzeitig über denselben Tunnel übertragen werden.

![\[Ein Diagramm, das die IoT-Cloud-Architektur mit Quellgeräten, Proxyservern und Zielgeräten für das Streamen von Daten über verschiedene Protokolle zeigt.\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/images/tunnel-multiplexing.png)


## Wie man einen Multiplex-Tunnel einrichtet
<a name="multiplexing-tutorial"></a>

Das folgende Verfahren führt Sie durch die Einrichtung eines Multiplex-Tunnels zur Fehlerbehebung bei Geräten mithilfe von Anwendungen, für die Verbindungen zu mehreren Ports erforderlich sind. Sie werden einen Tunnel mit zwei Multiplex-Streams einrichten: einen HTTP-Stream und einen SSH-Stream.

1. 

**(Optional) Konfigurationsdateien erstellen**

   Sie können das Quell- und Zielgerät optional mit Konfigurationsdateien konfigurieren. Verwenden Sie Konfigurationsdateien, wenn sich Ihre Portzuordnungen wahrscheinlich häufig ändern. Sie können diesen Schritt überspringen, wenn Sie die Portzuordnung lieber explizit über die CLI angeben möchten oder wenn Sie den lokalen Proxy nicht auf bestimmten Abhörports starten müssen. Weitere Informationen zur Verwendung von Konfigurationsdateien finden Sie unter [Über --config festgelegte Optionen](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via---config) in GitHub.

   1. Erstellen Sie auf Ihrem Quellgerät in dem Ordner, in dem Ihr lokaler Proxy ausgeführt wird, einen Konfigurationsordner mit dem Namen`Config`. Erstellen Sie in diesem Ordner eine Datei mit dem Namen `SSHSource.ini` und dem folgenden Inhalt:

      ```
      HTTP1 = 5555
      SSH1 = 3333
      ```

   1. Erstellen Sie auf Ihrem Zielgerät in dem Ordner, in dem Ihr lokaler Proxy ausgeführt wird, einen Konfigurationsordner mit dem Namen`Config`. Erstellen Sie in diesem Ordner eine Datei mit dem Namen `SSHDestination.ini` und dem folgenden Inhalt:

      ```
      HTTP1 = 80
      SSH1 = 22
      ```

1. 

**Tunnel öffnen**

   Öffnen Sie einen Tunnel mit der `OpenTunnel` API-Funktion oder dem `open-tunnel` CLI-Befehl. Konfigurieren Sie das Ziel, indem Sie `SSH1` und `HTTP1` als Dienste und den Namen der AWS IoT Sache angeben, die Ihrem Remote-Gerät entspricht. Ihre SSH- und HTTP-Anwendungen werden auf diesem Remote-Gerät ausgeführt. Sie müssen das IoT-Ding bereits in der AWS IoT Registrierung erstellt haben. Weitere Informationen finden Sie unter [Dinge mit der Registrierung verwalten](thing-registry.md).

   ```
   aws iotsecuretunneling open-tunnel \
   	--destination-config thingName=RemoteDevice1,services=HTTP1,SSH1
   ```

   Wenn Sie diesen Befehl ausführen, werden die Quell- und Zielzugriffstoken generiert, mit denen Sie den lokalen Proxy ausführen.

   ```
   {
   	"tunnelId": "b2de92a3-b8ff-46c0-b0f2-afa28b00cecd",
   	"tunnelArn": "arn:aws:iot:us-west-2:431600097591:tunnel/b2de92a3-b8ff-46c0-b0f2-afa28b00cecd",
   	"sourceAccessToken": source_client_access_token,
   	"destinationAccessToken": destination_client_access_token
   }
   ```

1. 

**Konfigurieren und Starten des lokalen Proxys**

   Bevor Sie den lokalen Proxy ausführen können, müssen Sie entweder den AWS IoT Geräteclient einrichten oder den lokalen Proxy-Quellcode von der Plattform Ihrer Wahl herunterladen [GitHub](https://github.com/aws-samples/aws-iot-securetunneling-localproxy)und ihn für die Plattform Ihrer Wahl erstellen. Anschließend können Sie das Ziel und den lokalen Quell-Proxy starten, um eine Verbindung zum sicheren Tunnel herzustellen. Weitere Informationen zum Konfigurieren und Verwenden des lokalen Proxys finden Sie unter [Wie man den lokalen Proxy benutzt](how-use-local-proxy.md).
**Anmerkung**  
Wenn Sie auf Ihrem Quellgerät keine Konfigurationsdateien verwenden oder die Portzuordnung mit der CLI angeben, können Sie trotzdem denselben Befehl verwenden, um den lokalen Proxy auszuführen. Der lokale Proxy im Quellmodus wählt automatisch die zu verwendenden Ports und deren Zuordnungen für Sie aus.

------
#### [ Start local proxy using configuration files ]

   Führen Sie die folgenden Befehle aus, um den lokalen Proxy mithilfe von Konfigurationsdateien im Quell- und Zielmodus auszuführen.

   ```
   // ----------------- Start the destination local proxy -----------------------
   ./localproxy -r us-east-1 -m dst -t destination_client_access_token
   
   // ----------------- Start the source local proxy ----------------------------
   // You also run the same command below if you want the local proxy to
   // choose the mappings for you instead of using configuration files.
   ./localproxy -r us-east-1 -m src -t source_client_access_token
   ```

------
#### [ Start local proxy using CLI port mapping ]

   Führen Sie die folgenden Befehle aus, um den lokalen Proxy im Quell- und Zielmodus auszuführen, indem Sie die Portzuordnungen explizit mit der CLI angeben.

   ```
   // ----------------- Start the destination local proxy -----------------------------------
   ./localproxy -r us-east-1 -d HTTP1=80,SSH1=22 -t destination_client_access_token
   
   // ----------------- Start the source local proxy ----------------------------------------
   ./localproxy -r us-east-1 -s HTTP1=5555,SSH1=33 -t source_client_access_token
   ```

------

Die Anwendungsdaten aus der SSH- und HTTP-Verbindung können jetzt gleichzeitig über den Multiplex-Tunnel übertragen werden. Wie in der Abbildung unten zu sehen ist, dient die Service-ID als lesbares Format zur Übersetzung der Portzuweisung zwischen dem Quell- und dem Zielgerät. Bei dieser Konfiguration leitet sicheres Tunneling jeglichen eingehenden HTTP-Verkehr von Port *5555* auf dem Quellgerät an Port *80* auf dem Zielgerät und jeglichen eingehenden SSH-Verkehr von Port *3333* zu Port *22* auf dem Zielgerät weiter.

![\[Ein Übersetzungsprozess für die Zuordnung von Dienstkennungen von lokalen Quell- und Zielproxys zu übersetzten Portzuordnungen nach der Verarbeitung.\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/images/multiplexing-post-mapping-translation.png)


# Gleichzeitige TCP-Verbindungen in einem sicheren Tunnel verwenden
<a name="multiplexing-simultaneous-tcp"></a>

AWS IoT Secure Tunneling unterstützt mehr als eine TCP-Verbindung gleichzeitig für jeden Datenstrom. Sie können diese Funktion verwenden, wenn Sie gleichzeitige Verbindungen zu einem Remote-Gerät benötigen. Durch die Verwendung gleichzeitiger TCP-Verbindungen wird das Risiko eines Timeouts bei mehreren Anfragen vom Client verringert. Wenn Sie beispielsweise auf einen Webserver zugreifen, auf dem mehrere Komponenten ausgeführt werden, können gleichzeitige TCP-Verbindungen die Zeit reduzieren, die zum Laden der Seite benötigt wird. 

**Anmerkung**  
Gleichzeitige TCP-Verbindungen haben eine Bandbreitenbeschränkung von jeweils 800 Kilobyte pro Sekunde. AWS-Konto AWS IoT Secure Tunneling kann dieses Limit je nach Anzahl der eingehenden Anfragen für Sie konfigurieren.

## Beispielanwendungsfall
<a name="tcp-use-case"></a>

Nehmen wir an, Sie müssen aus der Ferne auf einen Webserver zugreifen, der sich lokal auf dem Zielgerät befindet und auf dem mehrere Komponenten laufen. Bei einer einzigen TCP-Verbindung kann das sequenzielle Laden beim Zugriff auf den Webserver die Zeit verlängern, die zum Laden der Ressourcen auf der Seite benötigt wird. Die gleichzeitigen TCP-Verbindungen können die Ladezeit reduzieren, indem sie die Ressourcenanforderungen der Seite erfüllen, wodurch die Zugriffszeit reduziert wird. Das folgende Diagramm zeigt, wie gleichzeitige TCP-Verbindungen für den Datenstrom zur Webserver-Anwendung unterstützt werden, die auf dem Remote-Gerät ausgeführt wird.

**Anmerkung**  
Wenn Sie über den Tunnel auf mehrere Anwendungen zugreifen möchten, die auf dem Remote-Gerät ausgeführt werden, können Sie Tunnelmultiplexing verwenden. Weitere Informationen finden Sie unter [Multiplexing mehrerer Datenströme in einem sicheren Tunnel](multiplexing-multiple-streams.md).

![\[Eine Abbildung zeigt das IoT-Cloud-Setup mit Quellgerät, lokalem Proxy, Proxyservern und Zielgerät mit Webserver-Anwendung, die über TCP- und WSS-Protokolle verbunden sind.\]](http://docs.aws.amazon.com/de_de/iot/latest/developerguide/images/tcp-tunneling.png)


## Wie verwendet man gleichzeitige TCP-Verbindungen
<a name="multiple-tcp-tutorial"></a>

Im folgenden Verfahren wird beschrieben, wie Sie gleichzeitige TCP-Verbindungen für den Zugriff auf den Webbrowser auf dem entfernten Gerät verwenden können. Wenn mehrere Anfragen vom Client eingehen, richtet AWS IoT Secure Tunneling automatisch gleichzeitige TCP-Verbindungen ein, um die Anfragen zu bearbeiten, wodurch die Ladezeit reduziert wird.

1. 

**Tunnel öffnen**

   Öffnen Sie einen Tunnel mit der `OpenTunnel` API-Funktion oder dem `open-tunnel` CLI-Befehl. Konfigurieren Sie das Ziel, indem Sie `HTTP` als Dienst und den Namen des Objekts AWS IoT angeben, das Ihrem Remote-Gerät entspricht. Ihre Webserver-Anwendung wird auf diesem Remote-Gerät ausgeführt. Sie müssen das IoT-Ding bereits in der AWS IoT Registrierung erstellt haben. Weitere Informationen finden Sie unter [Dinge mit der Registrierung verwalten](thing-registry.md).

   ```
   aws iotsecuretunneling open-tunnel \
   	--destination-config thingName=RemoteDevice1,services=HTTP
   ```

   Wenn Sie diesen Befehl ausführen, werden die Quell- und Zielzugriffstoken generiert, mit denen Sie den lokalen Proxy ausführen.

   ```
   {
   	"tunnelId": "b2de92a3-b8ff-46c0-b0f2-afa28b00cecd",
   	"tunnelArn": "arn:aws:iot:us-west-2:431600097591:tunnel/b2de92a3-b8ff-46c0-b0f2-afa28b00cecd",
   	"sourceAccessToken": source_client_access_token,
   	"destinationAccessToken": destination_client_access_token
   }
   ```

1. 

**Konfigurieren und Starten des lokalen Proxys**

   Bevor Sie den lokalen Proxy ausführen können, laden Sie den lokalen Proxy-Quellcode von herunter [GitHub](https://github.com/aws-samples/aws-iot-securetunneling-localproxy)und erstellen Sie ihn für die Plattform Ihrer Wahl. Anschließend können Sie den lokalen Ziel- und Quell-Proxy starten, um eine Verbindung zum sicheren Tunnel herzustellen und die Remote-Web-Server-Anwendung zu verwenden.
**Anmerkung**  
Für AWS IoT sicheres Tunneling mit gleichzeitigen TCP-Verbindungen müssen Sie ein Upgrade auf die neueste Version des lokalen Proxys durchführen. Diese Funktion ist nicht verfügbar, wenn Sie den lokalen Proxy mit dem AWS IoT Device Client konfigurieren.

   ```
   // Start the destination local proxy
   ./localproxy -r us-east-1 -d HTTP=80 -t destination_client_access_token
   
   // Start the source local proxy
   ./localproxy -r us-east-1 -s HTTP=5555 -t source_client_access_token
   ```

   Weitere Informationen zum Konfigurieren und Verwenden des lokalen Proxys finden Sie unter [Wie man den lokalen Proxy benutzt](how-use-local-proxy.md).

Sie können jetzt den Tunnel verwenden, um auf die Webserver-Anwendung zuzugreifen. AWS IoT Secure Tunneling richtet automatisch die gleichzeitigen TCP-Verbindungen ein und verarbeitet sie, wenn mehrere Anfragen vom Client eingehen.