Кратко
- Поле Packet Number содержит только 1–4 младших байта полного номера и маскируется header protection.
- Получатель выбирает полный кандидат около следующего ожидаемого значения, используя состояние того же packet-number space.
- Повтор младших битов, скачок, переполнение или ошибка расшифрования сами по себе не доказывают потерю, повтор, атаку или ущерб приложению.
Пассивная запись часто превращает фрагмент протокольного состояния в мнимую последовательность. Один и тот же видимый 16-битный результат объявляют повтором, а числовой скачок — потерей миллионов пакетов. RFC 9000 и RFC 9001 требуют разделять три состояния: защищённые байты в проводном трафике, усечённое значение после снятия header protection и полный Packet Number, восстановленный получателем. Полный номер — целое от 0 до 2^62-1. Но в long header или short header передаются только 1–4 байта его младших битов. Длина поля также защищена.
Номер не является глобальным счётчиком соединения. QUIC использует три packet-number spaces: Initial, Handshake и application data; последнее включает 0-RTT и 1-RTT. В каждом пространстве отсчёт начинается с нуля. Номера отправки и приёма ведутся отдельно для каждого направления. Поэтому одинаковое число может относиться к разным пакетам. Пакеты Retry и Version Negotiation не содержат Packet Number и не подтверждаются обычными ACK.
Отправитель выбирает ширину кодирования с учётом состояния. Пока в данном пространстве не получен ACK, он использует полный номер. После ACK выбирается столько битов, чтобы покрыть более чем удвоенную разницу между отправляемым номером и Largest Acknowledged. Примеры RFC показывают алгоритм, в том числе на последовательных неподтверждённых номерах; это не эксплуатационные временные пороги и не гарантия для любого сильно задержанного пакета.
Получатель сначала снимает header protection. Только после этого становятся известны чистое усечённое значение и длина поля. Показанная процедура реконструкции использует три входа: наибольший номер, успешно обработанный в текущем пространстве, усечённое значение и длину. Следующее ожидаемое значение равно наибольшему успешно принятому номеру плюс один. В пределах окна кодирования выбирается ближайший кандидат. Пассивному наблюдателю без истории конечной точки этой информации не хватает.
Если пакет приходит после множества более высоких номеров, его младшие биты могут оказаться ближе к неправильному кандидату. Поэтому ошибка deprotection или аутентификации сама по себе не доказывает нарушение протокола или атаку. Восстановленный номер участвует в построении nonce AEAD; при снятии packet protection незашищённый заголовок вплоть до Packet Number аутентифицируется как associated data. Предположение о значении вне этой процедуры не является аутентифицированным декодированием.
Largest Acknowledged — отдельный тип доказательства. Это полное целое переменной длины, а не усечённое защищённое поле. ACK ranges описывают полученные и обработанные пакеты в packet-number space пакета, содержащего ACK. Они могут подтвердить факт на конечной точке, но не восстанавливают пропуски пассивной записи и не переносят смысл в другое пространство. Обработка дубликата начинается после снятия защиты и аутентифицированного восстановления номера. Совпадения младших битов недостаточно.
В журнале доказательств отдельно хранятся идентификатор и направление соединения, тип пакета и пространство, защищённые байты и полнота записи, контекст ключа и результат deprotection, длина и усечённое значение, максимальный обработанный номер, ожидание и окно, полный восстановленный номер и аутентификация, а также значения ACK и их пространство. Потеря, повторная передача, переупорядочивание, replay, injection, атака, влияние пути и доставка приложению требуют самостоятельных подтверждений. Пропуск может возникнуть из-за точки сбора, выборки, усечения, состояния расшифрования или реального трафика.
Эта граница отличается от spin-bit sampling в TR-038, key phase в TR-042, семантики ACK для приложения в TR-045, coalescing в TR-049 и PTO probing в TR-051.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров

