데이터 터널 프로토콜(Data Tunnel Protocol, DTP) 사양

버전: 초안(Draft) 목표 버전: 2025-10-25 상태: 초안, 검토 대기 중 프로토콜 계층: 응용 계층

서론

본 사양은 데이터 터널 프로토콜(Data Tunnel Protocol, 약칭 DTP)의 와이어 포맷(wire format), 상태 머신, 협상 메커니즘, 암호화 요구사항, 오류 처리 그리고 버전 관리 규칙을 정의한다. DTP는 iFay 생태계에서 단말 장치와 Fay 사이의 양방향 데이터 수집 및 주입을 위해 사용되는 응용 계층 프로토콜이다.

본 사양은 DTP의 규범적(Normative Specification) 문서이다. 본 사양을 준수하는 모든 구현은 다른 준수 구현과 상호 운용 가능해야 한다.

키워드 규약

본 문서에서 키워드 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장협상 메커니즘약정의 협상, 조정과 종료
제6장데이터 전송데이터 수집과 주입 흐름
제7장보안과 암호화종단 간 암호화 요구사항
제8장신뢰성 보장재개, 확인응답, 세션 관리
제9장오류 처리오류 코드와 오류 알림 메커니즘
제10장버전 관리버전 관리의 작동 메커니즘과 거버넌스 흐름(권위 있는 정책은 제1장 §1.7 참조)

일치성

DTP를 구현한다고 선언하는 주체(이하 "구현")는 다음 일치성 요구사항을 충족해야 한다:

  1. 구현은 본 사양에 정의된 모든 MUST(필수) 규칙을 완전히 지원해야 한다.
  2. 구현은 본 사양에 정의된 모든 SHOULD(권장) 규칙을 지원해야 한다. 지원하지 않는 경우 문서에 편차 사항을 명시해야 한다.
  3. 구현은 MAY(선택) 규칙의 지원 여부를 선택할 수 있다.
  4. 구현은 본 사양과 충돌하는 확장을 도입해서는 안 된다. 모든 확장은 본 사양이 정의한 확장 메커니즘(제4장 사용자 정의 필드, 제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 사양 — 제어 권한 부여 프로토콜(Control Authorization Protocol). DTP는 CAP에 의존하여 신원 검증 및 키 교환을 완료한다

관련 문서

  • DTP 청사진 문서(docs/ko/blueprint/): DTP의 비규범적 소개 자료로, 동기, 설계 원리, 예제를 제공
  • DTP 스키마(schema/draft/schema.ts): DTP의 TypeScript 타입 정의 참조 구현