-
Notifications
You must be signed in to change notification settings - Fork 0
Protocol Specification
TamTunnel edited this page Jan 4, 2026
·
1 revision
Version 1.0.0
The SpaceComms Protocol enables peer-to-peer exchange of space traffic coordination data. This specification defines message formats, routing behavior, and session management for interoperable implementations.
- Interoperability: Clear message schemas enable independent implementations
- Extensibility: Versioned envelopes allow backward-compatible evolution
- Reliability: Acknowledged delivery with retry semantics
- Security: Authentication and encryption at transport and message levels
SpaceComms uses HTTP/2 over TLS 1.3:
-
Endpoint:
/spacecomms/v1/messages - Method: POST for all protocol messages
-
Content-Type:
application/json - Connection: Long-lived with multiplexed streams
All messages use a versioned envelope:
{
"protocol_version": "1.0.0",
"message_id": "msg-uuid-here",
"timestamp": "2024-01-15T14:30:00.000Z",
"source_node_id": "node-alpha-01",
"message_type": "CDM_ANNOUNCE",
"hop_count": 1,
"ttl": 10,
"payload": { ... }
}Capability negotiation when establishing peer session.
{
"protocol_version": "1.0.0",
"message_id": "msg-hello-001",
"timestamp": "2024-01-15T14:30:00.000Z",
"source_node_id": "node-alpha-01",
"message_type": "HELLO",
"hop_count": 0,
"ttl": 1,
"payload": {
"node_name": "Alpha Operations",
"capabilities": ["CDM", "OBJECT_STATE", "MANEUVER"],
"supported_versions": ["1.0.0"],
"auth_token": "bearer-token-here"
}
}Announce a Conjunction Data Message.
{
"protocol_version": "1.0.0",
"message_id": "msg-cdm-001",
"timestamp": "2024-01-15T14:30:00.000Z",
"source_node_id": "node-stm-provider",
"message_type": "CDM_ANNOUNCE",
"hop_count": 1,
"ttl": 10,
"payload": {
"cdm": {
"cdm_id": "CDM-2024-00001234",
"creation_date": "2024-01-15T14:00:00.000Z",
"originator": "STM-PROVIDER-A",
"message_for": "OPERATOR-ALPHA",
"tca": "2024-01-17T08:30:00.000Z",
"miss_distance_m": 150.5,
"collision_probability": 1.2e-4,
"object1": { ... },
"object2": { ... }
}
}
}Nodes establish peer sessions via HELLO exchange:
- Initiator sends HELLO
- Responder validates and sends HELLO
- Both nodes enable message exchange
- HEARTBEAT maintains session health
- Session terminates on timeout or explicit close
Messages propagate through the mesh:
- Node A originates CDM_ANNOUNCE (hop_count=0, ttl=10)
- Node A sends to peers B and C
- Node B receives, increments hop_count to 1
- Node B checks policies, decides to forward
- Node B sends to peers D and E (but not A)
- Process continues until ttl exhausted or no more peers
Loop Prevention:
-
message_iddeduplication -
hop_counttracking -
ttlenforcement
To interoperate at the "basic" level, an independent implementation MUST:
- Support the current protocol version and
HELLOnegotiation. - Implement core message types (
HELLO,OBJECT_STATE_ANNOUNCE,CDM_ANNOUNCE,_WITHDRAW,HEARTBEAT). - Respect the JSON schema for CDMs.
- Ignore unknown optional fields (forward compatibility).
- Use the standard envelope format for all messages.
| Level | Role | Capabilities |
|---|---|---|
| Level 0 | Observer | Read-only; subscribes to CDMs/Objects, maintains state, does not originate data. |
| Level 1 | Producer/Consumer | Originate CDMs/Object States, receive and forward messages, basic routing. |
| Level 2 | Full Node | Full routing logic, policy enforcement, mTLS security, history/query support. |