БИК ПТС
BIC TCP ( Управление перегрузкой двоичного увеличения ) — это один из алгоритмов управления перегрузкой , который можно использовать для протокола управления передачей (TCP). BIC оптимизирован для высокоскоростных сетей с высокой задержкой: так называемые « длинные толстые сети ». Для этих сетей BIC имеет значительное преимущество перед предыдущими схемами управления перегрузкой в корректировке сильно недоиспользованной полосы пропускания. [ 1 ]
BIC реализует уникальный алгоритм окна перегрузки (cwnd). Этот алгоритм пытается найти максимальное значение cwnd путем поиска в трех частях: увеличение двоичного поиска , аддитивное увеличение и медленный старт. При возникновении сбоя в сети BIC использует мультипликативное уменьшение для коррекции cwnd. [ 2 ]
BIC TCP реализован и используется по умолчанию в ядрах Linux 2.6.8 и выше. Реализация по умолчанию снова была изменена на CUBIC TCP в версии 2.6.19.
Алгоритм
[ редактировать ]Определите следующие переменные:
Smax: the maximum increment Smin: the minimum increment wmax: the maximum window size β: multiplicative window decrease factor cwnd: congestion window size bic_inc: window increment per RTT (round trip time)
При каждом интервале RTT обновляйте cwnd следующим образом:
Если пакеты не отбрасываются, окно перегрузки (cwnd) увеличивается тремя различными способами: увеличение двоичного поиска, аддитивное увеличение и медленный старт. На каждом этапе один используется в качестве приращения.
Один шаг увеличения cwnd:
if (cwnd < wmax) // binary search OR additive bic_inc = (wmax - cwnd) / 2; else // slow start OR additive bic_inc = cwnd - wmax; if (bic_inc > Smax) // additive bic_inc = Smax; else if (bic_inc < Smin) // binary search OR slow start bic_inc = Smin; cwnd = cwnd + (bic_inc / cwnd);
Если один или несколько пакетов отброшены, cwnd уменьшается с помощью мультипликативного уменьшения . Для этого требуется β, который используется для уменьшения cwnd на (100×β)%. В случае двух потоков, один с большим cwnd, а другой с маленьким cwnd, быстрая сходимость потока большего cwnd используется для уменьшения w max с большей скоростью, чем поток меньшего cwnd, чтобы обеспечить более быструю сходимость потока большего cwnd, когда увеличивая свой cwnd.
Один шаг уменьшения cwnd:
if (cwnd < wmax) // fast convergence wmax = cwnd * (2-β) / 2; else wmax = cwnd; cwnd = cwnd * (1-β);
См. также
[ редактировать ]- Алгоритм предотвращения перегрузки TCP
- Протокол управления передачей § Разработка
- SCTP
- КУБИЧЕСКИЙ TCP
Ссылки
[ редактировать ]- ^ «Часто задаваемые вопросы по БИК» . www4.ncsu.edu . Проверено 25 декабря 2018 г.
- ^ «Двоичное увеличение контроля перегрузки (BIC) для быстрых сетей междугородной связи - Публикация конференции IEEE». дои : 10.1109/INFCOM.2004.1354672 . S2CID 11750446 .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь )
Внешние ссылки
[ редактировать ]- [1] Домашняя страница.