Protocolos de Transporte

Uma Análise Profunda sobre TCP e UDP
Aula de Engenharia e Redes de Computadores


O Protocolo TCP

Transmission Control Protocol — Foco em Fiabilidade e Controlo Estrito

Características Principais do TCP

  • Orientado à Conexão: Estabelece uma sessão dedicada (circuito virtual) antes de iniciar qualquer transmissão de dados útil.
  • Handshake de 3 Vias: Utiliza a sequência SYN, SYN-ACK e ACK para inicializar números de sequência de ambas as partes.
  • Entrega Garantida: Implementa confirmações positivas (ACK) e retransmissões automáticas (ARQ) em caso de perda de segmentos.
  • Ordenação de Bytes: Garante que os segmentos recebidos fora de ordem sejam reorganizados na ordem correta antes de serem entregues à aplicação.
  • Controlo de Fluxo: Ajusta o ritmo com base na capacidade de buffer do destinatário, mitigando o transbordo.

Mecanismos de Proteção do TCP

Fiabilidade Absoluta

Calcula somas de verificação (checksum) avançadas e descarta dados corrompidos, solicitando imediatamente o reenvio de pacotes em falta.

Janela Deslizante

O recetor dita o tamanho da janela de receção, gerindo dinamicamente a taxa de bytes permitida em trânsito sem necessidade de confirmação imediata.

Controlo de Congestionamento

Gere algoritmos como Slow Start, Congestion Avoidance e Fast Recovery para prevenir que a infraestrutura física de rede atinja o colapso.

Estrutura do Cabeçalho TCP

Campo do Cabeçalho Função Técnica na Ligação
Portas de Origem / Destino (16 bits cada) Encaminham o segmento de transporte para o processo/aplicação correto no sistema operativo.
Número de Sequência (32 bits) Determina a posição do primeiro byte do segmento no fluxo geral de dados.
Número de Confirmação (ACK) (32 bits) Indica o valor do próximo byte esperado pelo recetor da transmissão.
Bits de Controlo / Flags (9 bits) Flags lógicas fundamentais para gerir o estado da sessão (SYN, ACK, FIN, RST, PSH, URG).
Janela de Receção (Window Size) (16 bits) Define a largura do buffer livre no recetor para fins de controlo de fluxo de dados.

O Protocolo UDP

User Datagram Protocol — Desempenho Máximo com Latência Mínima

A Filosofia do UDP

O UDP foca-se na transmissão rápida de dados sem ligações prévias ou estados ativos. Funciona sob o paradigma do "melhor esforço" (best-effort).

Não há confirmação de entrega, reordenação de pacotes nem retransmissões automáticas. Cada datagrama é tratado como uma entidade independente de rede, reduzindo a latência local ao mínimo absoluto e permitindo taxas de débito elevadas em canais estáveis.

O Cabeçalho UDP Minimalista

Campo no Cabeçalho Objetivo do Campo
Porta de Origem (16 bits) Identifica a aplicação de origem no emissor (opcional no IPv4).
Porta de Destino (16 bits) Direciona o datagrama para o processo recetor correto no anfitrião de destino.
Comprimento (Length) (16 bits) Especifica o tamanho total do datagrama (cabeçalho + carga útil de dados).
Soma de Verificação (Checksum) (16 bits) Protege o datagrama contra corrupção básica de bits durante a transmissão de rede.

Comparação de Peso e Sobrecarga

60%
Menor Sobrecarga de Cabeçalho

Estrutura de Cabeçalho Leve

O cabeçalho TCP requer no mínimo 20 bytes de metadados para operar as suas extensas máquinas de estado e manter os registos da sessão ativos.

Em contrapartida, o UDP consome apenas 8 bytes fixos no cabeçalho. Isto traduz-se em menos largura de banda desperdiçada com cabeçalhos e menos processamento computacional nos nós terminais para decodificar os pacotes.

Cenários de Aplicação Prática

Integridade de Ficheiros (TCP)

Aplicações como HTTP/HTTPS (Web), SMTP (Email), SSH (Acesso Remoto) e FTP (Transferência de Ficheiros) dependem de dados sem qualquer margem de erro ou corrupção de bits.

Comunicação em Tempo Real (UDP)

Chamadas de Voz sobre IP (VoIP), transmissões de vídeo em tempo real (RTP) e videoconferências toleram perdas mínimas mas não toleram atrasos acumulados ou paragens bruscas.

Serviços Instantâneos (UDP)

Resolução de nomes DNS, atribuição de IPs via DHCP e troca de estados rápidos em jogos online competitivos exigem reações imediatas sem overhead de conexão prévia.

Tópicos para Discussão

  • Perda de Dados com UDP: Como é que aplicações modernas VoIP lidam com a eventual perda de pacotes de voz sem que o utilizador note quebras acústicas severas?
  • A Ascensão do HTTP/3: O protocolo HTTP/3 trocou o TCP pelo UDP (com a camada QUIC). Quais as vantagens e desafios desta decisão estrutural na infraestrutura da Web?
  • Ataques de Redes: Por que razão os ataques de negação de serviço por ampliação (amplification attacks) utilizam maioritariamente o UDP em detrimento do TCP?
  • Controlo no UDP: É viável ou recomendável programar mecanismos de retransmissão e controlo diretamente na camada aplicacional quando se opta pelo UDP?

Perguntas & Respostas

Espaço para debate académico sobre a camada de transporte.

Sistemas de Redes de Computadores | Unidade Curricular de Engenharia