Como exatamente funciona a internet e como esse post chegou até você (conteúdo técnico mastigado)
Para entender como a internet funciona e como os dados trafegam de um lugar para outro, você primeiro precisa saber o que é uma rede. Afinal a internet é a maior rede
no mundo e é parecido com a rede da sua casa, quer saber como?
Antes de começar quero explicar que a leitura é meio longa, mas isso é devido a minha tentativa de abordar absolutamente tudo que acontece com o pacote TCP de uma requisição e sem entrar a fundo na parte técnica. Aos poucos vou usando os termos definidos para manter o raciocínio, mas sempre tentando não ser técnico de mais.
Outra coisa é que omiti detalhes que julguei desnecessários e dei exemplos com uma arquitetura particular de rede, a FTTx. Isso porquê quis focar mais na ideia do que acontece e não em tudo que pode acontecer, mas tive que escolher pelo menos algumas coisas específicas para que fosse possível dar exemplos e para te ajudar a visualizar o trafego do pacote. Para quem for experiente no assunto por favor entenda.
O que é uma rede?
Uma rede de computadores pode ser comparada com uma árvore, mas não por ter uma "raíz" ou por começar de algum lugar. Uma árvore possui vários galhos e esses galhos tem outros galhos menores com mais galhos e assim por diante, como se quando você quebra essa estrutura em algum ponto ainda existe uma estrutura menor e equivalente na sua mão.
A junção entre um galho e outro pode ser chamada de um "nó", e pensando nisso se uma formiga está na ponta de um galho e quer ir para a ponta de outro ela precisa passar por vários nós acima do galho atual para chegar ao seu destino. O caminho que a formiga percorre pode ser chamado de "rota" e se algum nó no meio do caminho for quebrado, obviamente a formiga não chega a seu destino.
É isso que é uma rede: A formiga seria o que chamamos de "pacote" que percorre uma rota, passando por vários nós, para chegar a algum destino.
Expandindo a ideia
Com a analogia acima acredito que você já está tendo uma ideia do que seria uma rede, que é simplesmente um meio de enviar algo por algum caminho. Mas para entender com mais detalhes e visualizar o que realmente acontece vou fazer outra analogia.
Imagine que você quer enviar alguma encomenda para um amigo seu, para isso você empacota seu item e deixa as informações para envio junto do pacote. O carteiro vai pegar o pacote e enviar ao caminho correto de acordo com as informações passadas, se o caminho for percorrido mas o destinatário não estiver preparado apra receber esse pacote ele volta e você é notificado que sua requisição não foi copletada com sucesso e te informam o motivo.
Para ir de um endereço para o outro o carteiro, ou mensageiro, precisa segir as informações descritas na sua requisição, como bairro, rua e número. Saindo do seu bairro ele fala com a central do correios para saber se conhecem o outro bairro no qual a entrega será feita, se sim lá ele terá de encontrar a rua e dentro dela o número da casa destino. Quando a entrega é feita você será notificado e se seu amigo quiser ele pode mandar uma carta de resposta agradecendo, ou pode ser que sua entrega seja uma carta solicitando o envio de outro pacote.
O caminho percorrido é a rota e cada destino tem seu próprio endereço, incluindo a central que o carteiro foi para consultar se o endereço existe. Se a central não conhecer pode ser que seja de uma outra cidade, mas se você não informar qual cidade a entrega não irá além da central da própria cidade.
E o que isso tem haver com meu computador ou celular?
Agora vou te mostrar que isso é exatamente o que acontece em uma rede, pois seu computador é você que quer enviar um pacote para um outro computador e para isso é preciso de uma rota para o destino e seu computador vai detalhar as informações de envio do pacote. Quando o outro computador receber a entrega ele vai responder que recebeu e dessa forma a comunicação, por enquanto, foi finalizada.
Quem vai saber lidar com a rota para chegar de um computador para outro é o seu "roteador" e se ele não conhecer o destino ele pergunta para outro roteador acima dele, que fica na estrutura do seu provedor, se conhece a rota. Nesse caso os nós da rede são os roteadores e cada nó passado é chamado de salto.
Isso é literalmente como funciona uma requisição em uma rede, apesar de que provavelmente você ainda não está visualizando 100% de como esse envio acontece. Mas como o meu pacote chega na estrutura, por exemplo, da Vercel para pedir esse site? o que tem no meu provedor ou operadora de internet para fazer todos esses saltos?
Como assim a internet é uma rede?
Mantem essa ideia das requisições, pacotes, rotas, roteadores, endereços e saltos na cabeça ok? Bom tudo isso é o que é usado para solicitar que um site que está em um servidor seja enviado para seu aparelho.
Relação cliente-servidor
Podemos substituir a analogia do correios por uma de delivery para essa explicação ficar mais clara(E analogia em redes não falta!).
Da mesma forma você faz a solicitação mas dessa vez é um pedido de comida, logo você é o cliente de um restaurante e eles tem que te servir comida. Você já está ficando bom nisso e já deve ter entendido de cara qual a ideia: Você é um cliente fazendo uma requisição para o servidor, mas você nunca tem contato direto com o cozinheiro. Você fala com um atendente, garçom ou para um amigo ir buscar a comida em um restaurante. Seu amigo vai falar com um atendente que por sua vez fala com o chef para preparar a comida, que depois entrega essa comida e a comunicação faz o caminho contrário.
Seu computador é o cliente que consome conteúdos de servidores em outras redes, os roteadores no caminho procuram o servidor e enviam essa requisição para ele e depois devolvem a resposta. Esse tal "Servidor" que estou falando e você sempre escuta falar é literalmente um computador parecido com o seu, só muda que os componentes tem uma qualidade e capacidade maior para justamente aguentar o alto tráfego de pacotes e requisições dos clientes.
Quais saltos e outros equipamentos estão no caminho?
Aqui que vamos conhecer equipamentos e tecnologias específicas usadas e antes quero esclarecer que alguns aparelhos que vou citar podem variar de um provedor para outro, mas a ideia é parecida na maioria dos cenários.
Na estrutura do seu provedor de internet (diferente de uma operadora que funciona um pouquinho diferente), eles possuem terminais óticos de rede (OLT), Switches, roteadores de borda, concentradores e passivos óticos. Percebam que aqui estou dando exemplo de estruturas que usam fibra ótica, que usam o padrão chamado de "GPON" que é utilizado na grande maioria dos provedores.
Um equipamento que chamamos de passivo é aquele que funciona por construção e não por configuração. Isso quer dizer que ele é algo transparente e não depende da sua ação para começar a funcionar, pois seu funcionamento é um recurso físico. Um bom exemplo é um cabo de rede, que não é configurável e serve apenas para interligar uma interface com outra independente do que estiver passando no meio.
Já o equipamento ativo é aquele que depende da sua intervenção lógica para definir o que ele vai fazer e como se comporta. O melhor exemplo seria um roteador, pois você precisa configurar ele para dizer como ele recebe o sinal e como ele vai distribui-lo.
Um terminal ótico de rede, chamado de OLT, é basicamente uma caixa com várias entradas de fibra que distribui um sinal recebido para várias saidas, e ele é ativo. Ela tem o que chamamos de "uplink" que é onde ela envia e recebe pacotes para um nó acima dela, essa uplink é uma interface parecida com a que você tem no roteador de casa onde chega a internet do provedor, mas é um sinal ótico geralmente monomodo(possui um par de cabos, um para receber e outro para enviar sinal). Para ir até a sua casa a OLT possui outras interfaces chamadas de PON, que é onde a fibra sai e vai para os postes na rua.
Um switch é provavelmente o aparelho mais básico de uma rede, que serve para você escolher para onde que o caminho de um pacote vai passar. É importante mencionar que existem switches de camada 2 e 3 , ou L2 e L3. Um switch L2 funciona de forma transparente e serve a penas para eu escolher para onde vão passar os pacotes, pensando mais na parte física mesmo. Já o L3 pode ser configurado para controlar regras de roteamento e outras coisas que envolvam configurações lógicas.
Um roteador de borda é basicamente um roteador de alta capacidade e gerenciável. Ele serve para controlar toda a rede de todos os clientes de um provedor, dando endereços para todo mundo. Ele é pensado para isso mas também pode ser usado como um concentrador. O concentrador seria o que cuida de altorizar e monitorar os equipamentos.
Os passivos óticos não tem em todo cenário, mas vale mencionar. Seria em sua maior parte os equipamentos de DWDM que transportam uma fibra ótica de um estado ou país para o outro. Ele é totalmente passivo e é equivalente a um cabo de rede.
Cada equipamento ativo é um salto de rede, pois até que a rota para seu destino seja encontrada os saltos não param. Eles são os nós da rede.
Como isso tudo monta a internet?
Agora vamos juntar tudo que vimos até então. Para isso vou descrever o caminho de um pacote passando por cada equipamento e como cada um lida com isso. Vou também citar algumas coisas que não mencionei antes mas que não tem relação direta com a "topologia" de rede da internet.
Primeiro você digitou "tabnews.com.br" na barra de url do navegador ou clicou em um link do site. Isso precisa ser primeiramente traduzido para um endereço de rede, que é um conjunto de números que identifica cada equipamento da internet ou de qualquer rede menor. Para isso existem servidores que resolvem nomes, os servidores DNS, e eles são já conhecidos por qualquer máquina conectada na internet. Seu computador então cria um pacote com as informações necessárias para o servidor DNS receber e devolver para você o endereço que foi solicitado. Esse processo é parecido com qualquer outra requisição a um servidor, alterando apenas as informações de envio e o tipo do conteúdo, então para não ter repetição vou descrever como esse caminho é feito para receber o site e não para receber esse nome.
Tendo o endereço, o seu computador deve montar o pacote que inclui um cabeçalho e as vezes um corpo. O corpo contém o conteúdo que você solicita diretamente com o navegador, se você não interagiu diretamente com essa requisição geralmente o pacote contém apenas os cabeçalhos. Eles são as informações do tipo de requisição que está sendo feita e das informações em si. Quando a resposta for recebidia ela terá cabeçalhos parecidos mas com outros valores e um corpo que é o conteúdo solicitado.
Essas requisições de sites usam o protocolo HTTP, que é um protocolo de nível de aplicação. Isso quer dizer que ele define apenas como o conteúdo da requisição deve ser interpretado e respondido. Já para a requisição em si é usado o protocolo TCP/IP, que é um protocolo de nível de transporte e define como a comunicação da sua máquina até o servidor será feita.
Essas informações do pedido que você faz para o site usando o protocolo HTTP ficam armazenadas no pacote TCP junto de outras informações para a comunicação. Para todo o tráfego dos dados o protocolo mais importante é o TCP.
Então quando seu pacote estiver pronto ele é enviado para o seu "portão de saida" ou "gateway". Ele é o equipamento que dentro da topologia está a um salto acima de você, que geralmente é seu roteador de casa. Seu roteador também tem um gateway que geralmente é um roteador de borda no seu provedor, mas para chegar até ele tem um longo caminho.
Seu roteador de casa pode ser que esteja acompanhado de uma "ONU" (unidade ótica de rede). Esse aparelho é quem realmente recebe o sinal ótico na sua casa e as vezes a ONU também tem a funcionalidade de um roteador e disponibiliza WiFi e portas LAN com sua própria rede local (LAN). Independente do que estiver na sua casa, esse sinal vai para um distribuidor do seu prédio ou do seu bairro e percorre pelos postes, ou por um caminho subterrâneo, até a central do seu provedor.
No seu provedor existe uma OLT que é onde o sinal do seu roteador/ONU e de todo seu bairro ou prédio está chegando. A OLT vai direcionar esse sinal para um switch. Em alguns provedores de pequeno porte a OLT pode se conectar diretamente no roteador de borda. No switch geralmente é agregado todas as OLTs do local ele pode ser passivo, pois a comunicação do reador da sua casa é feita com o roteador de borda acima do switch.
Até então todo o caminho feito da sua casa até o roteador de borda foi totalmente transparente e só agora será feito o próximo salto de rede. No roteador de borda ele verifica se ele conhece o caminho para o servidor solicitado. Muitas vezes já nesse ponto a rota é conhecida caso o acesso que você esteja fazendo for a um site do provedor ou a uma CDN, que é basicamente um servidor cópia de outro fora da rede.
Se ele não conhecer então um salto acima é feito e essa requisição vai para outro provedor de internet. Algo comum é quando um provedor tem um grande porte ele possui centrais em várias cidades ao redor do país, e para conecar essas centrais é utilizada a tecnologia DWDM que literalmente agrega e amplifica o sinal ótico de um ponto para outro.
Aqui é importante deixar claro que todo provedor de internet se conecta com outros provedores. Para criar uma rede todo mundo deve estar físicamente conectado, então sempre tem um cabo indo para a rota que você solicitou. A internet não é "gerada" ou começa em algum lugar, ela é justamente a ligação de todos os provedores e servidores do mundo. Agora está visualizando essa enorme rede? bom.
Sua requisição está agora em outro provedor de internet que não é o seu, e dele vai para outro que vai para outro até chegar no provedor da própria Vercel, que é quem tem o site tabnews.com.br. Esse provedor conhece o endereço então envia o pacote para o outro cliente dele que vai lidar com a requisição. No caso da Vercel pode ser que seja uma CDN deles.
Com seu pacote na Vercel ele irá até o servidor do site. Não conheço exatamente como é a infraestrutura da empresa, mas sei que eles tem no mínimo um roteador de borda, um switch e o servidor em si. Considerando que o switch seja passivo (L2), seu pacote chega no roteador que conhece o servidor requisitado. Ele manda seu pacote para ele e finalmente seu pacote chegou ao destino final.
Mas a conexão não para por ai, pois o servidor deve enviar uma resposa de volta, que é a página em si. Lembra que a requisição HTTP pode ter um corpo? antes se não tinha agora tem, pois a resposta do servidor será uma resposta HTTP com um cabeçalho indicando o sucesso da chegada do pacote e o corpo da requisição que é a página solicitada.
Então todo o caminho de ida é feito ao contrário para chegar de volta até você e com esse pacote seu navegador interpreta a resposta e desempacota a requisição para seu navegador montar a página.
E depois? Conclusão
É isso. Esse é todo o caminho que um pacote faz para que você receba um site ou qualquer informação pela web.
Então para resumir: Seu navegador, junto do seu computador, monta um pacote com informações para o envio. Esse envio tem como destino um servidor que possui o site. Para fazer o envio esse pacote passa por vários saltos, começando com seu roteador doméstico, indo para um roteador de borda e passando por vários provedores. Quando o pacote chega no servidor ele desempacota as informações e responde com outro pacote, que contém o conteúdo do site e percorre o caminho de volta.
Espero que eu tenha conseguido prender sua atenção e fazer você entender como a internet funciona!