Trilha 02 · Como funciona

Redes e internet

O que acontece nos bastidores quando você acessa um site? Um pacote viaja por fios, roteadores e continentes em milissegundos.

① Intuição

Cartas expressas pelo mundo

Imagine enviar uma carta, mas em vez de ir direto ao destino, ela passa por agências de correio intermediárias (roteadores), cada uma decidindo para qual agência repassar baseada no endereço. A carta chega em milissegundos — e se o caminho estiver congestionado, um roteador a desvia automaticamente por outro caminho.

Essa carta é um pacote — um pedaço de dados com um cabeçalho contendo origem, destino e informações de controle. Arquivos grandes são divididos em muitos pacotes que viajam independentemente e são remontados no destino.

A ideia central: a internet é uma rede de redes. Nenhuma entidade controla tudo — bilhões de dispositivos se comunicam seguindo protocolos acordados (TCP/IP). É resiliência por descentralização.
② Visualização interativa

Siga o pacote até o servidor

Clique em Enviar requisição HTTP para ver um pacote saindo do seu PC, passando pelo roteador e ISP até o servidor web, e a resposta voltando pelo mesmo caminho.

💻
Seu PC
📡
Roteador
🏢
ISP
🖥️
Servidor Web
Pronto. Clique em "Enviar requisição" para ver o pacote viajar.

Note que a latência vai aumentando a cada salto — o Wi-Fi local é instantâneo comparado ao backbone transatlântico.

③ Explicação técnica

O que acontece ao acessar google.com

# O que acontece quando você digita google.com

1. DNS lookup: "google.com" → 142.250.79.46
2. TCP handshake: SYN → SYN-ACK → ACK  (3 mensagens)
3. TLS handshake: troca de chaves, certificado, cifra acordada
4. HTTP request:
   GET / HTTP/1.1
   Host: google.com
   Accept: text/html

5. HTTP response:
   HTTP/1.1 200 OK
   Content-Type: text/html
   [corpo HTML aqui]

6. Browser parseia HTML → busca CSS/JS → renderiza

Pacotes em camadas

Um pacote é como envelopes dentro de envelopes — cada camada adiciona seu próprio cabeçalho:

# Estrutura de um pacote TCP/IP (simplificado)
┌─────────────────────────────────────────┐
│ Ethernet: MAC origem → MAC destino      │  ← camada 2 (enlace)
├─────────────────────────────────────────┤
│ IP: 192.168.1.5 → 142.250.79.46        │  ← camada 3 (rede)
├─────────────────────────────────────────┤
│ TCP: porta 52341 → porta 443  seq=1000  │  ← camada 4 (transporte)
├─────────────────────────────────────────┤
│ HTTP: GET / HTTP/1.1  Host: google.com  │  ← camada 7 (aplicação)
└─────────────────────────────────────────┘
TCP vs. UDP: TCP garante que todos os pacotes chegam em ordem e sem erros (confirmações, retransmissão). UDP é mais rápido mas sem garantias — ideal para streaming de vídeo e jogos online, onde um frame atrasado é menos problemático do que esperar a retransmissão.
④ Projeto para programar

Explore a rede real

Mini projeto: abra o terminal e use traceroute google.com (Linux/Mac) ou tracert google.com (Windows) para ver cada salto de roteador até o destino, com latência de cada hop.

Projeto principal: implemente um cliente HTTP simples do zero usando sockets TCP (sem bibliotecas de alto nível). Conecte na porta 80, envie um GET / HTTP/1.0 e imprima a resposta.

Desafio extra: implemente um servidor HTTP mínimo que serve arquivos estáticos. Ele deve ler o método, o path e responder com 200 OK + conteúdo do arquivo, ou 404 se não existir.

⑤ Exercícios rápidos

Teste sua intuição

O que o DNS faz?
Qual protocolo garante que os pacotes chegam em ordem e sem perda de dados?
O que é latência?
⑥ Aplicações no mundo real

Onde você encontra isso

🌍

CDN

Redes de distribuição de conteúdo colocam cópias de arquivos em servidores ao redor do mundo para reduzir latência.

⚖️

Load balancer

Distribui requisições entre vários servidores. O cliente fala com um IP, mas o tráfego é dividido nos bastidores.

💬

WebSockets

Conexão persistente para comunicação em tempo real (chat, jogos). Diferente do HTTP, não precisa de request/response a cada mensagem.

🔒

VPN

Um "túnel" criptografado — seus pacotes saem cifrados, parecem vir do servidor VPN e não da sua máquina.

← Anterior: Linguagens e compiladores ✓ Concluir trilha Como funciona