College Online
0%

Modelos de Referencia

Modulo 1 · Aula 2 ~25 min de leitura Nivel: Introdutorio

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.

i
Analogia com software Camadas de rede funcionam como camadas de software. Voce nao precisa saber como o disco funciona para usar 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:

Diagrama
+---+---------------------------+-------------------+------------------+
| # | 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:

  1. Fisica: transmissao de bits brutos pelo meio fisico (cabos, radio, fibra). Define voltagens, frequencias, taxa de bits.
  2. Enlace de dados: transferencia confiavel de quadros entre nos adjacentes. Deteccao de erros (CRC), controle de acesso ao meio (MAC), enderecamento fisico.
  3. Rede: roteamento de pacotes da origem ao destino atraves de multiplos saltos. Enderecamento logico (IP), fragmentacao.
  4. Transporte: comunicacao fim-a-fim entre processos. Controle de fluxo, controle de congestionamento, segmentacao.
  5. Sessao: gerencia dialogos entre aplicacoes. Sincronizacao, checkpointing.
  6. Apresentacao: traducao de dados (encoding, compressao, criptografia).
  7. Aplicacao: interface direta com o usuario/programa (HTTP, SMTP, FTP, DNS).
!
OSI e teorico Na pratica, as camadas 5, 6 e 7 do OSI sao frequentemente combinadas em uma unica camada de "aplicacao". O modelo OSI e excelente para entender conceitos, mas a Internet nao foi construida sobre ele.

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):

Diagrama
+---+---------------------------+-------------------+------------------+
| # | 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:

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.

Diagrama
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):

Python
# 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.

Diagrama
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:

Diagrama
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

Exercicio pratico

Mapeie as camadas da arquitetura harness.os para o modelo TCP/IP.

  1. Identifique qual componente do harness.os corresponde a cada camada TCP/IP
  2. Para cada camada, descreva o "protocolo" usado (formato das mensagens, regras de comunicacao)
  3. Qual e a PDU equivalente em cada camada do harness.os?
  4. 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?

  • Camada de Aplicacao
  • Camada de Transporte
  • Camada de Internet (Rede)
  • Camada de Acesso a Rede (Link)