Кратко

  • RFC 9952 присваивает CoAP поверх DTLS два байта 0x63 0x6f, то есть co, и разрешает указывать значение в SVCB. Одновременно документ подчёркивает: RFC 7252 не определял ALPN в DTLS-рукопожатии, а RFC 9952 не вводит правила, аналогичные RFC 8323.
  • Реестр доказывает общую терминологию, DNS — заявление об обнаружении. Переговоры доказывают полный список ClientHello и выбор ServerHello либо ошибка. Идентичность узла, право на ресурс CoAP и результат приложения остаются следующими слоями.

Для CoAP поверх TLS уже существует coap. Вариант для DTLS не переиспользует то же имя и короче на два байта. В ограниченной сети это может помочь не пересечь порог фрагментации. Однако экономия байтов и факт выбора протокола — разные утверждения.

Отрицательная норма важнее строки таблицы

Запись IANA отвечает, какие байты использовать профилю или реализации, если они обозначают CoAP/DTLS через ALPN. Она не отвечает, загружена ли поддержка, включена ли она для listener, послал ли клиент расширение и выбрал ли сервер значение.

RFC 9952 прямо отказывается расширять власть записи. RFC 7252 не задавал ALPN; новый RFC не меняет это и не переносит state machine RFC 8323. Поэтому отчёт «поддерживает RFC 9952» должен уточнять: знает имя, способен предложить, обязан предложить по локальному профилю или действительно выбрал в конкретном соединении.

Если профиль делает co обязательным, доказательство соединяет текст требования, конфигурацию обоих концов и wire-результат. Если профиль только разрешает значение, отсутствие ALPN само по себе не становится нарушением.

DNS и процесс могут жить в разных поколениях

SVCB с alpn=co сообщает клиенту о кандидате. Перед соединением остаются полномочия издателя, проверка, TTL, возраст cache, alias-обработка и локальный выбор. DNSSEC может подтвердить DNS-ответ, но не загруженную конфигурацию серверного процесса.

Раскатка DNS может опередить узлы, а cache — отстать. Клиент может не использовать SVCB. Одна зелёная метрика «ALPN deployment» скрывает эти нормальные, но важные расхождения.

RFC 7301 описывает отдельную квитанцию: упорядоченный список в ClientHello, один выбранный из него протокол в ServerHello или определённый отказ. Нужно хранить ID соединения, endpoints, версию DTLS, список, выбор или alert, время и место наблюдения. Повтор и fallback получают новые идентичности.

Короткое имя не измеряет сеть

Полный Hello включает suites, key shares, подписи, cookies, credentials и другие extensions. Фрагменты DTLS и 6LoWPAN возникают на разных слоях; результат меняют MTU, потери и повторные передачи.

Чтобы заявить эффект, сравнивают размеры, число link fragments, retransmissions, время и ошибки при названной конфигурации. RFC объясняет мотив короткого кода, но не выдаёт результат за конкретную сеть.

После выбора остаются полномочия

ServerHello с co не подтверждает, что сертификат или Raw Public Key принадлежит ожидаемой службе. Нужны reference identity, trust anchor и срок. Затем CoAP должен разобрать message, связать token и response, применить method и resource policy. Приложение отдельно разрешает эффект.

Поэтому цепь выглядит так: registry; DNS; кандидат; offer; selection; identity; CoAP exchange; resource authorization; application effect; measurement. Обратная ошибка тоже опасна: отсутствие ALPN не доказывает отсутствие CoAP/DTLS, потому что RFC 9952 не создал универсальной обязанности.

Минимальная начальная спецификация Lu Heng оставляет общей только лексику, нужную для совместимости. Reality Layers не дают таблице стать packet trace, а trace — бизнес-разрешением. Running-Code Primacy требует фактический binary, configuration и handshake.

RFC 9952 аккуратно зарегистрировал имя и не выдал его за действие. Организация должна быть столь же точной в отчётах.

Исключения входят в реальный маршрут

Миграция не переводит весь парк из одного однородного состояния в другое мгновенно. Часть датчиков остаётся на старой прошивке, шлюзы видят разные представления DNS, записи SVCB задерживаются в cache, а клиент со статическим адресом может вообще не выполнять discovery. От этих условий зависит, мог ли процесс увидеть рекламу, загрузить поддержку и отправить offer. Одна цифра процента внедрения скрывает причины расхождений.

В реестре исключений нужны владелец, охваченная популяция, причина, версия, срок и поведение fallback. Истёкшая дата не закрывает исключение: требуется наблюдение, что последний endpoint ушёл со старого пути. Пока альтернативный маршрут существует, его соединения сохраняют собственные идентификаторы, а эффекты CoAP связываются с конкретной попыткой. Успех второго соединения не переписывает результат первого.

Доказательство release соединяет как минимум четыре артефакта: binary или firmware с поддержкой, configuration с включённой функцией, DNS-generation, увиденную клиентом, и trace с offer и selection. Эти части нельзя подменять друг другом. Новый пакет может читать старую конфигурацию; новая DNS-запись может вести к старому listener; хороший canary ничего не говорит об иной популяции.

Так видны и границы команд. DNS-команда подтверждает публикацию, но не ClientHello. Платформа подтверждает feature flag, но не удалённый selection. Security подтверждает identity, но не разрешение ресурса. Приложение видит эффект, но без connection ID может не знать, какая попытка его вызвала. Итоговый отчёт обязан сначала сохранить эти независимые вердикты, а затем связать их в одну цепь.

Источники