Contenido

Introducción

Antecedentes

Descripción general del problema

Producto de retardo de ancho de banda

Verificación

Solución

¿Cómo se indica el tiempo de viaje de ida y vuelta (RTT) entre dos ubicaciones?

Introducción

Este documento describe el problema asociado con la red de alta velocidad y latencia. Se deriva de una fórmula de BDP para calcular el uso real del ancho de banda en una condición dada.

Antecedentes

Dado que cada vez más empresas tienen o están construyendo Data Centers geográficamente dispersos e interconectan los Data Centers a través de un link de alta velocidad. Las necesidades de un mejor uso del ancho de banda están aumentando.

El producto Bandwidth-Delay (BDP) se ha publicado en Internet durante varios años. Sin embargo, no hay un ejemplo real sobre cómo se ve el asunto. La fórmula BDP se centra en el tamaño de las ventanas TCP. No nos ofrece una forma de calcular el posible uso del ancho de banda en función de la distancia. Este documento explica brevemente la BDP y demuestra el problema y la resolución. Este artículo también deriva una fórmula para calcular el uso del ancho de banda en una condición determinada.

Descripción general del problema

Su empresa tiene dos Data Centers. Su empresa realiza copias de seguridad de los datos críticos para la empresa de un Data Center a otro. El administrador de copia de seguridad informó que no puede finalizar la copia de seguridad dentro de la ventana de copia de seguridad debido a la lentitud de la red. Como administrador de red, se le asigna investigar el problema de la lentitud de la red. Conoce estos factores:

- Estos dos Data Centers están separados por 1000 KM.

- Estos Data Centers están interconectados a través de un link de 1 Gbps.

Tras la investigación, se ha dado cuenta de lo siguiente:

- Hay suficiente ancho de banda disponible.

- No hay problemas de hardware o software de red.

- La aplicación de copia de seguridad sólo utiliza un ancho de banda de aproximadamente 10 Mbps, incluso el resto del ancho de banda de 990 Mbps es gratuito.

- La aplicación de copia de seguridad utiliza TCP para transferir datos.

Producto de retardo de ancho de banda

Para responder a la pregunta de la aplicación de copia de seguridad sólo utiliza 10 Mbps, introduce el producto Bandwidth-Delay (BDP).

BDP simplemente afirma que:

BDP (bits) = total_available_bandwidth (bits/seg) x round_trip_time (s)

o, ya que RWIN/BDP se encuentra generalmente en bytes y la latencia se mide en milisegundos:

BDP (bytes) = total_available_bandwidth (KBytes/seg) x round_trip_time (ms)

Esto significa que la ventana TCP es un búfer que determina la cantidad de datos que se pueden transferir antes de que el servidor se detenga y espera los reconocimientos de los paquetes recibidos. El rendimiento depende esencialmente del BDP. Si el BDP (o RWIN) es menor que el producto de la latencia y el ancho de banda disponible, no puede llenar la línea porque el cliente no puede enviar confirmaciones lo suficientemente rápido. Una transmisión no puede exceder el valor (RWIN/latencia), por lo que la ventana TCP (RWIN) debe ser lo suficientemente grande para ajustarse al máximo_available_bandwidth x maximum_anticipaded_delay.

Con la fórmula anterior. La fórmula de cálculo del ancho de banda derivado es:

Uso de ancho de banda (Kbps)=BDP(bytes)/RTT(ms) * 8

Nota: Esta fórmula calcula el uso máximo teórico del ancho de banda. No toma en consideración el tiempo de transmisión de paquetes del sistema operativo, ya que tiene muchos factores relacionados, por ejemplo, la memoria disponible, el controlador NIC, la velocidad de NIC local, la memoria caché o, a veces, incluso, la velocidad del disco. Como resultado, cuando el tamaño de las ventanas TCP es grande, el ancho de banda calculado sería mayor que el ancho de banda real. Cuando el tamaño de las ventanas TCP es muy grande, la desviación también puede ser grande.

