Clarify timestamp RTT role in transport contracts
This commit is contained in:
1 parent
68a225baec
commit
d5114f36b4
2 files changed
+4
-3
No files matched your search
@@ -45,7 +45,7 @@ HELLO/CHALLENGE/CONFIRM и keepalive передаются своим незав
|
||||
seq отдельно подтверждает логическую доставку. till освобождает логические записи, без BBR/снятия чужого flight.
|
||||
- timestamp (0x06): обновляем RTT и EWMA |ΔRTT| пути; recv_dt_avg хранит поправки времени TX/RX в Q16.
|
||||
У conn rtt_last — среднее RTT линков, rtt_avg_10 — их максимум (имя историческое).
|
||||
Для BBR/RTO используются отдельные DATA RTT/jitter, измеренные по ACK физических попыток.
|
||||
BBR использует отдельные DATA RTT/jitter по ACK физических попыток; RTO также учитывает rtt_last своего линка.
|
||||
- [0x00] payload: сохраняем фрагмент в recv_q либо распознаём уже сохранённый/доставленный seq.
|
||||
Только после этого ставим ACK с seq+attempt_no в ack_q принявшего линка; OOM до сохранения не подтверждается.
|
||||
после сканирования проверяем появились ли в linked-list собранные данные которые можно переместить в выходную очередь. и перемещаем если есть.
|
||||
@@ -194,7 +194,8 @@ Reset линка снимает флаг и серию RTO. Новых очер
|
||||
- RECV_Rel_Timestamp: uint16_t = last_recv_local_time - last_recv_timestamp
|
||||
(относительное смещение между локальным и удалённым временем)
|
||||
Всего 5 байт. Добавляется только если last_recv_updated=1 (был принят пакет с момента последней отправки)
|
||||
и если прошло менее 100с (dt < 1000000 таймбаз). Секция не является источником DATA RTT для BBR/RTO.
|
||||
и если прошло менее 100с (dt < 1000000 таймбаз). Результат rtt_last задаёт нижнюю границу RTT для RTO;
|
||||
DATA RTT и min_rtt BBR обновляются только ACK действующих физических попыток.
|
||||
3. Полезная нагрузка - заголовок 0x00 (одна секция и всегда последняя):
|
||||
[0x00] [ID 4 байта LE] [attempt_no 2 байта LE] [данные...]
|
||||
- ID: uint32_t, номер фрагмента 1..UINT32_MAX в пределах одной эпохи потока.
|
||||
|
||||
@@ -289,7 +289,7 @@ struct ETCP_LINK {
|
||||
uint64_t acked_bytes; // подтверждённых байт на этом линке
|
||||
uint64_t acked_packets; // подтверждённых пакетов на этом линке
|
||||
|
||||
uint16_t rtt_last; // round trip (время отправки + приёма)
|
||||
uint16_t rtt_last; // Последний timestamp-RTT, 0.1мс (0 до измерения); нижняя граница RTT для RTO
|
||||
uint32_t jitter; // Current jitter [>>16] x0.1 ms
|
||||
// rtt_avg10 удалён — заменён BBR (bbr->min_rtt_us/100)
|
||||
uint32_t recv_dt_avg_tx; // EWMA поправки TX timestamp, Q16 в единицах 0.1 мс, арифметика по модулю 2^32
|
||||
|
||||
Reference in new issue
Block a user