Internet: Paquetes, enrutamiento y confiabilidad
Hola, soy Lynn, ingeniera de software en Spotify y la primera en admitir
que suelo dar por sentada la fiabilidad de Internet. La cantidad de información
que hay Internet es asombrosa. Pero, ¿cómo es posible que cada dato
se envíe de forma fiable? Digamos que quieres reproducir una canción de Spotify.
Es como si la computadora se conectase directo a los servidores y Spotify enviase
la canción directamente. En realidad, no es así como funciona Internet. Si
estuviese hecha de conexiones directas, sería imposible que todo funcionase para
millones de usuarios a la vez. Sobre todo, porque no hay garantía de que cada cable
y computadora funcionen al mismo tiempo. Los datos viajan por Internet de manera
menos directa. Hace muchos años, a inicios de los 70, mi socio Bob Khan y yo
comenzamos a trabajar en el diseño de Internet. Teníamos la responsabilidad
y la oportunidad de diseñar sus protocolos y arquitectura. Así que seguimos siendo
parte del crecimiento y la evolución de Internet desde aquel momento,
hasta el presente. La forma en que la información va de una computadora a otra
es muy interesante. No necesita seguir un camino fijo. De hecho, tu camino puede
en el medio de una conversación entre computadoras. La información en Internet
va como paquete de una computadora a otra, y ese paquete viaja de un lugar
a otro en Internet, como si uno fuese de un lugar a otro en un automóvil.
Si hay mucho tráfico o el camino está mal, puedes elegir o verte obligado a tomar
un camino diferente para llegar al mismo lugar cada vez que viajas. Y así como
puedes llevar todo tipo de cosas dentro de un auto, se pueden enviar muchos tipos de
información digital con paquetes. Pero hay algunos límites. Por ejemplo, si tienes
que mover un transbordador espacial desde donde fue construido a donde se lanzará,
el vehículo no cabrá en un camión, por lo que debes dividirlo y transportarlo en
varios camiones, que podrían tomar distintos caminos y llegar a destino en
diferentes momentos. Una vez allí, puedes reunir las piezas, armar el transbordador
y prepararlo para el lanzamiento. En Internet, los detalles son parecidos. Si
tienes una imagen muy grande que quieres enviar a un amigo o subir a un sitio web,
esa imagen puede estar hecha de decenas de millones de bits de 1 y 0, demasiados para
enviar un solo paquete. Como están en una computadora, la imagen se divide
en cientos o miles de partes más pequeñas llamadas paquetes. A diferencia de los
autos o camiones, estos paquetes no tienen conductores que eligen sus rutas. Cada
paquete tiene la dirección de Internet de origen y hacia dónde va. Las computadoras
en Internet, llamadas enrutadores, son los que dirigen el tráfico para que los
paquetes se muevan en las redes. Si una ruta se congestiona, los paquetes toman
otras rutas en Internet y llegan a destino en momentos un poco diferentes o
pueden quedar fuera de servicio. Hablemos sobre esto. Como parte del protocolo,
cada enrutador registra las diversas rutas de envío de los paquetes, y elige la menos
costosa para cada dato según la dirección IP de destino para el paquete.
Pero no tiene que ver con el costo, sino con el tiempo y factores no técnicos, como
política y relaciones entre empresas. La mejor ruta para los datos no siempre es
la más directa. Al tener opciones de rutas la red puede manejar las fallas. Así,
la red puede enviar paquetes aunque algo salga muy, muy mal.
Esta es la base para el principio clave de Internet: la fiabilidad. Ahora, ¿qué
pasa si pediste datos y no todo llegó? Digamos que quieres escuchar una canción.
¿Cómo puedes estar 100% seguro de que los datos se enviarán y la canción sonará?
Te presentamos al protocolo de control de transmisiones, TCP, tu nuevo amigo.
TCP maneja el envío y recepción de datos como paquetes, como un servicio de correo.
Si quieres una canción en tu dispositivo, Spotify la envía como muchos paquetes.
Cuando llegan, el TCP hace un inventario completo y envía confirmaciones
de cada paquete recibido. Si todos están allí, el TCP firma tu entrega y listo.
(canción) Si el TCP no encuentra algunos paquetes, no firmará, y tu canción
no sonará como debe o faltarán algunas partes. Spotify reenviará cada paquete
perdido o incompleto. Una vez que el TCP verifica la entrega de muchos paquetes
para la canción que pediste, esta empezará a sonar. Lo genial del TCP y los sistemas
de enrutadores es que son escalables. Pueden funcionar con 8 u 8 millones de
dispositivos. Gracias a la tolerancia de fallas y la redundancia, cuantos más
enrutadores haya, más confiable será Internet. Además, lo genial es que puede
crecer sin interrumpir el servicio. Internet está hecha de cientos de miles
de redes y miles de millones de computadoras y dispositivos conectados
físicamente. Estos sistemas se conectan, comunican y funcionan entre sí según
estándares comunes sobre cómo se envían los datos a través de Internet.
Los dispositivos, o los enrutadores en Internet, ayudan a los paquetes a llegar
a destino, donde son reensamblados, si es necesario. Esto ocurre miles de millones
de veces al día, cuando envías un email, visitas una página web, hablas por video
o usas una app móvil, o cuando los sensores o dispositivos en Internet
hablan entre sí.