Joao Brietzke Blog

← voltar

Desvendando como as coisas navegam na internet

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:

  1. O modelo TCP/IP, a arquitetura em camadas
  2. A pilha de protocolos TCP/IP, o conjunto de protocolos da família: IP, TCP, UDP, HTTP, DNS, etc.
  3. 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:

  1. Chegou primeiro. TCP/IP já rodava na ARPANET nos anos 70. Quando o OSI ficou pronto em 1984, TCP/IP já estava implementado.
  2. Era mais simples. 4-5 camadas vs 7.
  3. 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.