¿Por qué los paquetes de Internet toman rutas aparentemente tontas?

La respuesta es una combinación de economía y preferencias de enrutamiento establecidas internamente por cada ISP. Dependiendo de qué tan grande sea un ISP, tendrá relaciones entre pares (sin costo) o proveedor-cliente con cada uno de sus vecinos. En general, un ISP siempre enrutará el tráfico a través de sus pares siempre que sea posible para evitar pagar los costos de tráfico a un proveedor, y generalmente preferirá enrutar a través del vecino que puede sacar el paquete de su red local lo antes posible, para reducir su carga interna. Esto se llama enrutamiento de papa caliente.

Existen muchas reglas generales que rigen el funcionamiento del tráfico entre ISP, definido como el protocolo BGP-4. El enrutamiento por relaciones de pares a menudo es capturado por el algoritmo de Gao (o el algoritmo de enrutamiento sin valle). Ambos se pueden buscar fácilmente en Google.

Dentro de cualquier ISP, además del enrutamiento de la papa caliente, el ISP también tendrá sus propias preferencias internas sobre qué rutas internas tomar para cada red de destino, en función de la carga en sus rutas internas y una métrica de costos personalizable. Estas métricas de costos generalmente tienen muy poco que ver con la proximidad física. Eso solo entra en juego cuando se han considerado todas las demás métricas de costos.

En general, se debe a que la noción de costo de los operadores de red puede ser diferente a la suya. Por ejemplo, su ISP podría tener una conexión directa con el ISP de un sitio web en uno de los grandes intercambios en California, por lo que el tráfico enrutado de esa manera no requerirá tránsito a través de una tercera red (que a menudo debe pagarse en conjunto). Incluso sin costos de tránsito, podría ser simplemente que los enlaces hacia / desde las posibles redes de tránsito en Boulder están congestionados, pero los enlaces del propio ISP y del sitio web a California están infrautilizados. El enrutamiento de Internet es técnicamente complicado, y aún más financieramente, por lo que a menudo ocurren todo tipo de resultados extraños.

EDITAR: Aquí hay un ejemplo adicional que podría arrojar algo de luz sobre las razones detrás de estas rutas extrañas. Trabajo para una gran empresa (Red Hat) con muchas oficinas y muchos más trabajadores remotos. Tienen una red interna compleja. Vivo en Lexington, Massachusetts. La mayoría de los recursos que uso están bastante cerca en Westford, pero mis conexiones con ellos siempre pasan por Raleigh, Carolina del Norte. ¿Por qué? Es porque mi empleador, respondiendo exactamente a las mismas preocupaciones que cualquier ISP, ha descubierto que es más barato tener solo unos pocos puntos de tránsito externos y un montón de líneas arrendadas internas en lugar de muchos puntos de tránsito. También es mucho más simple en términos de enrutamiento, monitoreo de seguridad, etc. Una topología más compleja podría reducir la latencia hacia / desde sitios externos, pero las diversas desventajas son una preocupación mucho mayor.

No conozco los detalles de los ISP comerciales, pero esto es más un problema de enrutamiento que un problema de seguridad.

Suponiendo que su paquete está tratando de llegar a un host en un ISP diferente, es más barato interconectar los propios nodos a través de troncales principales que conectarse localmente a otro ISP en cada pequeña ubicación. Hay una razón importante para esto.

La red troncal de Internet ejecuta un protocolo de enrutamiento llamado BGP (Border Gateway Protocol). Cada uno de estos enrutadores BGP principales necesita mantener una base de datos de rutas muy grande. (Ver: http://en.wikipedia.org/wiki/Bor …). Esto significa que se necesitan enrutadores de puerta de enlace relativamente robustos y caros para mantener estas tablas. Además, cada troncal proveniente de un enrutador de puerta de enlace cuesta dinero, tanto por los requisitos de recursos locales (enrutadores y conmutadores) como por el costo de la línea. Supongo que generalmente es más barato conectarse de nuevo a una ubicación central dentro del propio ISP que conectarse a otros ISP.

Esta es probablemente la razón por la cual los ISP no anuncian su latencia de extremo a extremo en su sitio web favorito, sino más bien el ancho de banda máximo que puede ejecutar en muchos sitios dispersos.