Processo de Comunicação TCP
Processo de Comunicação TCP

Processo de Comunicação TCP

Processos do servidor TCP

Você já conhece os fundamentos do TCP. Compreender a função dos números de porta ajudará você a compreender os detalhes do processo de comunicação TCP. Neste tópico, você também aprenderá sobre o handshake TCP de três vias e os processos de encerramento de sessão.

Cada processo de aplicativo em execução em um servidor é configurado para usar um número de porta. O número da porta é atribuído automaticamente ou configurado manualmente por um administrador do sistema.

Um servidor individual não pode ter dois serviços atribuídos ao mesmo número de porta dentro dos mesmos serviços da camada de transporte. Por exemplo, um host executando um aplicativo de servidor da web e um aplicativo de transferência de arquivos não podem ser configurados para usar a mesma porta, como a porta TCP 80.

Um aplicativo de servidor ativo atribuído a uma porta específica é considerado aberto, o que significa que a camada de transporte aceita e processa os segmentos endereçados a essa porta. Qualquer solicitação de cliente recebida endereçada ao soquete correto é aceita e os dados são passados ​​para o aplicativo do servidor. Pode haver muitas portas abertas simultaneamente em um servidor, uma para cada aplicativo de servidor ativo.

Clique em cada botão para obter mais informações sobre os processos do servidor TCP.

O Cliente 1 está solicitando serviços da web e o Cliente 2 está solicitando serviço de e-mail usando portas conhecidas (ou seja, serviços da web = porta 80, serviços de e-mail = porta 25).

Clientes enviando solicitações TCP

As solicitações geram dinamicamente um número de porta de origem. Nesse caso, o Cliente 1 está usando a porta de origem 49152 e o Cliente 2 está usando a porta de origem 51152.

Solicitar portas de destino

Quando o servidor responde às solicitações do cliente, ele inverte as portas de destino e de origem da solicitação inicial.

Solicitar portas de origem

Observe que a resposta do servidor à solicitação da web agora tem a porta de destino 49152 e a resposta de e-mail agora tem a porta de destino 51152.

Portas de destino de resposta

A porta de origem na resposta do servidor é a porta de destino original nas solicitações iniciais.

Portas de fonte de resposta

Estabelecimento de conexão TCP

Em algumas culturas, quando duas pessoas se encontram, elas geralmente se cumprimentam apertando as mãos. Ambas as partes entendem o ato de apertar as mãos como um sinal para uma saudação amigável. As conexões na rede são semelhantes. Em conexões TCP, o cliente host estabelece a conexão com o servidor usando o processo de handshake de três vias.

Clique em cada botão para obter mais informações sobre cada etapa de estabelecimento da conexão TCP.

O cliente inicial solicita uma sessão de comunicação cliente-servidor com o servidor.

Etapa 1 SYN

O servidor reconhece a sessão de comunicação cliente-servidor e solicita uma sessão de comunicação servidor-cliente.

Etapa 2 ACK e SYN

O cliente inicial reconhece a sessão de comunicação entre o servidor e o cliente.

Etapa 3 ACK

Término da Sessão

Para fechar uma conexão, o sinalizador de controle Concluir (FIN) deve ser definido no cabeçalho do segmento. Para terminar cada sessão TCP unilateral, um handshake bidirecional, consistindo em um segmento FIN e um segmento de confirmação (ACK), é usado. Portanto, para encerrar uma única conversa com suporte do TCP, quatro trocas são necessárias para encerrar ambas as sessões. Tanto o cliente quanto o servidor podem iniciar a rescisão.

No exemplo, os termos cliente e servidor são usados como referência para simplificar, mas quaisquer dois hosts que tenham uma sessão aberta podem iniciar o processo de encerramento.

Clique em cada botão para obter mais informações sobre as etapas de encerramento da sessão.

Quando o cliente não tem mais dados para enviar no fluxo, ele envia um segmento com o sinalizador FIN definido.

FIN

O servidor envia um ACK para confirmar o recebimento do FIN para encerrar a sessão do cliente para o servidor.

ACK

O servidor envia um FIN ao cliente para encerrar a sessão servidor para cliente.

FIN

O cliente responde com um ACK para reconhecer o FIN do servidor.

Quando todos os segmentos forem reconhecidos, a sessão é encerrada.

Análise de handshake TCP de três vias

Os hosts mantêm o estado, rastreiam cada segmento de dados em uma sessão e trocam informações sobre quais dados são recebidos usando as informações no cabeçalho TCP. O TCP é um protocolo full-duplex, em que cada conexão representa duas sessões de comunicação unilateral. Para estabelecer a conexão, os hosts realizam um handshake de três vias. Conforme mostrado na figura, os bits de controle no cabeçalho TCP indicam o progresso e o status da conexão.

Estas são as funções do handshake de três vias:

  • Ele estabelece que o dispositivo de destino está presente na rede.
  • Ele verifica se o dispositivo de destino tem um serviço ativo e está aceitando solicitações no número da porta de destino que o cliente inicial pretende usar.
  • Informa ao dispositivo de destino que o cliente de origem pretende estabelecer uma sessão de comunicação naquele número de porta.

Depois que a comunicação é concluída, as sessões são fechadas e a conexão é encerrada. Os mecanismos de conexão e sessão habilitam a função de confiabilidade do TCP.

Campo de bits de controle

Campo de bits de controle

Os seis bits no campo Bits de controle do cabeçalho do segmento TCP também são conhecidos como sinalizadores. Um sinalizador é um bit definido como ativado ou desativado.

Os seis sinalizadores de bits de controle são os seguintes:

  • URG – Campo de ponteiro urgente significativo
  • ACK – Sinalizador de confirmação usado no estabelecimento da conexão e no encerramento da sessão
  • PSH – Função push
  • RST – Reinicialize a conexão quando ocorrer um erro ou tempo limite
  • SYN – Sincroniza os números de sequência usados no estabelecimento da conexão
  • FIN – Não há mais dados do remetente e usados no encerramento da sessão

Pesquise na Internet para saber mais sobre os sinalizadores PSH e URG.

Vídeo – handshake de três vias TCP

Clique em Play na figura para ver um vídeo de demonstração do handshake TCP 3-Way, usando o Wireshark.