

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Multiplex flujos de datos y uso de conexiones TCP simultáneas en un túnel seguro
<a name="multiplexing"></a>

Puede utilizar varios flujos de datos por túnel mediante la característica de multiplexación por túnel segura. Con la multiplexación, puede solucionar problemas de los dispositivos que utilizan varios flujos de datos. También puede reducir la carga operativa al eliminar la necesidad de crear, implementar e iniciar varios proxies locales o abrir varios túneles en el mismo dispositivo. Por ejemplo, la multiplexación se puede utilizar en el caso de un navegador web que requiera enviar varios flujos de datos HTTP y SSH.

Para cada flujo de datos, la tunelización AWS IoT segura admite conexiones TCP simultáneas. El uso de conexiones simultáneas reduce la posibilidad de que se agote el tiempo de espera en caso de que el cliente presente varias solicitudes. Por ejemplo, puede reducir el tiempo de carga al acceder de forma remota a un servidor web local del dispositivo de destino.

En las siguientes secciones se explica más acerca de la multiplexación y el uso de conexiones TCP simultáneas, así como sus diferentes casos de uso.

**Topics**
+ [Multiplexación de varios flujos de datos en un túnel seguro](multiplexing-multiple-streams.md)
+ [Uso de conexiones TCP simultáneas en un túnel seguro](multiplexing-simultaneous-tcp.md)

# Multiplexación de varios flujos de datos en un túnel seguro
<a name="multiplexing-multiple-streams"></a>

Puede utilizar la característica de multiplexación para dispositivos que utilizan varias conexiones o puertos. La multiplexación también se puede utilizar cuando se necesitan varias conexiones a un dispositivo remoto para solucionar cualquier problema. Por ejemplo, puede utilizarse en el caso de un navegador web que requiera el envío de múltiples flujos de datos HTTP y SSH. Los datos de aplicación de ambos flujos se envían al dispositivo simultáneamente a través del túnel multiplexado.

## Ejemplo de caso de uso
<a name="multiplexing-use-case"></a>

Supongamos que necesita conectarse a una aplicación web integrada en el dispositivo para cambiar algunos parámetros de red y, al mismo tiempo, emitir comandos de consola a través del terminal para comprobar que el dispositivo funciona correctamente con los nuevos parámetros de red. En este escenario, es posible que deba conectarse al dispositivo a través de HTTP y SSH y transferir dos flujos de datos paralelos para acceder simultáneamente a la aplicación web y al terminal. Con la característica de multiplexación, estos dos flujos independientes se pueden transferir a través del mismo túnel al mismo tiempo.

