Джим Гетиc (Jim Gettys), член комитета W3C, разработчик спецификации HTTP/1.1 и автор первой реализации системы X Window, подготовил видеоролик с пояснением причин возникновения эффекта "Bufferbloat"
и способов борьбы с ним. Под Bufferbloat понимается феномен негативного
влияния промежуточной буферизации пакетов на пропускную способность,
однородность потока (jitter) и время прохождения пакетов (latency).
На практике, предложенные в рамках проекта Bufferbloat методы решения
проблем, возникающих из-за излишней буферизации, можно опробовать,
воспользовавшись дистрибутивом CeroWrt.
В рамках CeroWrt развивается прошивка для беспроводных точек доступа и
маршрутизаторов, базирующаяся на наработках OpenWRT и нацеленная на
решение насущных проблем с производительностью и безопасностью в сети.
Удешевление памяти приводит к всё более активной буферизации
сетевых пакетов в маршрутизаторах и коммутаторах, что сказывается в виде
ощутимого снижения эффективности используемых алгоритмов контроля
перегрузки (TCP congestion control), в большой степени полагающихся на
потери пакетов при расчете доступной пропускной способности. Буферизация
затормаживает отбрасывание пакетов, в то время как алгоритм контроля
перегрузки все наращивает и наращивает скорость, используя для обратной
связи начало потери пакетов. В результате, так как снижения скорости
из-за начала потери пакетов вовремя не происходит, алгоритм не может
подобрать нужный баланс скорости потока, соотносящийся со скоростью
физического линка. При этом чем больше размер буфера, тем больше
становится задержка в доставке пакетов, так как реакция алгоритма
контроля перегрузки следует только после заполнения буфера.
Источник
|