No olvide la latencia al calcular el rendimiento de la red

0 Bengalas Twitter 0 Facebook 0 LinkedIn 0 Email Fl 0 Bengalas ×

En mi trabajo, tengo que aprender mucho sobre múltiples temas de la MISMA. Especialmente en el mercado de la virtualización, muchas personas suelen estar bien preparadas cuando se trata de infraestructura, servidores y almacenamiento, pero descubrí que el punto más débil es muchas veces la red. Hay algunos temas que son oscuros para muchos, como Layer2 vs Layer3, BGP, Spanning Tree, pero hay un tema que es realmente importante incluso para los chicos de infraestructura, pero es casi desconocido para ellos: la latencia.

¿Qué es la latencia?

Tan rápido como puede ser, incluso la velocidad de la luz no es infinita. A un fotón le toma tiempo ir del punto A al punto B, y por ejemplo, la luz generada por el Sol tarda 8 minutos en llegar a la Tierra. Nuestras redes de computadoras ni siquiera están cerca de esa velocidad, porque en primer lugar, generalmente nuestras conexiones no se hacen con fibra óptica (que eventualmente sería tan rápida como la luz), sino con cables eléctricos y, por lo tanto, las transmisiones a través de estos medios son más lentas, pero también porque hay muchos dispositivos entre la fuente y el destino que necesitan manipular el paquete. El host de origen, conmutadores, enrutadores, cortafuegos, el host de destino; cada «salto» agrega tiempo al tiempo total que un paquete necesita para llegar a su destino. Podemos diseñar esta situación como esta:

(fuente: https://stackoverflow.com/questions/8682702/how-to-calculate-packet-time-from-latency-and-bandwidth )

Por lo tanto, dicho simplemente, la latencia es el tiempo que tarda un paquete en ir de origen a destino.

En una red local es fácil aplicar cierta aproximación y declarar que el retraso de procesamiento es 0, y también que los múltiples conmutadores entre dos hosts no agregan latencia adicional. Después de todo, cuando ejecutamos un comando ping para verificar si un host está conectado, la latencia siempre está «por debajo de 1 ms» :

Por esta razón, no es raro calcular la velocidad de transferencia máxima simplemente mirando el ancho de banda disponible:

– Enlace ethernet de 1 Gb, dividido por 8, me da 125 MBps

– Enlace ethernet de 10 Gb significa 1250 MBps

y así sucesivamente. Y si mi ancho de banda es de 125 Mbps, significa que puedo transferir 125 MB por segundo.

¿Por qué la latencia es importante?

Porque ignorarlo, junto con otros parámetros, conduce a resultados falsos!

Mira el ejemplo anterior. Incluso en una red local, donde la latencia es cercana a cero, hay otros parámetros que pueden afectar la velocidad final. Uno sobre todo: Tamaño de ventana TCP. No voy a repetir lo que ya ha sido escrito de una manera perfecta por otros, así que si quieres aprender más, lee este post de Brad Hedlund. ¿Cuál es el truco? La velocidad de enlace de la que generalmente hablamos es la velocidad de enlace de cable puro. Pero además, necesitamos ejecutar varios protocolos, uno encima del otro, como TCP sobre IP. TCP divide los datos en paquetes, y el tamaño de los paquetes está dictado por el tamaño de la ventana TCP: si este valor es mayor, se pueden transferir más datos en una sola transmisión. Luego, una carga útil se empaqueta dentro de un paquete, por lo que hay bytes adicionales para cada paquete que nave se transmite, incluso si no contienen datos (también hay algo de sobrecarga para el marco ethernet subyacente, piense en toda la discusión con respecto a los marcos Jumbo). Finalmente, la latencia TCP juega su papel, porque solo puedo transmitir el siguiente paquete una vez que el anterior ha llegado a su destino, porque el enlace está ocupado transfiriendo los otros paquetes.

La latencia y el tamaño de la ventana se vuelven primordiales cuando pasamos de redes locales a redes públicas. Aquí, el valor <1ms desaparece, y tenemos valores más altos a tener en cuenta. Mayor es la latencia, menor es el ancho de banda máximo «real» que veré. Tomemos un ejemplo sencillo: un cliente tiene un enlace de 100 Mbps a Internet y necesita transferir un archivo de 1 TB a su proveedor de servicios.

Los cálculos teóricos habituales serían simples:

100 Mbps = 12,5 MBps

1 TB = 1000 GB = 1000000 MB

1000000 MB / 12,5 MBps = 80000 segundos = 1333,33 minutos = 22,22 horas o (d: h:m: s): 22h: 13m:20s

Pero si intenta enviar este archivo a su proveedor, NUNCA tardará este tiempo en completarse, a menos que usted y su proveedor de servicios estén conectados al mismo enlace ethernet; lo que significa que no está usando Internet en absoluto.

Cómo calcular correctamente la velocidad de transferencia

Calculé el valor anterior hasta los segundos exactos usando esta buena herramienta:

http://wintelguy.com/transfertimecalc.pl

Sin embargo, si lo mira, verá el mismo «error de aproximación» del que hablé anteriormente: solo se tienen en cuenta el tamaño y el ancho de banda. Sin tamaño de ventana y sin latencia. Pero el sitio web de WintelGuy tiene más herramientas increíbles, y una es exactamente lo que necesitamos:

http://wintelguy.com/wanperf.pl

En este, puede ver que todos los parámetros importantes se enumeran y se utilizan para los cálculos. Repitamos el mismo cálculo que hicimos antes, pero ahora con información nueva:

Agregamos latencia de 40 ms y aceptamos los otros dos valores predeterminados (Pérdida de paquetes y MTU). No tenemos ninguna posibilidad de cambiar MTU a través de un enlace de Internet, ya que hay muchos dispositivos entre nosotros y nuestros proveedores de servicios que no están bajo nuestro control. Esta es una de las razones por las que muchas empresas de telecomunicaciones ofrecen a sus clientes enlaces privados MPLS en lugar de enlaces VPN a través de Internet público, porque el proveedor puede controlar y ajustar la configuración de conexión (bueno, también hay un poco de bloqueo, pero esta es otra historia)). Aquí, puede ver que la sobrecarga de TCP y la latencia ya están afectando el rendimiento máximo real, que se reduce a 94,9 MBps. Sin embargo, diría que esta es una situación realmente buena, y podría ser peor: mantengamos todos los demás parámetros como antes y aumentemos la latencia a 150 ms:

El rendimiento se reduce a 77,8 Mbps, una pérdida del 22% de la velocidad teórica. Y puede ser aún peor: una conexión ADSL, por ejemplo, tiene más pérdida de paquetes, por lo que si mantenemos 150 ms de latencia, pero aumentamos la pérdida de paquetes 10 veces, obtenemos esto (ignore el hecho de que ningún ADSL puede ir a 100 Mbps, se hace para mantener la misma velocidad en todos los ejemplos):

Se ha aumentado la pérdida de paquetes de 0.0001 (1 paquete perdido por cada 10000 transmitidos) a 0.001 (1 paquete perdido por cada 1000 transmitidos), ¡y este valor por sí solo ha disminuido nuestra velocidad máxima en un 75%!!!

Por lo tanto, la próxima vez que vea que su nueva línea de Internet brillante no funciona como se esperaba, antes de culpar a su proveedor de servicios o al software que está utilizando para transferir esos datos, eche un vistazo mejor a su red. Puede encontrar que esos 25 Mbps son la velocidad más rápida que puede obtener.

Write a Comment

Tu dirección de correo electrónico no será publicada.