Управление исходящим трафиком через обратную связь

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

Конечно TCP протокол и некоторые виды прикладных UDP-based протоколов через механизм congestion control могут подстроиться под заданные ограничения, но если воздействовать на канал пользователя, уменьшая размер исходящего трафика, то можно сэкономить дополнительно до 10% общей оператора по сравнению с обычным полисингом.

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

Дополним прошлый пример параметром htb_inbound_bw:

htb_inbound_bw=rate 9mbit ceil 10mbit htb_inbound_root=rate 2mbit ceil 10mbit htb_inbound_class0=rate 8bit ceil 10mbit htb_inbound_class1=rate 1mbit ceil 3mbit htb_inbound_class2=rate 8bit ceil 10mbit htb_inbound_class3=rate 8bit ceil 10mbit htb_inbound_class4=rate 8bit ceil 10mbit htb_inbound_class5=rate 8bit ceil 10mbit htb_inbound_class6=rate 8bit ceil 10mbit htb_inbound_class7=rate 8bit ceil 10mbit htb_root=rate 2mbit ceil 10mbit htb_class0=rate 8bit ceil 10mbit htb_class1=rate 1mbit ceil 3mbit htb_class2=rate 8bit ceil 10mbit htb_class3=rate 8bit ceil 10mbit htb_class4=rate 8bit ceil 10mbit htb_class5=rate 8bit ceil 10mbit htb_class6=rate 8bit ceil 10mbit htb_class7=rate 8bit ceil 10mbit

В параметре htb_inbound_bw укажем ограничение на входящий трафик и размер максимального превышения. Когда входящий трафик превысит заданный в этом параметре rate=9mbit для исходящего трафика начинает уменьшаться верхняя граница ceil, заданная в параметре htb_root ceil=10mbit, но не больше чем до htb_root rate=2mbit. Процент превышения считается по интервалу ceil 10mbit ↔ rate 9mbit и на такой же процент сокращается исходящий трафик. При ограничении величины сeil, заданной в параметре htb_root, остальные классы начинают перераспределять трафик в соответствии с их приоритетом и заданными ограничениями, чтобы не превысить общее ограничение, установленное в htb_root.