Carregando
0x70Lição 8 de 15

Compare TCP e UDP

Aprenda o que os protocolos de transporte acrescentam ao IP.

25 min Questionário com 7 perguntas
Ao final desta lição, você saberá
  • Explicar como as portas entregam dados ao programa certo.
  • Acompanhar a negociação inicial de três vias do TCP (three-way handshake).
  • Escolher TCP ou UDP conforme as necessidades de entrega.

O IP leva um pacote até uma máquina, na base do melhor esforço. Ele não promete nada: pacotes podem se perder, duplicar ou chegar fora de ordem, e ele não faz ideia de qual programa deve recebê-los. A camada de transporte lida com esses dois problemas, e os dois protocolos principais fazem isso de formas bem diferentes.

Portas: da máquina ao programa

Uma porta é um número de 16 bits que identifica uma ponta de comunicação de um programa. Servidores escutam em portas conhecidas, como 443 para HTTPS e 53 para DNS. Clientes recebem uma porta temporária do sistema operacional.

Uma conexão TCP é identificada por quatro valores: endereço de origem, porta de origem, endereço de destino e porta de destino. É assim que um servidor atende milhares de conexões na porta 443 sem confundi-las.

Seu notebook192.168.1.10Porta51514NavegadorServidor203.0.113.822SSH443Servidor web5432Banco de dadosUma conexão TCP192.168.1.10 : 51514 ⇄ 203.0.113.8 : 443
O endereço IP encontra a máquina; a porta encontra o programa. Esses quatro valores juntos identificam uma conexão TCP.

TCP: uma conversa confiável

O TCP transforma pacotes não confiáveis em um fluxo de bytes confiável e ordenado. Ele numera cada byte, e quem recebe confirma o que chegou, de modo que dados perdidos possam ser reenviados e dados fora de ordem possam ser reorganizados.

Antes de tudo isso, os dois lados precisam combinar os números iniciais. Essa é a negociação inicial de três vias (three-way handshake).

Experimente

Até 15 XP

Abra uma conexão TCP

Acompanhe os números de sequência. Cada lado escolhe um número inicial aleatório, e uma confirmação diz “o próximo número que espero”. Preveja antes de revelar.

Mensagem 1 de 5Previsões 0/0
Cliente
Servidor

Aqui está essa mesma conversa em uma captura real. [S] é SYN, [S.] é SYN-ACK, [.] é um ACK simples e [P.] são dados sendo entregues à aplicação.

terminal
1$ sudo tcpdump -n -S host 203.0.113.8
2IP 192.168.1.10.51514 > 203.0.113.8.443: Flags [S], seq 1000, length 0
3IP 203.0.113.8.443 > 192.168.1.10.51514: Flags [S.], seq 5000, ack 1001, length 0
4IP 192.168.1.10.51514 > 203.0.113.8.443: Flags [.], ack 5001, length 0
5IP 192.168.1.10.51514 > 203.0.113.8.443: Flags [P.], seq 1001:1501, ack 5001, length 500
6IP 203.0.113.8.443 > 192.168.1.10.51514: Flags [.], ack 1501, length 0

UDP: é só enviar

O UDP acrescenta ao IP portas e uma soma de verificação, e quase nada além disso. Não há negociação inicial, confirmação nem retransmissão. Cada datagrama é independente: chega inteiro ou não chega.

Parece pior, mas é a escolha certa quando dados antigos não servem para nada. Em uma chamada de vídeo, um pacote retransmitido meio segundo depois chegaria quando aquele momento já passou, então é melhor pulá-lo e seguir em frente.

Experimente

Até 15 XP

Escolha o transporte

Para cada aplicação, pergunte: dado atrasado é pior do que dado faltando? Se todo byte precisa chegar, você provavelmente quer TCP.

0 de 6 classificadosPontuação 0/0
  • “Baixar uma atualização de software”

  • “Uma chamada de voz ao vivo”

  • “Carregar um extrato bancário”

  • “Uma consulta DNS”

  • “Atualizações de posição de um jogo multiplayer rápido”

  • “Enviar um e-mail”

Experimente

Até 15 XP

Leia conexões e capturas

ss lista os sockets de uma máquina (netstat é o equivalente mais antigo). Clique na linha que responde a cada pergunta.

Rodada 1 de 3: Encontre quem está escutandoPontuação 0/0

Qual linha mostra o servidor web esperando novas conexões HTTPS?

$ ss -tan

Principais conclusões

  • Portas direcionam os dados a um programa, e quatro valores identificam uma conexão TCP.

  • O TCP oferece um fluxo de bytes confiável e ordenado, ao custo de uma negociação inicial.

  • O UDP envia datagramas independentes e deixa a confiabilidade para a aplicação.

Quiz da aula

7 perguntas · aprovação com 5 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…