Redes e internet
O que acontece nos bastidores quando você acessa um site? Um pacote viaja por fios, roteadores e continentes em milissegundos.
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.
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.
Note que a latência vai aumentando a cada salto — o Wi-Fi local é instantâneo comparado ao backbone transatlântico.
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)
└─────────────────────────────────────────┘ 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.
Teste sua intuição
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.