Notes
All notes are referenced to ION-beginning pdf file in ION-DTN source.Abbreviations
ION - Interplanetary Overlay NetworkBP - Bundle Protocol”
DTN - Delay-Tolerant Networking
IP - Internet Protocol
CCSDS - Consultative Committee for Space Data Systems
URLs - Universal Record Identifiers
CBHE - Compressed Bundle Header Encoding
EIDs - Endpoint IDs
IMC - Interplanetary Multicast
RTOS - Real-Time Operating System
LTP - Licklider Transmission Protocol
ZCO - Zero-Copy Objects
SDR - Spacecraft Data Recorder
PSM - Personal Space Management
ICI - Interplanetary Communication Infrastructure
Llcv - Linked-list Condition Variables
RBTs - Red/blach Trees
AMS - Asynchronous Message Service
CFDP - CCSDS File Delivery Protocol
DGR - Datagram Retransmission
TCP - Tranmission Control Protocol
BSS - Bundle Streaming Service
CCSDS - Consultative committee for Space Data Systems
CL - Convergence Layer
CLI - Convergence Layer Input
CLO - Convergence Layer Output
DTN - Delay-Tolerant Networking
ICI - Interplanetary Communication Infrastructure
ION - Interplanetary Overlay Network
LSI - Link Service Input
LSO - Link Service Output
LTP - Licklider Transmission Protocol
OWLT - One-Way Light Time
RFC - Request for Comments
RFX - Radio (R/F) Contacts
RTT - Round-trip Time
TTL - Time to Live
List of Protocols in ION
LTP - Licklider Transmission ProtocolBP - Bundle Protocol
CFDP- CCSDS File Delivery Protocol
Protocols That Support Rapid Recovery in ION
All transactin state can obtain in the ION heap for rapid recovery from a spacecraft or software fault.LTP - Licklider Transmission Protocol
BP - Bundle Protocol
CFDP- CCSDS File Delivery Protocol
Design
The Interplanetary Overlay Network (ION) software distribution is an implementation ofDelay-Tolerant Networking (DTN) architecture as described in Internet RFC 4838.
The DTN analog to the Internet Protocol (IP), called “Bundle Protocol” (BP), is designed to function as an “overlay” network protocol that interconnects “internets” – including both Internet-structured networks and also data paths that utilize only space communication links as defined by the Consultative Committee for Space Data Systems (CCSDS)
Data traversing a DTN are conveyed in DTN bundles – which are functionally analogous to IP packets – between BP endpoints which are functionally analogous to sockets. Multiple BP endpoints may reside on the same computer – termed a node – just as multiple sockets may reside on the same computer (host or router) in the Internet.
- Bundle Protocol = Internet Protocol
- DTN bundles = IP Packets
- BP endpoints = sockets
- Computer = Node
- Multiple BP endpoints on the same computer (node) = multiple sockets on the host/router.
scheme_name:scheme_specific_part
ION is optimized for networks of endpoints whose IDs conform more narrowly to the following scheme:
ipn:node_number.service_number
This enables them to be abbreviated to pairs of unsigned binary integers via a technique called Compressed Bundle Header Encoding (CBHE). CBHE-conformant BP endpoint IDs (EIDs) are not only functionally similar to Internet socket addresses but also structurally similar:- node numbers = Internet node numbers (IP addresses)
- identify the flight or ground data system computers on which network software executes.
- service numbers = TCP and UDP port numbers
- node number = network node number
- LTP engine IDs
- AMS continuum numbers
- CFDP entity numbers
How do we have multicast in ION? by simply issuing a bundle whose destination endpoint ID conforms to the following scheme
imc:group_number.service_number
A copy of the bundle will automatically be delivered at every node that has registered in the destination endpoint.Processor constraints
- Flight processors must be radiation-hardened and both dynamic memory and non-volatile storage (typically flash memory) must be radiation-tolerant.
- The latest advances in processing technology are typically not available for use on interplanetary spacecraft, so flight computers are invariably slower than their Earth-bound counterparts (because of small market radiation-hardened spacecraft computers). As a result, the cost per processing cycle is high and processors are heavily subscribed; economical use of processing resources is very important.
- The flight computer must be highly reliable, which in turn generally means that it must be highly predictable. Flight software is typically required to meet “hard” real-time processing deadlines, for which purpose it must be run within a hard real-time operating system (RTOS).
- The dynamic allocation of system memory may be prohibited except in certain well-understood states, such as at system start-up. Unrestrained dynamic allocation of system memory introduces a degree of unpredictability into the overall flight system that can threaten the reliability of the computing environment and jeopardize the health of the vehicle.
Design Principles
Shared Memory
Many real-time operating systems improve processing determinism by omitting the support for protected-memory models that is provided by Unix-like operating systems: all tasks have direct access to all regions of system memory. (In effect, all tasks operate in kernel mode rather than in user mode.) ION therefore had to be designed with no expectation of memory protection.Placing a data object in shared memory is an extremely efficient means of passing data from one software task to another.
Zero-copy Procedures
Reference and pointer, never copy.if the data item appended to a linked list is merely a pointer to a large data object, rather than a copy, then we can further reduce processing overhead by eliminating the cost of byte-for-byte copying of large objects.
we can provide each such software element with a pointer to the object rather than its own copy (maintaining a count of references to assure that the object is not destroyed until all elements have relinquished their pointers). This helps reduce the amount of memory needed for ION operations.
Highly Distributed Processing
- The simplicity of each task
- The scope of the ION operating stack is adjustable at run time. There is no additional size and complexity need to add up.
- The clear interface between tasks
Portability
- Use a lot of POSIX API functions
- The differences in OS support that POSIX needs to have different ways to handle is encapsulated in two small modules of platform sensitive ION code.
Organizational Overview
Resource Management in ION
- Successful Delay-Tolerant Networking relies on retention of bundle protocol agent state information – including protocol traffic that is awaiting a transmission opportunity – for potentially lengthy intervals.
- State information will fluctuate rapidly as the protocol agent passes through different phases of operation.
- Efficient management of the storage resources allocated to state information is a key consideration in the design of ION.
- Volatile working memory
- Non-volatile heap
- Is a fixed-size pool of shared memory (dynamic RAM) that is allocated from system RAM at the time the bundle protocol agent commences operation.
- Store temporary data of al kinds
- Data structures residing in working memory may be shared
- among ION tasks or may be
- created and managed privately by individual ION tasks.
- PSM manages the dynamic allocation of working memory
- the size of the partition is specified in the wmSize parameter of the iconconfig file.
- Is a fixed-size pool of notionally non-volatile storage that is likewise allocated at the time the bundle protocol agent commences operation.
- All heap data are written both to memory and to the file but are read only from memory;
- When the heap resides only in memory, its contents are truly non-volatile only if that memory is battery-backed. Otherwise heap storage is in reality as volatile as working memory: heap contents will be lost upon a system power cycle
- Used for storage of data that (in at least some deployments) would have to be retained in the event of a system power cycle to ensure the correct continued operation of the node.
- SDR manages the dynamic allocation of heap.
Package Overviews
ICI - Interplanetary Communication Infrastructure
provides a number of core services such as point of view. Services include- Platform
- PSM
- Perform high-speed dynamic allocation and recovery of variable-size memory objects within an assigned memory block of fixed size.
- Memory block can be private or shared memory.
- Memmgr
- Lyst
- Smlist
- Both Lyst and Smlist manage doubly-linked lists in private memory
- Llcv
- an inter-thread communication abstraction that integrates POSIX thread condition variables.
- SmRbt
- populate and navigate RBTs residing in shared DRAM.
- an alternative to linked list
- SDR
- Same as PSM but small and simple
- Sptrace
- An embedded diagnostic facility
- monitors the performance of the PSM and SDR space management systems.
- Zco
- Rfx (R/F contacts)
- Ionsec
- support the implementation of security mechanism
LTP - Licklider Transmission Protocol
ION implements LTP and adds two features that help improve the protocol in interplanetary process. LTP provides flow control and retransmission-based reliability between topologically adjacent bundle protocol agents.
LTP = LLC (Logical Link Control) Protocol in the Internet architecture.
- A reliable convergence-layer protocol
- Control the block size of data unit enhances accommodation of highly asynchronous data rates.
- Increase the maximum number of transmission session can implement at the same time.
BP - Bundle Protocol
Provide route computation, forwarding, congestion avoidance, and control over quality of service. Bundle protocol includes CGR (Contact Graph Routing) for computing dynamic routes through time-varying network topology assembled from scheduled, bounded communication opportunities.
Bundle protocol = Internet protocol IP
Asynchronous Message Service (AMS)
AMS is a data system communication architecture that minimize complexity in the development and operations of data systems by isolating the modules of mission systems. Each module can work independently, and it can self-configure to interact with other modules.- At the application service layer
- Increase reusability, flexibility, efficiency and scalability
- Reduce cost and risks
- Minimize complexity in development and operations
Datagram Retransmission (DGR)
This package is an alternative implement of LTP. DGR is much closer to IP and IP-based works. It combines the concept of concurrent transmission transactions with congestion control and timeout interval computation algorithms from TCP.
DGR = LTP = IP and other IP-based networks
- use in almost-non-delay-tolerant environment
- feature concurrent transmission transaction with congestion control
- support AMS operations
CCSDS File Delivery Protocol (CFDP)
This protocol provides unreliable transfer service. If BP package (like IP package) is delivered in a reliable convergenece-layer protocol by setting DTN protocol stack to that protocol, file delivery is reliable.- At application service layer
- Segmentation and reassembly of files
- Transmit file segments using DTN protocol stack, an underlying Unitdata Transfer service
- Do not perform retransmission of lost data itself
Bundle Streaming Service (BSS)
stream video, continuous created application data over a delay-tolerant network.be able to present information in two modes at the same time.
- The first mode: the least possible end-to-end delivery latency.
- The second mode: no gap. This mode would omit lost or corrupt data.
Network Operation Concepts
Fragmentation and Reassembly
Bandwidth Management
Contact Plans
In Internet, the information that protocol operations use to perform their functions is sent and received immediately. The time gap in receiving and sending this information over network is negligible because of the small distance between nodes and the continuous connectivity.However, this is not true in DTN-based network. the time gap between receiving and sending this information between satellite nodes is very large. The information that a node received may be out-of-date. Therefore, the information that protocols uses to perform their function must be preplaced at the network nodes and tagged with the dates and times when it becomes effective.
The format of this information is contact plans Contact plans are managed by R/F Contact service of ION's ICI package.
A contact is the interval during which data will be transmitted by DTN node A, and most or all of the transmitted data will be received by node B.
Each contact has
- its start time
- its end time
- the identities of the transmitting and receiving nodes
- the rate at which data are expected to be transmitted by the transmitting node throughout the indicated time period
- its start time
- its end time
- the identities of the two nodes using this interval range
- the anticipated approximate distance between those nodes
The topology timeline is a list of scheduled or anticipated changes in the topology of the network. Its entries has two type
- Contact entries for scheduled contacts
- Range entries for anticipated range intervals.
Route Computation
BP/LTP detail - How It Works
asdfDatabases
asdfControl and Data Flow
asdfContact Graph Routing (CGR)
asdfContact Plan Messages
asdfRouting Tables
asdfKey Concepts
asdfDynamic Route Selection Algorithm
asdfException Handling
asdfLTP Timeout Intervals
asdfCFDP
asdfION Installation
ION on Ubuntu 14.04
- Download the ION source code from here.
- Open terminal:
- $ tar -vxf ion-3.5.0.tar
- $ cd ion-3.5.0
- $ sudo apt-get update
- $ sudo ln -s /usr/bin/make /usr/bin/gmake
- $ sudo apt-get install ion
- $ ./configure
- $ ./make
Run Demos
- $ cd ./ion-3.5.0/demos/bench-tcp
- $ ./dotest