
Camada de Transporte
1. Visão Geral da Camada de Transporte
A camada de transporte ocupa a quarta posição no modelo de referência OSI (Open Systems Interconnection), situando-se entre a camada de rede (camada 3) e a camada de sessão (camada 5). Esta posição estratégica confere à camada de transporte um papel fundamental no processo de comunicação em redes, atuando como uma ponte entre as funções de baixo nível relacionadas à transmissão de dados pela rede e as funções de alto nível relacionadas à interação entre aplicações.
Posição no Modelo OSI
- Camada 7: Aplicação
- Camada 6: Apresentação
- Camada 5: Sessão
- Camada 4: Transporte
- Camada 3: Rede
- Camada 2: Enlace
- Camada 1: Física
Papel Fundamental
A camada de transporte é responsável pela comunicação fim-a-fim entre processos e aplicações que estão rodando em diferentes hosts. Enquanto as camadas inferiores (1-3) preocupam-se com a comunicação entre dispositivos físicos, a camada de transporte foca na comunicação entre processos específicos que estão em execução nesses dispositivos.
Importância para a Comunicação em Redes
Esta camada é fundamental porque:
- Fornece a abstração necessária entre as aplicações e a infraestrutura de rede subjacente
- Permite que múltiplas aplicações utilizem simultaneamente a mesma infraestrutura de rede
- Oferece diferentes níveis de serviço (confiável ou não confiável) conforme as necessidades da aplicação
- Implementa mecanismos importantes como controle de fluxo e controle de erro, garantindo uma comunicação eficiente
2. Principais Funções da Camada de Transporte
Segmentação e Remontagem de Dados
- Segmentação: Divide os dados recebidos das camadas superiores em unidades menores chamadas segmentos (TCP) ou datagramas (UDP)
- Remontagem: Reúne os segmentos recebidos, reorganizando-os na ordem correta para entregar os dados completos à camada superior
- Identificação de Sequência: Adiciona números de sequência aos segmentos para garantir a correta remontagem
Controle de Fluxo
- Objetivo: Evitar que um transmissor rápido sobrecarregue um receptor mais lento
- Mecanismos:
- Janela deslizante: Limita a quantidade de dados que pode ser enviada sem confirmação
- Bufferização: Armazena temporariamente dados que não podem ser processados imediatamente
- Mensagens de controle: Permite que o receptor informe ao transmissor sua capacidade de recebimento
Controle de Erro
- Detecção de erros: Utiliza checksums ou códigos CRC para identificar corrupção de dados
- Recuperação de erros: Implementa mecanismos como retransmissão de segmentos perdidos ou corrompidos
- Confirmações (ACKs): Envio de mensagens confirmando o recebimento correto dos dados
Multiplexação e Demultiplexação
- Multiplexação: Permite que múltiplas aplicações em um host compartilhem a mesma conexão de rede
- Demultiplexação: Direciona os dados recebidos para a aplicação correta no host destinatário
Uso de portas: Identificadores numéricos (0-65535) que diferenciam diferentes aplicações/serviços
Estabelecimento e Encerramento de Conexão
- Three-way handshake: Processo de estabelecimento de conexão em três etapas (usado pelo TCP)
- Gerenciamento de estado da conexão: Mantém informações sobre o estado atual da comunicação
- Encerramento controlado: Procedimento para finalizar conexões de forma ordenada e segura
Garantia de Entrega (Confiabilidade)
- Serviço confiável: Garante que todos os dados cheguem ao destino, na ordem correta (TCP)
- Serviço não confiável: Entrega com “melhor esforço”, sem garantias de entrega ou ordenação (UDP)
- Confirmação de recebimento: Mecanismo para verificar se os dados chegaram corretamente
3. Protocolos da Camada de Transporte
3.1. TCP (Transmission Control Protocol)
Características principais
- Orientado à conexão: Estabelece uma conexão antes da transmissão de dados
- Confiável: Garante a entrega de todos os dados, sem perda ou duplicação
- Ordenado: Mantém a sequência original dos dados
- Controle de congestionamento: Ajusta a taxa de transmissão conforme as condições da rede
- Bidirecional (full-duplex): Permite transmissão simultânea em ambas as direções
Mecanismos importantes
- Three-way handshake: Sincronização inicial (SYN, SYN-ACK, ACK)
- Janela deslizante: Gerencia quantidade de dados em trânsito
- Temporizadores: Controlam retransmissões em caso de perda
- Slow start e congestion avoidance: Algoritmos para ajuste da taxa de envio
- Números de sequência e acknowledgment: Rastreiam bytes enviados e recebidos
Vantagens
- Confiabilidade na entrega dos dados
- Ordenação garantida
- Recuperação automática de erros
- Controle de fluxo adaptativo
- Detecção e correção de congestionamento
Desvantagens
- Maior overhead (cabeçalhos maiores)
- Latência inicial para estabelecimento de conexão
- Maior consumo de recursos (memória e processamento)
- Bloqueios por head-of-line (quando um segmento perdido atrasa a entrega dos subsequentes)
Aplicações típicas
- Navegação web (HTTP/HTTPS)
- Transferência de arquivos (FTP, SFTP)
- Email (SMTP, IMAP, POP3)
- Acesso remoto (SSH, Telnet)
- Banco de dados distribuídos
3.2. UDP (User Datagram Protocol)
Características principais
- Não orientado à conexão: Não estabelece conexão prévia
- Não confiável: Não garante entrega, ordem ou integridade
- Simples: Implementação minimalista com poucas funcionalidades
- Baixa latência: Menor tempo de processamento e transmissão
- Sem estado: Não mantém informações sobre a comunicação
Mecanismos importantes
- Checksum: Verificação básica de integridade (opcional em IPv4, obrigatório em IPv6)
- Portas de origem e destino: Identificam processos nas máquinas
- Encapsulamento simples: Adiciona mínimo de overhead aos dados
Vantagens
- Menor latência (importante para aplicações em tempo real)
- Menos overhead (cabeçalhos menores)
- Não há atrasos por estabelecimento de conexão
- Menor consumo de recursos
- Suporte a broadcast e multicast
Desvantagens
- Sem garantia de entrega
- Sem controle de fluxo
- Sem ordenação de pacotes
- Sem recuperação automática de erros
- Sem controle de congestionamento
Aplicações típicas
- Streaming de áudio/vídeo
- VoIP (Voz sobre IP)
- Jogos online
- DNS (Sistema de Nomes de Domínio)
- SNMP (Protocolo Simples de Gerenciamento de Rede)
- DHCP (Protocolo de Configuração Dinâmica de Host)
Tabela Comparativa
CARACTERÍSTICA | TCP | UDP |
---|---|---|
Conexão | Orientado à conexão | Não orientado à conexão |
Confiabilidade | Confiável | Não confiável |
Ordenação | Garante ordem original | Não garante ordenação |
Controle de fluxo | Sim | Não |
Controle de congestionamento | Sim | Não |
Verificação de erros | Extensiva | Básica (checksum) |
Overhead | Alto | Baixo |
Latência | Maior | Menor |
Tamanho do cabeçalho | 20-60 bytes | 8 bytes |
Uso de recursos | Alto | Baixo |
Velocidade | Menor | Maior |
4. Sockets e Comunicação na Camada de Transporte
Conceito de Socket
Um socket é uma abstração que representa um endpoint de comunicação, funcionando como uma interface entre a aplicação e os protocolos de transporte. Tecnicamente, um socket é identificado pela combinação de endereço IP e número de porta, permitindo a comunicação entre processos.
Elementos de um Socket
- Endereço IP: Identifica o host na rede
- Número de porta: Identifica o processo ou serviço específico no host
- Protocolo: Determina as regras de comunicação (TCP ou UDP)
- Estado: Informações sobre a conexão atual (estabelecida, ouvindo, etc.)
Tipos de Sockets
- Stream sockets (SOCK_STREAM): Baseados em TCP, fornecem fluxo confiável de dados
- Datagram sockets (SOCK_DGRAM): Baseados em UDP, para comunicação sem conexão
- Raw sockets: Permitem acesso direto aos protocolos de camadas inferiores
5. Exemplos Práticos de Uso da Camada de Transporte
Navegação Web (HTTP/HTTPS)
- Protocolo: TCP (portas 80/443)
- Funcionamento: Quando acessamos um site, o navegador estabelece uma conexão TCP com o servidor web, envia requisições HTTP e recebe respostas contendo o conteúdo da página
- Importância do TCP: Garante que todos os elementos da página (HTML, CSS, JavaScript, imagens) sejam recebidos corretamente e na ordem adequada
- Exemplo prático: Ao acessar “www.exemplo.com”, seu navegador:
- Resolve o nome para um endereço IP (via DNS/UDP)
- Estabelece conexão TCP na porta 80 ou 443
- Envia requisição HTTP GET
- Recebe pacotes TCP contendo a resposta
- Renderiza a página quando todos os dados chegam
Streaming de Vídeo
- Protocolo: UDP para streaming ao vivo, TCP para vídeo sob demanda
- Funcionamento em UDP: Plataformas como Twitch e transmissões ao vivo priorizam velocidade sobre confiabilidade
- Adaptação de qualidade: Algoritmos ajustam a qualidade do vídeo conforme as condições da rede
- Buffering: Armazenamento temporário de dados para compensar variações na taxa de transmissão
- Exemplo prático: Durante uma transmissão ao vivo:
- O servidor envia pacotes UDP continuamente
- Pequenas perdas são toleradas (podem aparecer como artefatos visuais)
- Priorizando baixa latência, não há retransmissão de pacotes perdidos
- Protocolos como RTMP, HLS e DASH gerenciam o streaming
Telefonia por IP (VoIP)
- Protocolo: UDP para mídia, TCP para sinalização
- Funcionamento: Serviços como Skype, WhatsApp e Zoom usam:
- RTP (Real-time Transport Protocol) sobre UDP para transmissão de áudio/vídeo
- SIP ou protocolos proprietários sobre TCP para estabelecer chamadas
- Otimização: Codecs de áudio compensam perdas de pacotes
- QoS (Qualidade de Serviço): Priorização de pacotes de voz na rede
- Exemplo prático: Durante uma chamada VoIP:
- Estabelecimento de sessão via TCP
- Transmissão de voz em pacotes UDP a cada 20ms
- Pequenas perdas são mascaradas por algoritmos de correção
- Baixa latência é prioritária (ideal abaixo de 150ms)
Transferência de Arquivos
- Protocolo: TCP (FTP porta 21, SFTP porta 22)
- Funcionamento: Aplicações como FileZilla, clientes SFTP, ou serviços como Dropbox utilizam:
- Conexões TCP para controle e transferência
- Verificação de integridade dos arquivos após transferência
- Importância da confiabilidade: Todos os bytes devem ser transferidos corretamente
- Exemplo prático: Ao enviar um arquivo para um servidor:
- Estabelecimento de conexão TCP
- Autenticação do usuário
- Transferência segmentada com controle de fluxo
- Verificação da integridade do arquivo
- Confirmação de conclusão da transferência
Jogos Online
- Protocolo: Combinação de UDP para dados em tempo real e TCP para informações críticas
- Funcionamento: Jogos como Fortnite, League of Legends e CS:GO utilizam:
- UDP para posições, movimentos e ações rápidas
- TCP para inventário, chat e dados que não podem ser perdidos
- Sincronização de estado: Algoritmos compensam latência e perda de pacotes
- Exemplo prático: Em um jogo de tiro em primeira pessoa:
- Atualizações de posição são enviadas via UDP a cada 50ms
- Pacotes perdidos são simplesmente ignorados (o próximo atualiza)
- Dados de progresso do jogador são enviados via TCP
- Algoritmos de predição compensam a latência da rede
Sistema de Nomes de Domínio (DNS)
- Protocolo: Tradicionalmente UDP (porta 53), TCP para respostas maiores
- Funcionamento: Tradução de nomes como “
www.exemplo.com
” para endereços IP - Uso do UDP: Consultas rápidas e curtas, ideais para UDP
- Exemplo prático: Ao digitar um endereço web:
- Seu dispositivo envia consulta DNS via UDP
- Servidor DNS responde com o endereço IP
- Se a resposta for muito grande (>512 bytes), a consulta é repetida via TCP
- Todo o processo leva tipicamente <100ms