起因是凌晨的时候收到HTB的一封邮件,说是上新了卫星利用与安全相关的专题,所以今天有空的时候看了下,发现还是需要一定的前置知识的,CCSDS协议是其中的一部分,这里简单的讲讲

什么是CCSDS
CCSDS 是 国际空间数据系统咨询委员会(Consultative Committee for Space Data Systems)的英文简称,它是一个成立于1982年的国际性空间组织,由各国空间机构联合组建,主要任务是为航天器与地面站之间的通信制定统一的国际标准
为什么需要CCSDS协议
相比较于地面上的事情,也就是几公里到几百公里的传播范围,最高也就是跨洲通信
而太空通信在距离这方面的跨度就大的多得多了,基本上是几万公里到几十万甚至上以天文单位来计量的距离,著名的工程项目就像NASA的好奇号火星探测器
那么远距离的通信,往往意味着协议的可靠性会成为一个必须重视的点,因为太空中往往充满了各种嘈杂的宇宙噪音,如果太空飞行器无法正确分辨这是地面的合法指令还是来自太空的咒语,那么就^-^^-^了
所以说CCSDS的诞生就很合理了,就是为了确保航天器和地面之前的通行之间不被垃圾噪音所干扰
CCSDS协议的体系结构
学过计网的兄弟应该很了解TCP/IP的五层结构,而CCSDS的结构不能说毫不相干,只能说是一模一样
┌─────────────────────────────────────────┐
│ 应用层 │ ← 文件传输、科学数据等
├─────────────────────────────────────────┤
│ 传输层 │ ← 可靠传输保障
├─────────────────────────────────────────┤
│ 网络层 │ ← IP数据报封装
├─────────────────────────────────────────┤
│ 数据链路层 │ ← 帧、包的组织
├─────────────────────────────────────────┤
│ 物理层 │ ← 无线电信号收发
└─────────────────────────────────────────┘
每一层中都会包含多个协议,下面会讲一些较为核心的协议
核心协议介绍
1. 空间包协议(Space Packet Protocol)
空间包作为CCSDS最基础的数据单元,你可以把空间包^-^想象成一个数据信封
结构是这样的
┌──────────────┬───────────────┬─────────────────┐
│ 主头部(6字节) │ 可选副头部(变长) │ 用户数据(变长) │
└──────────────┴───────────────┴─────────────────┘
组成结构
主头部(Primary Header):6字节(也就是6x8=48位),强制存在,包含
- 版本号(3位):固定为
000
- 包类型(1位):
0=遥测数据,1=指令数据
- 副头部标志(1位):是否有可选副头部
- APID(11位):应用程序标识符,用于区分不同的数据源/目的地
- 分段标志(2位):表示数据是否分段
- 包序列计数(14位):同一APID下包的顺序号
- 数据长度(16位):包数据部分的长度-1
可选副头部(Secondary Header):通常包含时间戳等信息
用户数据区(User Data Field):实际要传输的应用数据
其中最大的包数据长度是65536字节,
这很好理解,因为数据长度为16位,且为包数据部分的长度-1,从0开始算,16位能存储的包数据长度也就是2^16=65536-1=65535,但是总的长度依然还是65535字节(因为是从0开始算嘛)
2. TC传送帧(Telecommand Transfer Frame)
TC传送帧是从地面发给航天器的指令帧,里面装的可以是空间包
TC传送帧的结构如下
┌──────────────────┬──────────────────────┬─────────────┐
│ 主头部(5字节) │ 数据域(最多1019字节) │ 可选纠错码 │
└──────────────────┴──────────────────────┴─────────────┘
主头部包含:
- 版本号(2位):固定为00
- 旁路标志(1位):固定为0
- 控制命令标志(1位):固定为0
- 保留位(2位):固定为00
- 航天器ID(10位):标识目标航天器
- 虚拟通道ID(6位):逻辑通道标识
- 帧长度(10位):帧总长度减1
- 帧序列号(8位):用于丢包重传检测
注意一下,这里的帧长度也是要由帧总长度-1的
3. TM传送帧(Telemetry Transfer Frame)
TM传送帧是从航天器发回地面的遥测数据帧,与TC方向相反
4. AOS空间链路协议(Advanced Orbiting Systems)
AOS是CCSDS的高级在轨系统协议,支持更复杂的多路复用机制,可以将多个数据源的数据合并到一个物理信道中传输
除了以上四种以外,还有很多其他更定制化的协议(如下),后续的其他文章我们会进行进一步讨论
协议 |
全称 |
用途 |
|---|
CFDP |
CCSDS文件传输协议 |
在深空环境中可靠传输大文件 |
SCPS |
空间通信协议规范 |
让TCP/IP协议适应太空环境 |
Proximity-1 |
近距空间链路协议 |
航天器之间的近距离通信 |
IP over CCSDS |
IP over CCSDS |
在CCSDS链路上传输IP数据报 |