Кратко

  • Connection ID — выбранная принимающей стороной метка маршрутизации и сопоставления. Набор значений позволяет пакету найти прежнее состояние после изменения IP-адреса или UDP-порта.
  • Известный идентификатор не подтверждает новый путь. Непредсказуемые PATH_CHALLENGE и PATH_RESPONSE проверяют адрес, а до проверки объём ответа ограничивает защита от усиления.
  • Соединение сохраняет потоки, но не все допущения маршрута: управление перегрузкой и RTT обычно запускаются заново, свежие ID сокращают межсетевое связывание, а Stateless Reset предназначен для утраты состояния.

Адрес закончился раньше разговора

Сетевое четырёхзначное сочетание меняется при переходе между интерфейсами или новом NAT-сопоставлении. Между тем у обоих концов остаются ключи, смещения потоков, подтверждения и данные, относящиеся к прежней работе.

Если считать адрес единственной оперативной идентичностью, каждое движение уничтожает этот контекст. RFC 8999 определяет независимое от версии свойство QUIC: непрозрачный Connection ID направляет пакет к правильному экземпляру конечной точки и нужному соединению, несмотря на изменения UDP, IP и нижних слоёв.

RFC 9000 даёт соединению не одно вечное имя, а набор. Каждый конец самостоятельно выбирает значения, которые другой помещает в отправляемый к нему трафик. Получатель выдаёт ручку, ведущую к его собственному состоянию.

Сменяемый запас вместо паспорта

При установлении длинные заголовки несут Source и Destination Connection ID. Позже NEW_CONNECTION_ID выдаёт новые значения, RETIRE_CONNECTION_ID исключает прежние, номера последовательности упорядочивают операции, а active_connection_id_limit ограничивает активный набор.

Множественность уменьшает слежение. Значения одного соединения не должны содержать сведения, позволяющие внешнему несотрудничающему наблюдателю связать их; повторная выдача того же значения запрещена.

Нулевая длина возможна, когда локальному маршрутизатору хватает адресов. Однако совместное использование IP и порта становится хрупким при миграции, повторном назначении NAT и повторном использовании клиентского порта. Выбравший ноль при рукопожатии не сможет затем выдать обычный запас новых ID. Поле исчезло, обязанность различать состояния осталась.

Начальные значения повторяются в транспортных параметрах и проверяются криптографическим рукопожатием. RFC 9001 задаёт интеграцию TLS 1.3 и защиту пакетов. Инъекция не может навязать ID успешному соединению, но отдельное поле не становится паролем, сертификатом или личностью человека.

Сохранение соединения не утверждает маршрут

Активная миграция ждёт подтверждения рукопожатия. Новый адрес может появиться и без решения клиента — NAT заменяет внешний порт или IP. Ранее не проверенный адрес требует проверки пути.

PATH_CHALLENGE несёт непредсказуемые данные, которые партнёр возвращает в PATH_RESPONSE по пути получения. Это подтверждает только, что вызов к данной паре IP-порт достиг сущности, способной сформировать связанный ответ. Юридическое владение адресом, честность, оптимальность и будущая достижимость не следуют.

Каждое направление строит собственное свидетельство; обычный ACK недостаточно непредсказуем. Механизм также не является полной техникой обхода NAT.

До проверки лимит против усиления ограничивает отправку на новый источник. Иначе поддельный адрес превратит сервер в усилитель против жертвы. Если новый путь не проходит проверку, а прежний остаётся действующим, соединение возвращается к нему, а не завершается целиком.

Потоки переезжают, измерения остаются

Пропускная способность, задержка, потери и ECN могут измениться. После подтверждения адреса RFC 9000 обычно сбрасывает контроллер перегрузки и оценку RTT к исходным значениям. Пакеты старого пути не измеряют новый.

При смене только порта, часто вызванной NAT rebinding, состояние можно осторожно сохранить. Если реальный маршрут тоже иной, старая оценка заставит передавать слишком агрессивно. Шифрование принадлежит соединению; ёмкость — пути.

Не превращать движение в маяк

Один ID в офисном Wi-Fi и мобильной сети позволяет связать две трассы. Поэтому его нельзя повторно использовать при отправке с разных локальных адресов или к разным назначениям.

Новые значения убирают прямой признак, защита заголовка скрывает номера пакетов. Время, размер и сотрудничающая инфраструктура всё ещё могут коррелировать активность. Требование снижает связываемость, а не гарантирует анонимность.

Если свободные ID исчерпаны, новый путь нельзя безопасно исследовать или обслужить. Запас для приватности и миграции создаётся заранее.

Последний ответ сервера без памяти

После сбоя сервер может получать пакеты соединения, состояние которого потерял. Для обычного CONNECTION_CLOSE памяти недостаточно. Stateless Reset остаётся крайней мерой.

С ID связывается трудно угадываемый 16-байтовый маркер сброса, переданный в защищённом контексте. Датаграмма с правильным маркером в конце заставляет партнёра немедленно прекратить соединение; уход ID делает маркер недействительным.

Сам пакет сброса криптографически не защищён и маскируется под короткий пакет. Утечка маркера даёт третьей стороне возможность завершения, поэтому повторное использование опасно. Это не обычный сигнал активной ошибки, а ограниченный способ для забывшего конца остановить состояние, которое ещё помнит партнёр.

Источники и границы

Закрытый набор — RFC 8999, RFC 9000 и RFC 9001. Он не сообщает долю внедрения, детали продуктов, частоту миграции или выигрыш скорости. ID не является глобальной личностью, проверка пути — правом собственности на адрес.