BLUEPRINT
제10장 버전 관리
10.1 버전 번호 형식
DTP는 시맨틱 버전 번호를 사용하며, 주 버전 번호와 부 버전 번호를 포함한다:
{ major: number, minor: number }
각 Logical_Frame의 프레임 헤더에는 프로토콜 버전 번호 필드가 포함되어, 해당 프레임이 사용하는 프로토콜 버전을 식별한다.
10.2 버전 호환성 규칙
DTP_Engine은 현재 버전과 이전 주요 버전의 Logical_Frame 형식을 동시에 처리할 수 있다.
| 수신 프레임 버전 | 처리 방식 |
|---|---|
| 현재 버전 | 정상 처리 |
| 이전 주요 버전 | 호환 처리(하위 호환) |
| 더 높은 버전 | 버전 비호환 통지 전송 |
| 더 낮은 버전(호환 범위 초과) | 버전 비호환 통지 전송 |
10.3 버전 비호환 처리
수신측이 프레임 헤더의 프로토콜 버전 번호가 자신이 지원하는 버전보다 높은 Logical_Frame을 수신한 경우:
- 해당 프레임을 처리하지 않음
- 송신측에 버전 비호환 통지(VERSION_INCOMPATIBLE, 7001) 전송
- 통지에 자신이 지원하는 최고 버전 번호를 포함
송신측이 버전 비호환 통지를 수신한 후, 다음을 수행할 수 있다:
- 수신측이 지원하는 버전으로 다운그레이드하여 재전송
- 또는 상위 애플리케이션에 버전 불일치를 알림
10.4 프로토콜 진화 전략
DTP의 버전 관리는 프로토콜이 진화하는 과정에서 하위 호환성을 유지하도록 보장한다:
- 부 버전 번호 업그레이드: 새 필드 또는 기능 추가, 기존 프레임 형식의 파싱을 깨뜨리지 않음
- 주 버전 번호 업그레이드: 프레임 형식이 변경될 수 있지만, 이전 주요 버전에 대한 호환성을 유지
이는 단말 장치와 Fay가 동시에 업그레이드할 필요가 없음을 의미한다 — 버전 차이가 하나의 주요 버전 이내라면, 양측은 정상적으로 통신할 수 있다.
