¿Cuál sería la diferencia de velocidad de Internet si estuvieras cerca de un servidor, en lugar de estar al otro lado del país?

La respuesta depende de varios factores. Si tomamos el simple caso de descargar un archivo grande, notará que la velocidad aumenta gradualmente a medida que el tamaño de la ventana TCP se expande automáticamente hasta que maximiza alguna parte de la conexión. Cuanto más lejos esté el servidor, mayores serán las probabilidades de que alguna conexión intermedia o punto de interconexión lo detenga. Una página web se comportará de manera muy diferente. Eso se debe a que el tiempo está dominado por el tiempo de ida y vuelta, no por la velocidad general de datos.

Antes de explicar por qué aquí hay algunos datos reales

Esta es mi conexión a un servidor local.

Esta es la misma conexión hablando con un servidor en Winchester Virginia

La parte interesante es el gráfico de velocidad en el tiempo.

Puede ver la velocidad de construcción a través de la primera parte de la prueba. Lo que está sucediendo allí es que se está aumentando el “tamaño de la ventana”. Cuando solicita datos de un servidor, le envía algunos y luego espera a que acuse recibo. El reconocimiento lleva tiempo (61 ms en el caso del servidor en Virginia). Mientras eso sucede, no fluyen datos. Cuando recibe un recibo, el servidor se da cuenta y envía un trozo de datos un poco más grande. Este proceso se repite con los trozos (tamaño de la ventana) cada vez más grandes hasta que no hay espacio entre ellos y la curva se aplana.

Si transfiere un archivo realmente grande, ese aumento inicial realmente no importa. Sin embargo, las páginas web están formadas por muchos archivos pequeños. Por lo tanto, un navegador tiene que pasar por la fase de aceleración para cada parte de la página. Esto hace las cosas muy lentas. Para combatir eso, los navegadores abren múltiples conexiones a un servidor y descargan partes de la página en paralelo. También reutilizan la conexión para obtener partes adicionales de la página, ahorrando el tiempo necesario para configurar una nueva conexión.

Los grandes sitios web utilizan una red de entrega de contenido (CDN) para evitar la demora. Un CDN es un servicio especializado que tiene un servidor en muchas partes del mundo que actúa como caché de contenido. En lugar de hablar con el servidor, la conexión de su navegador se enruta al nodo cerrado de CDN. El CDN luego sirve una copia que tiene en su caché o obtiene una del servidor maestro (“origen”), generalmente a través de una red troncal realmente rápida.

Aquí hay una página del proyecto AMP CDN (Infraestructura de Google) Borrador de carta de líderes deportivos: Prohibir a Rusia de los Juegos Olímpicos debería estar cerca del instante en cualquier lugar \ (en mi escritorio la página se carga en 440 ms). AMP combina un CDN agresivo con una gran cantidad de optimización de script inteligente para hacer volar las páginas web móviles. La misma página sin las optimizaciones de AMP y CDN tardó 17 segundos en cargarse. (tiempos con caché del navegador local deshabilitado en ambos casos)

Lo anterior se simplifica drásticamente:

Consulte la opción de escala de ventana TCP para obtener más información sobre el tamaño de la ventana y el control de congestión.
y una conexión HTTP persistente sobre cómo los navegadores reutilizan las conexiones. y SPDY: un protocolo experimental para una web más rápida: The Chromium Projects para obtener información sobre cómo hacerlo aún más rápido. Por último, vea Proyecto de páginas móviles aceleradas para saber cómo hacer que las páginas web sean tan rápidas.

[divulgación mi empresa Relay Media crea el sitio web de AMP para editores.]