Modificando RWIN para mejorar la velocidad

De Wiki de BandaAncha.eu
Revisión del 10:19 15 mar 2007 de Josh (discusión | contribuciones) (New page: Categoría:Jazztel Pongo esto porque los 4/6/20 megas que está dando ahora Jazztel ya son velocidades importantes, y el RWIN por defecto en Windows se queda corto para poder conseguir...)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Pongo esto porque los 4/6/20 megas que está dando ahora Jazztel ya son velocidades importantes, y el RWIN por defecto en Windows se queda corto para poder conseguir velocidades decentes en la mayoría de los casos.

Que es el RWIN

El TCP Receive Window es, básicamente, la cantidad de datos en bytes que un servidor remoto puede enviar sin haber recibido los paquetes ACK (confirmación) que nosotros le tenemos que mandar. Un valor pequeño de RWIN provoca que el servidor mande una cantidad de datos (conocida por las dos partes, ya que se transmite al iniciar la conexión y luego en cada paquete) hasta que la "ventana" se llena. Luego cada ACK por así decirlo se "vacía" esta ventana un poco, permitiendo que el servidor mande más datos. Si la latencia es grande, la espera de ACKs cuando la ventana está llena hace que el servidor deje de mandar, por lo que la velocidad de descarga será baja. La latencia es muy importante en esto del RWIN, por eso bajamos mejor del ftp de rediris que de un servidor de microsoft.

Valor del RWIN

No hay valor de RWIN óptimo para todo, el valor que se suele aconsejar es el mínimo posible para que una descarga vaya al máximo de tu línea. Si se usa un valor de RWIN muy alto también puede ser contraproducente, porque se satura mucho más el canal de bajada, sube la latencia, la velocidad de transferencia se hace menor y la navegación mientras se está descargando más incómoda. Aquí daré unos cuantos valores como guía.

Para saber a qué velocidad deberíais bajar con vuestra velocidad de sincronización, usad la calculadora de descarga (versión java) gracias MBKiller por la programación y diseño.

Para cambiar el RWIN, simplemente bajad este programa (freeware, no spyware ni nada), id a esta página y descargad DRTCP021.exe a donde querais. Ejecutadlo y solo hay que especificar 2 valores, el resto lo dejais como default:

  • Tcp Receive Window: aquí se especifica el valor de RWIN deseado.

Unos cuantos como referencia (ajustados a una latencia máxima de 300ms):

NOTA: Fijaos en la velocidad de sincronización de vuestro modem/router para ajustar estos valores. Más info al final de este hilo.

Valor RWIN para cada velocidad de conexión
Velocidad (en Mbps) RWIN
1 33580
2 67160
3 100740
4 132860
6 198560
8 264260
10 322660
12 388360
15 484720
>=18 581080
  • Window Scaling: Seleccionar Yes

El resto dejadlo en Default, le dais a 'Save', cerráis el programa y reiniciais Windows. Así de fácil. Probad ahora alguna descarga, debería ir mucho mejor que antes.


EDITADO 1: Algunos usuarios cuentan que no es posible usar el DrTCP con el SP2 de Windows XP instalado. Para este SO habrá que usar entonces la utilidad de speedguide (TCP Optimizer), la podeis bajar de aquí:

http://www.speedguide.net/downloads.php

Citando a Kalimist, "Como dije en mi anterior post, si usas el modo automatico, es decir, le das primero a 'DSL' y luego abajo a 'optimal', se configura bien para la linea de 4 megas."

De todas formas, se recomienda especificar manualmente el valor de RWIN ya que por defecto el TCP Optimizer ajusta unos valores demasiado elevados.

Para comprobar si ha surgido efecto el cambio de RWIN visitad esta página:

http://www.speedguide.net/analyzer.php

Gracias a Kalimist y Ximin por los links y sugerencias.



EDITADO 3: Para medir la velocidad se recomienda la siguiente utilidad:

TPTEST

Es un programa bastante flexible, el "Standard test" suele ser suficiente en la mayoría de los casos.

Lo más fiable de todas formas es descargar de servidores "grandes", como isos de linux y cosas de ese estilo. Por razones de ancho de banda no linkearé en este hilo ningún servidor.


EDITADO 5: Añado el default send window (que se llama también sndbuf o send buffer, entre otros nombres):

El defaultsendwindow es lo mismo que el rwin, pero para el envío. Ahora con 512k de subida (o más), el que trae windows por defecto no es suficiente para enviar a alguien a tope con una única conexión. Quizá lo habréis notado con el mIRC por ejemplo, que no mandáis a más de 20-30k/s un único archivo. Aunque la otra persona tenga un rwin alto, si vuestro swin es bajo irá lento porque el más bajo de los dos es el valor limitante. He creado dos .reg para corregir esto con un valor más adecuado de swin con el que se puede mandar bien al máximo con una única conexión.

El archivo es este: (botón derecho y "Guardar enlace como...") http://lucasara.com:13122/defaultsendwindow.reg Para ADSL 6mb/512 http://lucasara.com:13122/defaultsendwindow_100k_300ms.reg Para ADSL hasta 20 megas

Ejecutar y reiniciar. Lo podeis editar y ver lo que hace por si no os fiais. Añade un solo valor al registro. Para "desinstalarlo", se borra la clave "Parameters" y listo.

Esto solo afecta a programas que usen el swin por defecto de windows. Los servidores normalmente, como el serv-u de ftp, dejan elegir este valor en la configuración, y el azureus por ejemplo tambien. Pero simplemente con este .reg ya sobra. Recordad que solo es para llegar al máximo con una única conexión así que no mejorará la subida de los p2p.

MTU/MSS PPPoE/PPPoA

Si tu IP está entre 87.216.xxx.xxx Y 87.219.xxx.xxx

Encapsulación óptima: PPPoE LLC
MTU: 1492 óptimo/válido
MSS: 1452 (ATENCION! este es el numero que pide el router Huawei en la configuracion ATM, NO es igual al MTU)

Para cualquier otro rango de IPs

Encapsulación óptima: PPPoA VC-mux
MTU: 1478 óptimo, 1500 válido