Кратко
- RFC 793 зарезервировал шесть битов заголовка TCP и потребовал передавать их нулевыми.
- RFC 3168 назначил две из этих позиций флагам ECE и CWR для явного уведомления о перегрузке.
- RFC 9293 оставляет четыре зарезервированных бита: не реализованные биты передаются нулевыми и игнорируются при получении.
Пустое место, закреплённое правилом
RFC 793 1981 года определил шесть зарезервированных битов сразу после поля Data Offset. Это поле указывает начало полезной нагрузки. Зарезервированные биты предназначались для будущего использования и должны были иметь нулевое значение. Они не были скрытой опцией и не служили для удлинения заголовка.
Так сохранялась неизменной базовая форма сегмента. Отправитель не мог самовольно придать позиции локальный смысл, а получатель продолжал видеть устойчивую структуру. Пространство оставалось неактивным, но было доступно для последующего стандарта.
Две позиции получают язык перегрузки
В 2001 году RFC 3168 назначил бит 9 флагу ECE, а бит 8 — CWR. Биты 4–7 остались зарезервированными. Новая возможность использовала прежний заголовок и не сдвигала границу его базовой части.
Цепочка сигналов выглядит так. Перегруженный маршрутизатор может пометить IP-пакет кодом Congestion Experienced, не полагаясь только на потерю пакетов. Получатель сообщает об отметке отправителю, устанавливая ECE в подтверждении TCP. Отправитель реагирует на уведомление о перегрузке, уменьшает окно перегрузки и затем устанавливает CWR, сообщая о сделанном уменьшении.
RFC 3168 также требует согласовать поддержку ECN при установлении TCP-соединения. Наличие самой битовой позиции ещё не означает, что оба конца поддерживают её смысл.
Современное правило действует в обе стороны
RFC 9293 описывает четырёхбитное зарезервированное поле. Если реализация не поддерживает будущую функцию, при формировании сегментов соответствующие биты должны быть нулевыми, а при получении их следует игнорировать. Нулевое значение при отправке предотвращает случайные или частные сигналы; игнорирование при приёме не даёт неизвестному биту само по себе стать причиной отказа.
Распределение позиций регулирует реестр TCP Header Flags IANA. RFC 9293 перечисляет CWR и ECE вместе с шестью исходными флагами, а смещения 4–7 оставляет для будущего использования. Зарезервированная позиция не даёт права на произвольную трактовку: её смысл требует публичной спецификации и управляемого назначения.
Чего эта история не доказывает
Исходное резервирование не доказывает, что разработчики 1981 года конкретно предвидели ECN. Подтверждается более узкий вывод: они сохранили позиции для будущих управляющих функций, а позднейший стандарт использовал две из них для определённого механизма обратной связи о перегрузке.
Резервирование также не гарантирует внедрение. Реализации могут запаздывать, промежуточные устройства — исходить из других предположений, а новая функция — требовать согласования, изменений автомата состояний и эксплуатационных данных. Указанные RFC не измеряют эти препятствия.
Источники
- RFC 793, “Transmission Control Protocol” (сентябрь 1981 года)
sources/rfc793.txt - RFC 3168, “The Addition of Explicit Congestion Notification (ECN) to IP” (сентябрь 2001 года)
sources/rfc3168.txt - RFC 9293, “Transmission Control Protocol (TCP)” (август 2022 года)
sources/rfc9293.txt
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
