Кратко
- Кумулятивный ACK доказывает продвижение в пространстве последовательностей; после повтора он не сообщает, пришёл оригинал или поздняя копия.
- RFC 1122 и RFC 6298 требуют правило Карна: не брать RTT из повторно переданного сегмента. После истечения RTO таймер удваивается.
- Согласованные временные метки могут обозначить подтверждённый экземпляр, но не доказывают путь, причину потери, личность или гражданское время.
Квитанция была верной, а история — двойной
Отправитель посылает сегмент и запускает таймер. Срок заканчивается раньше ACK, поэтому те же номера последовательности уходят снова. Затем приходит подтверждение.
По RFC 793 номер ACK называет следующий ожидаемый байт. Он позволяет сдвинуть окно и освободить сохранённые данные. Но квитанция не говорит, задержалась ли первая копия или она пропала и сработала только вторая.
Отсчёт от первого отправления даёт длинный RTT, от повтора — короткий. Обе несовместимые версии подходят к одному ACK. Доказательство доставки остаётся истинным; приписывание длительности выходит за пределы его знания.
Таймер мог обучаться на собственной ошибке
Маршрут не публикует постоянный срок, поэтому TCP оценивает RTO. Слишком короткий создаёт лишние копии, слишком длинный оставляет исправимую потерю без движения. Оценка учится на отправках и подтверждениях.
Повтор стирает причинную подпись. Если неоднозначный ACK отнести к новой копии, кажущийся коротким RTT способен уменьшить следующий RTO, ускорить очередное срабатывание и создать ещё больше неоднозначных образцов. Постоянная привязка к оригиналу может раздуть часы. Улучшенное усреднение не исправляет запись с выдуманным происхождением.
Карн сделал отказ от измерения обязательным
RFC 1122 требует два разных исправления. Алгоритм Джейкобсона учитывает разброс RTT в RTO; алгоритм Карна выбирает допустимые образцы. Хорошая формула не заменяет надёжный вход.
Правило Карна отказывается лишь от одного вывода: из повторно переданного сегмента нельзя получать RTT. RFC 6298 сохраняет запрет как MUST NOT. ACK всё ещё подтверждает кумулятивный прогресс, но не может засвидетельствовать время неизвестной копии.
Отбросить образец — не значит отбросить пакет, обвинить получателя или объявить маршрут сломанным. Отправитель признаёт отсутствие идентичности, необходимой именно этому вычислению.
Откат сохранял память о неопределённости
RFC 1122 также требует экспоненциального отката. RFC 2988 стандартизировал процедуру, которую сохранил RFC 6298: при истечении повторить самый ранний неподтверждённый сегмент и выполнить RTO <- RTO * 2.
Удвоение не измеряет двукратное замедление пути. Оно не даёт отвечать на молчание всё более частыми попытками. Следующий неоднозначный ACK не должен стирать эту осторожность. Лишь новые данные, подтверждённые без повтора, дают образец, способный снова уменьшить RTO.
Откат — пересматриваемое сдерживание, а не вечное наказание.
Временная метка открыла узкое исключение
RFC 7323 задаёт TSval и отражённый TSecr. Если опция согласована, эхо может связать ACK с помеченной отправкой; RFC 6298 тогда разрешает измерить повторно переданные данные, поскольку нужная неоднозначность снята.
Метка не является свидетельством гражданского времени. Она не аутентифицирует узел, не показывает маршрут, не измеряет сама по себе путь в одну сторону и не объясняет потерю. Это упорядоченная подпись внутри соединения.
Даже она условна: RFC 7323 позволяет обновить средний RTT, когда полученный сегмент продвигает левый край окна отправки. Наличие эха не превращает любой ACK в полезный образец.
Изобилие образцов могло укоротить память
Метки позволяют брать много измерений за один RTT. Однако веса RFC 6298 рассчитывались примерно на одно измерение за круг. Если подавать каждое ACK, прежние свойства пути слишком быстро исчезнут. При изменениях на масштабе нескольких RTT короткая память увеличивает ложные повторы.
RFC 7323 рекомендует сохранять задуманный горизонт истории. Десять коррелированных значений одного окна — не десять независимых эпох. Информация определяется происхождением и частотой, а не только количеством.
Полномочие ACK сравнялось с его знанием
ACK может продвинуть SND.UNA, убрать байты из памяти и разблокировать работу. Он не доказывает, какая физическая копия прошла, где возникла задержка и была ли потеря следствием перегрузки, перестановки или иной причины.
Наследие Карна — правило власти доказательства: сигнал выполняет решение, которое действительно поддерживает, и не больше. TCP доверяет ACK как факту прогресса и не доверяет ему как атрибуции времени. Отправитель сохраняет локальную модель без центральных часов и придуманного объяснения сети.
Источники и пределы
Закрытый набор — RFC 793, RFC 1122, RFC 2988, RFC 6298 и RFC 7323. Они устанавливают семантику и требования, но не текущие настройки каждой системы и не причину конкретного тайм-аута. Неоднозначный образец может случайно совпасть с правдой; Карн утверждает, что отправитель не знает, какое толкование верно.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
