SPECIFICATION
データトンネルプロトコル(Data Tunnel Protocol、DTP)仕様
バージョン:ドラフト(Draft) 目標バージョン:2025-10-25 ステータス:ドラフト、レビュー待ち プロトコル層:アプリケーション層
はじめに
本仕様は、データトンネルプロトコル(Data Tunnel Protocol、以下 DTP)のワイヤフォーマット(wire format)、ステートマシン、ネゴシエーション機構、暗号化要件、エラー処理およびバージョン管理規則を定義する。DTP は、iFay エコシステムにおいて端末デバイスと Fay の間で双方向のデータ収集および注入を行うためのアプリケーション層プロトコルである。
本仕様は DTP の**規範的(Normative)**ドキュメントである。本仕様に準拠した実装は、他の準拠実装と相互運用できなければならない。
キーワードの規定
本ドキュメント中のキーワード しなければならない(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) 規則を完全にサポートしなければならない。
- 実装は、本仕様で定義されるすべての すべきである(SHOULD) 規則をサポートすべきである。サポートしない場合、ドキュメントにおいて逸脱項目を明示しなければならない。
- 実装は、してもよい(MAY) 規則をサポートするか否かを選択してもよい。
- 実装は、本仕様と矛盾する拡張を導入してはならない。いかなる拡張も、本仕様で定義された拡張機構(第 4 章のカスタムフィールド、第 5 章の Agreement パラメータ拡張を参照)を通じて実装しなければならない。
規範的引用
- 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 仕様 — Control Authorization Protocol。DTP は CAP に依存して身元認証と鍵交換を完了する
関連ドキュメント
- DTP ブループリントドキュメント(
docs/ja/blueprint/):DTP の非規範的な紹介資料。動機、設計原理、サンプルを提供する - DTP Schema(
schema/draft/schema.ts):DTP の TypeScript 型定義によるリファレンス実装
