FolioPierEstudos de TI

TCP e UDP: dois modos de transporte (Transporte)

Nota 17 de 54 · 4 min de leitura
Nesta página
  1. TCP: confiabilidade
  2. Recusa e silêncio: as duas falhas de conexão
  3. UDP: rapidez
  4. A consequência para o diagnóstico

Definida a porta, ainda é preciso decidir como os dados viajam: com garantia de entrega ou com rapidez. O TCP e o UDP são as duas respostas da camada de Transporte, e cada um deles se comporta de forma diferente quando algo falha.

TCP: confiabilidade

O TCP estabelece uma conexão antes de trocar dados, confirma o recebimento de cada parte, reenvia o que se perdeu e entrega tudo na ordem correta. A conexão começa com uma troca de três mensagens, chamada handshake de três vias:

  1. O cliente envia ao servidor uma mensagem SYN, de sincronização, pedindo para abrir a conexão.
  2. O servidor responde com uma mensagem SYN/ACK, que aceita o pedido e confirma o recebimento.
  3. O cliente envia uma mensagem ACK, de confirmação, e a conexão fica estabelecida.

Ao final da comunicação, os dois lados trocam mensagens de encerramento, chamadas FIN, e a conexão é fechada.

Os bancos de dados, o compartilhamento de arquivos, os sites e quase todos os sistemas corporativos usam o TCP.

Recusa e silêncio: as duas falhas de conexão

Quando o cliente tenta abrir uma conexão TCP e não consegue, a falha costuma aparecer de duas formas:

  • Recusa imediata: o computador de destino responde com uma mensagem RST, de reinício, que em geral significa que nenhum programa está escutando naquela porta. O erro aparece na hora, com mensagens como conexão recusada. O computador de destino está acessível, mas o serviço está parado ou usa outra porta. Em alguns casos, a recusa também pode vir de um firewall configurado para rejeitar a conexão.
  • Tempo esgotado: nenhuma resposta chega, e o cliente desiste depois de algum tempo. As causas mais comuns são um firewall que descarta a conexão sem avisar, um endereço errado ou um computador de destino desligado.

Distinguir a recusa do silêncio economiza tempo no diagnóstico, porque cada caso aponta para causas diferentes.

UDP: rapidez

O UDP não estabelece conexão, não confirma a entrega e não reenvia o que se perdeu. O UDP apenas envia os dados. Esse modo é usado quando a rapidez importa mais do que cada mensagem individual, como em chamadas de voz e vídeo, na maior parte das consultas DNS, na distribuição de endereços pelo DHCP e na sincronização de horário dos computadores.

A consequência para o diagnóstico

Um teste de porta bem-sucedido significa que o handshake se completou e que algum programa aceita conexões naquela porta. O teste não significa que o sistema funciona, porque a aplicação ainda depende de usuário, senha, versão e do próprio protocolo do programa.

As ferramentas comuns de teste de porta só testam o TCP, porque dependem do handshake:

  • Test-NetConnection 192.168.1.10 -Port 3306: testa, no PowerShell, se a porta 3306 do servidor da loja aceita conexões;
  • telnet 192.168.1.10 3306: faz o mesmo teste, quando o cliente telnet está habilitado no Windows.

No UDP, não existe handshake para observar. Um serviço UDP é testado pelo próprio aplicativo que o utiliza.

No suporte

As regras de firewall e de encaminhamento de portas são criadas para cada protocolo. Uma regra para TCP não libera o UDP, e um teste TCP bem-sucedido não valida um serviço UDP.

Para guardar

  • O TCP estabelece conexão, confirma a entrega, reenvia o que se perdeu e mantém a ordem dos dados.
  • A conexão TCP começa com o handshake de três vias: SYN, SYN/ACK e ACK.
  • A recusa imediata indica que nenhum programa escuta na porta, e o tempo esgotado indica falta de resposta.
  • O UDP envia os dados sem conexão e sem confirmação.
  • Os testes de porta comuns verificam apenas o TCP.
O teste de porta TCP foi bem-sucedido. Isso garante que o sistema funciona?

Não. O teste garante que o handshake se completou e que algum programa aceita conexões na porta. O funcionamento do sistema depende ainda da aplicação, como o protocolo do programa, o usuário, a senha e a versão.

O teste da porta 3306 do servidor da loja falha imediatamente, com a mensagem de conexão recusada. O que essa resposta indica?

A resposta indica que o servidor está acessível pela rede, mas que nenhum programa está escutando na porta 3306. Em geral, o serviço do banco de dados está parado ou configurado em outra porta. Se a falha fosse por tempo esgotado, a suspeita recairia sobre um firewall, um endereço errado ou um computador desligado.

Publicado a partir do Obsidian · FolioPier