Con la fórmula derivada, puede responder a la pregunta de por qué la aplicación de copia de seguridad sólo puede utilizar 10 Mbps haciendo el siguiente cálculo.

- En general, el RTT para 1000KM es ~15. RTT=15 ms

- De forma predeterminada, el tamaño de Windows del sistema operativo Windows 2003 es de 17 520 bytes. BDP=17 520 bytes

- Coloque estos números en la fórmula:

Uso de ancho de banda (Kbps) =17520/15*8.

El resultado es 9344 Kbps o 9,344 Mbps. 9,344 Mbps más encabezado TCP e IP. El resultado final es de ~10 Mbps.

Verificación

Como administrador de red, ha respondido teóricamente a la pregunta. Ahora hay que confirmar la teoría en el mundo real.

Puede utilizar cualquier herramienta de prueba de rendimiento de red para confirmar la teoría. Ha decidido ejecutar iperf para demostrar el problema y su resolución.

Esta es la configuración del laboratorio:

1. Servidor en el Data Center 1 con dirección IP 10.10.1.1.

2. Un cliente en el Data Center 2 con la dirección IP 172.16.2.1.

La topología es como se muestra en la imagen:

Siga estos pasos para verificar:

1. Ejecute iperf3 -s -p 5001 en 10.10.1.1 para convertirlo en un servidor y escuchar en el puerto TCP 5001.

2. Para probar con un tamaño de ventana TCP predeterminado de 17.520 bytes. Ejecute iperf3 -c 10.10.1.1 -i 1 -t 360 -w 17520 -p 5001 en 172.16.2.1 para convertirlo en cliente. Este comando le indica a iperf que se conecte al servidor en el puerto 5001, se ejecuta durante 360 segundos e informa del uso del ancho de banda cada 1 segundo con un tamaño de ventanas TCP de 17.520 bytes.

3. Para realizar la prueba con el tamaño personalizado de la ventana TCP, por ejemplo 6.553.500 bytes, ejecute iperf3 -c 10.10.1.1 -i 1 -t 360 -w 653500 -p 5001

Este es el resultado de la prueba de laboratorio con el tamaño predeterminado de la ventana TCP de 17,520 bytes. Puede ver que el uso del ancho de banda es de ~10 Mbps.

C:\Tools>iperf3.exe  -c 10.10.1.1  -t 360  -p 5001 -i 1 -w 17520

Connecting to host 10.10.1.1, port 5001

[  4] local 172.16.2.1 port 49650 connected to 10.10.1.1 port 5001

[ ID] Interval           Transfer     Bandwidth

[ ID] Interval           Transfer     Bandwidth

[  4]   0.00-1.00   sec  1.30 MBytes  10.9 Mbits/sec

[  4]   1.00-2.02   sec   919 KBytes  7.41 Mbits/sec

[  4]   2.02-3.02   sec  1.28 MBytes  10.7 Mbits/sec

[  4]   3.02-4.02   sec  1.14 MBytes  9.59 Mbits/sec

[  4]   4.02-5.01   sec  1.24 MBytes  10.4 Mbits/sec

[  4]   5.01-6.01   sec  1.33 MBytes  11.3 Mbits/sec

[  4]   6.01-7.01   sec  1.15 MBytes  9.65 Mbits/sec

[  4]   7.01-8.01   sec  1.12 MBytes  9.36 Mbits/sec

[  4]   8.01-9.01   sec  1.22 MBytes  10.3 Mbits/sec

[  4]   9.01-10.01  sec  1.13 MBytes  9.49 Mbits/sec

[  4]  10.01-11.01  sec  1.30 MBytes  10.8 Mbits/sec

[  4]  11.01-12.01  sec  1.17 MBytes  9.84 Mbits/sec

[  4]  12.01-13.01  sec  1.13 MBytes  9.48 Mbits/sec

[  4]  13.01-14.01  sec  1.28 MBytes  10.7 Mbits/sec

[  4]  14.01-15.01  sec  1.40 MBytes  11.8 Mbits/sec

