

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Multiplexar fluxos de dados e usar conexões TCP simultâneas em um túnel seguro
<a name="multiplexing"></a>

Você pode usar vários fluxos de dados por túnel usando o atributo de multiplexação de encapsulamento seguro. Com a multiplexação, você pode solucionar problemas de dispositivos usando vários fluxos de dados. Você também pode reduzir sua carga operacional eliminando a necessidade de criar, implantar e iniciar vários proxies locais ou abrir vários túneis no mesmo dispositivo. Por exemplo, a multiplexação pode ser usada no caso de um navegador da Web que exija o envio de vários fluxos de dados HTTP e SSH.

Para cada fluxo de dados, o tunelamento AWS IoT seguro suporta conexões TCP simultâneas. O uso de conexões simultâneas reduz o potencial de tempo limite no caso de várias solicitações do cliente. Por exemplo, ele pode reduzir o tempo de carregamento ao acessar remotamente um servidor web local ao dispositivo de destino.

As seções a seguir explicam mais sobre multiplexação e uso de conexões TCP simultâneas e seus diferentes casos de uso.

**Topics**
+ [Multiplexação de vários fluxos de dados em um túnel seguro](multiplexing-multiple-streams.md)
+ [Como usar conexões TCP simultâneas em um túnel seguro](multiplexing-simultaneous-tcp.md)

# Multiplexação de vários fluxos de dados em um túnel seguro
<a name="multiplexing-multiple-streams"></a>

Você pode usar o atributo de multiplexação para dispositivos que usam várias conexões ou portas. A multiplexação também pode ser usada quando você precisa de várias conexões com um dispositivo remoto para solucionar qualquer problema. Por exemplo, ela pode ser usada no caso de um navegador da web que exija o envio de vários fluxos de dados HTTP e SSH. Os dados do aplicativo de ambos os fluxos são enviados ao dispositivo simultaneamente pelo túnel multiplexado.

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

Digamos que você precise se conectar a um aplicativo web no dispositivo para alterar alguns parâmetros de rede e, ao mesmo tempo, emitir comandos shell por meio do terminal para verificar se o dispositivo está funcionando corretamente com os novos parâmetros de rede. Nesse cenário, talvez seja necessário conectar-se ao dispositivo por meio de HTTP e SSH e transferir dois fluxos de dados paralelos para acessar simultaneamente o aplicativo web e o terminal. Com o atributo de multiplexação, esses dois fluxos independentes podem ser transferidos pelo mesmo túnel ao mesmo tempo.

