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

Как в Linux установить максимальный размер сегмента, разрешенный для TCP-соединения? Мне нужно установить это для приложения, которое я не писал (поэтому я не могу использовать setsockopt для этого). Мне нужно установить это НАД mtu в сетевом стеке.

У меня есть два потока, использующих одно и то же сетевое соединение. Периодически отправляются небольшие пакеты, для которых требуется минимальная задержка. Другой отправляет тонны данных - я использую SCP для имитации этой связи.

Я настроил управление трафиком (tc), чтобы дать трафику с минимальной задержкой высокий приоритет. Однако проблема, с которой я сталкиваюсь, заключается в том, что TCP-пакеты, приходящие от SCP, в конечном итоге имеют размер до 64 Кбайт. Да, они разбиваются на более мелкие пакеты на основе mtu, но это, к сожалению, происходит ПОСЛЕ того, как tc устанавливает приоритет пакетов. Таким образом, мой пакет с низкой задержкой застревает за трафиком SCP объемом до 64 КБ.

В этой статье указано, что в Windows вы можете установить это значение.

Могу ли я что-нибудь установить в Linux? Я пробовал ip route и iptables, но они применяются слишком низко в сетевом стеке. Мне нужно ограничить размер TCP-пакета перед tc, чтобы он мог правильно расставить приоритеты для пакетов с высоким приоритетом.

7
задан Kara 9 February 2016 в 22:41
поделиться