Управление трафиком - можно ли отличить просмотр www и массовый трафик www (загрузка iso)?

В последнее время я работал над загрузкой больших файлов на веб-сайт, эта загрузка потребляла всю пропускную способность и искалечила мою сеть. Поэтому я реализовал разбиение одного блока размером 1 МБ в секунду и его работу, но теперь я думаю, могу ли я использовать управление трафиком для достижения того же самого с лучшим результатом.

Мой вопрос: настолько ли умен управление трафиком и может ли различать просмотр www и www массовая загрузка / скачивание больших файлов.

tc qdisc add dev imq0 root handle 1:0 htb default 666
tc class add dev imq0 parent 1:0 classid 1:1   htb rate 90000kbit ceil 90000kbit

tc class add dev imq0 parent 1:1 classid 1:888 htb rate 10000kbit ceil 40000kbit prio 0    # browse www traffic
tc class add dev imq0 parent 1:1 classid 1:666 htb rate 10000kbit ceil 40000kbit prio 1    # bulk www traffic

tc filter add dev imq0 protocol ip parent 1:1 prio 2 u32 match ip tos 0x08 0xff  flowid 1:666 # bulk www traffic
tc filter add dev imq0 protocol ip parent 1:0 prio 2 u32 match ip sport   80 0xffff flowid 1:888  # http
tc filter add dev imq0 protocol ip parent 1:0 prio 2 u32 match ip sport  443 0xffff flowid 1:888  # https

Хотите, чтобы это сработало? (Не могу проверить сейчас.)

0
задан 8 October 2019 в 07:33
2 ответа

Ваше решение полагается на поведение веб-браузера для установки соответствующего поля IP ToS. На это можно положиться только в доверенной среде.

Я могу легко написать правила mangle на своей машине, чтобы сгладить все ToS в какое-то одно значение, и ваши правила TC не смогут отвлечь мою массу от просмотра.

Кроме того, я не был бы уверен, что весь браузер и другое программное обеспечение http (s) всегда использует одни и те же ToS для одних и тех же вещей. Такого софта предостаточно: wget и другие загрузчики; зеркалирование веб-сайтов (wget тоже может это делать, но есть специализированное программное обеспечение), которые загружают не только некоторые большие файлы, но и все реквизиты страницы; множество браузеров, включая firefox, lynx, links, т.е. edge, на основе хрома - все они используют разные движки и могут отображать разное сетевое поведение; Связанные с REsT вещи, которые просто отправляют небольшие сообщения по http туда и обратно. В веб-мире также существует решение Websocket, которое полностью отличается от того, что вы знаете о http.

Таким образом, использование ToS полезно только в том случае, если вы тщательно контролируете свою сеть.

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

3
ответ дан 4 December 2019 в 12:14

Многие популярные инструменты загрузки предоставляют механизм для ограничения пропускной способности, разрешенной для передачи.

Если вы используете rsync для загрузки больших файлов используйте переключатель - bwlimit :

rsync --bwlimit=125k ...

Если вы просто используете scp , используйте переключатель -l :

scp -l 125k ...

Если вы используя wpu , он также распознает переключатель -l (также - limit-rate = ):

wput -l 125k ...

или

wput --limit-rate=125k ...

Если вы используете что-то еще, обратитесь к странице man , чтобы узнать, предлагает ли он подобную возможность.

0
ответ дан 4 December 2019 в 12:14

Теги

Похожие вопросы