O Transmission Control Protocol (TCP) é o protocolo da camada de transporte responsável por entrega confiável e ordenada de dados através de redes IP. Gerencia segmentação de pacotes, controle de fluxo e reassembly no destino.
Funções Centrais do TCP
Gerenciamento de Tamanho de Pacote
- MSS (Maximum Segment Size): Negociado durante handshake (tipicamente 1460 bytes para Ethernet)
- Path MTU Discovery: Ajusta dinamicamente para evitar fragmentação
- Segmentação: Quebra dados da aplicação em segmentos apropriados
Controle de Taxa de Transferência (Controle de Fluxo e Congestionamento)
- Janela Deslizante: Receptor anuncia capacidade de buffer (rwnd)
- Janela de Congestionamento (cwnd): Remetente limita baseado em condições de rede
- Algoritmos: Slow Start, Congestion Avoidance, Fast Retransmit/Recovery
- Variantes Modernas: CUBIC (padrão Linux), BBR, Vegas, Reno
Reassembly de Mensagem
- Números de Sequência: Cada byte numerado para ordenação
- Confirmações (ACKs): ACKs cumulativos confirmam recebimento
- Buffer de Reassembly: Segmentos fora de ordem mantidos até gaps preenchidos
- Detecção de Duplicatas: Números de sequência previnem duplicação
TCP vs UDP
Diferente do UDP (sem conexão, sem garantias), TCP fornece:
- Orientado a conexão (handshake de 3 vias)
- Entrega confiável (retransmissão em perda)
- Entrega ordenada (números de sequência)
- Controle de fluxo (previne overflow do receptor)
- Controle de congestionamento (previne colapso da rede)
Impacto no Mundo Real
Mecanismos do TCP permitem navegação web (HTTP/HTTPS), email (SMTP/IMAP), transferência de arquivos (FTP/SFTP), streaming (com buffering). Seu controle de taxa adaptativo previne colapso por congestionamento — feature crítica de estabilidade da internet.