![\[Um diagrama que mostra a arquitetura de nuvem de IoT com dispositivos de origem, servidores proxy e dispositivos de destino para streaming de dados em diferentes protocolos.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/tunnel-multiplexing.png)


## Como configurar um túnel multiplexado
<a name="multiplexing-tutorial"></a>

O procedimento a seguir explica como configurar um túnel multiplexado para solucionar problemas de dispositivos usando aplicativos que exigem conexões com várias portas. Você configurará um túnel com dois fluxos multiplexados: um fluxo HTTP e um fluxo SSH.

1. 

**(Opcional) Criar arquivos de configuração**

   Como alternativa, você pode configurar o dispositivo de origem e de destino com arquivos de configuração. Use arquivos de configuração se seus mapeamentos de portas provavelmente mudarem com frequência. Você pode pular essa etapa se preferir especificar explicitamente o mapeamento de portas usando a CLI ou se não precisar iniciar o proxy local nas portas de escuta designadas. Para obter mais informações sobre como usar arquivos de configuração, consulte [Opções definidas via --config](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via---config) em. GitHub

   1. No dispositivo de origem, na pasta em que o proxy local será executado, crie uma pasta de configuração chamada `Config`. Dentro desta pasta, crie um arquivo chamado `SSHSource.ini` com o seguinte conteúdo:

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

   1. No dispositivo de origem, na pasta em que o proxy local será executado, crie uma pasta de configuração chamada `Config`. Dentro desta pasta, crie um arquivo chamado `SSHDestination.ini` com o seguinte conteúdo:

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

1. 

**Abrir um túnel**

   Abra um túnel usando a `OpenTunnel` operação da API ou o `open-tunnel` comando CLI. Configure o destino especificando `SSH1` e `HTTP1` como os serviços e o nome da AWS IoT coisa que corresponde ao seu dispositivo remoto. Seus aplicativos SSH e HTTP estão sendo executados nesse dispositivo remoto. Você já deve ter criado a coisa de IoT no AWS IoT registro. Para obter mais informações, consulte [Gerenciar objetos com o Registro](thing-registry.md).

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

   A execução desse comando gera os tokens de acesso de origem e destino que você usará para executar o 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. 

**Configurar e iniciar o proxy local**

   Antes de executar o proxy local, configure o AWS IoT Device Client ou baixe o código-fonte do proxy local [GitHub](https://github.com/aws-samples/aws-iot-securetunneling-localproxy)e crie-o para a plataforma de sua escolha. Em seguida, você pode iniciar o proxy local de destino e de origem para se conectar ao túnel seguro. Para obter mais informações sobre como configurar e usar o proxy local, consulte [Como usar o proxy local](how-use-local-proxy.md).
**nota**  
No dispositivo de origem, se você não usar nenhum arquivo de configuração ou especificar o mapeamento de portas usando a CLI, ainda poderá usar o mesmo comando para executar o proxy local. O proxy local no modo de origem selecionará automaticamente as portas disponíveis para uso e os mapeamentos para você.

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

   Execute os comandos a seguir para executar o proxy local nos modos de origem e destino usando arquivos de configuração.

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

   Execute os comandos a seguir para executar o proxy local nos modos de origem e destino especificando explicitamente os mapeamentos de portas usando a 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
   ```

------

Os dados do aplicativo da conexão SSH e HTTP agora podem ser transferidos simultaneamente pelo túnel multiplexado. Conforme visto no mapa abaixo, o identificador de serviço atua como um formato legível para traduzir o mapeamento da porta entre o dispositivo de origem e o de destino. Com essa configuração, o tunelamento seguro encaminha qualquer tráfego HTTP de entrada da porta do *5555* dispositivo de origem para a porta do dispositivo de destino e qualquer tráfego SSH de entrada de porta *3333* para porta *80* no dispositivo de destino. *22*

![\[Um processo de tradução para mapear identificadores de serviço de proxies locais de origem e destino para mapeamentos de portas traduzidos após o processamento.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/multiplexing-post-mapping-translation.png)


# Como usar conexões TCP simultâneas em um túnel seguro
<a name="multiplexing-simultaneous-tcp"></a>

AWS IoT o tunelamento seguro suporta mais de uma conexão TCP simultaneamente para cada fluxo de dados. Você pode usar esse recurso quando precisar de conexões simultâneas com um dispositivo remoto. O uso de conexões TCP simultâneas reduz o potencial de tempo limite no caso de múltiplas solicitações do cliente. Por exemplo, ao acessar um servidor web com vários componentes em execução, conexões TCP simultâneas podem reduzir o tempo necessário para carregar o site. 

**nota**  
As conexões TCP simultâneas têm um limite de largura de banda de 800 kilobytes por segundo para cada uma. Conta da AWS AWS IoT o tunelamento seguro pode configurar esse limite para você, dependendo do número de solicitações recebidas.

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

Digamos que você precise acessar remotamente um servidor da web que esteja localizado no dispositivo de destino e tenha vários componentes em execução nele. Com uma única conexão TCP, ao tentar acessar o servidor web, o carregamento sequencial pode aumentar o tempo necessário para carregar os recursos no site. As conexões TCP simultâneas podem reduzir o tempo de carregamento atendendo aos requisitos de recursos do site, reduzindo assim o tempo de acesso. O diagrama a seguir mostra como as conexões TCP simultâneas são compatíveis com o fluxo de dados para o aplicativo do servidor da web em execução no dispositivo remoto.

**nota**  
Se você quiser acessar vários aplicativos em execução no dispositivo remoto usando o túnel, você pode usar a multiplexação de túneis. Para obter mais informações, consulte [Multiplexação de vários fluxos de dados em um túnel seguro](multiplexing-multiple-streams.md).

![\[Uma ilustração mostrando a configuração da nuvem de IoT com dispositivo de origem, proxy local, servidores proxy e dispositivo de destino com aplicativo de servidor web, conectados via protocolos TCP e WSS.\]](http://docs.aws.amazon.com/pt_br/iot/latest/developerguide/images/tcp-tunneling.png)


## Como usar conexões TCP simultâneas
<a name="multiple-tcp-tutorial"></a>

O procedimento a seguir explica como usar conexões TCP simultâneas para acessar o navegador da Web no dispositivo remoto. Quando há várias solicitações do cliente, o tunelamento AWS IoT seguro configura automaticamente conexões TCP simultâneas para lidar com as solicitações, reduzindo assim o tempo de carregamento.

1. 

**Abrir um túnel**

   Abra um túnel usando a `OpenTunnel` operação da API ou o `open-tunnel` comando CLI. Configure o destino especificando `HTTP` como o serviço e o nome do AWS IoT item que corresponde ao seu dispositivo remoto. Seu aplicativo de servidor da web está sendo executado neste dispositivo remoto. Você já deve ter criado a coisa de IoT no AWS IoT registro. Para obter mais informações, consulte [Gerenciar objetos com o Registro](thing-registry.md).

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

   A execução desse comando gera os tokens de acesso de origem e destino que você usará para executar o 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. 

**Configurar e iniciar o proxy local**

   Antes de executar o proxy local, baixe o código-fonte do proxy local [GitHub](https://github.com/aws-samples/aws-iot-securetunneling-localproxy)e crie-o para a plataforma de sua escolha. Você pode então iniciar o proxy local de destino e de origem para se conectar ao túnel seguro e começar a usar o aplicativo de servidor web remoto.
**nota**  
Para que o tunelamento AWS IoT seguro use conexões TCP simultâneas, você deve atualizar para a versão mais recente do proxy local. Esse atributo não estará disponível se você configurar o proxy local usando o AWS IoT Device Client.

   ```
   // 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 obter mais informações sobre como configurar e usar o proxy local, consulte [Como usar o proxy local](how-use-local-proxy.md).

Agora você pode usar o túnel para acessar o aplicativo do servidor web. AWS IoT o tunelamento seguro configurará e manipulará automaticamente as conexões TCP simultâneas quando houver várias solicitações do cliente.