Estoy usando 3G como mi conexión de Internet principal, y TCP sobre esto se vuelve más desconcertante cada día. Por ejemplo:
La descarga desde kernel.org es una locura rápida:
$wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.6.8.tar.bz2
¡aumenta a ~ 500kB / s después de unos segundos!
Algunos servidores son increíblemente lentos, por ejemplo www.graphic-pc.com: lo
mismo, descargar un archivo grande con wget comienza a ~ 30kB / s por una fracción de segundo, luego se colapsa a 5-10k o peor.La navegación web es decente pero poco confiable. Aleatoriamente, una página tardará mucho en cargarse o incluso no se cargará, pero una recarga puede tener éxito casi de inmediato.
Ahora, por casualidad, comencé a jugar con OpenVPN a través de UDP en la parte superior de la conexión 3G, ¡y OMG de repente todo es extremadamente rápido!
¡El mismo www.graphic-pc.com ahora se dispara a 100-200kB / s!
- Que está pasando aqui ???
- ¿Cómo es que es mucho mejor con la VPN que sin ella?
- ¿Y por qué se arrastra graphic-pc.com cuando vuela kernel.org?
¿Algo que ver con mi pila tcp (o el servidor), o algún enrutador defectuoso en el medio?
Notas:
La configuración es una computadora portátil que ejecuta Ubuntu Lucid y un dongle 3G de Huawei (conexión pppd tan directa).
Puedo reproducir esto casi en cualquier momento durante el día y no me estoy moviendo, por lo que claramente no es el entorno celular o la congestión de Internet. (aunque kernel.org sin VPN a veces empeora por la noche, 60kB más o menos, ¡pero aún así 500kB con VPN!)
Para 2) wireshark muestra paquetes retransmitidos, duplicados, incluso a veces fuera de servicio.
Intenté jugar con diferentes parámetros / proc / sys / net / ipv4 (tcp_rmem, window_scaling, tcp_congestion ...) no parece hacer la diferencia.
Actualización:
Probado en Windows 7 (sin VPN) con algunos resultados interesantes:
tcp settings : default tcp_optimizer
kernel.org : 10 kB/s 20 kB/s
graphic-pc.com: 8 kB/s 70 kB/s !
tcp_optimizer activó ctcp entre otras cosas. Tengo que comprobar qué está ejecutando os graphic-pc.com, mi apuesta es tcp_westwood de linux y ms ctcp no se mezclan bien aquí ...