O protocolo de camada de transporte mais amplamente usado para aplicações Internet sobre IP é o TCP (Transmission Control Protocol).
Por Que o TCP Domina
- Confiabilidade: Garante entrega em ordem, verificada, sem duplicatas via números de sequência, ACKs, retransmissões.
- Orientado a conexão: Handshake de 3 vias (SYN, SYN-ACK, ACK) estabelece estado; encerramento (FIN/FIN-ACK).
- Controle de Fluxo: Janela deslizante previne overflow de buffer do receptor.
- Controle de Congestionamento: Algoritmos Reno, CUBIC, BBR adaptam taxa de envio à capacidade da rede.
- Universalidade: Suportado por todo SO, linguagem, framework, middlebox.
Aplicações Típicas Usando TCP
- Web (HTTP/HTTPS), Email (SMTP, IMAP, POP3), Transferência de Arquivos (FTP, SFTP), SSH, Banco de Dados (MySQL, PostgreSQL), Mensageria (XMPP, MQTT sobre TCP), Desktop Remoto (RDP), VPN (OpenVPN TCP), Lobbies/chat de jogos.
Contraparte: UDP (User Datagram Protocol)
Usado quando velocidade > confiabilidade: DNS, VoIP (RTP), Streaming de vídeo (QUIC/UDP), Jogos (tempo real), IoT (CoAP), Multicast. QUIC (HTTP/3) traz confiabilidade tipo TCP sobre UDP.
Principais Campos do Header (mínimo 20 bytes)
- Porta Origem/Destino (16-bit cada)
- Número de Sequência (32-bit)
- Número de Confirmação (32-bit)
- Flags (SYN, ACK, FIN, RST, PSH, URG, ECE, CWR)
- Tamanho da Janela (16-bit, escalado)
- Checksum (16-bit)
- Ponteiro Urgente
- Opções (MSS, Window Scale, SACK, Timestamps)
TCP é a base da Internet moderna — confiável por padrão, ajustável para performance.