Кратко

  • udpSafeOptions и udpUnsafeOptions отмечают типы, хотя бы раз замеченные среди пакетов представленного Flow; количество появлений в них не сохраняется.
  • Списки ExID удерживают идентичность экспериментов и имеют приоритет над общими битами EXP и UEXP, но не восстанавливают хронологию.
  • Запись ограничена точкой наблюдения, ключами и временем Flow, отбором, Template, состоянием Exporter и приёмом Collector. Наблюдение не равно обработке получателем.

Множество вместо последовательности

RFC 9870 прямо говорит, что UDP-опции встречаются в отдельных пакетах и могут добавляться в любой момент Flow. Для экспорта эти события сворачиваются в два поля. ElementID 525 сопоставляет биты SAFE Kind от 0 до 191, а ElementID 526 — UNSAFE Kind от 192 до 255.

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

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

Экспериментальная запись живёт в другом поле

RFC 9868 зарезервировал EXP в области SAFE и UEXP в области UNSAFE. Чтобы различать параллельные эксперименты, RFC 9870 определяет 16-битный udpExID и два списка наблюдавшихся идентификаторов.

Если присутствует SAFE-список, он уже означает наблюдение EXP, поэтому Exporter не должен одновременно выставлять общий EXP-бит для того же Flow. Аналогично устроен UEXP. Аналитика, читающая только карту битов, способна пропустить положительное свидетельство, перенесённое в более конкретный список.

Список сохраняет имена, но не распределяет их по пакетам и времени. Он не показывает число повторов, порядок или одновременность. Тем более он не служит ответом от конечного узла о распознавании эксперимента.

Ноль относится к определённому окну

RFC 7011 связывает Flow с пакетами, прошедшими через Observation Point за интервал и имеющими заданные общие свойства. Значит, ноль утверждает лишь, что соответствующий Kind не наблюдался в представленном Flow — при известной способности измерителя и полноте записи.

Без точки, ключей, активного и неактивного timeout, отбора или sampling, версии и настроек Exporter нельзя расширять ноль до всей сети. Опция могла пройти по другой линии, вне окна или в невыбранном пакете. Проверяемая формулировка сохраняет границу: «не наблюдалось здесь при этих условиях».

Единица тоже не покидает измерительную поверхность. Она подтверждает хотя бы одно наблюдение, но не приём назначения. Классификация SAFE/UNSAFE, защита IPFIX, доставка Collector, разбор конечным узлом и результат приложения требуют разных записей.

Байты зависят от Template

SAFE-поле использует unsigned256 из RFC 9740 и допускает сокращённое кодирование без старших нулевых октетов. Списки ExID основаны на basicList из RFC 6313. Поэтому значение без Template, длины поля, ElementID и версии семантики со временем теряет однозначность.

Реестры IANA закрепляют элементы 525–529, номера UDP Kind и ExID. Они обеспечивают общий словарь, а не подтверждают поддержку устройством, внедрение, наблюдение трафика или правильность решения.

Источники