
우주 통신 프로토콜 스택(CCSDS) 재구현: 원리부터 구현까지
요약
위성 통신은 일반적인 TCP/IP와 유사한 계층적 구조를 가지지만, CCSDS (Consultative Committee for Space Data Systems) 표준을 따릅니다. 이 스택은 1982년부터 NASA 등이 유지해 온 우주 전용 프로토콜 세트로, 수십 년 된 임베디드 시스템에서도 구동될 만큼 단순하고 견고하게 설계되었습니다. 본 글에서는 CCSDS의 핵심 구성 요소인 Space Packet, TM/TC Frame, SDLS 보안 계층, COP-1 신뢰성 제어 등 각 레이어의 역할을 상세히 설명하며, 이를 OCaml을로
핵심 포인트
- CCSDS는 NASA와 ESA 등이 유지하는 우주 데이터 시스템 표준으로, 거의 모든 위성이 이 프로토콜의 일부를 사용합니다.
- 데이터 전송은 Space Packet (애플리케이션 계층) → TM/TC Frame (링크 계층) → SDLS (보안 계층) 순서로 캡슐화됩니다.
- TM 프레임(Telemetry, 위성→지상)과 TC 프레임(Telecommand, 지상→위성)이 핵심이며, 각각 CCSDS 132.0-B-3 및 CCSDS 232.0-B-4 표준을 따릅니다.
- SDLS (CCSDS 355.0-B-2)는 MAC 인증과 AES-GCM 암호화를 제공하여, 위성 명령의 무단 전송을 방지하는 필수 보안 계층입니다.
위성 링크를 통해 데이터를 주고받는 과정은 일반적인 TCP/IP와 유사한 계층적 구조(Transport → Network → Application)를 가지지만, 사용되는 프로토콜 스택은 CCSDS (Consultative Committee for Space Data Systems) 표준을 따릅니다. 이 표준은 1982년부터 NASA, ESA 등 주요 우주 기관들이 유지해 왔으며, 지난 30년간 발사된 거의 모든 위성이 특정 형태의 CCSDS를 사용하고 있습니다.
CCSDS 프로토콜 스택은 수십 년 된 임베디드 시스템(키로바이트 RAM, 고정 소수점 프로세서)에서도 구동될 만큼 의도적으로 단순하게 설계되었습니다. 이는 복잡한 옵션 확장이나 협상 과정 없이 작은 헤더와 고정 필드를 사용하기 때문입니다.
핵심 프로토콜 레이어 구성:
-
Space Packet (애플리케이션 계층): 데이터의 기본 단위입니다. CCSDS 133.0-B-2 표준을 따르며, 6바이트 헤더와 최대 65,536바이트의 데이터를 포함합니다. 버전 번호, 애플리케이션 식별자(APID), 시퀀스 카운터 등을 담고 있으며, 별도의 체크섬이나 암호화 로직이 없습니다.
-
Transfer Frame (링크 계층): Space Packet을 무선 링크를 통해 전송할 수 있도록 캡슐화합니다. 주요 유형은 다음과 같습니다:
- TM Frame (Telemetry): 위성에서 지상으로 데이터를 보낼 때 사용됩니다 (CCSDS 132.0-B-3).
- TC Frame (Telecommand): 지상에서 위성으로 명령을 내릴 때 사용됩니다 (CCSDS 232.0-B-4).
최근에는 유연성을 높인 AOS (CCSDS 732.0-B-4)와 USLP (CCSDS 732.1-B-2) 같은 프레임 유형도 사용됩니다.
-
Security Layer (보안 계층): 데이터의 무결성과 기밀성을 보장합니다. SDLS (CCSDS 355.0-B-2)는 프레임 헤더와 데이터 사이에 위치하며, MAC(Message Authentication Code)를 통한 인증과 AES-GCM 암호화를 제공하여 위성 명령이 승인된 출처에서 오는지 확인하고 데이터를 보호합니다.
-
Reliability Layer (신뢰성 제어): 지상국과 위성 간의 통신 신뢰성을 확보합니다. COP-1(CCSDS 232.1-B-2)은 특히 명령 전송에 사용되며, 지상이 명령을 보내면 위성이 수신 확인(Acknowledgement)을 다음 텔레메트리 프레임에 포함하는 CLCW (Command Link Control Word)를 통해 응답합니다. 만약 승인이 누락되면 지상국에서 재전송을 시도합니다.
데이터 흐름:
일반적인 다운링크(Downlink, 위성→지상)는 다음과 같은 순서로 이루어집니다: 애플리케이션 데이터 $
ightarrow$ Space Packet 캡슐화 $
ightarrow$ TM Frame 캡슐화 $
ightarrow$ SDLS 암호화/인증 $
ightarrow$ 무선 전송. 지상국은 이 과정을 역순으로 거쳐 데이터를 복원합니다.
이러한 CCSDS 스택의 핵심 가치는 각 계층이 독립적이라는 점입니다. Space Packet은 자신이 TM 프레임에 실려 오는지, USLP 프레임에 실려 오는지를 알 필요가 없으며, 보안 레이어 역시 패킷 내용 자체를 신경 쓰지 않습니다. 이러한 모듈성은 TCP/IP와 같이 프로토콜을 교체하거나 업그레이드할 때 유연성을 제공합니다.
본 글에서는 이 복잡한 CCSDS 스택의 각 계층별 파서를 OCaml 언어를 사용하여 재구현했으며, 이를 브라우저에서 직접 테스트할 수 있는 데모를 구현했습니다. 이는 학술적 이해뿐만 아니라 실제 시스템 개발에 필요한 실질적인 지식을 제공합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Lobste.rs ML의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기