BIC TCP - BIC TCP
Эта статья слишком полагается на Рекомендации к основные источники.Апрель 2012 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
BIC TCP (Контроль перегрузки двоичного кода) один из алгоритмы контроля перегрузки что можно использовать для Протокол управления передачей (TCP). BIC оптимизирован для высокоскоростных сетей с высокой задержкой: так называемый "длинные толстые сети ". Для этих сетей BIC имеет значительное преимущество по сравнению с предыдущими схемами управления перегрузкой в исправлении сильно недоиспользованной полосы пропускания.[1]
BIC реализует уникальный алгоритм окна перегрузки (cwnd). Этот алгоритм пытается найти максимальное cwnd путем поиска в трех частях: бинарный поиск увеличивать, аддитивное увеличение, и медленный старт. Когда происходит сбой сети, BIC использует мультипликативное уменьшение для исправления cwnd.[2]
BIC TCP реализован и используется по умолчанию в Linux ядра 2.6.8 и выше. Реализация по умолчанию снова была изменена на КУБИЧЕСКИЙ TCP в версии 2.6.19.
Алгоритм
Определите следующие переменные:
SМаксимум: максимальное приращение Sмин: минимальное приращение wМаксимум: максимальный размер окна β: коэффициент уменьшения мультипликативного окна cwnd: размер окна перегрузки bic_inc: приращение окна на RTT (время приема-передачи)
При каждом интервале RTT обновляйте cwnd со следующим:
Если пакеты не отбрасываются, окно перегрузки (cwnd) увеличивается тремя различными способами: увеличение двоичного поиска, аддитивное увеличение и медленный запуск. На каждом шаге один используется как приращение.
Один шаг увеличения cwnd:
если (cwndМаксимум) // бинарный поиск ИЛИ добавление bic_inc = (wМаксимум - cwnd) / 2; else // медленный старт ИЛИ добавка bic_inc = cwnd - wМаксимум; если (bic_inc> SМаксимум) // добавка bic_inc = SМаксимум; иначе, если (bic_inc мин) // двоичный поиск ИЛИ медленный старт bic_inc = Sмин; cwnd = cwnd + (bic_inc / cwnd);
Если один или несколько пакетов отброшены, cwnd уменьшается с помощью мультипликативное уменьшение. Для этого требуется β, который используется для уменьшения cwnd на (100 × β)%. В случае двух потоков, один с большим cwnd, а другой - с маленьким, быстрая сходимость используется для уменьшения большего потока cwnd wМаксимум с большей скоростью, чем поток меньшего cwnd, чтобы обеспечить более быстрое схождение потока большего cwnd при увеличении его cwnd.
Один шаг уменьшения cwnd:
если (cwndМаксимум) // быстрая сходимость wМаксимум = cwnd * (2-β) / 2; еще жМаксимум = cwnd; cwnd = cwnd * (1-β);
Смотрите также
Рекомендации
внешняя ссылка
- [1] Домашняя страница.
Этот компьютерная сеть статья - это заглушка. Вы можете помочь Википедии расширяя это. |