Interplanetary Overlay Network (ION)¶
Interplanetary Overlay Network (ION) is NASA/JPL's implementation of Delay/Disruption-Tolerant Networking (DTN) — a store‑carry‑forward network architecture designed to move data reliably across links that are long‑delay, intermittently connected, and asymmetric, where the end‑to‑end connectivity assumed by TCP/IP simply does not exist. ION implements the DTN architecture of Internet RFC 4838 together with Bundle Protocol version 7 (BPv7, RFC 9171) and version 6 (BPv6, RFC 5050), and surrounds them with a full stack of transport protocols, security, routing, and application services.
ION is engineered for both flight and ground systems: it runs within a fixed memory budget, checkpoints protocol state and in‑transit data to persistent storage so a node survives a reset, and ports across operating systems from real‑time flight executives to Linux servers. It is a flight‑proven, operational implementation — used as the baseline for science‑instrument data handling on the International Space Station and in gateway/relay roles for command, telemetry, and science downlink.
- Videos and presentation materials: DTN / ION courses.
- New to DTN or ION? Start with the ION Guide and the ION Design and API Overview, then run the Quick Start Guide.
Why DTN, and why ION¶
Space and other challenged networks break the assumptions of the terrestrial Internet: light‑time delays of seconds to minutes, links that open and close on a schedule, one‑way or rate‑asymmetric channels, and frequent disruption. DTN answers this with bundles — self‑contained units of application data that each node stores and forwards when a transmission opportunity arises, rather than requiring a continuous end‑to‑end path. ION applies specific engineering principles to make this work in the most constrained environments:
- Bounded, self‑managed memory. ION manages dynamic allocation inside a host‑specified budget via its own memory managers (PSM/SDR), avoiding unbounded heap growth on flight hardware.
- Survivability over raw speed. Protocol state and queued bundles are continuously checkpointed to the SDR (which can be backed by non‑volatile storage), so a node recovers queued data, custody commitments, and protocol state after an unplanned reset instead of losing everything in flight. See the ION Design and API Overview and ION Memory Protection.
- Zero‑copy data path. Bundle payloads move between processing stages as Zero‑Copy Objects (ZCO) in shared memory, minimizing copying on the critical path.
- Modular daemons. Each protocol and service runs as an independent, restartable daemon, so components can start, stop, and recover independently.
- Portability and small footprint. ION builds as a set of libraries suitable for static linking, and runs on Linux, RTEMS (installation guide), Solaris, FreeBSD, and (best‑effort) macOS.
Capabilities at a glance¶
ION is organized as layers: applications and DTN services sit on the Bundle Protocol agent, which routes bundles and hands them to convergence‑ layer adapters that carry them over the underlying links.
Applications · CFDP file transfer · AMS messaging · BSS streaming · DTPC
─────────────────────────────────────────────────────────────────────────────
Bundle Protocol agent (BPv7 / BPv6)
store‑carry‑forward · custody · fragmentation · status reports · CoS
BPSec security · extension blocks · IPN multicast (IMC)
─────────────────────────────────────────────────────────────────────────────
Routing: Contact Graph Routing (CGR) · static routes / overrides
· pluggable external routers
─────────────────────────────────────────────────────────────────────────────
Convergence layers (CLAs): LTP · TCPCLv4 (+TLS) · STCP · TCP · UDP
· SPP · BRS · file
─────────────────────────────────────────────────────────────────────────────
Contact plan & rate control (rfxclock) · link service · SDR / PSM / ZCO
Bundle Protocol (BPv7 and BPv6)¶
The core of ION is a Bundle Protocol agent implementing BPv7 (RFC 9171)
and BPv6 (RFC 5050): store‑carry‑forward relaying, custody transfer,
fragmentation and reassembly, bundle status reports, class‑of‑service and
priority (bulk / standard / expedited with ordinals), time‑to‑live
expiration, and an extensible block architecture. ION uses the ipn
naming scheme with fully‑qualified node numbers (FQNN, RFC 9758; see the
IPN Naming Scheme Transition) as well
as the dtn scheme. Applications send and receive bundles through the
BP Service API; custom processing can be added
through the Extension Block Interface.
Routing¶
ION's default dynamic router is Contact Graph Routing (CGR), which
computes routes over a contact plan — the schedule of future
transmission opportunities (contacts) and one‑way light times (ranges)
between nodes. The contact plan is also what drives transmission‑rate
control, maintained on a timeline by the rfxclock daemon (see
Contact Graph Events and LTP Interaction).
Alongside CGR, ION supports static routes ("exits") and per‑bundle
routing overrides.
Convergence‑layer adapters (transports)¶
Bundles are carried over links by convergence‑layer adapters. ION provides a broad set:
- LTP — the Licklider Transmission Protocol (RFC 5326), ION's workhorse for reliable delivery over long‑delay, high‑error, one‑way space links, with contact‑plan‑driven rate control.
- TCP, STCP, UDP — simpler IP‑based convergence layers.
- BRS — Bundle Relay Service, for reaching nodes behind firewalls/NAT.
- SPP, EPP, and file — the CCSDS Space Packet Protocol / Encapsulation Packet Protocol and a file‑based CLA. See the SPP/EPP/File CLA description and the CLA API for writing your own.
LTP itself can be adapted to arbitrary underlying links through a generic link‑service template (see LTP Generic Link Service Template).
Security¶
ION implements Bundle Protocol Security (BPSec, RFC 9172) with the default security contexts of RFC 9173 — the Block Integrity Block (BIB) for integrity and the Block Confidentiality Block (BCB) for confidentiality — configurable through a policy interface. See BpSec Configuration Examples. ION can also be built against the external BPSec Library (BSL) from NASA‑AMMOS for an alternative security‑block implementation (BSL Build & Install Guide).
Reliable status signaling and custody¶
The Compressed Bundle Status Reporting and Custody Transfer (CBR/CT) feature implements the CCSDS "Orange Book" conventions for efficient, compact status signaling and reliable hop‑by‑hop custody transfer — useful where full BPv7 status reports would be too costly. See the CBR/CT Tutorial.
DTN application services¶
On top of the Bundle Protocol, ION ships complete application services:
- CFDP — a DTN‑based implementation of the CCSDS File Delivery Protocol for reliable file transfer across DTN paths (CFDP Software Architecture).
- AMS — the Asynchronous Message Service, a publish/subscribe and request/reply messaging system for distributed applications (AMS Programmer's Guide).
- BSS — the Bundle Streaming Service, for real‑time and playback streaming of continuous data (e.g. video) over DTN.
- DTPC — Delay‑Tolerant Payload Conditioning, providing application‑level end‑to‑end services (aggregation, ordering, retransmission) above BP.
- IMC — IPN Multicast, for one‑to‑many bundle delivery.
To build your own DTN applications, see Writing Applications for ION and the ION Application Service Interface.
Application domains¶
- Deep‑space and planetary missions — command/control of and data return from robotic explorers across interplanetary distances.
- Satellite constellations and spacecraft fleets — coordinated, resource‑efficient communication among many spacecraft.
- Space‑station and platform data handling — reliable transfer between ground and onboard science payloads and instruments.
- The emerging Interplanetary Internet — an internetwork that extends beyond Earth across multiple bodies and relays.
- Terrestrial challenged networks — tactical, mobile, sensor, and disaster‑response networks with intermittent connectivity.
See Use Cases for worked scenarios.
Getting started¶
- Get the source code.
- Release archive (no git required): on the ION‑DTN releases page, pick a release, expand "Assets", and download the ZIP or tar.gz.
- Clone the repository:
- Build, install, and run a two‑node example — follow the Quick Start Guide.
- Learn the configuration files — the Basic Configuration File Tutorial and a set of ready‑to‑use configuration templates.
- Configuration tooling — the Configuration Tools Overview and Configure Multiple Network Interfaces.
A pre‑built DTN Development/Deployment Kit — an Ubuntu virtual‑machine image preconfigured with ION and demonstration network scenarios — is also available (currently being updated for BPv7).
Documentation map¶
Learn and configure
- ION Guide — the comprehensive manual.
- ION Design and API Overview — architecture and the full API set.
- ION Tutorials · Quick Start Guide · Basic Configuration File Tutorial · Config File Templates.
Protocols and features
- Bundle Forwarding Architecture — routing internals.
- Contact Graph Events and LTP Interaction — the contact plan and rate control.
- CBR/CT Tutorial — compressed status reporting and custody transfer.
- BpSec Configuration Examples · BSL Build & Install Guide — security.
- CFDP Software Architecture · AMS Programmer's Guide — file transfer and messaging services.
- CLA API · SPP/EPP/File CLA · LTP Generic Link Service Template — convergence layers.
Build applications and extend ION
- Writing Applications for ION · ION Application Service Interface · BP Service API.
- Public Administration API Guide — configure ION, LTP, and BP from C.
- ICI API · Extension Block Interface · Development guide.
Operate
- ION Utilities · ION Launcher · ionrun.
- ION Monitoring Guide · ION Watch Characters.
- ION Shutdown Guide · ION Memory Protection · SOP for ION.
- ION Deployment Guide · Known Issues.
Performance¶
- BP/LTP throughput study — performance of BP/LTP across CPU/OS architectures is covered in the ION Deployment Guide.
- ION TCPCL throughput assessment — an Ohio University study of ION over the TCP convergence layer is available online and as a PDF.
Papers, license, and community¶
- Publications: see the List of Papers for key DTN and ION references.
- License: ION is released under the MIT License; see the LICENSE.
- Contributing: see the development guide for conventions when submitting changes.