Foro
Buenas jacco
Aunque parezca raro, no es nada extraño y tiene diferentes causas
-Drivers:
Por un lado, estaría la cuestión de Drivers, incluso el mismo equipo instalando OS diferente, a menos que instales tu el mismo controlador para el adaptador de red, lo normal es que el sistema precargue uno diferente. A eso le tienes que sumar que las diferentes versiones de Windows han ido optando por "modelos" de driver diferentes, siempre claro que el Driver instalado lo soporte. Así por ejemplo, Windows 10 1803 usa NDIS 6.50-6.80. Windows 7 usa 6.20. Un adaptador de red en Windows 10 1803 con NDIS 6.80 (soportando claro está las funcionalidades), es mucho más eficiente y rápido que usando NDIS 6.20 en Windows 7.
Esto lo entenderá bien los jugones, que siempre están comparando que OS es mejor para jugar, que si cual es más rápido que si... donde no solo los drivers son fundamentales, sino que sabemos también que el propio OS lo es, y no solo por soportar versiones superiores de estándares como DirectX
-Software:
Windows cambia entero, Kernel nuevo, aplicaciones nuevas... y más importante, toda la pila TCP/IP es diferente. Cuando hacemos un cambio de OS la mayoría se queda con el cambio visual, vemos algunas cosas iguales, otras ligeramente cambiadas... pero a nivel interno hay cambios que son dramáticos. A eso ahora le tienes que sumar que muchas veces el software que nosotros mismos instalamos no es igual si usamos un Windows que otro. Otro punto muy importante, es que diferentes versiones de Windows también configuran sus ajustes internos de forma diferente, lo que antes podía ser bueno, con el paso de los años y otras tecnologías no son los mejores ajustes.
-Pila TCP/IP:
Lo pongo a parte, porque podría ser perfectamente tu problema, y afecta directamente a la velocidad de descarga/subida sobre todo en velocidades altas.
TCP se diferencia con UDP en que es un protocolo "controlado", cada vez que un lado envía lo que sea, el otro siempre responde con un paquete ACK, un paquete que le dice al que ha enviado algo que lo ha recibido. Además existen otros paquetes de control que configuran/gestionan la propia conexión TCP realizada. Si te interesa busca por Internet, de gusto te lo explicaría pero haríamos este post muy largo.
El caso es que uno de esos parámetros de configuración de la conexión TCP es la ventana de recepción. La ventana de recepción (RWIN). RWIN define la cantidad máxima de datos que pueden recibirse sin necesidad de responder con un ACK. Y esto es de suma importancia, puede limitar directamente el ancho de banda que puede usarse. RWIN posee un valor por defecto de 64KB en Windows Vista en adelante, pero puede crecer hasta 16MB cuando Windows usa el escalamiento de ventana. En números, digamos que la velocidad máxima que podemos tener siempre será menor/igual a RWIN dividido por la latencia. En números. Si no usásemos escalado de ventana (RWIN=65536Bytes), y por ejemplo 20ms de latencia:
65536/0.02s = 3276800Bytes = 3,125MB -> 25Mbps
Es decir, si Windows no usase escalamiento de ventana o lo deshabilitásemos, lo máximo que podríamos tener para una latencia de 20ms sería de 25Mbps, para una latencia de 10ms sería el doble, 50Mbps... hablamos ahora de conexiones de 600/600
Llegado a este punto espero que hayas entendido la gran importancia de la ventana de recepción, y no, no es bueno ponerla en un valor muy alto sería muy malo. Por eso Windows la escala de forma automática por defecto, y a medida que está recibiendo los datos, la escala a un mayor tamaño para adecuarse a la velocidad que sea, es por esto que cuando descargamos algo normalmente la velocidad va subiendo hasta que se estabiliza, la ventana de recepción va creciendo poco a poco.
Windows usa un sistema varios sistemas para calcular la velocidad de crecimiento de la ventana. Este ha sufrido muchos cambios desde Windows 7. En Windows 7 este sistema no es adecuado para las velocidades actuales. En Windows 7, creo recordar que Windows por defecto usa su capacidad "auto-tunning" para establecer la ventana usando heurística, y no lo hace bien, además de que intervienen otros factores. En Windows 10, además de que la heurística es mejor, creo que usa directamente perfiles "normales" de escalado.
Esto se puede por supuesto configurar, puedes decirle a Windows 7 que no use heurística, o que sencillamente deshabilite autotunning para el escalado, y el escalado de ventana esté en perfil normal o experimental. Si se deshabilita el escalado de ventana o se usa un perfil restrictivo, la velocidad sufre enormemente.
netsh int tcp show global Consultando el estado activo... Parámetros TCP globales ---------------------------------------------- Estado de ajuste de escala en lado de recepción: enabled Nivel de ajuste automático de ventana de recepción: normal Proveedor de control de congestión de complementos: default Capacidad ECN: disabled Marcas de tiempo RFC 1323: disabled RTO inicial: 3000 Estado de la fusión de los segmentos de recepción: enabled Resistencia de RTT no SACK: disabled Retransmisiones SYN máximas: 2 Fast Open: enabled Reserva de Fast Open: enabled Perfil de velocidad: off netsh int tcp show heuristic Parámetros de la heurística de escalado de ventana de TCP --------------------------------------------------------- Heurística de escalado de ventana : disabled Umbral de destino aplicable : 3 Tipo de perfil unknown : normal Tipo de perfil public : normal Tipo de perfil private : normal Tipo de perfil domain : normal
Esa es por ejemplo mi configuración de Windows 10, sinceramente no sé si deshabilité yo la heurística o no, pero aun así Windows 7 aplica creo recordar por defecto en heurística un perfil de restrictivo en el escalado de ventana para redes privadas/publicas, lo que limita enormemente la capacidad.
Gracias por toda esta información, Theliel. Es un poco laborioso pero investigaré todo lo concerniente al TCP.
Pero no sé qué significa eel parametro PILA TCP/IP.
¿Donde lo encuentro y cómo debo configurarlo?