Назад | Перейти на главную страницу

Как установить максимальный размер окна приема TCP в Linux?

Я хочу ограничить скорость каждого TCP-соединения. Могу ли я установить максимальный размер окна приема TCP в Linux?

С помощью iptables + tc можно ограничить только источник IP. Параметры net.core.rmem_max и net.core.wmem_max работали некорректно.

Вы можете изменить /proc/sys/net/ipv4/tcp_rmem параметр для изменения размера окна TCP, где тремя значениями являются минимальное окно, окно по умолчанию и максимальное окно соответственно.

root@ghyt:~# cat /proc/sys/net/ipv4/tcp_rmem
4096    8192    16384

По причинам, которые я никогда не мог понять, значения, которые вы устанавливаете, соблюдаются очень слабо, но все же должны позволить вам уменьшить максимальное объявленное окно.

Кроме того, вы можете отключить масштабирование окна TCP (/proc/sys/net/ipv4/tcp_window_scaling), что заставит все TCP-соединения использовать окно размером 64 КБ. Максимальная их пропускная способность становится вопросом расстояния:

Пропускная способность (Мбит / с) = ((65535 * 8) / (задержка в мс / 1000)) / 1000000