Modelos de Referencia
Video da aula estara disponivel em breve
Por que modelos em camadas?
Redes de computadores sao sistemas extremamente complexos. Para lidar com essa complexidade, usamos modelos em camadas — cada camada fornece servicos para a camada acima e usa servicos da camada abaixo. Isso permite que cada camada evolua independentemente, desde que a interface entre elas seja respeitada.
open(). Da mesma forma, HTTP nao precisa saber se os dados viajam por fibra otica ou Wi-Fi.
O modelo OSI (7 camadas)
O modelo OSI (Open Systems Interconnection) foi desenvolvido pela ISO como um modelo de referencia teorico. Ele define 7 camadas:
+---+---------------------------+-------------------+------------------+
| # | Camada | Funcao | PDU |
+---+---------------------------+-------------------+------------------+
| 7 | Aplicacao (Application) | Interface usuario | Dados/Mensagem |
| 6 | Apresentacao (Presentation)| Formato, cripto | Dados |
| 5 | Sessao (Session) | Dialogo, sync | Dados |
| 4 | Transporte (Transport) | End-to-end, confi.| Segmento |
| 3 | Rede (Network) | Roteamento | Pacote/Datagrama |
| 2 | Enlace (Data Link) | Quadro, acesso | Quadro (Frame) |
| 1 | Fisica (Physical) | Bits no meio | Bit |
+---+---------------------------+-------------------+------------------+
Mnemonico: "All People Seem To Need Data Processing"
(de cima para baixo: A P S T N D P)
Cada camada em detalhes:
- Fisica: transmissao de bits brutos pelo meio fisico (cabos, radio, fibra). Define voltagens, frequencias, taxa de bits.
- Enlace de dados: transferencia confiavel de quadros entre nos adjacentes. Deteccao de erros (CRC), controle de acesso ao meio (MAC), enderecamento fisico.
- Rede: roteamento de pacotes da origem ao destino atraves de multiplos saltos. Enderecamento logico (IP), fragmentacao.
- Transporte: comunicacao fim-a-fim entre processos. Controle de fluxo, controle de congestionamento, segmentacao.
- Sessao: gerencia dialogos entre aplicacoes. Sincronizacao, checkpointing.
- Apresentacao: traducao de dados (encoding, compressao, criptografia).
- Aplicacao: interface direta com o usuario/programa (HTTP, SMTP, FTP, DNS).
O modelo TCP/IP (4 camadas)
O modelo TCP/IP e o modelo pratico sobre o qual a Internet realmente funciona. Ele tem 4 camadas (alguns autores usam 5, separando a camada de enlace da fisica):
+---+---------------------------+-------------------+------------------+
| # | Camada TCP/IP | Equivalente OSI | Protocolos |
+---+---------------------------+-------------------+------------------+
| 4 | Aplicacao | 7 + 6 + 5 | HTTP, DNS, SMTP |
| 3 | Transporte | 4 | TCP, UDP |
| 2 | Internet (Rede) | 3 | IP, ICMP, ARP |
| 1 | Acesso a Rede (Link) | 2 + 1 | Ethernet, Wi-Fi |
+---+---------------------------+-------------------+------------------+
As camadas do TCP/IP:
- Acesso a rede (Link): como bits sao transmitidos no meio fisico e como quadros sao formatados. Inclui Ethernet, Wi-Fi, PPP.
- Internet: roteamento de pacotes entre redes diferentes. O protocolo IP e a "cola" que une tudo — todo pacote na Internet carrega um cabecalho IP.
- Transporte: comunicacao entre processos. TCP (confiavel, orientado a conexao) ou UDP (rapido, sem garantias).
- Aplicacao: protocolos que aplicacoes usam diretamente — HTTP, DNS, SMTP, SSH, FTP.
Encapsulamento
Quando dados descem pelas camadas, cada camada adiciona seu proprio cabecalho (e as vezes um trailer). Esse processo se chama encapsulamento. Na recepcao, cada camada remove seu cabecalho — desencapsulamento.
Transmissao (de cima para baixo):
Aplicacao: [ DADOS HTTP ]
|
Transporte: [TCP HDR][ DADOS HTTP ] = Segmento
|
Internet: [IP HDR][TCP HDR][ DADOS HTTP ] = Pacote (Datagrama)
|
Link: [ETH HDR][IP HDR][TCP HDR][DADOS][ETH TRAIL] = Quadro (Frame)
|
Fisica: 01101001 01110100 11001010 ... = Bits
Recepcao (de baixo para cima):
Cada camada remove seu cabecalho e passa o payload para cima.
PDUs em cada camada
Cada camada tem seu proprio nome para a unidade de dados que manipula — a PDU (Protocol Data Unit):
- Aplicacao: mensagem (message)
- Transporte: segmento (TCP) ou datagrama (UDP)
- Rede: pacote (packet) ou datagrama
- Enlace: quadro (frame)
- Fisica: bit
# Visualizando encapsulamento com scapy (ferramenta de analise de pacotes)
from scapy.all import Ether, IP, TCP, Raw
# Construindo um pacote camada por camada
frame = Ether(dst="ff:ff:ff:ff:ff:ff") / \
IP(dst="93.184.216.34") / \
TCP(dport=80) / \
Raw(load="GET / HTTP/1.1\r\nHost: example.com\r\n\r\n")
# Cada camada encapsula a anterior
print(frame.summary())
# Ether / IP / TCP / Raw
# Podemos inspecionar cada camada:
print(frame[Ether].dst) # MAC destino (enlace)
print(frame[IP].dst) # IP destino (rede)
print(frame[TCP].dport) # Porta destino (transporte)
print(frame[Raw].load) # Dados HTTP (aplicacao)
OSI vs. TCP/IP: qual usar?
Na pratica, use o modelo TCP/IP de 5 camadas (separando fisica de enlace). Ele reflete a realidade da Internet. Use o OSI quando precisar de uma referencia mais granular para entender em que camada um problema esta.
OSI (7) TCP/IP (5) TCP/IP (4)
───────── ────────── ──────────
7 Aplicacao \
6 Apresent. |-- 5 Aplicacao ------- 4 Aplicacao
5 Sessao /
4 Transporte --- 4 Transporte ------ 3 Transporte
3 Rede --------- 3 Rede ----------- 2 Internet
2 Enlace -------- 2 Enlace ----\
1 Fisica -------- 1 Fisica ----/--- 1 Acesso a Rede
No harness.os
A arquitetura em camadas do harness.os segue o mesmo principio de separacao de responsabilidades:
Modelo TCP/IP harness.os Architecture
────────────── ────────────────────────
Aplicacao Surfaces (UI, dashboards, chat)
(HTTP, DNS) |
v
Transporte Outer Harness (MCP server, tool routing)
(TCP, UDP) |
v
Rede Inner Harness (CLAUDE.md, rules, knowledge)
(IP, roteamento) |
v
Enlace + Fisica Infrastructure (Neon DB, file system, git)
(Ethernet, Wi-Fi)
Cada camada do harness.os tem seu proprio "protocolo":
- Surfaces usam HTTP/JSON para se comunicar com o outer harness
- Outer harness usa MCP protocol (stdio/SSE) para expor ferramentas
- Inner harness usa arquivos markdown (CLAUDE.md) como "protocolo" de config
- Infraestrutura usa SQL (Postgres wire protocol) e git
Assim como o modelo TCP/IP permite trocar a camada fisica (Ethernet por Wi-Fi) sem mudar a aplicacao, o harness.os permite trocar a infraestrutura (Neon por SQLite local) sem mudar as surfaces.
Resumo
- Modelos em camadas organizam a complexidade — cada camada tem uma responsabilidade clara
- OSI tem 7 camadas (teorico); TCP/IP tem 4-5 camadas (pratico)
- Encapsulamento: cada camada adiciona seu cabecalho ao descer; remove ao subir
- PDUs: mensagem (aplicacao), segmento (transporte), pacote (rede), quadro (enlace), bit (fisica)
- Na Internet real, usamos o modelo TCP/IP
Exercicio pratico
Mapeie as camadas da arquitetura harness.os para o modelo TCP/IP.
- Identifique qual componente do harness.os corresponde a cada camada TCP/IP
- Para cada camada, descreva o "protocolo" usado (formato das mensagens, regras de comunicacao)
- Qual e a PDU equivalente em cada camada do harness.os?
- O que acontece quando uma surface faz um request? Trace o encapsulamento completo
Verifique seu entendimento
No modelo TCP/IP, qual camada e responsavel por rotear pacotes entre redes diferentes?