Describe ACK handling and bounded DATA pacing in the ETCP protocol
This commit is contained in:
1 parent
4dba742149
commit
f8d532b04d
1 file changed
+5
-1
@@ -14,7 +14,8 @@ HELLO/CHALLENGE/CONFIRM и keepalive передаются своим незав
|
||||
inflight_bytes + длина DATA <= inflight_lim_bytes. Проверка выполняется без переполнения.
|
||||
Среди допустимых выбирается минимум inflight_bytes, при равенстве — round-robin.
|
||||
3. Если DATA не помещается, он остаётся в очереди; для накопленных ACK выбирается
|
||||
рабочий линк без ограничения DATA-cwnd, с учётом shaper.
|
||||
рабочий линк без ограничения DATA-cwnd/pacing. ACK-only не увеличивает нагрузку DATA-shaper;
|
||||
физическая очередь канала остаётся общей, её накопление ограничивают DATA-cwnd/pacing BBR.
|
||||
4. Выделить ETCP_DGRAM до удаления DATA из очереди и изменения счётчиков.
|
||||
Отправляемый DATA занимает окно выбранного линка и переходит в input_wait_ack.
|
||||
Пакет содержит ACK, опциональные timestamp/измерительные секции и последнюю секцию PAYLOAD.
|
||||
@@ -59,6 +60,9 @@ Selective ACK освобождает отдельную inflight-запись,
|
||||
input_queue даже если подтверждённые записи уже удалены по selective ACK.
|
||||
ACK ограничивается последним назначенным seq (next_tx_id - 1); сравнения учитывают uint32 wrap.
|
||||
BBR каждого линка получает ACK/loss samples и возвращает cwnd и pacing rate.
|
||||
Скорость — доставленные байты за max(интервал отправки, интервал доставки), по снимкам при отправке.
|
||||
Интервал между соседними ACK не используется: ACK одной пачки могут обрабатываться в один tick.
|
||||
Внутренняя полоса — байты/мкс Q16; pacing — байты/с, BDP — байты, без повторного множителя MSS.
|
||||
Лимит DATA — не менее 8192 байт и не более bbr_max_cwnd (по умолчанию 1048576).
|
||||
Отказ из-за нехватки окна сохраняет cwnd_limited до следующего ACK: вычитание ACK
|
||||
не должно скрывать этот факт от BBR. app_limited учитывает ожидающие очереди и
|
||||
|
||||
Reference in new issue
Block a user