![\[Un diagrama que muestra la arquitectura de nube de IoT con dispositivos de origen, servidores proxy y dispositivos de destino para transmitir datos a través de diferentes protocolos.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/tunnel-multiplexing.png)


## Cómo configurar un túnel multiplexado
<a name="multiplexing-tutorial"></a>

El siguiente procedimiento explica cómo configurar un túnel multiplexado para solucionar problemas de dispositivos que utilizan aplicaciones que requieren conexiones a varios puertos. Configurará un túnel con dos flujos multiplexados: un flujo HTTP y un flujo SSH.

1. 

**(Opcional) Cree archivos de configuración**

   Si lo desea, puede configurar el dispositivo de origen y destino con archivos de configuración. Utilice archivos de configuración si es probable que las asignaciones de puertos cambien con frecuencia. Puede omitir este paso si prefiere especificar la asignación de puertos de forma explícita mediante la CLI o si no necesita iniciar el proxy local en los puertos de escucha designados. Para obtener más información sobre cómo usar los archivos de configuración, consulte [las opciones configuradas mediante --config](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via---config) en. GitHub

   1. En su dispositivo fuente, en la carpeta donde se ejecutará su proxy local, cree una carpeta de configuración llamada `Config`. Dentro de esta carpeta, cree un archivo llamado `SSHSource.ini` con el siguiente contenido:

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

   1. En su dispositivo de destino, en la carpeta donde se ejecutará su proxy local, cree una carpeta de configuración llamada `Config`. Dentro de esta carpeta, cree un archivo llamado `SSHDestination.ini` con el siguiente contenido:

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

1. 

**Abrir un túnel**

   Abra un túnel mediante la operación API `OpenTunnel` o el comando de CLI `open-tunnel`. Configure el destino especificando `SSH1` y `HTTP1` como los servicios y el nombre de AWS IoT lo que corresponde a su dispositivo remoto. Sus aplicaciones SSH y HTTP se ejecutan en este dispositivo remoto. Debes haber creado ya lo de IoT en el AWS IoT registro. Para obtener más información, consulte [Administración de objetos con el registro](thing-registry.md).

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

   Al ejecutar este comando, se generan los tokens de acceso de origen y destino que utilizarás para ejecutar el proxy local.

   ```
   {
   	"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. 

**Configure e inicie el proxy local**

   Antes de poder ejecutar el proxy local, configura el cliente del AWS IoT dispositivo o descarga el código fuente del proxy local [GitHub](https://github.com/aws-samples/aws-iot-securetunneling-localproxy)y compruébalo para la plataforma que prefieras. A continuación, puede iniciar el proxy local de destino y de origen para conectarse al túnel seguro. Para obtener más información sobre la configuración y el uso del proxy local, consulte [Cómo usar el proxy local](how-use-local-proxy.md).
**nota**  
En el dispositivo de origen, si no utiliza ningún archivo de configuración ni especifica la asignación de puertos mediante la CLI, puede seguir utilizando el mismo comando para ejecutar el proxy local. El proxy local en modo fuente recogerá automáticamente los puertos disponibles para usarlos y las asignaciones por usted.

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

   Ejecute los siguientes comandos para ejecutar el proxy local en los modos de origen y destino mediante archivos de configuración.

   ```
   // ----------------- 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 ]

   Ejecute los siguientes comandos para ejecutar el proxy local en los modos de origen y destino especificando las asignaciones de puertos de forma explícita mediante la CLI.

   ```
   // ----------------- 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
   ```

------

Los datos de la aplicación de la conexión SSH y HTTP ahora se pueden transferir simultáneamente a través del túnel multiplexado. Como se ve en el siguiente mapa, el identificador de servicio actúa como un formato legible para traducir la asignación de puertos entre el dispositivo de origen y el de destino. Con esta configuración, la tunelización segura reenvía todo el tráfico HTTP entrante del puerto *5555* del dispositivo de origen al puerto *80* del dispositivo de destino y cualquier tráfico SSH entrante de un puerto *3333* *22* a otro del dispositivo de destino.

![\[Proceso de traducción para asignar los identificadores del servicio desde los proxies locales de origen y destino a las asignaciones de puertos traducidas después del procesamiento.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/multiplexing-post-mapping-translation.png)


# Uso de conexiones TCP simultáneas en un túnel seguro
<a name="multiplexing-simultaneous-tcp"></a>

AWS IoT La tunelización segura admite más de una conexión TCP simultáneamente para cada flujo de datos. Puede utilizar esta capacidad cuando necesite conexiones simultáneas a un dispositivo remoto. El uso de conexiones TCP simultáneas reduce la posibilidad de que se agote el tiempo de espera en caso de peticiones múltiples del cliente. Por ejemplo, al acceder a un servidor web que tiene varios componentes ejecutándose, las conexiones TCP simultáneas pueden reducir el tiempo que se tarda en cargar el sitio. 

**nota**  
Las conexiones TCP simultáneas tienen un límite de ancho de banda de 800 kilobytes por segundo para cada una. Cuenta de AWS AWS IoT La tunelización segura puede configurar este límite por usted en función del número de solicitudes entrantes.

## Ejemplo de caso de uso
<a name="tcp-use-case"></a>

Supongamos que necesita acceder de forma remota a un servidor web que sea local en el dispositivo de destino y que tenga varios componentes ejecutándose en él. Con una sola conexión TCP, al intentar acceder al servidor web, la carga secuencial puede aumentar el tiempo que se tarda en cargar los recursos del sitio. Las conexiones TCP simultáneas pueden reducir el tiempo de carga al cumplir con los requisitos de recursos del sitio y, por lo tanto, reducir el tiempo de acceso. El siguiente diagrama muestra cómo se admiten las conexiones TCP simultáneas para el flujo de datos a la aplicación del servidor web que se ejecuta en el dispositivo remoto.

**nota**  
Si desea acceder a varias aplicaciones que se ejecutan en el dispositivo remoto mediante el túnel, puede utilizar la multiplexación por túnel. Para obtener más información, consulte [Multiplexación de varios flujos de datos en un túnel seguro](multiplexing-multiple-streams.md).

![\[Una ilustración que muestra la configuración de la nube de IoT con el dispositivo de origen, el proxy local, los servidores proxy y el dispositivo de destino con la aplicación de servidor web, conectada a través de los protocolos TCP y WSS.\]](http://docs.aws.amazon.com/es_es/iot/latest/developerguide/images/tcp-tunneling.png)


## Cómo utilizar conexiones TCP simultáneas
<a name="multiple-tcp-tutorial"></a>

El siguiente procedimiento explica cómo utilizar conexiones TCP simultáneas para acceder al navegador web del dispositivo remoto. Cuando hay varias solicitudes del cliente, la tunelización AWS IoT segura configura automáticamente conexiones TCP simultáneas para gestionar las solicitudes, lo que reduce el tiempo de carga.

1. 

**Abrir un túnel**

   Abra un túnel mediante la operación API `OpenTunnel` o el comando de CLI `open-tunnel`. Configure el destino especificando `HTTP` como servicio y el nombre de la cosa AWS IoT que corresponde a su dispositivo remoto. La aplicación de su servidor web se está ejecutando en este dispositivo remoto. Debes haber creado ya lo de IoT en el AWS IoT registro. Para obtener más información, consulte [Administración de objetos con el registro](thing-registry.md).

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

   Al ejecutar este comando, se generan los tokens de acceso de origen y destino que utilizarás para ejecutar el proxy local.

   ```
   {
   	"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. 

**Configure e inicie el proxy local**

   Antes de poder ejecutar el proxy local, descarga el código fuente del proxy local [GitHub](https://github.com/aws-samples/aws-iot-securetunneling-localproxy)y compruébalo para la plataforma que prefieras. A continuación, puede iniciar el proxy local de destino y de origen para conectarse al túnel seguro y empezar a utilizar la aplicación del servidor web remoto.
**nota**  
Para que la tunelización AWS IoT segura utilice conexiones TCP simultáneas, debe actualizar el proxy local a la versión más reciente. Esta característica no está disponible si configura el proxy local mediante el cliente del dispositivo AWS IoT .

   ```
   // 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
   ```

   Para obtener más información sobre la configuración y el uso del proxy local, consulte [Cómo usar el proxy local](how-use-local-proxy.md).

Ahora puede usar el túnel para acceder a la aplicación del servidor web. AWS IoT secure tunneling configurará y gestionará automáticamente las conexiones TCP simultáneas cuando haya varias solicitudes del cliente.