Калькулятор произведения полосы на задержку (BDP)
Введите скорость канала и время приёма-передачи (RTT), например из ping. Калькулятор покажет произведение полосы на задержку — сколько данных должно быть в пути, чтобы канал был загружен полностью, — в битах, байтах, КиБ и МиБ, сдвиг масштабирования окна TCP для такого окна, а также скорость и загрузку канала при указанном размере окна.
Работает в браузере: всё, что вы вводите, никуда не отправляется.
Как пользоваться
- Введите скорость канала и выберите кбит/с, Мбит/с или Гбит/с.
- Введите RTT в миллисекундах.
- Введите размер окна TCP в КиБ, чтобы увидеть скорость при нём (без масштабирования окно не больше 65 535 байт, чуть меньше 64 КиБ).
Формулы
- BDP (бит) = полоса (бит/с) × RTT (с); байты = биты ÷ 8, 1 КиБ = 1024 байта, 1 МиБ = 1 048 576 байт
- Скорость при окне = min(полоса, окно × 8 ÷ RTT)
- Сдвиг масштаба окна = наименьшее s от 0 до 14, при котором 65 535 × 2ˢ ≥ BDP в байтах
Скорость канала — с десятичными приставками (1 Мбит/с = 1 000 000 бит/с), размер окна — с двоичными (1 КиБ = 1024 байта).
Пример расчёта
Канал 100 Мбит/с с RTT 50 мс:
- BDP = 100 000 000 × 0,05 = 5 000 000 бит = 625 000 байт = 610,35 КиБ = 0,596 МиБ
- окно нужно масштабировать: 625 000 ÷ 65 535 = 9,54, значит сдвиг 4 (×16)
- с фиксированным окном 64 КиБ: 65 536 × 8 ÷ 0,05 = 10,486 Мбит/с, всего 10,5 % канала
Советы
- «Длинные толстые» сети (быстрые каналы на большие расстояния) сильнее всего страдают от малого окна.
- Буферы тоже важны. Буферы сокетов на обоих концах должны быть не меньше BDP, иначе операционная система ограничит окно.
- Потери пакетов меняют картину: при потерях TCP уменьшает окно перегрузки, и скорость падает ниже, чем следует из BDP.
Частые вопросы
Что такое произведение полосы на задержку?
Объём данных, которые одновременно находятся в пути в канале, работающем на полной скорости, — полоса × время приёма-передачи. 100 Мбит/с при RTT 50 мс — это 5 000 000 бит, или 625 000 байт.
Почему окно TCP должно быть не меньше BDP?
Отправитель может держать в пути не больше одного окна неподтверждённых данных. Если окно меньше BDP, он ждёт подтверждений, и канал частично простаивает; скорость тогда равна окно ÷ RTT.
Что такое масштабирование окна TCP?
Поле окна в заголовке TCP 16-битное, то есть не больше 65 535 байт. Опция масштабирования (RFC 7323) сдвигает его влево до 14 бит. Для 625 000 байт нужен сдвиг 4: 65 535 × 2⁴ = 1 048 560 — первое значение больше нужного.
Какое RTT брать?
Время приёма-передачи между концами под нагрузкой, например из ping. Берите худшее типичное значение: окно, рассчитанное на 20 мс, не справится на трассе со 100 мс.