Pular para o conteúdo principal

Modelo OSI

Quando enviamos dados em uma rede, uma série de transformações, codificações e ações são necessárias para que os dados viajem de um dispositivo para outro. O modelo OSI (Open Systems Interconnection) permite dividir esse processo complexo em etapas lógicas, chamadas de camadas, cada uma com um papel específico.

Vantagens do modelo OSI​

  • Facilita o design e a compreensão de redes.
  • Permite a interoperabilidade entre diferentes fabricantes.
  • Organiza os protocolos e responsabilidades.

Visão geral das 7 camadas​

Fonte: Wikipedia

Detalhe camada por camada​

Camada 1 – Física (Physical Layer)​

Papel:
Transmite os bits brutos (0 e 1) em um meio físico: cabo, fibra óptica, ondas de rádio…

Funções:

  • Definição dos sinais elétricos, ópticos ou de rádio.
  • Sincronização dos bits.
  • Conectores e cabeamento.

Exemplos:

  • Cabo Ethernet (RJ45)
  • Fibra óptica
  • Wi-Fi (no nível da modulação)
  • Bluetooth

O que um programador vê? Quase nada. Esta camada é totalmente gerenciada pelo hardware.

Papel:
Permite a comunicação local entre duas máquinas conectadas à mesma rede física.

Funções:

  • Divide os dados em quadros (frames em inglês).
  • Atribuição e verificação do endereço MAC (Media Access Control, único para cada dispositivo).
  • Detecção de erros.

Exemplos de protocolos:

  • Ethernet
  • Wi-Fi (IEEE 802.11)

Endereço MAC:

  • Único por placa de rede (ex: 00:1A:2B:3C:4D:5E)
  • Gravado fisicamente no hardware

Dispositivos:

  • Switch
  • Placa de rede (NIC)

O que um programador vê? Endereço MAC, quadros (frames), configuração de rede local, às vezes manipulação de pacotes no nível Ethernet (ex: Wireshark, Scapy).

Camada 3 – Rede (Network Layer)​

Papel:
Garante o roteamento de pacotes de uma rede para outra (interconexão de redes).

Funções:

  • Atribuição de endereços IP (Internet Protocol).
  • Roteamento entre sub-redes.
  • Fragmentação de pacotes.

Exemplos de protocolos:

  • IP (Internet Protocol)
  • ICMP (usado pelo ping)
  • ARP (tradução IP ↔ MAC)

Dispositivos:

  • Roteadores

O que um programador vê? Endereço IP, sub-rede, ping, comunicação via sockets (IP/porta).


Camada 4 – Transporte (Transport Layer)​

Papel:
Garante o transporte confiável ou não dos dados entre duas máquinas.

Funções:

  • Segmentação e remontagem.
  • Controle de erros.
  • Controle de fluxo.

Principais protocolos:

  • TCP (Transmission Control Protocol)
    • Confiável, com confirmação de recebimento.
    • Ex: HTTP, FTP, SSH
  • UDP (User Datagram Protocol)
    • Não confiável, rápido.
    • Ex: DNS, jogos online, VoIP

Portas:

  • Identificam as aplicações em uma máquina (ex: porta 80 para HTTP)

O que um programador vê? Manipulação de sockets TCP/UDP, gestão de portas, controle de erros de conexão, timeouts, retransmissões, escolha entre confiabilidade (TCP) e rapidez (UDP).

Exemplos:

  • Em Python: socket(AF_INET, SOCK_STREAM) (TCP)
  • curl http://... → usa TCP porta 80

Camada 5 – Sessão (Session Layer)​

Papel:
Gerencia as sessões de comunicação entre duas máquinas. Uma sessão é um vínculo lógico entre duas aplicações.

Funções:

  • Abertura, gestão e encerramento de sessão.
  • Restauração após interrupção.

Exemplos de protocolos:

  • NetBIOS
  • RPC (Remote Procedure Call)

Observações:

  • Pouco visível como tal em aplicações modernas (geralmente combinada com a camada de transporte).

Camada 6 – Apresentação (Presentation Layer)​

Papel:
Garante a tradução, compressão e criptografia dos dados.

Funções:

  • Conversão de formatos (ex: texto puro ↔ binário).
  • Codificação: ASCII, UTF-8, JPEG
  • Criptografia SSL/TLS.

Exemplos concretos:

  • HTTPS = HTTP + TLS (camada de apresentação)
  • OpenSSL, GnuTLS

O que um programador vê? A camada de apresentação pode ser manipulada por meio de bibliotecas como ssl em Python.


Camada 7 – Aplicação​

Papel:
Fornece serviços de rede para aplicações do usuário.

Protocolos:

  • HTTP / HTTPS
  • FTP
  • SMTP / IMAP / POP3
  • DNS

Exemplos de aplicações:

  • Navegadores web
  • Clientes de e-mail
  • Clientes FTP
  • Clientes DNS

O que um programador vê? Você usa a camada 7 todos os dias: fetch(), requests.get(), socket, etc.

Resumo das camadas​

N°CamadaFunção principalExemplos de protocolos/dispositivos
7AplicaçãoInterface de usuário de redeHTTP, FTP, DNS
6ApresentaçãoTradução, criptografia, compressãoSSL/TLS, ASCII, JPEG
5SessãoGerenciamento de sessões/conexõesNetBIOS, RPC
4TransporteTransporte confiável, segmentaçãoTCP, UDP
3RedeRoteamento e endereçamento lógicoIP, ICMP
2EnlaceComunicação local, endereço MACEthernet, Wi-Fi (802.11), PPP
1FísicaTransmissão de bits no meio físicoRJ45, Fibra, Sinal de rádio

Exemplo de percurso de uma mensagem​

Imagine que você envia uma mensagem HTTP para um servidor remoto:

  1. Aplicação (HTTP) → o navegador prepara a requisição.
  2. Apresentação (TLS) → a requisição é criptografada.
  3. Sessão → uma sessão segura é aberta.
  4. Transporte (TCP) → a requisição é dividida em segmentos.
  5. Rede (IP) → os segmentos são encapsulados em pacotes IP.
  6. Enlace (Ethernet) → os pacotes são colocados em quadros.
  7. Física (Cabo) → os quadros são convertidos em sinais elétricos.

O servidor recebe na ordem inversa: Física → Enlace → Rede … até Aplicação.

Para programadores​

  • A camada Aplicação corresponde às suas chamadas HTTP/HTTPS.
  • A camada Transporte (TCP/UDP) explica problemas de latência, timeout, perda de pacotes.
  • A camada Rede ajuda a entender o endereçamento IP, a conexão entre clientes/servidores.
  • As camadas Enlace e Física são úteis para diagnosticar problemas de rede local.

Referências​