URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91127
[ Назад ]

Исходное сообщение
"Freebsd и QoS"

Отправлено pinger , 10-Мрт-11 20:54 
Подскажите пожалуйста, как минимализировать приоритет torrent-трафика, или вернее, как сделать http-трафик максимально приоритетным.Наслышан про QoS, как реализовать?

Содержание

Сообщения в этом обсуждении
"Freebsd и QoS"
Отправлено DeadLoco , 11-Мрт-11 04:02 
> Подскажите пожалуйста, как минимализировать приоритет torrent-трафика, или вернее, как
> сделать http-трафик максимально приоритетным.Наслышан про QoS, как реализовать?

Вариантов реализации есть много. Я отдаю предпочтение IPFW/DUMMYNET, где реализованы динамические очереди с весами. То-есть, каждый пакет, в зависимости от портов отправителя/получателя, попадает в автоматически созданную очередь с определенным весом (приоритетом). Из отдельных динамических очередей пакеты сбрасываются в общие очереди отправки и приема в соответствии весами по дисциплине WF2Q+. Т.е. если все очереди имеют равные веса, то канал делится поровну между пакетами. Если одна очередь имеет вес вдвое ниже другой, то она получит вдвое меньшую полосу.

У меня торренты получают минимальный вес 1, веб-траффик - 20, игровой траффик - 99.
Игровой траффик очень невелик, но чувствителен к лагам. Поэтому он обслуживается, фактически, вне очереди. Но, поскольку игровой битрейт низок, этого никто не замечает. Торренты, напротив, обслуживаются лишь тогда, когда образуется свободная полоса в канале. Если канал свободен - торренты утилизируют его весь. Если кто-то начинает бровзать нет, он отодвигает торренты в угол и получает 95% канала. Но, поскольку скачивание страниц - процесс быстрый, через доли секунды канал освобождается, и его снова выгребают торренты.

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

Все то же самое можно реализовать и средствами ALTQ. И вообще, любыми средствами, которые умеют создавать динамические очереди и умеют WF2Q+ или любую другую подобную дисциплину. Также можно реализовать подобное средствами netgraph, над чем я сейчас и работаю. Нетграф гораздо интереснее уже тем, что отлично параллелится и способен обрабатывать серьезные ппсы, на которых ложатся dummynet и altq.