Por que escrevi isso
Estou conduzindo minha primeira jornada de ensino em grupo para meus colaboradores e outras pessoas que toparam participar. O tema é a transição de desenvolvedor para infra, e redes foi o ponto de partida que escolhi para começar.
O blog veio da mesma motivação. Acompanho há um tempo pessoas que ensinam de forma direta e honesta, como o Fabio Akita. Ver esse tipo de conteúdo me fez querer registrar o que estou aprendendo e compartilhar com quem está nessa jornada comigo.
Esse post é o material de aprofundamento do primeiro encontro, para quem ficou com curiosidade de entender as camadas com mais detalhe.
O problema que deu origem a tudo
Nos anos 60, computadores existiam mas não se falavam. Cada fabricante criava sua rede com suas próprias regras. IBM tinha um jeito, DEC tinha outro, AT&T tinha o seu. Não havia idioma comum.
Em 1969 o Departamento de Defesa dos EUA criou a ARPANET para conectar universidades e centros de pesquisa. A primeira mensagem da história foi enviada de UCLA para Stanford em 29 de outubro daquele ano. Era pra ser "LOGIN". O sistema travou na segunda letra. Chegou "LO".
A ARPANET funcionava, mas o problema continuava. Como fazer redes diferentes, com tecnologias diferentes, conversarem sem forçar nenhuma a mudar tudo?
Em 1974, Vint Cerf e Bob Kahn publicaram a resposta: TCP/IP. Em 1983, a ARPANET adotou oficialmente. Esse dia ficou conhecido como Flag Day. A internet como conhecemos começou ali.
Para organizar e explicar como essa comunicação funciona, dois modelos foram criados: o OSI e o TCP/IP. É o que vamos ver a seguir.
Modelo OSI: as 7 camadas
O modelo OSI (Open Systems Interconnection) foi criado pela ISO em 1984 como modelo de referência teórico. Ele descreve como sistemas devem se comunicar em rede, dividindo a comunicação em 7 camadas, cada uma com responsabilidade bem definida.
De baixo pra cima, do meio físico até a aplicação.
Camada 1: Física
Resolve: como mandar bits (0 e 1) através de um meio físico.
Aqui mora o cabo, a fibra ótica, o sinal de Wi-Fi, as ondas de rádio. Tudo que é meio físico que carrega o sinal. Voltagem, frequência, conectores. Não tem inteligência aqui, só o transporte físico do sinal.
Unidade de dado: bit. Equipamentos: cabos, hubs, repetidores, antenas.
Camada 2: Enlace
Resolve: como dois dispositivos da mesma rede local sabem que estão falando um com o outro.
Aqui mora o endereço MAC, o identificador físico da placa de rede. Cada placa tem um MAC único de fábrica, escrito em hexadecimal (tipo AA:BB:CC:DD:EE:FF). Essa camada cuida da comunicação entre dispositivos da mesma rede.
Protocolos típicos: Ethernet, Wi-Fi (802.11), ARP. Unidade de dado: frame. Equipamentos: switch, bridge, access point.
Camada 3: Rede
Resolve: como achar o caminho entre redes diferentes pra entregar dado no destino certo.
Aqui mora o IP. É o que faz a internet ser inter-net, a rede das redes. Cada dispositivo tem um endereço IP e roteadores decidem por onde encaminhar cada pacote. Aqui também opera o ICMP, que é o que ping e traceroute usam.
Protocolos típicos: IP (v4 e v6), ICMP, BGP, OSPF. Unidade de dado: pacote. Equipamentos: roteador, firewall de camada 3.
Camada 4: Transporte
Resolve: como garantir que o dado chegou inteiro, na ordem certa, na aplicação certa dentro do destino.
Aqui moram TCP e UDP. TCP é orientado a conexão e garante entrega com retransmissão e ordem. UDP é manda e esquece, rápido e leve. É aqui também que aparece o conceito de porta (80 pra HTTP, 443 pra HTTPS, 22 pra SSH), que identifica qual aplicação dentro do destino vai receber o dado.
Protocolos típicos: TCP, UDP, QUIC. Unidade de dado: segmento (TCP) ou datagrama (UDP).
Camada 5: Sessão
Resolve: como manter um diálogo contínuo entre duas aplicações.
Em teoria, essa camada gerencia sessões: abre, mantém, encerra, recupera. Na prática, as responsabilidades dela foram absorvidas pelo TCP ou pelas próprias aplicações com cookies, tokens e session IDs.
Camada 6: Apresentação
Resolve: como traduzir formato de dado e cuidar de criptografia.
Em teoria, aqui moram criptografia, compressão e tradução entre formatos. Na prática, a maior parte virou TLS, que faz o HTTPS funcionar, ou ficou dentro das aplicações como cabeçalhos HTTP de Content-Type e Accept.
Camada 7: Aplicação
Resolve: que tipo de conversa duas aplicações estão tendo.
Aqui mora tudo que você usa no dia a dia: HTTP, HTTPS, DNS, SSH, FTP, SMTP. É a camada onde rede deixa de ser invisível e vira API. Quando você faz fetch(), quando dá git push, quando manda email, é camada 7.
Protocolos típicos: HTTP, HTTPS, DNS, SSH, FTP, SMTP, IMAP, DHCP, gRPC, WebSocket.
Modelo TCP/IP
TCP/IP foi criado pelo Departamento de Defesa dos EUA nos anos 70, dentro da ARPANET (que virou a internet). Ele veio antes do OSI e foi pensado pra ser prático, não didático.
Atenção com o nome
"TCP/IP" pode significar três coisas diferentes:
- O modelo TCP/IP, a arquitetura em camadas
- A pilha de protocolos TCP/IP, o conjunto de protocolos da família: IP, TCP, UDP, HTTP, DNS, etc.
- Os dois protocolos específicos: TCP e IP
As camadas do TCP/IP
A literatura diverge entre 4 e 5 camadas. A versão de 5 camadas separa Física e Enlace; a de 4 junta as duas. A maioria dos materiais modernos usa 5 porque facilita a comparação com OSI.
IP (camada 3): endereça e roteia pacotes entre redes. É best effort, não garante entrega nem ordem.
TCP (camada 4): roda em cima do IP e adiciona toda a confiabilidade que o IP não tem. Estabelece conexão com 3-way handshake (SYN, SYN-ACK, ACK), retransmite o que se perde, reordena o que chega fora de ordem.
A combinação dos dois é o que faz a internet funcionar: IP entrega, TCP garante.
OSI vs TCP/IP
OSI (7 camadas) TCP/IP (5 camadas)
───────────────── ─────────────────
7. Aplicação ─┐
6. Apresentação ─┼──→ 5. Aplicação
5. Sessão ─┘
4. Transporte ────→ 4. Transporte
3. Rede ────→ 3. Internet
2. Enlace ────→ 2. Enlace
1. Física ────→ 1. Física
| Característica | OSI | TCP/IP |
|---|---|---|
| Origem | Teórico (ISO, 1984) | Prático (DoD/ARPANET, anos 70) |
| Camadas | 7 | 4 ou 5 |
| Adoção | Modelo de referência didático | O que efetivamente roda |
| Foco | Padronização universal | Funcionamento prático |
Por que TCP/IP venceu:
- Chegou primeiro. TCP/IP já rodava na ARPANET nos anos 70. Quando o OSI ficou pronto em 1984, TCP/IP já estava implementado.
- Era mais simples. 4-5 camadas vs 7.
- Era aberto e gratuito. Veio embarcado no BSD Unix em 1983, distribuído de graça. OSI exigia licença.
Lição que se repete: suficientemente bom, aberto e disponível ganha do tecnicamente perfeito e fechado. VHS vs Betamax. JavaScript vs várias linguagens consideradas melhores.
Referências
OSI Model Explained: Networking Basics, WhiteboardDoodles https://www.youtube.com/watch?v=v4sRKGarh5Q
OSI and TCP IP Models - Best Explanation, Drunk Engineer https://www.youtube.com/watch?v=3b_TAYtzuho
The OSI Model - Explained by Example, Hussein Nasser https://www.youtube.com/watch?v=7IS7gigunyI
What is the OSI Model?, Cloudflare https://www.cloudflare.com/learning/ddos/glossary/open-systems-interconnection-model-osi/
Networking Zine, Julia Evans https://jvns.ca/networking-zine.pdf
O que me marcou
A internet não é uma abstração.
Pra tudo isso funcionar, existe fisicamente milhares de quilômetros de cabo conectando países e continentes: cabos submersos no fundo do oceano, torres de telecomunicação, data centers espalhados pelo mundo.
O ser humano saiu do zero e construiu toda essa infraestrutura física que sustenta cada request que você faz. É fácil trabalhar com rede como se fosse mágica. Não é. É engenharia, cabo e muito trabalho acumulado ao longo de décadas.