
Estoy buscando desactivar el mecanismo de inicio lento de TCP para una red de alta velocidad. Actualmente, los clientes envían flujos de 100 MB a servidores aleatorios con un enlace de 1 Gbps sin bloqueo. En mis cálculos, el tiempo de finalización de los flujos es inferior a 1 segundo.
Pero el problema es que no pueden alcanzar el ancho de banda completo del enlace. En otras palabras, finalizan en la fase de inicio lento antes de obtener un ancho de banda de enlace completo. Por lo tanto, quiero aumentar el tamaño de la ventana de congestión TCP al máximo.
¿Hay alguien que sepa cómo cambio ese valor fácilmente sin modificar el kernel?
Gracias ~
Respuesta1
En versiones anteriores del kernel de Linux, el valor inicial de la ventana de congestión ( initcwnd
) era tan bajo como solo 2 (2*MSS, o aproximadamente 3 KB), y desde la versión 3.0 el nuevo valor predeterminado es 10 (aproximadamente 14 KB).
Siempre que su kernel de Linux no sea muy antiguo, puede aumentar la ventana de congestión inicial usando un comando ip
, algo como esto:
Obtener información de ruta predeterminada actual:
$ ip route | grep default
default via 192.168.1.1 dev eth0 proto static
Asigne un nuevo initcwnd
valor a esta ruta:
$ sudo ip route change default via 192.168.1.1 dev eth0 proto static initcwnd 10
Esto aumenta la ventana de congestión inicial predeterminada a un valor más alto de 10*MSS (~14 KB). Es posible que desees jugar con valores superiores a este, probablemente tan altos como 40.
Para más información, leapropuesta original de Google para aumentar initcwndy tambiénEste artículo.