Fundamentos de rede para programadores web
O que é uma rede
Antes de qualquer coisa, precisamos ter uma definição do que é uma rede para que qualquer aprendizado faça sentido.
Uma rede é formada por dispositivos conectados, possibilitando a transferência de dados entre eles. Pode ser pequena, como dois computadores no mesmo Wi-Fi, ou gigantesca, como a Internet. Independentemente do tamanho, a ideia é sempre a mesma: um dispositivo envia informação, outro recebe, e ambos seguem um conjunto de regras que define como essa comunicação acontece.
Para quem desenvolve aplicações web, entender redes não é só uma curiosidade técnica, mas sim parte do dia a dia. Toda requisição HTTP, toda consulta DNS, todo acesso a uma API passa por uma série de decisões e comportamentos da rede. Saber como isso funciona ajuda a diagnosticar problemas, entender limitações e criar sistemas mais previsíveis.
Topologia de rede
Além de saber o que é uma rede, vale entender como esses dispositivos podem estar organizados fisicamente ou logicamente. Isso é a topologia. Se você conecta um cabo de rede de um computador para o outro, já temos uma rede de ponta-a-ponta, por exemplo. Como programadores, nós não precisamos saber configurar ou escolher a melhor topologia, mas é importante saber que redes podem possuir diversos desses “formatos” diferentes.
LAN, WAN e Internet
Quando se fala sobre desenvolvimento web e redes, obviamente Internet é a primeira coisa que nos vem à mente, mas há outros tipos de rede que nós temos contato frequentemente.
LAN
Uma Local Area Network é uma rede local, como a da sua casa ou do seu escritório. É pequena e rápida, geralmente com poucos dispositivos.
Se você tiver uma idade próxima da minha, talvez se lembre de jogar Counter-Strike em uma LAN House. O nome não é coincidência: todos os computadores estavam na mesma rede local.
WAN
Uma Wide Area Network pode conectar diversas LANs, como por exemplo a rede de uma empresa com vários escritórios, onde cada escritório é uma LAN e todas juntas formam uma WAN.
Internet
A Internet é basicamente a maior WAN de todas e funciona como uma espécie de interconexão global de várias outras redes.
Para sair do seu computador e chegar até um servidor web, por exemplo, um pacote de rede passa pelo seu roteador, vai até seu provedor local de internet, viaja por diversos pontos intermediários nessa rede global até efetivamente chegar na rede onde esse servidor se encontra.
Pacotes de rede
Imagine o seguinte cenário: você quer enviar o conteúdo desse livro de um computador para outro em uma mesma rede.
Quando um dispositivo envia dados pela rede, ele não manda tudo de uma vez. A informação é quebrada em pedaços menores chamados pacotes. Cada pacote carrega não só parte dos dados, mas algumas informações a mais — como endereço de origem, destino, identificação, etc — que permitem que a rede saiba para onde ele deve ir e como remontar tudo no final.
Do ponto de vista de quem desenvolve aplicações web, entender pacotes ajuda a visualizar o que realmente acontece “por baixo” de uma requisição. Um JSON de 200 KB, por exemplo, chega ao destino em dezenas de pacotes independentes, cada um podendo seguir caminhos diferentes até o servidor. No destino, esses pacotes são reagrupados antes de a aplicação finalmente receber a informação completa.
Latência e largura de banda
Quando um pacote é transmitido, ele passa por diversos meios físicos de transmissão. Se seu computador está conectado via Wi-Fi, as informações chegam ao seu roteador pelo ar, depois são transformadas e transmitidas via cabo até um servidor do seu provedor de internet, e de lá seguem o caminho até o destino passando por diversos outros cabos e meios físicos.
O tempo que leva para uma mensagem ser enviada na rede depende de duas principais métricas: latência e largura de banda.
Pense no seguinte cenário: você quer transportar água de um ponto a outro e para isso vai utilizar um cano. O tempo que leva para uma gota de água ir de um ponto a outro do cano é chamado de latência. Já a quantidade de água que cabe nesse cano por vez é a largura de banda.
Sendo assim, o tempo que um pacote demora para chegar ao seu destino na rede é a latência, enquanto a largura de banda indica quantos bits, kilobits, megabits ou gigabits podem ser trafegados por segundo, por exemplo.
![]() |
Outro termo bastante comum é RTT (round trip time), que é basicamente a latência de um pacote indo e voltando, ou seja, a latência para o caminho de ida e volta. |
Ambos os fatores importam muito para um desenvolvedor web e diversas técnicas do dia a dia tentam diminuir a latência e a largura de banda necessária na comunicação.
Camadas de rede
Em uma comunicação na rede, cada mensagem passa por etapas bem definidas. Desde o processo de transformar ondas eletromagnéticas em bits até como uma resposta HTTP deve ser formatada, essas etapas são divididas em camadas: cada uma faz uma parte específica do trabalho e entrega o resultado para a próxima. Uma camada não precisa saber como as outras funcionam por dentro; ela só recebe dados, adiciona as informações que lhe cabem e repassa adiante.
Existem dois modelos de separação de camadas:
- Modelo OSI
-
mais acadêmico e mais detalhado, com 7 camadas.
- Modelo TCP/IP
-
mais simples e mais próximo do que realmente usamos na web, com 4 camadas.
Protocolos
Cada camada funciona usando protocolos, que são basicamente conjuntos de regras que definem como a comunicação deve acontecer: como os dados são organizados, como são enviados, como são interpretados e como lidar com erros.
Um protocolo define coisas como:
- o formato da mensagem,
- quais campos ela precisa ter,
- como iniciar e encerrar a comunicação,
- e o que fazer caso algo dê errado no caminho.
Cada protocolo opera em uma camada específica, mas, na prática, vários deles trabalham juntos. Uma requisição HTTP, por exemplo, normalmente depende de TCP, que depende de IP, que depende da camada de enlace — tudo empilhado de forma organizada.
Modelo OSI
Começando pelo modelo mais completo, complexo e detalhado, o Modelo OSI é uma forma de organizar como a comunicação em rede funciona, dividindo tudo em 7 camadas.
- Física — transmite bits pelos meios físicos (cabos, rádio, fibra).
- Enlace — controla o envio entre dois dispositivos na mesma rede; aqui vivem endereços físicos (MAC) e switches.
- Rede — decide rotas e endereços; aqui vive o IP.
- Transporte — garante (ou não) a entrega dos dados; aqui vivem TCP e UDP.
- Sessão — gerencia sessões de comunicação (firewalls podem usar essa camada).
- Apresentação — trata formatos de dados, criptografia e codificação.
- Aplicação — onde estão os protocolos usados por apps, como HTTP, DNS e SMTP.
Você não precisa memorizar tudo isso, nem usar o modelo OSI no dia a dia. Ele serve mais como mapa mental: ele mostra que a comunicação na rede é dividida em responsabilidades e que nem tudo acontece “no mesmo lugar”.
Modelo TCP/IP
Pensando na internet moderna e como nós, programadores web, enxergamos o mundo, o modelo TCP/IP é a forma mais prática de organizar as camadas. Diferente do modelo OSI, ele não tenta ser tão detalhado. É um modelo mais simples, com 4 camadas.
Camada de Acesso à Rede
A camada mais profunda desse modelo trata da conexão física entre dispositivos: como os bits trafegam no meio físico, como dispositivos da mesma rede se encontram e como um pacote chega até o roteador mais próximo. Aqui entram coisas como endereços físicos, links e tecnologias de transmissão.
Camada de Internet
Essa camada vive logo acima da camada de acesso à rede e é responsável por identificar redes e dispositivos e encaminhar os pacotes entre elas. Falando sobre protocolos, é aqui que o IP opera, por exemplo. Essa camada decide para onde o pacote deve ir, mesmo que isso envolva passar por uma longa sequência de roteadores até alcançar o destino final.
Camada de Transporte
Logo acima da camada de Internet, a camada de transporte é responsável por garantir que os dados são enviados de forma confiável e na ordem correta entre dispositivos. Nessa camada, conceitos como portas e ordem de pacotes são introduzidos. Nela também vivem os famosos protocolos TCP e UDP.
Camada de Aplicação
Localizada mais acima do modelo e a mais próxima de nós usuários, conhecida como camada de aplicação, é com a qual nós programadores web temos mais contato. Todas as interações que um desenvolvedor web toca no dia a dia estão aqui.
Essa camada atua como a ponte entre programas (navegadores, outros clientes HTTP e código que nós escrevemos) e camadas mais abaixo que realmente lidam com como dados são enviados e recebidos.
Como essa é a camada que mais utilizamos, ela também abriga os protocolos mais conhecidos por nós como HTTP, DNS, SSH, etc.
Comparação
Para efeitos de comparação entre os dois modelos, aqui tem uma imagem que mostra como as camadas estariam distribuídas em cada um deles. Dessa forma você pode ver quais são as camadas correspondentes de ambos os modelos:

Os próximos capítulos tratarão de protocolos de cada camada do modelo TCP/IP, a partir da camada de Internet.