[  4]  15.01-16.01  sec  1.24 MBytes  10.4 Mbits/sec

[  4]  16.01-17.01  sec  1.30 MBytes  10.9 Mbits/sec

[  4]  17.01-18.01  sec  1.17 MBytes  9.78 Mbits/sec

Este es el resultado de la prueba de laboratorio con un tamaño de ventana TCP de 6.553.500 bytes. Puede ver que el uso del ancho de banda es de ~200 Mbps.

C:\Tools>iperf3.exe  -c 10.10.1.1  -t 360  -p 5001 -i 1 -w 6553500

Connecting to host 10.10.1.1, port 5001

[  4] local 172.16.2.1 port 61492 connected to 10.10.1.1 port 5001

[ ID] Interval           Transfer     Bandwidth

[  4]   0.00-1.00   sec  29.1 MBytes   244 Mbits/sec

[  4]   1.00-2.00   sec  25.4 MBytes   213 Mbits/sec

[  4]   2.00-3.00   sec  26.9 MBytes   226 Mbits/sec

[  4]   3.00-4.00   sec  18.2 MBytes   152 Mbits/sec

[  4]   4.00-5.00   sec  25.8 MBytes   217 Mbits/sec

[  4]   5.00-6.00   sec  28.8 MBytes   241 Mbits/sec

[  4]   6.00-7.00   sec  26.1 MBytes   219 Mbits/sec

[  4]   7.00-8.00   sec  21.1 MBytes   177 Mbits/sec

[  4]   8.00-9.00   sec  22.5 MBytes   189 Mbits/sec

[  4]   9.00-9.42   sec  9.54 MBytes   190 Mbits/sec

Solución

Desde la perspectiva del desarrollo de software, el subprocesamiento múltiple para ejecutar varias secciones TCP simultáneas puede mejorar el uso del ancho de banda. Sin embargo, no es práctico que el administrador de red o del sistema modifique el código fuente. Lo que puede hacer es ajustar el sistema operativo.

RFC1323 define varias extensiones TCP para TCP de alto rendimiento.  Esto incluye la opción de ampliación de ventana y ACK selectivo. Los principales sistemas operativos los implementan. Sin embargo, de forma predeterminada, algunos sistemas operativos los desactivan, incluso la pila TCP/IP está escrita para admitirlos.

- Estos OS desactivan RFC1323 de forma predeterminada: Windows 2000, Windows 2003, Windows XP y Linux con kernel anterior a 2.6.8.

Si se enfrenta al problema en el sistema Microsoft Windows, siga este enlace para ajustar el TCP. https://support.microsoft.com/en-au/kb/224829.

Para ver otros sistemas operativos, consulte la documentación del proveedor sobre cómo configurarlos.

- Estos sistemas operativos habilitan RFC1323 de forma predeterminada: Windows 2008 y posterior, Windows Vista y posterior, Linux con kernel 2.6.8 y posterior. Es posible que necesite aplicar parches para mejorar estas funciones. En algunas circunstancias, se desea desactivarlas. Consulte la documentación del proveedor sobre cómo desactivarlas.

- Algunos dispositivos se basan en Microsoft Windows 2000, Windows 2003 o en sistemas operativos integrados. Por ejemplo, NAS, hardware de atención médica. Verifique la documentación del proveedor para verificar si RFC1323 está habilitado o no.

¿Cómo se indica el tiempo de viaje de ida y vuelta (RTT) entre dos ubicaciones?

En general, el RTT se asocia con la distancia. La tabla siguiente muestra la distancia y sus RTT relevantes. También puede utilizar la prueba de ping para obtener alguna idea sobre el RTT en condiciones de red normales.

Distancia (KM)

RTT(ms)

1,000

15

4,000

50

8,000

120

Nota: Arriba sólo hay una guía, el tiempo real de RTT puede variar. Además, la latencia se ve afectada por la tecnología utilizada. Por ejemplo, la latencia 3G puede ser de 100 ms frecuentemente independientemente de la distancia. También es cierto para el satélite.