Document agreed retransmission bounds and verified timer behavior
This commit is contained in:
1 parent
c3ac337ef0
commit
b349d7b7b2
2 files changed
+13
-2
No files matched your search
@@ -9,6 +9,11 @@ STARTUP/DRAIN, сериализация и обратный трафик не д
|
||||
В штатном тесте equal получено 14.464/16Мбит/с, bandwidth — 9.060/10Мбит/с;
|
||||
очередь медленного канала в bandwidth сократилась примерно с 47 до 21мс.
|
||||
Изменения протокола и учёта попыток ниже ещё не реализованы.
|
||||
По уточнению пользователя расчётный RTO ограничен снизу 10мс, сверху 1с.
|
||||
Текущая общая формула 2*(RTT+jitter) сохранена; нижняя граница уже исправлена.
|
||||
test_etcp_windows: 17 сценариев PASS, включая семь проверок RTO на управляемых
|
||||
и обычных часах (нижняя граница, RTT20/200мс, jitter, верхняя граница).
|
||||
Логи: /tmp/etcp-rto-windows.log, /tmp/etcp-rto-windows-real.log.
|
||||
|
||||
Что подтверждено кодом и диагностикой
|
||||
|
||||
@@ -221,7 +226,8 @@ uint8: хранить факт состоявшейся отправки отд
|
||||
перестаёт соответствовать новому владению. FIFO допустима при одном текущем
|
||||
RTO для всех попыток линка; пересчитывать таймер при его смене.
|
||||
До первого DATA ACK использовать RTT того же KA-пути как начальную оценку
|
||||
либо консервативный начальный RTO; не начинать неизвестный путь с 5мс.
|
||||
либо консервативный начальный RTO. Расчёт по собственным RTT/jitter с запасом
|
||||
ограничить диапазоном 10мс..1с; 10мс — нижняя граница, не верхняя.
|
||||
Добавить ротацию retry сразу, пока старый канал ещё UP; не откладывать до DOWN.
|
||||
Не оставлять промежуточный формат,
|
||||
в котором новый ACK продолжает обращаться только к last_link.
|
||||
|
||||
@@ -31,7 +31,12 @@ HELLO/CHALLENGE/CONFIRM и keepalive передаются своим незав
|
||||
пересканирование inflight:
|
||||
- запускается при добавлении пакета в очередь ожидания ACK (wait_ack_cb). устанавливается таймер на первый неистекший пакет.
|
||||
- возраст последней отправки сравнивается с (RTT_avg10*32+jitter*32)/16,
|
||||
ограниченным диапазоном 50..10000 таймбаз (5ms..1s).
|
||||
ограниченным диапазоном 100..10000 таймбаз (10ms..1s).
|
||||
RTT_avg10 — историческое имя максимального RTT среди links; jitter — среднее
|
||||
по links значение link->jitter/32768. Оба значения здесь в единицах 0.1ms.
|
||||
При текущих коэффициентах формула равна 2*(RTT_avg10+jitter), включая запас.
|
||||
Проверка таймером назначается с дополнительной 1ms и округлением uasync вверх
|
||||
до миллисекунды; фактический callback может выполняться позже расчётного RTO.
|
||||
- истёкший пакет освобождает окно прежнего линка и переходит в input_send_q;
|
||||
его новая попытка проходит обычный допуск по окну и pacing выбранного линка.
|
||||
- очередь FIFO (сортирована по timestamp добавления = времени отправки), сканирование прекращается на первом неистекшем пакете
|
||||
|
||||
Reference in new issue
Block a user