LINUX.ORG.RU
ФорумAdmin

Qos приоритеты входящего и исходящего трафика


0

0

Есть канал 256 кбит с которого сервером круглосуточно качаются торренты, и раздается интернет на домашние компьютеры. И вроде бы все нормально работает, но когда торренты полностью забивают канал (в любую сторону) возникают сильные тормоза. Странички гузятся долго, пинги до внешних ресурсов по 1,5 к. Если же торренты выключить, то все нормально и пинги падают до 50.

Вобщем я нашел подробную статью о том что можно сделать http://www.opennet.ru/base/net/adsl_bandwidth.txt.html .

Как я понял, для контроля над приоритетом исходящего трафика нам надо сделать так чтоб очередь исходящего трафика была у нас, а не у провайдера (в статье adsl модем). Для этого достаточно ограничить скорость исходящего трафика немного меньше, чем 256.

Но для входящего трафика предлагается единственный способ и он требует СИЛЬНОГО ограничения пропускной способности (в статье с 1,5 Мбита до 700 Кбит)

"Мы хотим ограничить скорость входящего трафика, чтобы избежать переполнения очереди у провайдера, который иногда буфферизирует до пяти секунд потока данных. Проблема заключается в том, что на данный момент существует единственный способ это сделать -- терять заведомо корректные пакеты. А эти пакеты уже отняли часть полосы пропускания вашего ADSL модема и лишь для того, чтобы быть уничтожеными в надежде, что следующие пакеты будут прибывать с меньшей скоростью. Утерянные пакеты будут переданы повторно. что в конечном счете займет больше полосы пропускания. Когда мы ограничиваем трафик, мы ограничиваем количество пакетов в момент времени допускаемых в нашу сеть. Потому фактическая скорость входящего потока выше, из-за пакетов которые мы уничтожаем. В результате, нам будет необходимо ограничить нашу скорость входящего потока намного ниже, чем действительная скорость ADSL модема чтобы достичь малой задержки. На практике, мне пришлось ограничить мой 1.5Мбит/сек ADSL модем до 700Кбит/сек с тем, чтобы обеспечить приемлемую задержку при пяти одновременных закачках. Чем больше у вас TCP соединений, тем большая часть полосы пропускания будет теряться, и тем ниже вам придется ставить ограничение скорости.

Намного лучший способ управления входящим TCP трафиком заключается в манипулировании окном TCP, но на время написания этого документа не существует ни одного такого (свободного) решения для Linux (насколько я знаю...)."

Собственно меня интересует "Лучший способ". Кто что о нем знает? Ведь с момента написания статьи прошло 5 лет =)

Может возникнуть вопрос: "зачем мне ограничивать входящее соединение?". Все очень просто иногда мне приходится общаться по скайпу и без полной остановки торрентов идут лаги, а так можно будет настроить им очень низкий приоритет, чтобы они отдавали всю полосу.

Для интерфейса локальной сети твой инет-трафик (со стороны провайдера) будет как исходящий. А там уже как хочешь: htb, cbq и т.д.

Jaizer
()
Ответ на: комментарий от Jaizer

Так то так, но ко мне оно приходит УЖЕ со скоростью 256 а домашка 100 Мбит так что тут даже не имеет смысла ограничивать, так как оно уйдет быстрее, чем прийдет новое и очередь не будет образовываться.

В статье же предлагается кидать уже дошедшие пакеты, чтобы отправитель уменьшал скорость и тогда уже у провайдера не будет очереди. Но на и так узком канале половину терять жалко. Меня то собственно интересует "Намного лучший способ управления входящим TCP трафиком заключается в манипулировании окном TCP".

А в принципе просто прочти внимательно первый пост (то что в кавычках).

linADmin
() автор топика
Ответ на: комментарий от linADmin

То, что написано в статье - это RED. И статья, думаю, года эдак 2001.
У меня так дома крутится 21 мегабит (весь канал 22,5 пришлось 1,5 опустить чтобы хорошо все крутилось). Это на входящий. На исходящий - вместо 1 мегабита выставил 900к и тоже проблем не замечаю. 
И я не понял, чем не устроил мой вариант. Очереь будет у тебя на роутере.

Jaizer
()

>Намного лучший способ управления входящим TCP трафиком заключается в манипулировании окном TCP,
формулы, расчёты, доказательства, а то 4.2

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

to dimon555: Это не мои слова, а цитата из статьи. Именно об этом способе я и хочу узнать. Кто что знает?

linADmin
() автор топика
Ответ на: комментарий от Jaizer

>>То, что написано в статье - это RED.
Что это значит?

>>И статья, думаю, года эдак 2001.
Копирайты стоят (c) 2001-2003.
А если подумать то много изменилось за это время?

>>Для интерфейса локальной сети твой инет-трафик (со стороны провайдера) будет как исходящий

У меня ж большинство трафика не идет в локалку ( торренты висят на этом же серве ). И еще проблема в том что в локалка висит на 2 сетевках (проводная и wi-fi). Насколько я понял это решается с помошью imq.

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

linADmin
() автор топика
Ответ на: комментарий от linADmin

1) RED - Random Early Detection.  Почитать про что это такое можно тут
http://www.opennet.ru/docs/RUS/LARTC/x2435.html
2) изменилось много. Не просто ж так версии обновляют ;)
3) А ограничивать скорость торрентов никак нельзя что ли? Ну и для внешнего интерфейса будет без разницы в принципе где у тебя торренты качаются. Можно просто задать приоритеты по сорсу.
4) Ну, и советую почитать http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm

Jaizer
()
Ответ на: комментарий от Jaizer

Торренты то ограничить можно, собственно сейчас так и сделано, но надо б, чтобы они ужимались при более приоритетном трафике. Ну на эту тему я буду капать дальше. Спасибо за мануал.

А так еще один вопрос вобщем то у меня еще и внутрисеть бесплатная на этом же интерфейсе, 100 Мбит. Как я понял достаточно сделать 2 класса 1 с ограничением 25 кб и второй без ограничений (соответственно внешка и внутрисеть) и уже рулить приоритетами внутри полосы 25 кб. Дак вот в чем вопрос "Какую коренную дисциплину делать?". Объязательно ли коренную делать htb или например можно сделать коренную pfifo а ту что на внешку htb?

linADmin
() автор топика
Ответ на: комментарий от linADmin

вообще-то на каждый ифейс вешается своя дисциплина ;)
Ограничить исходящую отдачу можно на раз-два.
Входящий трафик - будет проблематичнее, т.к. торренты не будут проходить через лан-ифейс.

Jaizer
()
Ответ на: комментарий от Jaizer

Я не совсем корректно сформулировал вопрос. :)

Как я понимаю чтобы ограничивать только внешний трафик можно создать под него класс с дисциплиной htb и там уже с помощью подклассов рулить приоритетами. И создать второй класс в который направлять внутрисетевой трафик. Дак вот собственно вопрос "коренную дисциплину надо ставить тоже htb или не объязательно?"

linADmin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.