Кратко
- Если поздняя стадия RMT обнаруживает необходимость изменить раннее состояние, Presto вводит в начало конвейера псевдосегмент без payload, и обычная логика выполняет коррекцию.
- Это управляющий артефакт транспорта, а не повторная передача пользовательских данных. Его происхождение и мутацию нельзя смешивать с DMA, уведомлением host, результатом socket и квитанцией приложения.
Обратная запись как новое прямое событие
CPU способен повторно обращаться к памяти в одной TCP-процедуре. В RMT packet header vector движется по фиксированным стадиям, а изменяемое состояние локально. Когда настоящий сегмент закрывает разрыв до out-of-order интервала, нужно продвинуть next-seq и вернуть место в avail. Но факт закрытия известен лишь после чтения ooo-head ниже по конвейеру.
Статья Presto возвращает к входу небольшую синтетическую запись. Псевдосегмент не несёт application payload; он кодирует ставший непрерывным диапазон. Стадии воспринимают его как обычный in-order segment, продвигают next-seq, уменьшают avail и очищают OOO-интервал. Исполнение не пошло назад — появился новый прямой факт.
Поэтому запись авторитетна для состояния TCP, но не свидетельствует о новых пользовательских байтах, чтении приложения или зафиксированном результате.
Оптимистическое изменение ещё не приём
Базовое отслеживание окна сначала оптимистически меняет next-seq, затем обновляет avail и выполняет окончательную проверку. Если отправитель вышел за объявленное окно, сегмент отбрасывается, а control plane восстанавливает состояние. Пока идёт ремонт, отрицательное avail блокирует следующие сегменты и объявляется нулевое окно. Payload принимается только после финальной валидации.
Псевдосегмент тоже best-effort. При потере из-за перегрузки OOO-интервал сохраняется, а следующий trigger создаёт повтор. Авторы называют это eventual consistency. Промежуточный in-order traffic может сделать префикс устаревшим; обычный trimming убирает пересечение и предотвращает двойной учёт. Выпуск события не равен завершению.
Между DMA и приложением
Presto может разместить полученный payload в памяти host через DMA, включая данные вне порядка. Отдельный Application Notification сообщает libPresto самый высокий непрерывный offset, доступный для потребления. При закрытии разрыва уведомление может уйти раньше последующего merge псевдосегмента.
DMA доказывает запись в buffer; уведомление — доступность диапазона библиотеке; socket имеет отдельный результат. Фактическое чтение или устойчивый эффект требует квитанции приложения. TCP ACK также остаётся транспортным свидетельством, а не доказательством хранения или бизнес-операции.
Прототип представлен на ACM SIGCOMM 2026, DOI 10.1145/3789240.3829111. Публичный репозиторий и объяснение авторов в APNIC позволяют проверку, но не доказывают массовое production-развёртывание, универсальную совместимость или независимую репликацию.
Аудит должен отдельно связать настоящий segment ID, предположение, validation, correction trigger, provenance и epoch псевдосегмента, state mutation, retransmission/reassembly, DMA, host notification, socket result, application receipt и rollback.
Источники
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров

