Спецификация Data Tunnel Protocol (DTP)

Версия: Draft Целевая версия: 2025-10-25 Статус: Черновик, ожидает рецензирования Уровень протокола: прикладной уровень

Введение

Настоящая спецификация определяет формат на проводе (wire format), конечный автомат, механизм переговоров, требования к шифрованию, обработку ошибок и правила управления версиями протокола Data Tunnel Protocol (DTP). DTP — это протокол прикладного уровня, используемый в экосистеме iFay для двунаправленного сбора и инжекции данных между терминальными устройствами и Fay.

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

Соглашение о ключевых словах

Ключевые слова MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY и OPTIONAL в настоящем документе следует интерпретировать в соответствии с RFC 2119 и RFC 8174, и они имеют нормативное значение только в том случае, когда выделены жирным шрифтом.

Структура документа

Настоящая спецификация состоит из 10 глав:

ГлаваНазваниеОбласть
Глава 1Обзор и позиционированиеРоль DTP, цели проектирования, связь с другими протоколами, управление версиями и совместимость (§1.7, нормативный)
Глава 2Терминология и определенияНормативные определения терминов
Глава 3Архитектура протоколаУровни протокола, компоненты и конечный автомат
Глава 4Структура логического фреймаБинарный формат заголовка и полезной нагрузки
Глава 5Механизм переговоровЗаключение, изменение и прекращение Agreement
Глава 6Передача данныхРабочие процессы сбора и инжекции данных
Глава 7Безопасность и шифрованиеТребования к сквозному шифрованию
Глава 8НадёжностьВозобновление, подтверждения и управление сессиями
Глава 9Обработка ошибокКоды ошибок и механизм уведомлений
Глава 10Управление версиямиОперационные механизмы и поток управления управления версиями (авторитетная политика в главе 1 §1.7)

Соответствие

Любая сущность, претендующая на реализацию DTP (далее — «реализация»), MUST удовлетворять следующим требованиям соответствия:

  1. Реализация MUST полностью поддерживать все правила MUST, определённые в настоящей спецификации.
  2. Реализация SHOULD поддерживать все правила SHOULD, определённые в настоящей спецификации. При отсутствии поддержки реализация MUST явно отразить это отклонение в своей документации.
  3. Реализация MAY самостоятельно решать, поддерживать ли правила MAY.
  4. Реализация MUST NOT вводить расширения, конфликтующие с настоящей спецификацией. Любое расширение MUST реализовываться через механизмы расширения, определённые в настоящей спецификации (см. кастомные поля в главе 4 и расширения параметров Agreement в главе 5).

Нормативные ссылки

  • RFC 2119 — Key words for use in RFCs to Indicate Requirement Levels
  • RFC 8174 — Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words
  • RFC 4122 — A Universally Unique IDentifier (UUID) URN Namespace (используется для Fragment_ID, Agreement_ID, Session_ID)
  • RFC 3339 — Date and Time on the Internet: Timestamps (формат UTC-меток времени)
  • CAP Specification — Control Authorization Protocol; DTP опирается на CAP в части аутентификации и обмена ключами

Связанные документы

  • DTP Blueprint (docs/ru/blueprint/): ненормативные вводные материалы по DTP, содержащие мотивацию, обоснование проектных решений и примеры
  • DTP Schema (schema/draft/schema.ts): эталонные определения типов TypeScript для DTP