Record validated ACK batching and remaining solo duplex limits
This commit is contained in:
1 parent
7737391ded
commit
a297d2d649
2 files changed
+46
No files matched your search
@@ -22,6 +22,38 @@ piggyback разных путей, смену головы, early timer callback
|
||||
Диагностика расширена до 106 полей: ранние записи внутри готовой пачки допустимы;
|
||||
early_ordinary_ack_packets отдельно проверяет отправку всего пакета раньше срока.
|
||||
|
||||
Проверка после исправления: windows 60 сценариев PASS с управляемыми и реальными
|
||||
часами; восемь профильных тестов ETCP/STCP ASAN/UBSan с detect_leaks=1 PASS без
|
||||
ошибок/утечек. Отдельный ASAN two-stuck с диагностикой 10 мс: 5202 проверенных среза,
|
||||
ранних ACK-пакетов нет, доставка/ресурсы PASS. Полный check.sh: 184/184, proxy 9/9,
|
||||
burst 1/1, load 8/8 PASS, 134217728 проверенных байт, 185 с со сборкой.
|
||||
|
||||
Три последовательных bidirectional с диагностикой: ранних обычных ACK-пакетов 0
|
||||
во всех трёх прогонах. На одиночном 8 Мбит/с пути полоса ACK 0.143..0.169 Мбит/с
|
||||
вместо 0.347/0.390 в предыдущем диагностическом прогоне. Агрегат: A->B
|
||||
8.667..8.804, B->A 8.695..8.796 из 10 Мбит/с. Сам агрегат проходит все свои пороги
|
||||
каждый раз; весь профиль остаётся FAIL из-за одиночных каналов, с 3/2/4 нарушениями.
|
||||
Средний возраст entries ACK-only на 8 Мбит/с может быть меньше 2 мс: внутри готового
|
||||
кадра передаются и новые entries. Это учитывается отдельно от ранней отправки кадра.
|
||||
|
||||
Полная штатная последовательная матрица после калибровки эмулятора: первые шесть
|
||||
скоростных профилей и все 9 профилей отказов PASS. Агрегированный goodput,
|
||||
Мбит/с: equal 14.416/16, bandwidth 9.032/10, rtt 14.516/16, fast-distant 8.857/10,
|
||||
slow-distant 8.978/10, three 11.122/12, bidirectional 8.750/8.768 из 10 на направление.
|
||||
Остаются два FAIL одиночного дуплекса: 1.609 вместо 1.700 Мбит/с (путь 2 Мбит/с)
|
||||
и 6.730 вместо 6.800 Мбит/с (обратное направление пути 8 Мбит/с).
|
||||
Two-stuck: gap 206.227 мс, latency 375.457 мс; load-drop/load-hold: gap 41.402/41.845 мс,
|
||||
steady goodput 7.229/7.466 из 8 Мбит/с. Max latency насыщенного источника
|
||||
180.693/89.239 мс записана; отдельным порогом она здесь не ограничена.
|
||||
Дальше отдельно разбирать недооценку полосы/PROBE_RTT одиночного дуплекса,
|
||||
STCP backpressure и проверки изменения RTT/BW и повторного отказа.
|
||||
|
||||
Логи: /tmp/etcp-ack-deadline-{windows,real-time,full-check}.log,
|
||||
/tmp/etcp-ack-deadline-asan-test_*.log, /tmp/etcp-ack-deadline-asan-two-stuck.log/.csv,
|
||||
/tmp/etcp-ack-deadline-matrix.log/.csv, /tmp/etcp-ack-deadline-duplex-<1..3>.log/.csv.
|
||||
Сводка ACK: /tmp/etcp-ack-deadline-summary.json; актуальный HTML с 106 полями:
|
||||
/tmp/etcp-ack-deadline-duplex.html. Проверка CSV и JS smoke графиков/фильтров PASS.
|
||||
|
||||
Предыдущий этап: диагностика до исправления ACK.
|
||||
|
||||
24.10.2026: добавлена буферизованная диагностика multipath с шагом 100 мс.
|
||||
|
||||
@@ -25,6 +25,20 @@
|
||||
Windows/FreeBSD runtime не проверялся.
|
||||
|
||||
[ ] **ETCP: полезная утилизация нескольких каналов и доставка при зависании части линков** — общая задача открыта.
|
||||
24.10.2026: исправлен обход срока ACK посторонним wake. Абсолютный срок головы пути +2 мс,
|
||||
один общий таймер, пересчёт после piggyback/частичной отправки; новые DATA не отодвигают старые ACK.
|
||||
Наступивший ACK другого пути имеет приоритет перед DATA; свой DATA забирает его piggyback.
|
||||
Сохранены срочный ответ, bounded burst, OOM fallback и очистка при reset/close; wire/BBR/RTO не менялись.
|
||||
Windows 60 сценариев с обоими режимами часов PASS; восемь ASAN/UBSan-тестов и ASAN two-stuck без ошибок/утечек.
|
||||
В трёх дуплексных прогонах ранних ACK-пакетов 0; на 8 Мбит/с ACK занимают 0.143..0.169 вместо прежних 0.347/0.390 Мбит/с.
|
||||
Агрегат проходит все свои пороги: 8.667..8.804 / 8.695..8.796 из 10 Мбит/с; одиночные каналы ещё дают FAIL.
|
||||
Полная матрица: первые 6 скоростных профилей и все 9 профилей отказов PASS, агрегат дуплекса 8.750/8.768.
|
||||
Остались 2 FAIL одиночного дуплекса: 1.609<1.700 и 6.730<6.800 Мбит/с; дальше разбирать BW/PROBE_RTT и STCP backpressure.
|
||||
Load-drop/load-hold: паузы 41.402/41.845 мс, steady 7.229/7.466 из 8 Мбит/с; max latency 180.693/89.239 мс записана.
|
||||
Check.sh 184/184, proxy 9/9, burst 1/1, load 8/8 PASS, 134217728 проверенных байт, 185 с.
|
||||
Диагностика 106 полей различает раннюю запись в готовой пачке и отправку всего ACK-пакета раньше срока.
|
||||
Логи/CSV: /tmp/etcp-ack-deadline-*; HTML: /tmp/etcp-ack-deadline-duplex.html; детали — doc/etcp_multipath_plan.txt.
|
||||
Предыдущий этап — диагностика до исправления ACK:
|
||||
Продолжение 24.10.2026: диагностика срезов 100 мс (настройка 10..1000 мс), 104 поля; CSV и лог буферизуются до drain.
|
||||
Видны очереди, callbacks/deferred waiter, DATA/ACK, flight/cwnd, BBR/RTT/RTO, долг/готовность pacer и канал эмулятора.
|
||||
tools/etcp_diag_report.py проверяет CSV и строит автономные интерактивные графики с исходными срезами.
|
||||
|
||||
Reference in new issue
Block a user