A unidade de dados fundamental do protocolo TCP (Transmission Control Protocol) é o Segmento. Diferente da camada de Rede (que usa pacotes) ou da camada de Enlace (que usa quadros), o TCP agrupa os bytes da aplicação em segmentos lógicos para transporte.
1. O que é um Segmento?
O segmento é o “pacote” do TCP que contém o cabeçalho do protocolo e uma porção dos dados da aplicação.
- O TCP recebe um fluxo contínuo de bytes da camada de aplicação e os divide em pedaços gerenciáveis.
- Cada segmento é então passado para a camada de IP para ser encapsulado e transmitido.
2. MSS (Maximum Segment Size)
O MSS é o maior valor de “corpo” (payload) que o TCP de um host está disposto a aceitar em um único segmento.
- É negociado durante o Three-Way Handshake.
- O valor típico do MSS é 1460 bytes (1500 bytes da MTU do Ethernet - 20 bytes do cabeçalho IP - 20 bytes do cabeçalho TCP).
- Se o MSS for configurado incorretamente, pode ocorrer fragmentação excessiva de IP, degradando seriamente a performance da rede.
3. Multiplexação e De-multiplexação
O uso de segmentos permite que o TCP realize a Multiplexação:
- Vários processos de aplicação (Navegador, SSH, E-mail) enviam dados simultaneamente.
- O TCP rotula cada segmento com uma Porta de Origem e uma Porta de Destino.
- No destino, o TCP olha para as portas e entrega o segmento para o processo de aplicação correto (De-multiplexação).
[!NOTE]
Enquanto o IP trata cada pacote de forma isolada, o TCP vê os segmentos como parte de uma sequência ordenada. Cada segmento possui um Número de Sequência para que o receptor saiba como remontar o fluxo original de dados.