Что показывает калькулятор пропускной способности TCP?
Этот инструмент оценивает максимальную теоретическую пропускную способность одного TCP-соединения исходя из размера приёмного окна TCP и времени кругового обхода в сети (RTT). Поскольку TCP в каждый момент может держать «в полёте» лишь объём данных, равный одному окну, без подтверждения, именно сочетание размера окна и RTT задаёт верхний предел скорости передачи — независимо от того, какова реальная пропускная способность канала. Эта зависимость известна как ограничение по произведению полосы пропускания на задержку (bandwidth-delay product).
Как пользоваться
Укажите размер окна TCP в килобайтах (КБ) и время кругового обхода в миллисекундах (мс). Калькулятор переводит окно в биты, RTT — в секунды, а затем делит одно на другое и выдаёт пропускную способность в Мбит/с, Кбит/с и бит/с. И увеличение окна, и уменьшение RTT повышают достижимую скорость.
Разбор формулы
В основе лежит простое соотношение: пропускная способность = размер окна ÷ RTT. Чтобы единицы измерения совпадали, выполняем перевод: 1 КБ = 1024 байта = 8192 бита, а RTT в миллисекундах делим на 1000, получая секунды. Таким образом, пропускная способность в битах в секунду равна $$\text{Throughput (бит/с)} = \frac{\text{Окно (КБ)} \times 8192}{\text{RTT} / 1000}$$ Деление результата на 1 000 000 даёт значение в Мбит/с:
$$\text{Throughput (Мбит/с)} = \frac{\text{Окно (КБ)} \times 1024 \times 8}{\text{RTT (мс)} / 1000} \times \frac{1}{10^{6}}$$
Пример расчёта
Допустим, окно TCP равно 64 КБ, а RTT составляет 50 мс. Окно в битах = \(64 \times 1024 \times 8 = 524\,288\) бит. RTT в секундах = \(50 \div 1000 = 0{,}05\) с. Пропускная способность = \(524\,288 \div 0{,}05 = 10\,485\,760\) бит/с ≈ 10,49 Мбит/с. Чтобы полностью загрузить более быстрый канал, потребуется большее окно (механизм масштабирования окна TCP, window scaling).
Частые вопросы
Почему реальная скорость не совпадает со скоростью канала? Потому что небольшое окно на маршруте с высоким RTT ограничивает объём данных, которые могут находиться в пути одновременно. Именно поэтому на дальних соединениях часто необходимо масштабирование окна.
Какой размер окна нужен для желаемой скорости? Перепишите формулу: \(\text{Окно (биты)} = \text{Пропускная способность} \times \text{RTT}\). Это произведение и есть bandwidth-delay product — идеальный размер буфера.
Учитывает ли расчёт потери пакетов? Нет — это максимум при отсутствии потерь. На каналах с потерями реальная скорость ниже, и её точнее описывает формула Матиса (Mathis equation).