Tests de velocidad para banda ancha (IV): Las limitaciones de la ventana (o cómo el sistema operativo sabotea nuestra medida)
Publicado el Agosto 20, 2008 por Francisco Javier Ramón
Archivado bajo Banda ancha, Futuro de Internet, Sociedad de la Información, Tecnologías
Como vimos en el post anterior, si TCP sólo enviase un paquete cada vez y esperase a la llegada de su ACK para mandar el siguiente, podría llegarse a la paradoja de que el retardo de propagación de ida y vuelta (RTT) se convirtiera artificialmente en el cuello de botella de la transmisión, en lugar de serlo la propia capacidad del enlace (sólo se enviaría un paquete por cada ciclo de RTT). Por ese motivo, TCP mantiene un número determinado de paquetes “en vuelo” sin haber recibido aún su confirmación, de manera que es capaz de aprovechar eficientemente el enlace. A este número de paquetes “en vuelo” es a lo que se denomina ventana.
El tamaño adecuado de esa ventana se calcula dinámicamente a lo largo de la conexión, adaptándose al RTT que haya en cada momento, de manera que en cada ciclo de RTT se manden suficientes paquetes para ocupar el ancho de banda disponible (lo que equivale a “llenar la cinta transportadora” en el ejemplo anterior).
Sin embargo, el margen que tiene el protocolo TCP para adaptar dinámicamente su ventana no es indefinido. Además de las limitaciones que dicte la propia capacidad de la línea, TCP tiene que trabajar de acuerdo a los valores máximos de ventana que estén configurados en los sistemas operativos de cada uno de los extremos, de manera que en ningún caso se le permitirá trabajar con una ventana que supere en tamaño a los valores máximos prefijados en el emisor y el receptor.
De esta forma, una conexión TCP sólo será capaz de aprovechar al máximo el ancho de banda disponible si ambos extremos tienen una configuración de ventana máxima suficientemente holgada para las condiciones de funcionamiento. En particular, los tamaños de ventana TCP tanto del extremo receptor como del emisor deben ser suficientes para trabajar con las condiciones de RTT y ancho de banda máximo disponible entre los dos extremos, teniendo en cuenta que, a mayor RTT, mayor deberá ser la ventana para alcanzar una determinada velocidad de descarga, pues se tiene que:
![]()
(tal y como sucedía en nuestro símil de la cinta transportadora)
Para comprobar el impacto que esta limitación puede tener en un test de velocidad, consideremos el caso de un usuario con Windows XP que quiere comprobar la velocidad de su nuevo acceso xDSL de 30 Mbps usando un medidor de velocidad. Si tenemos en cuenta que la ventana máxima por defecto en Windows XP es de 64 KBytes y tomamos como referencia los RTT hacia algunos de los tests de velocidad más populares en España (por ejemplo, con un ping…), podemos elaborar una tabla como la siguiente, haciendo una simple división:

Así, tendríamos que si nuestro usuario utilizase el Test A para medir su velocidad, acabaría descubriendo alarmado que éste le estima prácticamente la misma velocidad que si tuviera un ADSL convencional, y comenzaría a preguntarse por qué ha contratado una conexión de alta capacidad si sigue recibiendo lo mismo… Algo parecido le sucedería si probara con el Test C durante la noche, ya que apenas le estimaría 9 Mbps.
Si, finalmente, nuestro usuario descubriera los tests B o D, o una mañana repitiera las pruebas con C, seguiría pensando que el servicio es deficiente (apenas da un 70% de la velocidad contratada), pero que “al menos se están esforzando en mejorarlo…” Al mismo tiempo, el usuario descubre extrañado cómo aplicaciones que utilizan más de una conexión TCP al mismo tiempo (p.e. programas de P2P) son capaces de alcanzar velocidades de descarga mucho mayores…
Ni qué decir tiene que si uno de estos tests de velocidad recopilara los resultados de todas sus medidas e hiciera un estudio sobre la velocidad de la banda ancha, podría llegar a la conclusión de que, cuanto mayores son las capacidades de los accesos, peor es el cumplimiento de la velocidad contratada… sin que este hecho llegara a detectarse nunca por las operadoras ni por los propios usuarios en condiciones normales de uso (p.e. utilizando aplicaciones multi-conexión).
¿Y qué pasaría si los usuarios fueran actualizando sus sistemas operativos o se las arreglaran para cambiar la configuración de su pila TCP para hacerla más eficiente? Pues que aún habría que comprobar si la ventana del servidor del test de velocidad es suficiente para estimar altas velocidades. Así, si añadimos a la tabla anterior una estimación indirecta de la ventana máxima de cada emisor, podremos estimar la máxima velocidad que puede medirse en cada caso:

Como puede apreciarse, el Test A seguiría infraestimando la capacidad de los accesos de banda ancha, mientras que los tests B y C andarían muy cerca de los límites de las ofertas más avanzadas de acceso. Sólo el Test D parece tener una configuración holgada de TCP.
Por último, cabría destacar que la notable diferencia en el RTT del Test C entre la mañana y la tarde-noche podría ser un indicador de problemas de saturación en el propio acceso del medidor de velocidad, pues, como puede apreciarse en la siguiente figura, los períodos de más RTT coinciden además con intervalos de abundantes pérdidas de paquetes (representadas en azul):
Una vez analizada la influencia de la configuración de ventana máxima en los extremos de la medida, dedicaremos el próximo post al estudio del otro gran elemento perturbador de estos tests: el crecimiento gradual de la ventana.
ENTRADAS DE ESTA SERIE:
- La importancia de una estimación precisa.
- ¿Cómo funciona un test de velocidad?
- TCP, la empresa de paquetería.
- Las limitaciones de la ventana (o cómo el sistema operativo sabotea nuestra medida).
- El crecimiento gradual de la ventana (o cómo el fichero de descarga se nos queda pequeño).
Tags: ADSL, ancho de banda, Banda ancha, fibra, HSDPA, Internet, tests de velocidad, xDSL
Comentarios
Deja una respuesta



