Cómo funciona Internet
Construye un modelo mental de cómo Internet conecta clientes y servidores a través de protocolos e infraestructura en capas
Gran panorama: el ciclo de vida de una solicitud
Request travels down.
Intención del usuario formada
- El ciclo de vida de una solicitud en Internet es una secuencia coordinada de capas especializadas que trabajan en orden.
- Cada capa resuelve un problema distinto de sistemas y pasa la responsabilidad a la siguiente.
- Lo que parece una sola acción en realidad es una canalización estructurada que se ejecuta a través de múltiples abstracciones.
Detalles
Navegador → DNS → TCP → HTTP → Servidor → Base de datos → Respuesta → Renderizado
A alto nivel, una solicitud web no es una sola acción, sino una cadena de sistemas que trabajan juntos. Cada paso existe para resolver un problema específico: encontrar el destino, establecer la comunicación, definir la solicitud, procesar la lógica, recuperar datos y devolver resultados.
DNS responde “¿Dónde está ubicado este servicio?” TCP responde “¿Cómo nos comunicamos de forma confiable?” HTTP responde “¿Qué se está solicitando exactamente?” El servidor y la base de datos responden “¿Qué debe calcular y devolver el sistema?”
Estas capas operan de forma independiente, pero cooperan en secuencia. Ningún componente entiende el sistema completo: cada uno cumple su función y pasa el control al siguiente.
Lo que para un usuario parece instantáneo en realidad es una canalización estructurada de abstracciones que se ejecuta en milisegundos.
El disparador: escribir una URL
Los humanos escriben nombres. Las redes requieren identidades numéricas de enrutamiento.
- Una URL es una etiqueta fácil de usar, no una dirección de red directa.
- El navegador extrae el dominio y lo prepara para su resolución.
- El dominio debe traducirse a una dirección IP antes de que comience la comunicación.
Detalles
Cuando un usuario escribe una URL, el navegador hace más que solo “abrir una página”. Primero analiza la entrada para identificar el protocolo (como HTTPS), el nombre de dominio y la ruta solicitada.
Las computadoras no pueden enrutar tráfico usando nombres de dominio como example.com. Las redes funcionan con direcciones IP, que son identificadores numéricos.
El navegador revisa su caché local para ver si ya conoce la dirección IP de ese dominio. Si no, inicia un proceso de búsqueda DNS para resolver el nombre en una dirección IP enrutable.
Solo después de este paso de traducción el sistema puede avanzar para establecer una conexión.
Nombre a IP: Resolución DNS
DNS convierte nombres de dominio legibles por humanos en direcciones IP mediante un sistema de búsqueda jerárquico y distribuido globalmente.
Acierto de caché: instantáneo. Fallo de caché: recorrido completo de la jerarquía DNS.
- DNS convierte el nombre de un sitio web en la dirección IP numérica que usan las computadoras para comunicarse.
- La búsqueda sigue un recorrido paso a paso a través de distintos servidores DNS hasta encontrar la dirección correcta.
Detalles
DNS está diseñado como un directorio distribuido para Internet. En lugar de depender de una sola base de datos central, la responsabilidad se divide entre varias capas de servidores para admitir una escala global.
Cuando un dominio no se conoce localmente, un resolvedor recursivo inicia el proceso de búsqueda. Primero contacta a un servidor raíz, que indica el servidor de Dominio de Nivel Superior (TLD) correcto, como .com o .org. Luego, el servidor TLD dirige al resolvedor al servidor de nombres autoritativo para ese dominio específico.
El servidor autoritativo proporciona la dirección IP final. Esa dirección se devuelve al cliente, lo que permite que el navegador continúe y establezca una conexión de red con el destino correcto.
Este diseño por capas mantiene DNS organizado, escalable y capaz de admitir miles de millones de búsquedas cada día.
Conexión: el handshake TCP
La comunicación confiable solo comienza después de que ambas partes acuerdan cómo funcionará la conversación.
Cliente
Servidor
Cliente: ¡Vamos a sincronizarnos!
- TCP garantiza que los datos lleguen de forma confiable y en el orden correcto.
- Antes de enviar datos, ambas partes realizan un handshake de tres pasos.
- Este handshake confirma la disponibilidad y sincroniza los números de secuencia.
Detalles
TCP no comienza a enviar datos de la aplicación de inmediato. Primero establece una conexión usando un proceso de tres pasos: SYN → SYN-ACK → ACK.
El cliente comienza enviando un mensaje SYN (synchronize) para solicitar una conexión. El servidor responde con SYN-ACK, reconociendo la solicitud y compartiendo su propio número de secuencia inicial. Luego, el cliente envía un ACK para confirmar la recepción. En este punto, ambas partes acuerdan los números de secuencia iniciales y saben que la otra parte está lista.
Este intercambio establece la base para una entrega confiable. TCP rastrea los números de secuencia, detecta paquetes perdidos, retransmite los datos faltantes y ajusta la velocidad de envío según las condiciones de la red.
Solo después de este paso de coordinación comienza a fluir realmente los datos de la aplicación.
Capa de aplicación: HTTP
HTTP define cómo los clientes solicitan recursos y cómo los servidores responden mediante un protocolo estructurado de solicitud-respuesta.
- HTTP define un lenguaje común que tanto los navegadores como los servidores acuerdan seguir.
- Estandariza cómo se solicitan los recursos y cómo se formatean las respuestas.
- Convierte datos de red en bruto en acciones significativas como “obtener esta página” o “enviar este formulario”.
Detalles
TCP garantiza la entrega confiable de bytes, pero no define qué significan esos bytes. HTTP se sitúa por encima de TCP y aporta estructura y semántica a la comunicación. Define cómo un cliente pide algo y cómo responde un servidor.
Una solicitud HTTP incluye un método (como GET o POST), encabezados que describen metadatos y, opcionalmente, un cuerpo que contiene datos. El servidor responde con un código de estado, encabezados y el contenido solicitado. Como ambas partes siguen las mismas reglas, pueden interpretar los mensajes de forma consistente.
HTTP es esencial porque Internet es un sistema compartido. Sin un protocolo común que defina la estructura y la intención de los mensajes, los navegadores y los servidores no se entenderían entre sí. HTTP crea ese lenguaje compartido para la web.
Define qué se solicita y qué se devuelve, no cómo viajan físicamente los datos a través de la red.
Dentro del servidor
Un servidor funciona porque el sistema operativo administra los recursos de hardware mientras el código de la aplicación maneja y responde a las solicitudes.
Solicitudes entrantes
El SO asigna CPU + memoria → la app ejecuta la lógica
Respuestas enviadas
- Una solicitud del cliente llega y se entrega a un programa del servidor a través del sistema operativo.
- El sistema operativo asigna tiempo de CPU, memoria y acceso a la red para procesar esa solicitud.
- La aplicación del servidor ejecuta la lógica y produce una respuesta para devolverla.
Detalles
Cuando los datos llegan a una máquina, no “se ejecutan” automáticamente. El sistema operativo recibe los datos de red y los dirige al proceso correcto usando sockets. Así es como la solicitud llega al programa del servidor.
Luego, el sistema operativo administra los recursos necesarios. Programa el tiempo de CPU para que el servidor pueda ejecutarse, asigna memoria para el procesamiento y controla el acceso a archivos o bases de datos. Sin el sistema operativo coordinando estos recursos, no se podrían manejar varias solicitudes de forma segura o eficiente.
Una vez que la solicitud está dentro del proceso del servidor, la lógica de la aplicación toma el control. Interpreta el mensaje HTTP, realiza los cálculos necesarios o las consultas a la base de datos, y construye una respuesta.
El sistema operativo permite la ejecución. La aplicación del servidor define el comportamiento.
Base de datos y persistencia
Una base de datos es un sistema diseñado para almacenar, organizar y recuperar de forma fiable los datos de una aplicación a lo largo del tiempo.
| ID | Nombre | Rol |
|---|---|---|
| 21 | Alice | User |
| 22 | Brian | Admin |
| 23 | Cathy | User |
| 24 | Daniel | User |
| 25 | Eva | Admin |
- Las bases de datos existen para almacenar datos de forma duradera más allá de la ejecución de un solo programa.
- Organizan la información para que pueda buscarse y actualizarse de manera eficiente.
Detalles
Las aplicaciones generan datos constantemente: cuentas de usuario, publicaciones, transacciones, registros y configuraciones. Si estos datos vivieran solo en memoria, desaparecerían cada vez que el programa se reiniciara. Las bases de datos resuelven esto proporcionando almacenamiento duradero en disco o en sistemas distribuidos.
Pero el almacenamiento por sí solo no es suficiente. Los datos deben estar estructurados y poder consultarse. Las bases de datos organizan la información en tablas o colecciones y proporcionan lenguajes de consulta que permiten a las aplicaciones recuperar registros específicos sin tener que recorrer todo manualmente.
Para mejorar el rendimiento, las bases de datos usan índices, estructuras de datos especializadas que funcionan como un mapa de búsqueda. En lugar de comprobar cada fila, el motor puede ir directamente a las entradas relevantes.
Las bases de datos son fundamentales porque las aplicaciones modernas requieren estado persistente. Sin ellas, cada solicitud funcionaría de forma aislada, sin memoria de la actividad anterior.
Capas de rendimiento: caché y CDN
Los sistemas modernos mejoran la velocidad almacenando el contenido solicitado con frecuencia más cerca de los usuarios, en lugar de volver a calcularlo cada vez.
- La caché evita cálculos repetidos al servir respuestas almacenadas.
- Las CDN distribuyen el contenido geográficamente para reducir la latencia y la carga en el origen.
Detalles
Cuando un usuario solicita el mismo recurso varias veces, volver a calcularlo desde cero es ineficiente. La caché resuelve esto almacenando una copia de la respuesta para que las solicitudes futuras puedan servirse de inmediato sin volver a consultar la base de datos ni la lógica de la aplicación.
Las cachés existen en varias capas: dentro del navegador, en el servidor y en el borde de la red. Una Content Delivery Network (CDN) amplía esta idea a nivel global distribuyendo el contenido entre centros de datos geográficamente dispersos. En lugar de contactar siempre al servidor de origen, los usuarios se enrutan a la ubicación de edge más cercana.
Reducir la distancia física disminuye la latencia de red, y reducir el cálculo repetido disminuye la carga del servidor. Juntas, estas optimizaciones mejoran drásticamente el tiempo de respuesta a escala.
Sin embargo, los datos en caché pueden quedar desactualizados, por lo que los sistemas deben equilibrar la velocidad con la frescura de los datos.
Puntos de fallo
En un sistema por capas, cualquier componente a lo largo del recorrido puede fallar, y la experiencia general depende de qué tan bien el sistema maneja esos fallos.
DNS
TCP
Servidor
Base de datos
- Cada capa en el ciclo de vida de la solicitud puede fallar de forma independiente.
- Los fallos en un componente pueden impedir que toda la solicitud se complete.
- Los sistemas confiables anticipan y se recuperan de fallos parciales.
Detalles
Como el ciclo de vida de una solicitud en Internet abarca DNS, transporte, servidores y bases de datos, pueden surgir problemas en cualquier etapa. Si DNS no puede resolver un dominio, la conexión nunca comienza. Si la red pierde paquetes o la conexión TCP se rompe, la comunicación se interrumpe.
Incluso después de que una solicitud llega al servidor, todavía pueden ocurrir fallos. El proceso del servidor podría bloquearse, quedarse sin memoria o no poder conectarse a la base de datos. Una base de datos lenta o que no responde puede retrasar toda la respuesta.
Los sistemas distribuidos rara vez fallan todos a la vez. En cambio, fallan de forma parcial: una región, una instancia o una dependencia a la vez. Diseñar sistemas resilientes requiere añadir redundancia, comprobaciones de estado, reintentos y mecanismos de respaldo en varias capas.
Entender dónde pueden ocurrir fallos es esencial para comprender cómo se comportan los sistemas del mundo real.
Sección de preguntas
1 / 5