Кратко
- Направление QUIC-потока является упорядоченной последовательностью байтов; границы STREAM-фреймов не сохраняются как границы сообщений.
- FIN и RESET_STREAM передают неизменяемый Final Size, необходимый для согласования потреблённого лимита управления потоком и его учёта.
- Final Size не доказывает, что приложение прочитало, разобрало, зафиксировало данные или завершило бизнес-операцию.
Панель эксплуатации может правильно видеть транспорт и одновременно ошибаться в выводе о результате. Увидев известный Final Size, она способна пометить запрос как завершённый, хотя значение лишь определяет конец последовательности байтов. Направление может завершиться штатно через STREAM-фрейм с FIN или резко через RESET_STREAM. В обоих случаях появляется граница учёта, но ни один вариант сам по себе не подтверждает работу приложения.
QUIC представляет каждое направление как упорядоченную последовательность байтов. Границы STREAM-фреймов не сохраняются при передаче, повторной передаче и выдаче приложению. Поэтому формирование сообщений относится к протоколу приложения. Граница фрейма не является автоматически границей запроса, записи или транзакции.
Для STREAM-фрейма с FIN Final Size равен смещению фрейма плюс длина данных. RESET_STREAM содержит явное поле Final Size. Значение на единицу больше максимального отправленного смещения байта либо равно нулю, если байты не отправлялись. Это объём лимита управления потоком, потреблённый данным направлением, и величина, включаемая в соответствующий учёт. Контроль потока на уровне соединения суммирует Final Size всех потоков, включая завершённые. Это учёт потреблённого лимита, а не подтверждение успеха.
После определения Final Size изменить её нельзя. Данные на этой границе или за ней, а также последующее объявление другого значения могут привести к FINAL_SIZE_ERROR. Для обнаружения конфликта состояние иногда требуется сохранять и после закрытия. Неизменяемость защищает согласованность учёта, но не превращает его в квитанцию о доставке.
Состояния приёма различны. Знание Final Size не означает получения всех байтов до границы. Получение всех байтов не означает их выдачу приложению. Выдача не означает чтение, корректный разбор, долговременный commit, компенсацию, rollback или завершение бизнеса. RESET_STREAM может прервать выдачу и позволить отбросить непрочитанные байты, но не доказывает полной недоставки: все данные могли уже находиться в буфере, а уведомление о reset могло быть подавлено.
Подтверждение пакета относится к более низкому уровню доказательств. Обработка STREAM-фрейма требует поставить его байты в очередь для приложения, но не доказывает, что приложение их прочитало или использовало. Final Size также ничего сама по себе не говорит об успехе противоположного направления или всего соединения.
В журнале доказательств отдельно фиксируются ID и направление потока, FIN или RESET_STREAM, код ошибки приложения при reset, источник и числовое значение Final Size, максимальное наблюдаемое смещение, непрерывное покрытие байтов, поступление всех байтов к получателю, выдача или чтение приложением, формат сообщений, долговременный commit, компенсация, rollback и бизнес-результат, а также состояние, сохранённое для обнаружения FINAL_SIZE_ERROR.
Нужно разделять и пять соседних измерений. TR-046 описывает разрешение на отправку до использования старших смещений, а не итоговый учёт. TR-052 относится к границам сообщений DATAGRAM, тогда как поток здесь является упорядоченной последовательностью без сохранённых границ STREAM. TR-053 описывает завершение соединения. TR-054 — STOP_SENDING и отмену. TR-045 ограничивает доказательство ACK обработкой пакета. Эти измерения не заменяют друг друга.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров

