Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

02 - Transporte

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

Camada de Transporte no TCP/IP

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

A Camada de Transporte é a quarta camada da pilha TCP/IP. 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.

Item Detalhe
Camada TCP/IP 3 (Transporte)
Camada OSI equivalente 4
PDU Segmento (TCP) / Datagrama (UDP)
Endereçamento Portas (0-65535)
Dispositivos Firewall L4, Load Balancer L4

2. Os Dois Protocolos Fundamentais

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

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

  • Características:
  • Confirmação de Recebimento (ACK): O receptor avisa que os dados chegaram.
  • Retransmissão: Se um segmento se perder, o TCP envia-o novamente (após timeout ou 3 ACKs duplicados).
  • Ordenação: Garante que os dados chegam à aplicação na ordem correta (números de sequência).
  • Controle de Fluxo: Evita que o emissor envie dados mais rápido do que o receptor consegue processar (janela deslizante).
  • Controle de Congestionamento: Algoritmos como Reno, Cubic e BBR ajustam a taxa de envio para não saturar a rede.
  • Uso: Web (HTTP/HTTPS), E-mail (SMTP/IMAP/POP3), Transferência de ficheiros (FTP, SFTP), Acesso remoto (SSH).

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

O UDP é um protocolo não orientado à conexão. Ele envia os dados sem avisar e não se preocupa se chegaram ao destino ou 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 controle.
  • Baixa Latência: Ideal para transmissões em tempo real.
  • Simplicidade: O cabeçalho é muito pequeno (8 bytes), tornando-o muito eficiente.
  • Multicast nativo: Suporta envio de um datagrama para múltiplos destinatários simultaneamente.
  • Uso: Streaming de vídeo/áudio (RTP), Chamadas de Voz (VoIP), Jogos Online, Consultas DNS, SNMP, DHCP.

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, 22 para SSH, 25 para SMTP).
  • Portas Registradas: 1024 a 49151 (ex: 3306 MySQL, 5432 PostgreSQL, 8080 HTTP alternativo).
  • Portas Dinâmicas/Efêmeras: 49152 a 65535 (usadas como porta de origem temporária em conexões de saída).
  • 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 ( cabeçalho de 20-60 bytes).
  • Se usarmos UDP, o dado chama-se Datagrama (cabeçalho fixo de 8 bytes).

Cabeçalho TCP (principais campos)

Campo Tamanho Função
Source Port 16 bits Porta de origem
Destination Port 16 bits Porta de destino
Sequence Number 32 bits Ordem dos bytes
Ack Number 32 bits Próximo byte esperado
Flags 9 bits SYN, ACK, FIN, RST, PSH, URG...
Window Size 16 bits Controle de fluxo

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 receptor lê as portas de destino e entrega cada pedaço de dado à aplicação correspondente.

6. Three-Way Handshake (Estabelecimento TCP)

Cliente                              Servidor
  | ---- SYN (seq=x) ----------->       |
  | <--- SYN+ACK (seq=y, ack=x+1) ---   |
  | ---- ACK (ack=y+1) --------->       |
  | === Dados começam a fluir ===      |

7. Encerramento de Conexão TCP (Four-Way)

Cliente                              Servidor
  | ---- FIN (seq=x) ----------->       |
  | <--- ACK (ack=x+1) ---              |
  | <--- FIN (seq=y) ----------         |
  | ---- ACK (ack=y+1) -------->       |
  | (TIME_WAIT 2*MSL)                  |

8. Comparação Direta: TCP vs. UDP

Característica TCP UDP
Conexão Sim (3-way handshake) Não
Confiabilidade Alta (ACK, retransmissão) Baixa (melhor esforço)
Ordem dos dados Garantida Não garantida
Cabeçalho 20-60 bytes 8 bytes
Controle de fluxo/congestionamento Sim Não
Multicast/Broadcast Não Sim
Velocidade Mais lento Mais rápido
Aplicações típicas Web, e-mail, FTP Streaming, VoIP, jogos, DNS

9. Analogia Didática

  • TCP é como uma chamada telefônica: você confirma se a pessoa está ouvindo, repete quando ela não entende e só encerra quando ambos concordam.
  • UDP é como um comunicado de rádio walkie-talkie: você fala e torce para que o outro ouça. Se a comunicação cair, você repete o essencial sem se preocupar em confirmar cada palavra.

10. Resumo Técnico

Atributo Valor
Camada 4 (OSI) / Transporte (TCP-IP)
PDU Segmento / Datagrama
Protocolos TCP, UDP, QUIC, SCTP, DCCP
Endereçamento Portas (16 bits)
RFC base RFC 793 (TCP), RFC 768 (UDP), RFC 9000 (QUIC)

11. Conclusão

A Camada de Transporte é o ponto onde a rede encontra o software. É aqui que o protocolo IP genérico se torna específico para cada aplicação. O TCP trouxe a confiabilidade que tornou a web, o e-mail e a transferência de arquivos viáveis. O UDP trouxe a velocidade que sustenta o streaming, o VoIP e a Internet das Coisas. Compreender a diferença entre os dois — e saber quando usar cada um — é uma das habilidades mais fundamentais para qualquer engenheiro de redes ou desenvolvedor de sistemas distribuídos.