Document BBR queue budget conflict with the fixed latency target

This commit is contained in:
evgeny committed 2026-10-23 00:58:29 +02:00
1 parent 94d6dd05c8
commit 5f406c2a41
3 files changed
+16 -1

No files matched your search

+3 -1
View File
@@ -4,7 +4,9 @@
* cwnd/inflight/delivered — байты DATA, interval/rtt — микросекунды, pacing_rate — байты в секунду.
* MSS — максимальный DATA-фрагмент normalizer, без заголовков; не wire-MTU и не размер кадра STCP.
* Минимальное окно — 4*MSS; PROBE_RTT осушает до max(4*MSS, 0.5*BDP), затем ждёт >=200мс и раунд ACK.
* Транспорт применяет окно с верхним ограничением конфига и не повышает его до собственного минимума. */
* Транспорт применяет окно с верхним ограничением конфига и не повышает его до собственного минимума.
* Целевое окно PROBE_BW включает 2*BDP и ACK-резерв, в PROBE_UP дополнительно 2*MSS;
* фиксированный предел времени физической очереди модель не задаёт. */
#pragma once
#include <stdint.h>
+7
View File
@@ -50,6 +50,13 @@ PROBE_RTT осушает flight до `max(4*MSS, 0.5*BDP)`, выдерживае
DATA, отправленные в PROBE_RTT, помечаются app_limited, чтобы низкая скорость осушения не понижала оценку полосы.
ACK-only не ограничивается этим pacing, но проходит общую физическую очередь канала.
Целевое окно PROBE_BW равно `2*BDP + ACK-резерв`, в PROBE_UP добавляются ещё `2*MSS`;
применяются также минимум окна и изученные ограничения inflight. Это резерв для утилизации канала,
а не фиксированный лимит времени очереди. Например, в диагностике канала 2Мбит/с с базовым RTT=20мс
модель получила min_rtt=24мс и окно `12060 + 1893 + 2194 = 16147` байт DATA.
Наблюдаемая очередь 44–48мс укладывается в такое окно, но нарушает отдельное требование теста <=40мс.
Для фиксированного бюджета задержки нужна отдельная политика ограничения; это изменение поведения контроллера.
### Тестирование
Поле `now_tb` позволяет подменять реальное время (`get_time_tb()`) на заданное — при `now_tb == 0` используется `get_time_tb()`, иначе управляемое значение. `on_cwnd_update` — callback для отслеживания изменений cwnd в тестах.