1. Definição e Papel no TCP/IP

A Camada de Transporte é a quarta camada da pilha TCP/IP. A sua função é permitir que aplicações em diferentes computadores (anfitriões) comuniquem entre si de forma direta. Enquanto a camada de Internet (IP) entrega pacotes entre máquinas, a camada de Transporte entrega os dados ao processo específico (software) dentro dessa máquina.

A grande força desta camada no TCP/IP é oferecer dois tipos de serviços distintos, permitindo que o programador escolha o que é mais importante para a sua aplicação: fiabilidade ou performance.

2. Os Dois Protocolos Fundamentais

2.1. TCP (Transmission Control Protocol) - Fiável

O TCP é um protocolo orientado à ligação. Antes de enviar dados, ele estabelece uma sessão formal entre o emissor e o recetor através de um processo de 3 etapas chamado Three-Way Handshake (SYN, SYN-ACK, ACK).

  • Características:

    • Confirmação de Receção (ACK): O recetor avisa que os dados chegaram.

    • Retransmissão: Se um segmento se perder, o TCP envia-o novamente.

    • Ordenação: Garante que os dados chegam à aplicação na ordem correta.

    • Controlo de Fluxo: Evita que o emissor envie dados mais rápido do que o recetor consegue processar.

  • Uso: Web (HTTP), E-mail (SMTP), Transferência de ficheiros (FTP), Acesso remoto (SSH).

2.2. UDP (User Datagram Protocol) - Rápido

O UDP é um protocolo não orientado à ligação. Ele envia os dados sem avisar e não se preocupa se eles chegaram ao destino ou se chegaram na ordem certa. É um protocolo de “melhor esforço”.

  • Características:

    • Sem Confirmação: Não há ACKs, o que reduz o tráfego de controlo.

    • Baixa Latência: Ideal para transmissões em tempo real.

    • Simplicidade: O cabeçalho é muito pequeno (8 bytes), tornando-o muito eficiente.

  • Uso: Streaming de vídeo/áudio, Chamadas de Voz (VoIP), Jogos Online, Consultas DNS.

[Image comparing TCP reliability vs UDP speed]

3. O Conceito de Portas e Sockets

Como é que o computador sabe que um pacote de dados é para o Chrome e não para o Spotify? Através das Portas.

  • Portas (Ports): São números (0 a 65535) que identificam o serviço ou aplicação.

    • Portas Conhecidas (Well-known): 0 a 1023 (ex: 80 para HTTP, 443 para HTTPS).
  • Socket: É a combinação de um Endereço IP + Protocolo + Número de Porta.

    • Exemplo: 192.168.1.10:TCP:443. O socket é a “morada completa” de uma aplicação na rede.

4. Unidade de Dados (PDU): Segmentos e Datagramas

Na camada de transporte, o nome da PDU depende do protocolo utilizado:

  • Se usarmos TCP, o dado chama-se Segmento.

  • Se usarmos UDP, o dado chama-se Datagrama.

5. Multiplexação e Desmultiplexação

A camada de transporte permite que dezenas de aplicações utilizem a rede em simultâneo através de uma única ligação física.

  • Multiplexação: O emissor junta os dados de várias aplicações, adiciona os cabeçalhos de transporte com as portas e envia para a camada de Internet.

  • Desmultiplexação: O recetor lê as portas de destino e entrega cada pedaço de dado à aplicação correspondente.