71
A distributed delay tolerant data transfer protocol for ISTSAT-1 Pedro Miguel Pereira Eugénio Andrea Gameiro Thesis to obtain the Master of Science Degree in Bologna Master Degree in Telecommunications and Informatics Engineering Supervisors: Prof. Rui Manuel Rodrigues Rocha Dr. Gonçalo Lopes Examination Committee Chairperson: Prof. Ricardo Jorge Fernandes Chaves Supervisor: Prof. Rui Manuel Rodrigues Rocha Member of the Committee: Prof. Fernando Henrique Côrte-Real Mira da Silva December 2018

A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

A distributed delay tolerant data transfer protocol forISTSAT-1

Pedro Miguel Pereira Eugénio Andrea Gameiro

Thesis to obtain the Master of Science Degree in

Bologna Master Degree in Telecommunications andInformatics Engineering

Supervisors: Prof. Rui Manuel Rodrigues Rocha

Dr. Gonçalo Lopes

Examination Committee

Chairperson: Prof. Ricardo Jorge Fernandes Chaves

Supervisor: Prof. Rui Manuel Rodrigues Rocha

Member of the Committee: Prof. Fernando Henrique Côrte-Real Mira da Silva

December 2018

Page 2: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Resumo

Um cubesat é um pequeno satélite artificial, de baixo custo, criado para efeitos de investigação cientí-

fica espacial, que se tornou muito popular na comunidade científica. O ISTSAT-1 é o primeiro cubesat

a ser desenvolvido no Instituto Superior Técnico (IST), com um tamanho de 10x10x10cm, respeitante a

especificação cubesat 1U.

As comunicações espaciais oferecem desafios diferentes daqueles encontrados em Terra. As ligações

são tipicamente de baixo débito, com grandes atrasos e as disrupções podem ser frequentes. Tudo isto

motivou a criação de protocolos Delay Tolerant (DT), uma arquitectura desenhada para lidar com os

problemas característicos de ambientes disruptivos. No entanto, mesmo com protocolos Delay Tolerant

(DT), a transmissão de ficheiros de elevada dimensão pode ser difícil. Isto é especialmente verdade no

caso dos cubesats, que devido às baixas órbitas em que são colocados, sofrem de longos períodos de

disrupção nas suas ligações com as estações de rádio em Terra.

Com este projecto é proposta uma solução mais adequada. A criação de um protocolo Delay Toler-

ant (DT) distribuído, capaz de realizar as tarefas já presentes nos restantes protocolos Delay Tolerant

(DT), mas onde uma única transmissão pode ser distribuída por diferentes dispositivos (como satélites

e estações de rádio em terra), aumentando assim o número de ligações, reduzindo os períodos de

disrupção e melhorando assim o desempenho das transmissões espaciais.

Palavras chave: IST, nanosat, LEO, ISTSAT-1, distribuído, DT

ii

Page 3: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Abstract

A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-

lar in the academic community. The ISTSAT-1 is the first cubesat being developed in Instituto Superior

Técnico (IST), with a size of a 10x10x10cm cube respecting the 1U cubesat standard.

In space communications one finds different challenges from the ones on Earth. Links are typically un-

stable, of low debit, of high delay and disruptions can be frequent. This motivated the creation of Delay

Tolerant (DT) protocols, an architecture designed to deal with the characteristic problems of disruptive

environments. However, even with DT, the transmission of big data files can be difficult. This is specially

true in the case of cubesats. Due to their Low Earth Orbit (LEO) deployment, cubesats suffer from very

long disruptions periods with the ground-stations on Earth.

With this project we intend to create an enhanced solution. A distributed DT protocol capable of perform-

ing the normal DT tasks, but in a manner where a single transmission can be distributed over different

devices (like ground-stations or satellites), thus increasing the number of links, reducing the disruptions

time periods and increasing the much needed performance of space transmissions.

Keywords: IST, nanosat, LEO, ISTSAT-1, distributed, DT

iii

Page 4: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

iv

Page 5: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Contents

Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii

Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv

List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii

Glossary xi

Acronyms xv

1 Introduction 1

1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Objectives and challenges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Research contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4 Document structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 State of the art 5

2.1 DTN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Saratoga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3 SCPS-TP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4 T-CSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.5 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Architecture 15

3.1 Application scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.1.1 One-to-one transmissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.1.2 Multi-to-one transmissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.1.3 One-to-multi transmissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1.4 Distributed transmissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.3 Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3.1 Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3.2 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

v

Page 6: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

3.4 Application Scenarios operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.4.1 One-to-one transmissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.4.2 Multi-to-one transmissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.4.3 One-to-multi transmissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.4.4 Distributed transmissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.5 POCKET++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4 Implementation 29

4.1 Software Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.1.1 Multi platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.1.2 Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.1.3 OMNET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.1.4 Multi Network stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.1.5 Data structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.2 Programming language selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.3 Build tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.4 Code Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.4.1 Static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.4.2 Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.5 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.5.1 Software reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.6 Source Code Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.7 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.8 Development Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5 Experimental evaluation 41

5.1 One to one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5.1.1 One to one - Delay tolerant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.2 Multi to one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.3 One to multi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.4 Distributed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.5 Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6 Conclusion and future work 51

Bibliography 53

vi

Page 7: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

List of Tables

2.1 Comparison of the existing solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5.1 One to one transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

vii

Page 8: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

viii

Page 9: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

List of Figures

1.1 ADS-B System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 ISTSAT-1 Distributed transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1 Store and Forward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 DTN stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3 DTN transmission comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.4 Mars network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.5 Saratoga Message Sequence Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.6 Saratoga stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.7 Saratoga STATUS message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.8 T-CSP segment over CSP packet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.9 T-CSP transmission example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.1 One to one transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.2 Multi to one transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.3 Multicast transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.4 Distributed transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.5 DDTP Message types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.6 DDTP sender process state machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.7 DDTP receiver process state machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.8 MSC One-to-one transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.9 MSC Multi-to-one transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.10 One-to-multi transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.11 MCC Distributed Transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.12 Distributed transmission - cubesat cluster example . . . . . . . . . . . . . . . . . . . . . . 28

4.1 DDTP modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.2 DDTP software architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.3 DDTP software platform architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.4 DDTP - Network Abstraction Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.5 DDTP Network stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.6 DDTP Multi stack transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

ix

Page 10: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

5.1 Testing simulation topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5.2 DDTP vs Saratoga - One to one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.3 DDTP DT transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.4 Saratoga DT transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.5 Multi to one - DDTP vs Saratoga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.6 One to multi topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.7 DDTP - One to multi transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.8 DDTP distributed transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.9 Pocket++ transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

x

Page 11: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Glossary

ADS-B Automatic dependent surveillance-broadcast is a surveillance technology in which an aircraft de-

termines its position via satellite navigation and periodically broadcasts it, enabling it to be tracked.

AX25 A data link layer protocol derived from the X.25 protocol suite and designed for use by amateur

radio operators.

C A general-purpose, imperative computer programming language.

C++ introduces object-oriented programming (OOP) features the C language.

Cubesat A type of miniaturized, low cost satellite for space research of popular use in the academic

community.

Doxygen Doxygen is a documentation generator, a tool for writing software reference documentation.

The documentation is written within code, and is thus relatively easy to keep up to date.

ESA The European Space Agency is an intergovernmental organization of 22 member states dedicated

to the exploration of space.

Ethernet A data link layer protocol, widely used in conjunction with the Transmission Control Protocol

(TCP)/Internet Protocol (IP) stack.

FreeRTOS FreeRTOS is a real-time operating system kernel for embedded devices that has been

ported to 35 microcontrollers.

FYS ESA’s Fly Your Satellite! (FYS) programme is a recurring, hands-on programme designed and

managed by the ESA Education Office in close collaboration with European Universities, with the

objective to complement academic education and inspire, engage, and better prepare university

students for a more effective introduction to their future professions in the space sector.

ISTSAT-1 ISTSAT-1 is the first cubesat being developed in Portugal, by IST-UL, with a 1U size (103 cm

cube) by students, professors and radio-amateurs. Its mission is first and foremost an educational

one, joining together multiple students from different expertise and engineering programmes to

foster their enthusiasm for space science and complementing their education with a challenging

hands-on project.

xi

Page 12: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Java Java is a general-purpose computer-programming language that is concurrent, class-based, object-

oriented, and specifically designed to have as few implementation dependencies as possible.

Libcsp CubeSat Space Protocol (CSP) is a small network-layer delivery protocol designed for Cube-

Sats. The idea was developed by a group of students from Aalborg University in 2008, and further

developed for the AAUSAT3 CubeSat mission that was launched in 2013.

MCC A mission control center is a facility that manages a spacecraft mission and operations, including

both personnel and equipment. It is part of the ground segment of spacecraft operations.

Netkit Netkit is an environment for setting up and performing networking experiments at low cost. It

allows to "create" several virtual network devices (full-fledged routers, switches, computers, etc.)

that can be easily interconnected in order to form a network. Netkit exploits open source software

(mostly licensed under GPL) and is heavily based on the User Mode Linux (UML) variant of the

Linux kernel.

OMNET OMNeT++ is a modular, component-based C++ simulation library and framework, primarily for

building network simulators.

Peer2peer Peer-to-peer (P2P) computing or networking is a distributed application architecture that

partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants

in the application. They are said to form a peer-to-peer network of nodes.

Pocket++ A simple, deterministic and very efficient compression algorithm developed by ESA for space-

crafts with limited computacional resources. It can work on the real-time data stream and therefore

one benefits from stored data compression for free, as well as the multiplication factor during play-

back.

Python Python is an interpreted high-level programming language for general-purpose programming.

Created by Guido van Rossum and first released in 1991, Python has a design philosophy that

emphasizes code readability.

Ruby A dynamic, open source, reflective, object-oriented, general-purpose programming language with

a focus on simplicity and productivity.

Saratoga Saratoga is a very scalable, peer-to-peer reliable transport protocol, capable of transferring

very large files guaranteeing error-free data delivery.

Sattelite cluster Sattelite cluster is the concept that multiple satellites can work together in a group to

accomplish the objective of one larger, usually more expensive, satellite.

SNACK Selective Negative Acknowledge - The receiver explicitly lists the segments in a stream that

were not received (even if non-continuous).

xii

Page 13: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

UDP-lite Lightweight User Datagram Protocol (UDP-Lite) is a connectionless protocol similar to User

Datagram Protocol (UDP) but that does not check the integrity of the payload.

Unicast Unicast is communication between a single sender and a single receiver over a network. The

term exists in contradistinction to multicast, communication between a single sender and multiple

receivers.

Valgrind Valgrind is a programming tool for memory debugging, memory leak detection, and profiling.

xiii

Page 14: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

xiv

Page 15: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Acronyms

ACK Acknowledge.

CCSDS Consultative Committe for Space Data Systems.

CPU Center Processing Unit.

CSP Cubesat Space Protocol.

DDTP Distributed Delay Tolerant Protocol.

DICE Dynamic Ionosphere Cubesat Experiment.

DMC Disaster Monitoring Constellation.

DT Delay/Disruptive Tolerant.

DTN Delay/Disruptive Tolerant Networking.

EID Endpoint Identifier.

FTP File Transfer Protocol.

FYS Fly Your Satellite.

GDB GNU Debugger.

GS Ground Station.

IDE Integrated Development Environment.

IP Internet Protocol.

IPN Interplanetary Internet Project.

IPSec IP Security.

ISA Instruction Set Architecture.

ISL Inter Satellite Links.

xv

Page 16: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

IST Instituto Superior Técnico - University of Lisbon.

ISWCS International Symposium on Wireless Communication Systems.

ITU WRC-15 International Telecommunication Union’s World Radio communication Conference.

KISS Keep It Simple and Stupid.

LEO Low Earth Orbit.

LOS Line Of Sight.

MCC Mission Control Center.

MSC Message Sequence Chart.

MTU Maximum Transmission Unit.

NACK Negative Acknowledge.

NASA National Aeronautics and Space Administration.

NPAL Network Protocol Abstration Layer.

OS Operating System.

OSAL Operating System Abstration Layer.

OSI Open Systems Interconnection.

RDP Reliable Datagram Protocol.

SCPS Space Communications Protocol Specifications.

SCPS-FP SCPS File transfer Protocol.

SCPS-NP SCPS Network Protocol.

SCPS-SP SCPS Security Protocol.

SCPS-TP SCPS Transfer Protocol.

SNACK Selective Negative Acknowledge.

SNR Signal to Noise Ratio.

SSTL Surrey Satellite Technology Ltd.

T-CSP Tolerant CSP.

TCP Transmission Control Protocol.

xvi

Page 17: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

UDP User Datagram Protocol.

URI Uniform Resource Identifiers.

WSN Wireless Sensor Network.

xvii

Page 18: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Chapter 1

Introduction

Space research has traditionally been limited to organizations who can afford the large investments as-

sociated with it. This presents a major limitation in technological development.

A popular new trend, specially in universities and the academic community, is the development of minia-

turized satellites known as cubesats[1]. These satellites offer a major opportunity for organizations with

limited resources to perform space research[2]. This is not only due to their small sizes, but since they

can be built with common electronic components they are of low cost. Its design was proposed in 1999

by professors Jordi Puig-Suari of California Polytechnic State University and Bob Twiggs of Stanford

University.

Standard cubesats usually have a volume of 1 liter (103 cm cube), weight 1kg and are called 1U(one

unit) cubesats. There are also some bigger models, scaled in the vertical axis, 2U(20x10x10cm) and

3U(30x10x10cm) and even as big as 6U and 12U.

ISTSAT-1[3] is the first cubesat being developed in Portugal, by Instituto Superior Técnico - University of

Lisbon (IST), with a 1U size (103 cm cube) by students, professors and radio-amateurs. The ISTSAT-1

mission is first and foremost an educational one, joining together multiple students from different exper-

tise and engineering programmes to foster their enthusiasm for space science and complementing their

education with a challenging hands-on project.

In 2014, under unexplained circumstances, the Malaysia Airlines flight 370 plane disappeared in the mid-

dle of the ocean. This event triggered a new discussion about safety in the airline industry and a growing

interest in tracking airplanes in remote areas. In November 2015, the International Telecommunication

Union’s World Radio communication Conference (ITU WRC-15) allocated a new frequency band to be

used by the ADS-B[4] system in earth-space direction1. This enabled the possibility of tracking aircraft

positions from space, at a global scale. Today, this signal is only monitored through ground-based sta-

tions, with no coverage in oceanic routes and remote areas. The ADS-B system is a security feature that

most planes today use, and all of them will be obliged to use by 2020. It periodically (each 0.5 seconds)

emits a message with information about the plane, it’s location, identification and status. ISTSAT-1[5] will

be used for carrying a feasibility study of the use of cubesats for receiving ADS-B signals from traveling

1https://www.itu.int/net/pressoffice/press_releases/2015/51.aspx

1

Page 19: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

airplanes, as illustrated in figure 1.1. The ISTSAT-1 spacecraft is also being developed in the context of

an ESA educational programme, the Fly Your Satellite (FYS), along with 5 other european teams devel-

oping their own cubesat2. In this programme the ISTSAT-1 development will be assisted by experienced

engineers and professionals from ESA that have developed, launched and operated several spacecrafts

in their carer. This is a major opportunity that as drastically impacted this project. The FYS programme

as also offered the ISTSAT-1 a launch opportunity, currently schedule for 2020.

To address the problems associated with space communications (characterized by long distances, high

delay environments, frequent disruptions or disconnections), a new communication paradigm emerged,

the Delay/Disruptive Tolerant Networking (DTN). The DTN specification defines an hop-to-hop architec-

ture where link disruption is acceptable and transmissions will pause and resume as necessary. This

paradigm is already being used in the National Aeronautics and Space Administration (NASA) mars

rover mission3.

Figure 1.1: ADS-B System

1.1 Motivation

Cubesats are normally deployed in Low Earth Orbit (LEO), which is defined as 300-1500km above the

earth surface, with an orbital period of approximately 90 minutes at a speed of 7.8 km/s. However, a

big consequence of this, is that a particular ground-station only has a very small time-window (15-20

minutes) of line-of-sight to communicate with the satellite. Offering even more obstacles, space-link

communications are very unstable, error prone, and of low debit. The challenges in space-link commu-

nications are not traffic congestion (like on earth), but long propagation delays and high bit-error rates.

The current approach to this problem is the use of DTN [6][7] protocols. These (in contrast to common,

terrestrial protocols) are designed to tolerate large periods of delay (or disrupted links) and transmit at

high bitrates when the link is available. This approach allows transmissions to be paused when the

communication space link is unavailable, and to resume when a line-of-sight is once again available.

The purpose of this project is to tackle this difficulties in a new, more powerful way. To create a distributed

2https://www.esa.int/Education/CubeSats_-_Fly_Your_Satellite/Six_new_CubeSat_missions_selected_for_next_

cycle_of_Fly_Your_Satellite3http://mars.nasa.gov/mer/home/

2

Page 20: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

protocol capable of expanding a single transmission session over several links and hosts (Ground Sta-

tions (GSs) in this particular case).

This is illustrated in figure 1.2, where the satellite, after starting a transmission with a given GS, leaving

its line-of-sight and consequently disconnecting the link, does not need to perform a full orbit to resume

the transmission. It can just continue the transmission with the next GS available in its orbit. This can re-

sult in a very significant performance enhancement, both due to the very limited available time-windows

and the typical characteristics of space communications, like high delays and low throughputs.

Another interesting use case for such a solution is the transmission of data through, and within, cubesat

clusters[8]. In this types of spacecraft constellations, such as the humsat project 4, transmissions can

be tricky since every single node is moving on its own orbit, and also relative to earth’s GSs. Due to this,

a distributed approach like the one proposed by this project can be very useful. With enough cubesats

in a cluster, and taking advantage of a distributed solution, it could even be possible to create a real-time

service for tracking ADS-B signals.

Figure 1.2: ISTSAT-1 Distributed transmission

1.2 Objectives and challenges

With this project we intend to create a Delay/Disruptive Tolerant (DT) protocol, prepared to deal with

space communications related challenges that are already being dealt with in today existing DT proto-

cols, but one that is capable of transmitting in a fully distributed manner. This means that, not only this

protocol will be able to deal with disruptive prone environments, but it will also be capable of performing

a single transmission through different nodes.

4https://www.humsat.org

3

Page 21: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

In a typical cubesat communication, a DT transmission occurs between a ground station and a satellite

(optional with other hops). This is not enough, specially when transmitting big data files. With the typi-

cal DT protocols, this is handled by resuming the transmission (where it was left of) when the cubesat

completes an orbit and the line-of-sight is restored. Note, however, the passes over the GS receiving (or

transmitting) the big data are not always azimuth-favorable in consecutive orbits due to its quasi-polar

characteristics[9]. Therefore, it might take a while to complete the entire transmission successfully for a

given GS.

With a distributed protocol the transmission could be performed over different ground-stations, located

in different geographical locations.

The proposed protocol should be bidirectional (i.e. capable of transmitting both in the uplink and down-

link), capable of prioritization when dealing with several simultaneous transmissions, guarantee the cor-

rect integrity of the received data and retransmit the broken segments. These are all common features

found in transport protocols.

This protocol is intended to be used over Open Systems Interconnection (OSI) layer 4 Reliable Datagram

Protocol (RDP) protocol that in its turn will use Cubesat Space Protocol (CSP). CSP is a very popular,

well tested, protocol for cubesat systems. It was designed for the purpose of space transmission and

it is able to address different, possibly independent, modules of a given satellite. It works in both OSI

layers 2 and 3 and its original implementation source code is freely available for download and changes.

1.3 Research contributions

During the development of this project, a scientific paper[10] was also written. It features the designed

solution and some preliminary results. It was presented and published at the 15th International Sympo-

sium on Wireless Communication Systems (ISWCS) conference in 2018.

1.4 Document structure

This report is organized in six chapters. The present one, Introduction, explains the proposed project,

its objectives, motivations and challenges. The second one, State of the art, presents a comparison of

the existing technologies, showing the need for this project and analyzing the good characteristics of the

existing solutions, offering an useful insight for the design of this project. The third one, Architecture,

focus one the logical design of developed solution. The fourth one, Implementation will explain in detail

the protocol, taking as reference the design mentioned in the previous chapter. The fifth one, Experi-

mental evaluation, will present practical results from experimental execution of the developed solution.

And finally, the sixth one, Conclusion and future work, sums up the work of the whole document, the

research involved, its conclusions and possible future work.

4

Page 22: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Chapter 2

State of the art

In this chapter we will compare some of the current solutions to the presented problem. These are used

in the space communication link between the radio stations on earth (known as GS), and the orbiting

satellites.

2.1 DTN

DTN [6] is a network architecture designed to address the problems of disruptive environments, like the

ones found in this project related with space communications, (keeping in mind the inefficiency of terres-

trial protocols to address this issues) like high delay environments, long distance communications and

frequent disconnection of links. In this architecture a transmission is not terminated when its physical

link is disconnected. Instead, link disruption is dealt with by pausing and resuming transmissions as

needed, and by the use of multiple hops, in a store-and-forward[11] fashion. This strategy is illustrated

in figure 2.1, where node A starts by transmitting to node B normally, but then it is forced to store the

data, since a link is not available or was disrupted mid-transmission (as illustrated by the dotted line).

When it does become available, the data is forwarded along the network using the same strategy at

every node until it finally reaches its destination.

To implement this architecture an end-to-end message-oriented overlay, called bundle layer [12], is de-

fined over the OSI transport layer (layer 4). This compatibility layer ensures the independence of the

DTN protocol from the rest of the stack, thus allowing a transmission to occur over different network

stacks (like TCP/IP or AX25/CSP)[13]. In figure 2.2 this concept is illustrated, showing how a transmis-

sion can occur over multiple regions, each with potentially different layers bellow the bundle layer.

Devices implementing the bundle layer are called DTN nodes. Each node uses a persistent memory to

store the transmissions being sent. This is done due to the disruption tolerant nature of the architecture.

Since links are expected to disconnect, each node receives transmissions even if no output link is avail-

able for the final receiver, stores the data, and then, when an output link becomes available, retransmits

it towards its final destination. This means that a successful transmission can occur without, at any given

moment, the existence of a complete path (with the use of hops) between the sender and the receiver.

5

Page 23: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

D

B

A

Source

C

F

E

Destination

Store

Store

Forward

Forward

Carry

Carry

Disruptive link

Normal link

Figure 2.1: Store and Forward

Transmissions can be sent in a hop-by-hop manner, with each hop node storing persistently the data

when its link is disconnected. Each DTN node is identified by an Endpoint Identifier (EID) which is based

on Uniform Resource Identifiers (URI) [14].

In figure 2.3 a DTN transmission is illustrated and compared with a non DTN transmission over the in-

ternet using the TCP/IP stack. In the top diagram (the non DTN transmission) a link disruption between

any of hops means the termination of the transmission and the tear-down of the TCP connection. On

the bottom diagram (the DTN transmission) a link disruption between any of the hops does not mean

the termination of the transmission. Instead, all the nodes with valid links will continue to transmit. The

ones without an output link will store the received data in their persistent memory, waiting for a chance

to resume the transmission. This allows a transmission to be processed, never aborting or restarting

when there is no connection between the sender and receiver.

The concept of DTN began to be studied by the end of the 1990’s decade as part of the implementation

of the Interplanetary Internet Project (IPN)1.

A real life example of a DTN is the NASA Mars mission2. In this network the Mars Rover[15] (named

curiosity ), illustrated in figure 2.4, transmits data to one of the three orbiting satellites. They, in turn,

store and retransmit this data to Earth when their orbit is favorable (when they have line-of-sight with

Earth). While the Mars Rover could send the messages directly to Earth, this DTN approach enables it

to upload data more efficiently and even when it has no line-of-sight with the Earth ground-stations.

In summary, the DTN architecture addresses many of the problems of space networks that are charac-

terized by an environment of long delays and discontinuous connectivity.

1http://ipnsig.org/2http://ipnsig.org/2013/07/09/curiosity-rover-the-store-forward-architecture/

6

Page 24: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Figure 2.2: DTN stack

Figure 2.3: DTN transmission comparison

7

Page 25: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Figure 2.4: Mars network

2.2 Saratoga

Saratoga[16][17], named after the USS Saratoga3, was first developed at Surrey Satellite Technology

Ltd (SSTL) to download imagery from its remote-sensing Disaster Monitoring Constellation (DMC) satel-

lites.

Saratoga is a very scalable, peer-to-peer reliable transport protocol, capable of transferring very large

files (exa-exabytes - 2128 B) guaranteeing error-free data delivery using a Selective Negative Acknowl-

edge (SNACK) logic.

Saratoga does not use any congestion control, it just sends the data at the highest possible rate in the

link, with no regard for other flows. This is acceptable since space-links are typically dedicated.

It is a protocol based in User Datagram Protocol (UDP) (can also be used with UDP-lite to minimize

checksum computation overhead), designed to send data packets as fast as possible (since it is de-

signed for private, low congestion links there is no need for congestion control) over several hops on

privately owned links. It is also capable of transmitting over links with very long propagation delays since

no forced timeouts are used.

Saratoga uses a 32B DATA message header, another 8B for the UDP header, 20B for the IP header

and another 18B for the Ethernet header, for transmitting a payload of 1422B (assuming a normal sized

ethernet frame of 1500B), offering a payload ratio of ∼95%.

The Saratoga protocol was developed with design goals of being very fast; to use cheap, reliable and

robust internet technologies; provide more speed than TCP can offer; not caring about congestion, be-

cause it is to be used as a single flow per link with no competition; support very big data file sizes;

simultaneous delivery to multiple receivers. Two example implementations of the Saratoga specification

are being developed, but are still incomplete.

The first one is a Perl implementation4, that was written for interoperability testing, to validate the

3https://web.archive.org/web/20080328084822/http://www.chinfo.navy.mil/navpalib/ships/carriers/

histories/cv03-saratoga/cv03-saratoga.html4http://saratoga.cvs.sourceforge.net/viewvc/saratoga/saratoga-v1-perl/

8

Page 26: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Figure 2.5: Saratoga Message Sequence Chart

Saratoga specification. It was not designed with performance in mind, which means that it is not suitable

for a real scenario deployment, only for testing other implementations.

The second one is a C++ implementation5, it is freely available for use and implements most of the

Saratoga version 1 [18] (the latest one) specification. It is still incomplete but, unlike the perl implemen-

tation, it is intended to be suitable for real world scenarios.

Saratoga uses 5 types of messages:

• BEACON

Sent periodically, the beacon message is used by each peer to declare its EID, its availability for

receiving packets, and the max file descriptor (used to indicate the offset of the data segment)

available (16, 32, 64 or 128 bits).

• REQUEST

Used to request a file, directory listing, or a file deletion from a peer (in other word, a get transac-

tion).

• METADATA

Used to start the sending of a file, (in other words, a put transaction) it describes the file, sets the

translation ID, and advertises the used file descriptor.

• DATA

Used to send data. The file descriptor is used to indicate the offset of the data segment. An

Acknowledge (ACK) message can be requested.

5http://sourceforge.net/p/saratoga/saratoga-vallona/ci/default/tree/

9

Page 27: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Figure 2.6: Saratoga stack

Figure 2.7: Saratoga STATUS message

• STATUS

Used to report lists of missing data offsets (known has HOLESTOFILL) and errors. This imple-

ments the SNACK logic of Saratoga. These are requested periodically by the sender (piggyback-

ing a DATA message) asking the receiver to report the correct reception of the segments, and the

missing HOLES as figure 2.7 illustrates. This means that the pace at which the ACK are sent is set

by the sender. The receiver can also send STATUS messages when he "thinks" these are needed

(e.g. start, restart, end of a transmission).

2.3 SCPS-TP

The Consultative Committe for Space Data Systems (CCSDS)[19][20] organization formulates recom-

mendations to address problems found in space systems. One of this projects is the Space Communica-

tions Protocol Specifications (SCPS), a set of extensions to existing protocols designed to address the

typical problems encountered in space communication systems, with a great focus in promoting systems

interoperability and cost reduction, these are divided in 4 categories:

10

Page 28: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

• SCPS File transfer Protocol (SCPS-FP) - A set of extensions to File Transfer Protocol (FTP) to

make it more bit efficient and to add advanced features such as record update within a file and

integrity checking on file transfers. This is an optional protocol.

• SCPS Transfer Protocol (SCPS-TP) - SCPS-TP[21] uses a set of TCP options such as Negative

Acknowledge (NACK), SNACK, modified slow start algorithms, modified congestion avoidance

algorithms, and windows scaling. Additionally, SCPS-TP includes sender-side modifications to

enhance the TCP performance in the stressed environments, such as long delays, high bit error

rates, and significant asymmetries. As a result, the SCPS-TP stack is compatible with other recog-

nized TCP implementations. SCPS-TP refers collectively to the protocols that provide full reliability

(using TCP), best-effort reliability (using TCP with some modifications), and minimal reliability ser-

vices (using UDP).

• SCPS Security Protocol (SCPS-SP) - SCPS-SP is an optional security protocol, and is compa-

rable to IP Security (IPSec).

• SCPS Network Protocol (SCPS-NP) - A bit-efficient network protocol that is analogous to IP.

However, it is not compatible with IP. The protocol is designed for use in space systems. It supports

static or dynamic routing, precedence, and multiple routing options. This is an optional protocol.

In respect of efficiency, SCPS-TP uses a 20B header, plus 20B for the IP header, and 18B for the

Ethernet header, summing up to an overhead of 58B for a 1442B payload (assuming a normal Ethernet

frame). This results in a payload ratio of ∼96%. Some cubesat projects, such as the Dynamic Iono-

sphere Cubesat Experiment (DICE) [22] are using the CCSDS standard. The SCPS-TP was designed

to support a best-effort, minimal reliability strategy; to operate efficiently in a wide range of delay, band-

width and errors conditions; operate efficiently in space-based processing environments; support priority

connections; support connectionless multicasting; and support packet oriented applications.

2.4 T-CSP

CSP is a layer 4 protocol designed for space communication environments, specifically designed for

cubesat systems. Tolerant CSP (T-CSP) is an extension of CSP, capable of performing in a DTN man-

ner, and was designed and implemented by João Ferreira during his master’s degree dissertation in

Communication Networks Engineering at Instituto Superior Técnico [3]. In his dissertation the goal was

to send imagery data over an AX25 link, using CSP for both layer 2 and layer 3. Since AX25 has a very

restrictive Maximum Transmission Unit (MTU) limit (256B), a protocol capable of performing fragmenta-

tion and packet recovery was necessary.

T-CSP relies on a SNACK logic to ensure packet recovery. This approach was chosen due to the typical

throughput asymmetry in space-links (The downlink tends to have more throughput). This means that

a packet is only retransmitted if the receiver reports that it’s missing, otherwise its successful arrival is

assumed.

11

Page 29: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

In figure 2.8 a T-CSP segment is shown, where 1B is used for file identification, 2B for the segment

number and another 2B for the total number of segments being transmitted. This structure allows for

255 possible different files and 65 535 segments per file, that results in a 15.44MiB of max file size. Since

space-links are characterized by being low debit this can be a reasonable value.

In the case of overhead, since 29B are used for transporting 247B of payload, we are looking at a pay-

load ratio of ∼90%. T-CSP was designed to perform segment fragmentation, retransmit lost packets,

and be compatible with the AX25 stack.

Figure 2.8: T-CSP segment over CSP packet

Figure 2.9 demonstrates a successful T-CSP file transmission.

In the first step, the GS sends a command in a CSP packet (T-CSP is not a appropriate for sending

commands), requesting the transmission of a file.

In step two and three, the requested file is split into multiple segments that will be transmitted in T-CSP

packets. These include their segment offset, since packets may be lost or not arrive in order. This

process continues for until the n packet, at which point the GS software will be able to process the file

as a whole.

Figure 2.9: T-CSP transmission example

12

Page 30: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

2.5 Comparison

Table 2.1: Comparison of the existing solutions

Features Saratoga SCPS-TP T-CSP

Available implementation Yes No Yes

Bidirectional Yes Yes Yes

Auto-retransmission Yes Yes Yes

Transmission error detection Yes Yes No

Prioritization No Yes No

Supported file sizes 256 EiB2 (2128 B) Not limited 15.44MiB

Overhead ∼5% ∼4% ∼10%

Congestion Control No Yes No

Compatible with CSP No No Yes

Distributed No No No

From these three protocols we can get a grasp of the type of problems encountered in space com-

munications and the type of solutions chosen. Nevertheless, none of these are appropriate for resolving

the presented problem. T-CSP was designed to work with the CSP protocol, uses a SNACK logic and

retransmits lost segments but does not have error detection mechanisms. SCPS-TP covers a lot of the

necessary requirements, but it is not compatible with the CSP protocol. Saratoga is also capable of a

lot of what it is required, but is missing CSP compatibility. The major reason for the development of a

new protocol, however, is that none of these are capable of transmitting in a distributed manner. This

means that in all this cases, non of them are capable of taking usage of an available link to resume a

transmission if this is not the original link through which the transmission was established.

13

Page 31: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

14

Page 32: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Chapter 3

Architecture

With the distributed DT protocol, contrasting the current solutions, a transmission is not paused or can-

celed when a link is disrupted, and instead, resumes over the next available node, only pausing indefi-

nitely if absolutely necessary. This is specially important in LEO satellites like the cubesat systems that,

due to their fast orbit, fly out of the transmitting GS line-of-sight very quickly. This solution removes the

very time consuming need of waiting for a link re-establishment. Possibility requiring the passage of one

or multiple full orbits, depending on the scenario in question. This is specially relevant when dealing

with transmissions of big data files. Section 3.1.1, 3.1.2 and 3.1.4 will describe the solution for these

scenarios.

Another interesting example is the usage of a Cubesat to deliver a firmware update to a Wireless Sensor

Network (WSN) with devices scattered over large distances. Here the simultaneous transmission of the

data payload to all devices within the Cubesat Line Of Sight (LOS) would offer a major advantage over

the typical Unicast transmission. Section 3.1.3 will describe this solution.

The rest of this chapter will be dedicated to explaining the logical design and operations of the proposed

solution.

3.1 Application scenarios

In this section we will describe the four major scenarios the proposed solution must solve, these are

directly connected to the requirements described in section 3.2. The first two, One-to-one (section 3.1.1)

and Multi-to-one (section 3.1.2), are already solved by current solutions but the last two(section 3.1.3

and 3.1.4), however, are not (with the exception of Saratoga protocol that can perform in a on-to-multi

fashion).

3.1.1 One-to-one transmissions

The most simple scenario is a transmission with only one sender and one receiver. This is what most

current solutions do, where the objective is to send or receive payload data from a system with a dis-

ruptive network connection. Figure 3.1 demonstrates an example with a transmission between node A

15

Page 33: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

and C through B with the dotted line representing a disruptive link. This can be achieved successfully

by performing the transmission in a store-and-forward fashion, pausing and resuming the transmission

accordingly to the link availability. In the example shown in figure 3.1 node B would store the data blocks

received from node A, when the link with node C is unavailable, and forward them when it becomes

available again. This is what current solutions do, as it will be further explained in section 3.4.1.

C

B

A

Source

Destination

Figure 3.1: One to one transmission

3.1.2 Multi-to-one transmissions

A slightly more complex scenario is one where several data payloads are transmitted at the same time,

through the same intermediary nodes, and to possibly the same destination. This can be achieved by

creating a protocol that allows multiple transmission to execute in parallel. In figure 3.2, an example is

showed where three different connections are originated in nodes A, B and C and terminate in node F.

An example of this would be a group of distant sensor networks placed in remote areas that need to

deliver their data payloads to a collection server, and do so through a satellite link. This would be a multi-

to-one example and would require a protocol capable of performing multiple parallel transmissions.

The specific details of how this scenario is being addressed by the proposed solution are described in

section 3.4.2.

16

Page 34: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

A

Source 1

F

E

D

Source 3Source 2

B C

Destination

Figure 3.2: Multi to one transmission

3.1.3 One-to-multi transmissions

A more complex scenario is the transmission of a data payload from one source to multiple destinations.

This can obviously be done by simply transmitting the data N times for N destinations, but this is very

inefficient. This is particularly true in the case of spacecrafts communicating with earth since, due to

their altitude, they are gifted with a big line-of-sight radius that may cover more than one destination

node.

An example of this, that takes advantage of the large communication line of sight of a LEO spacecraft, is

the transmission of a firmware update to N nodes on the terrain that are sufficiently close to each other

to fit in the line-of-sight cone of the spacecraft. If one were to perform a multicast transmission, instead of

executing N unicast transmissions, one could improve very significantly the overall transmission speed.

This idea consist in bringing the multicast concept into DTNs.

In the example shown in figure 3.3 the data blocks travel from node F to D in the same way they would

in figure 3.1 and then are multicasted to node A, B and C. This offers the advantage of allowing three

nodes to receive a payload while only performing one transmission.

The major challenge in this scenario comes from the fact that each of the multicasted nodes (A, B and

C) have links with different qualities due to their distances, meteorological conditions, Signal to Noise

Ratio (SNR) and other characteristics. This means that packets that are successfully received by one

node may be dropped by another. This challenge and the proposed solution will be explained in more

detail in section 3.4.3.

17

Page 35: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

A

Source

F

E

D

Destination

3

Destination

2

B C

Destination

1

Figure 3.3: Multicast transmission

3.1.4 Distributed transmissions

The major feature of this project is its distributed nature. The intent is to allow a single transmission to

be performed over several links, several nodes, with no fixed requirement over any single route. This

works in a similar manner to a typical peer-to-peer network.

In figure 3.4, an example is shown with a single transmission being performed from node C to A over

several B nodes. Node C has several available links of disruptive nature and will use whichever is

available at each moment to deliver the payload data blocks along the network. This results in not

having to wait for the re-establishment of a specific link to resume a transmission, simply continuing

sending data blocks over whatever links are available.

The benefit of this feature is greater when there are multiple low quality links, but is however less relevant

when a good quality link is available.

A LEO cubesat with access to multiple GSs with low quality links is a case for which this approach could

be very beneficial. Another example would be a Sattelite cluster where Inter Satellite Links (ISL)[23] are

used to sent fragments of a big file to each satellite capable of transmitting the fragment to earth, thus

increasing the overall transmission speed. This could be used, for example, for transmitting the ADS-B

signal captured in space to earth in real-time.

18

Page 36: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

A

Source

C

B

Destination

BB B

Figure 3.4: Distributed transmission

3.2 Requirements

For the development of this project a list of requirements was defined. These are design decisions that

will guide the development of an adequate solution to the presented problem:

• Distributed protocol

The main goal of the project is to create a distributed protocol, capable of maintaining a single

connection over different GSs or satellites, with different links, to transmit as continually as possible

while the satellite line-of-sight time window passes over different geographical spots.

• Bidirectional communication

Communication originated from both the ground-stations to the satellite (uplink), and from the

satellite to the ground-stations (downlink), should be supported.

• Guarantee data integrity

To guarantee data integrity means to be able to detecte if the received data suffered any alteration

while being transmitted. Data corruption is a very common occurrence in radio communications,

specially in such error prone environments has satellite communications.

Data corruption can be detected with the use of a checksum algorithm. Generally this can be

calculated, either at the transport layer level (calculated for each transmitted segment) or, once the

transmission has ended, to the complete receive data, or both.

• Retransmission of broken segment

To detect data corruption is one thing, to deal with it is another. The protocol should, by itself,

detect and retransmit data that was incorrectly received.

19

Page 37: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

• Designed to be used with layer 2/3 CSP Protocol

CSP is a popular protocol designed for nanosats. It supports a connection oriented layer 4 protocol,

network layer 3, data layer 2, and physical layer 1. For the purposes of this project’s distributed

DTN protocol, CSP’s layer 2 and 3 implementation will be used.

• Use non-blocking mechanisms

Since it is expected for the links to be disrupted and reconnected frequently, it is important that the

implementation of the protocol does not leave the remaining program in an active wait state.

• The implementation should work in the same Operating Systems (OSs) where CSP works

CSP implementation currently supports Windows, Linux, FreeRTOS, and MacOSX. The main fo-

cus of this project will be on the Linux and FreeRTOS.

• The development should be performed according to ECSS-E-ST-40C[24]

This standard developed by ESA covers all aspects of space software engineering including re-

quirements definition, design, development, validation and maintenance. By following this stan-

dard, one can produce better quality software, more prepared to be deployed in a real space

environment. This is because this standard reflects the joint experience and knowledge gathered

by ESA during many years of space activity and software development.

3.3 Protocol

The implemented Distributed Delay Tolerant Protocol (DDTP) protocol design was inspired on both the

Saratoga protocol[18] (see section 2) and the peer-to-peer architecture[25].

In this section the term "transmission" will be used to describe a network communication between two

directly connected nodes, and the term "session" to describe a DDTP, distributed, connection that spans

several transmission over several nodes.

The proposed solution must solve the scenarios described in section 3.1. It must outperform the current

solutions, speeding up transmission times by the use of its distributed architecture.

The major purpose of the implementation is the transmission of large data payloads from and to LEO

cubesats, but it is also intended to solve the transmission of data in spacecraft clusters topologies.

3.3.1 Messages

A total of five message are used to communicate between network nodes, these are illustrated in figure

3.5:

• Session Info

This is always the first message exchanged between two network nodes. It is used to describe the

transmission session. Proceeding messages will be related to this session. It is part of the initial

handshake that takes places in the beginning of any communication, that will be explained in more

20

Page 38: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

detail in section 3.3.2. It’s contents include the session destination address, source address and

priority.

• Metadata

Describes a collection of data blocks to be transmitted. This includes the offset of this data blocks

in the overall, distributed, transmission, the data blocks count and the checksums of these data

blocks. This message is always sent after the session info message, during the initial handshake.

• Control

This message is the most unique among the rest, since it is used to send session information

between the two endpoint nodes. These are: the node who has all the data blocks and started the

transmission, and the final destination node. This includes fin, snack, ack flags that inform the

sending node of the termination of a session, a list of data blocks that were not received, and a

sequence of data blocks that were received, respectively. This message represents the only direct

communication that is transmitted between the two end nodes, although, it will most likely need to

be relayed through intermediary nodes.

• Status

Serves the purpose of delivering responses to a node. This is used in the final step of the initial

handshake, in order to inform the node requesting a transmission if this is accepted or not. Multiple

status codes are available for rejecting a transmission in order to inform the node of the reason for

this rejection. This include lack of space, power saving mode, and already processing a priority

transmission.

• ACK

This is a simple acknowledge message. It serves the purpose of reporting to the seeding node

that a sequence of blocks have been received. This information is important so that the sending

node can mark these datablocks as successfully sent and reuse the storage space if necessary.

Metadata

Status

Session Info

Control

ACK

Describes a ongoing transmission between two nodes. This

is used to iden�ty the session and consequently the

des�na�on of the proceeding messages.

Describes a collection of data pieces, requesting the

receiving node to accept the pieces and route them along to

the final destination.

Only processed by the end-to-end nodes. It is used to

deliver connection related information to both ends. This

includes retransmission requests, sacks, fin, ack.

Error and status messages, normally sent as a response to

other messages.

ACK piece message.

Figure 3.5: DDTP Message types

21

Page 39: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

3.3.2 Algorithm

The protocol algorithm is defined by two state machines one for controlling the reception and another

the transmission procedures. Moreover, one of the core rules of a session is that when a block is ex-

changed, the receiving node takes in the responsibility for that block, meaning it should keep forwarding

it along the route that will eventually reach its final session destination.

For route determination each node looks at a table kept in memory. Each entry in the table contains met-

ric, destination and route values. There are several possibilities for how the routing table values could

be determined. The simplest one consists in static values, with a lot more complex examples being

possible, like dynamically changing the table to reflect the best space-link route computed by analyzing

the orbital parameters of a spacecraft orbit[26]. This is however outside the focus of this dissertation.

Data blocks then flow trough the network, in no particular order, until they arrive at their destination. If a

data block does not arrive after a long time (e.g. node crashed or a particular link has been offline for a

long time) the receiving node sends a control message (figure 3.5) with a SNACK flag for the block in

question.

One of the protocol requirements is that it should be usable in low resource embedded systems, so some

compromises need to be made. Instead of identifying each data block that is going to be sent through

a cryptographic-safe hash, like in the case of a typical peer-to-peer protocol, a sequence number along

with the transmission session ID is sent.

Each active node in the network starts in the standby state. This state is where the protocol remains

when it has no work to do, more specifically when it doesn’t have anything to send or receive. There

are two ways to leave this state, either a network communication is received from another node, moving

therefore to the reception state machine (figure 3.7), or a request for a new transmission of data is

received from the upper layers of software, moving the protocol to the sender state machine (figure 3.6).

This process also moves the receiver into the pre recv session info state and the sender to the pre

send session info state.

In every exchange between two peers the Session info message (see figure 3.5) is always the first one

sent. This message describes the session in question, its identification (the source address, session id

pair) and priority. The transmission and reception of this message moves the receiving peer from the

pre recv session info to the pre recv state, as illustrated in figure 3.7.

If the sender intends to send data blocks, it will move to the pre sending state, but if a control message

is to be sent, it will move to the send control state, as illustrated in figure 3.6.

In the case of a control message, the receiver moves to the control state. At this point the receiver can

send a message either accepting or rejecting the control message. If the message is rejected, it is up to

the sender to find another route for delivering it to it’s destination. If however it is accepted, the receiver

will store the message and forward to its destination. This moves both machine states to the end state.

Control messages are only processed by the end-to-end transmission peers, every other peer will not

look into its contents. The only exception to this rule is control messages with a retransmission flag.

These may trigger a data block transmission in a intermediary peer if the peer contains the data block in

22

Page 40: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

storage, either in alive or zombie state (see section 4.1.5).

If a metadata is received, however, the receiver move to the pre recv 2 state, will parse it and retrieve the

information about the data blocks that the sender intends to send. The sender on its hand will move to

the pre sending 2 state. The receiver will respond with a status message reporting if the transmission

is accepted or not. Reasons for rejecting include lack of storage space, no route available for the session

and power saving modes.

If the transmission is accept, however, the sender move to the sending state and starts sending the

data blocks described in the metadata message until completion or the link drops, while the receiver

move to the recv state and receives the mentioned data blocks.

Pre_send

Session_infoPre sending

Pre sending

p2Sending

Send ControlSend Session_Info

Recv Status(reject)

Recv Status(accept)Send Session_info Send Metadata

Standby

End

Send next block

Recv last ACK

End

Recv Status(accept) and queue message

Recv Status(reject)

Figure 3.6: DDTP sender process state machine

Pre_recv

session_infoPre_recv Recv

Control

Recv Session_info

Pre_recv2

Recv Metadata

Sent Status(Reject)

Sent Status(accept)

Standby

Recv Control

Recv next block

End

Sent last ack

End

Send Status(reject)

Send Status(accept) and mark message has sent

Figure 3.7: DDTP receiver process state machine

23

Page 41: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

3.4 Application Scenarios operations

Taking in consideration the scenarios described in section 3.1 and the solution proposed in section 3.3,

the operational behavior of the developed protocol will now be explained in each scenario. This is a

theoretical description that will focus on the more technical aspects, experimental results will presented

in chapter 5.

3.4.1 One-to-one transmissions

Even though the first scenario is the most simple one, and it is already solved by the current solutions,

it is still very relevant. This is because it allows one to test the protocol algorithm in a simple case first,

before going to the more complex scenarios, and because it allow one to compare the proposed solution

performance with the current solutions in the same context.

In figure 3.8 a simplified Message Sequence Chart (MSC) of a transmission between two, directly con-

nected, nodes is depicted. In this example, node A initiates the transmission by sending a session info

and metadata messages. The session info describes the session itself. It contains the addresses,

priority and session id (data structures will be explained in section 4.1.5). The metadata message de-

scribes the data blocks that will be sent in this particular transmission.

The receiver (node B) after receiving these messages will have all the information it needs to "decide" if

it is able to accept and forward along the data blocks.

Since in this particular example node B is the final destination, it will sent a status message informing

node A that it accepts the transmission. After this node A starts sending data blocks.

This process is very similar to the one described in section 2.2. This is to be expected since they are

both solving the same scenario. The DDTP exchange however requires a higher network overhead

since more metadata is sent. This may be decremental in this particular scenario, but will result in a

much higher total throughput in the new scenarios.

Session info

Metadata

Status

Data

Data

Ack

A B

...

Figure 3.8: MSC One-to-one transmission

24

Page 42: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

3.4.2 Multi-to-one transmissions

A generalization of the previous scenario is the processing of multiple transmissions in parallel. This

means that the protocol implementation should be able to handle the simultaneously reception of mes-

sages from different sessions.

In figure 3.9 an example of this is showed. Nodes A and C have data blocks to send along the network

and have selected node C as the next hop, simultaneously. Just in the previous scenario, they sent a

session info and metadata message to node B, describing the transmission itself and the data blocks

that they intend to send. At this point, node B parses this data and responds with a status message,

ether accepting or rejecting the requested transmission.

In this example, node B has accepted both transmissions (this can be observed since node A and C

proceeded by sending data blocks), but it could also had been the case that transmission A would had

been rejected, or transmission B, or even both. Reasons for a rejection include not enough memory for

storing the offered data, energy conserving modes and a priority transmission is already using the link.

Session info

Metadata

Status

Data

Data

Ack

A B

Session info

Metadata

Data

Data

C

Status

Ack

... ...

Figure 3.9: MSC Multi-to-one transmission

3.4.3 One-to-multi transmissions

In figure 3.10 an example of this scenario is displayed. The major difference in this scenario is the usage

of multicast messages. This means that one cannot rely on the receivers acquiring all the messages

(there is not re-transmissions at the transport layer). This means that the data messages need to be

sent together with the information about the DDTP session. This is displayed in the example figure, over

the RDP layers, the necessary fields are inserted in the DATA message. There is offcourse no way to

ensure that all the data blocks arrive at all the receivers correctly, but for this the retransmission message

explained in section 3.3.1 will be use by the receiver to request a normal, unicast, retransmission of the

mission data blocks.

25

Page 43: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

DATA

Session

InfoSequence

RDP Multicast

CSP Multicast

AX25

Figure 3.10: One-to-multi transmission

3.4.4 Distributed transmissions

In this section, while using the concepts introduced in the previous scenarios, a distributed transmission

will be explained. In figure 3.11 an example is illustrated, where each black arrow corresponds to a

one-to-one transmission (explained in section 3.4.1) and each red arrow represents a link drop. The

example is divided in three steps, A, B, and C that correspond to three transmission opportunities in

an orbit. The example corresponds to a spacecraft (ISTSAT-1 in the figure) downlinking to earth a data

payload through multiple GSs. This is the major use case for which this protocol was developed.

When the spacecraft (ISTSAT-1 in the figure) goes over the first GS (GS1 in the figure) it obtains its first

transmission opportunity. During this time windows the ISTSAT-1 will transmit as much as possible of

the data blocks until the link drops and it is forced stop. This pieces are then sent from the GS1 to the

Mission Control Center (MCC) server through the Internet.

An important thing to notice is that even though, in this example, multiple transmission will occur over

different links, in a distributed manner, each individual transmission is performed in the same way as a

one-to-one transmission from section 3.4.1.

This process repeats two more time in step B and C until all data blocks are sent and reassembled in

their final destination, the MCC server.

Another interesting possible example is the transmission of data to earth from a cluster of cubesats. This

is illustrated in figure 3.12, where the blue spacecraft, in order to transmit the data to earth, needs to

forward the data through the remaining spacecrafts. The non-dotted lines represent good quality links,

which are spacecraft-to-spacecraft and earth communications, and the dotted lines represent low quality

disruptive links, which are spacecraft-GS communications.

This example can also be solved by the distributed transmission procedure, where the first spacecraft

(marked with an A in the figure) will first transmit the data to other spacecrafts that can reach earth,

26

Page 44: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

who will in turn, according to their transmission opportunities, forward the data to earth. The spacecraft

selection depends on the route algorithm used, as explained in section 4.1. If two or more GSs are at

transmission range of the spacecraft, the selection of which will be used will also depend on the route

algorithm. Transmission collisions are avoided since all packets are addressed to a single receiver.

ISTSAT-1 GS1ISTSAT-1 GS2 GS3 MCC Server

Link Drop

Link Drop

Link Drop

Transmission

Transmission

Transmission

Transmission

Transmission

Transmission

A)

B)

C)

Figure 3.11: MCC Distributed Transmission

27

Page 45: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

A)

B)

Figure 3.12: Distributed transmission - cubesat cluster example

3.4.5 POCKET++

Pocket++[27] is a lossless compression algorithm developed by ESA, designed for spacecrafts with

few resources. It is able to achieve a good compression ratio, specially on data payloads with period

information, such as is usually the case with spacecrafts telemetries. For the ISTSAT-1 however, the

POCKET++ compression will be used for compressing the captured ADS-B records, and thus it should

work together with the DDTP protocol.

Since DDTP does not look into the contents of the data payload it is transmitting, there is no need

to adapt its architecure to support Pocket++. There are however some requirements for transmitting

Pocket++ compressed data, of which the major one is that the data being compressed must be divided

into periodic, fixed sized, frames. This means that the usage of Pocket++ over DDTP can impact the

transmission quality, since each frame can only be decoded after it is completely received. The impact

of such combination will be explained in chapter 5.

28

Page 46: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Chapter 4

Implementation

Any software project should enforce a clearly defined set of methodologies, tools and procedures to be

used in its development. This very important for the success of any engineering project, but particularly

in a project like this, that not only features a lot of members working together, from different engineering

and professional backgrounds, but also where any error or mistake can be fatal, like it is typically the

case in space related projects.

In this section the complete methodology employed in the development of this project will be explained

in detail, some originating from the ISTSAT-1 project, others from the ESA FYS programme and some

from the DDTP project itself.The implementation will also be explained in detail. This includes all the

design decisions that where made to accommodate the specified requirements in the best way possible.

4.1 Software Architecture

The software development was divided in three modular sections: protocol, route and storage, as pic-

tured in figure 4.1. These were implemented in the form of independent software libraries, containing

the core protocol implementation, the route calculation, and the payload data storage module, respec-

tively. This approach was used be the DDTP implementation is designed to be used in different kinds of

systems, with architectures and capabilities.

The storage lib creates an abstraction level between the protocol lib and the selected storage medium,

this results in an implementation that is not only designed for one storage method but can be more easily

ported to multiple. In the illustrated example two mediums are available: RAM and flash storage.

The route lib offers an interface for accessing the routing table and dynamically updating its entries if

such is desired, allowing, due to its modular nature, the implementation of multiple route calculation

algorithms.

The protocol lib contains the actual software implementation of the DDTP protocol, including its algo-

rithms and messages.

The application level software can be any software that needs to perform a DDTP transmission. The

only requirement it needs to fulfill is to interface with the protocol library in order to perform a DDTP

29

Page 47: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

transmission.

Protocol Lib

DDTP

Application

RAM Storage

Storage Lib

Storage

Flash Storage

Route Lib

Algorithm BAlgorithm A

Routes

Figure 4.1: DDTP modules

In figure 4.2 a simplified version of the software structure is illustrated. The project was divided into

ten major files (more were used but are omitted here for the purpose of clarity and lack of relevance).

These are:

• ddtp

The main file that gives the upper layers of software access to the DDTP protocol. This includes

functions as ddtp_recv and ddtp_send that serve the purpose of queuing data to be sent and

received. In the example figure 4.2 these functions are being called by the main function.

• ddtp_sm

The file that contains all the information related to the DDTP state machines explained in section

3.3.2.

• ddtp_conn

This file defines the structures and functions related to each connection being processed. Together

with ddtp_sm, this two files contain most of the internal state of the program when it is running.

• ddtn_messages

Defines all the protocol messages, its construction, serialization and parsing.

• ddtp_rtable

The protocol routes are stored and processed here. Can use external files as source of the routing

algorithm.

• ddtp_storage

Defines all the functions and structures related to the storage of data blocks. Can use external

files to defines new storage mediums.

• ddtn_net

All access to the lower network layers are defined in this file. The purpose of this file is simply to act

as an interface to the actual files that defined each network layer. Depending on the compilation

options and interface in question different network layers will be accessed.

30

Page 48: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

• ddtn_net_rdp

The file that implements the access to the actual RDP protocol. The real RDP protocol processing

is done inside the libcsp C library.

• ddtn_net_inet

The file that implements the access to the TCP/IP protocol.

• ddtn_net_omnet

The file that implements the access to the OMNET simulated TCP/IP and UDP/IP protocol.

app

ddtp.h

ddtp_sm.h

ddtp_net.h

ddtp_inet.hddtp_rdp.h ddtp_omnet.h

libcsp.h omnet_inet.hsocket.h

ddtp_messages.h

ddtp_rtable.h

ddtp_storage.h

ddtp_conn.h

main()

ddtp_create()

ddtp_init()

ddtp_halt()

ddtp_send()

ddtp_recv()

ddtp_close()

ddtp_net_recv()

ddtp_net_send()

ddtp_net_accept()

ddtp_net_create()

ddtp_net_close()

ddtp_net_bindandlisten()

ddtp_net_init()

ddtp_net_halt()

ddtp_accept()

ddtp_task()

... ...

...

...

...

... ... ...

... ... ...

Figure 4.2: DDTP software architecture

4.1.1 Multi platform

One of the DDTP protocol requirements is the support of multiple OSs. To achieve this, an architecture

similar to the Libcsp was used. All system related functionality is isolated in separated modules, one

31

Page 49: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

for each different OS. Every time a system related call is required by the software, instead of directly

accessing a particular system interface (which would result in system lock-in), an internal DDTP inter-

face module is called. This interface, called Operating System Abstration Layer (OSAL) in figure 4.3, will

select the module of the particular system being called, make the necessary adjustments according to

the system features and limitations, and execute the system depend functionality. This abstraction layer

offer the possibility of easily porting the software to different platforms by only creating a new platform

specific module that implements the specified interface. Without this technique it would be necessary

to perform deep and unclear modifications to the source code, with a high probability of creating new

problems and bugs. The compilation procedure was designed so that one is able to only include the

modules corresponding to the necessary platforms, thus reducing the compiled executable size and

memory footprint. Despite the OSAL interface, an effort was made to avoid using functionalities that

were not available in all the targeted platforms, since doing so would require the development of this

functionalities in the modules where it was unavailable. Particularity the FreeRTOS platform is much

slimmer in terms of functionality than the remaining platforms.

This design follows the common mentioned software development principle: The code should be de-

signed to be extended, not modified.

Modules for three different platforms were developed, which will be explained bellow, but more could be

easily created.

Protocol Lib

DDTP

FreeRTOS Linux OMNETPP

Operating System Abstraction Layer (OSAL)

Figure 4.3: DDTP software platform architecture

4.1.2 Linux

The first platform for which the DDTP protocol was developed was Linux. This was the most obvious

choice since all the development was done in Linux and it is also the most convenient system for execut-

ing all the tests described in section 4.7, that were essential to maintaining the project quality. Moreover

the ISTSAT-1 GS will running Linux, making it a very important platform for this project.

32

Page 50: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

4.1.3 OMNET

For the purpose of testing and performance analysis the OMNET simulator was used. This simulator

interfaces with the DDTP project twice, one for sending and receiving messages through the simulated

network, and another for executing the protocol and the associated application itself. Since a simulator

can create events, artificially accelerate the simulation time and extract data from the execution, such

integration is necessary. For the protocol interface the OSAL level was used, like the other implemented

platforms. The simulator itself was executed in Linux.

4.1.4 Multi Network stack

The DDTP protocol is being developed under three different network stacks: TCP/IP, CSP/RDP and

OMNET’s simulated TCP/IP stack. This is illustrated in figure 4.4 where, in similarity to the approach

used for the multi-platform problem described in section 4.1.1, an abstraction layer was used. This layer

was named Network Protocol Abstration Layer (NPAL) and it abstracts every access between the DDTP

protocol and its lower network stacks. This allows one to easily extend the project with new network

stacks, add and remove stack modules without breaking the project (something very useful for memory

constrained systems) and have multi stack compilations. This modular approach also allows one to test

each module in isolation, something very useful for pinpointing problems early on.

Protocol Lib

DDTP

TCP/IPV4 RDP/CSP OMNETPP

Network Protocol Abstration Layer (NPAL)

Figure 4.4: DDTP - Network Abstraction Layer

Multiple network stacks are necessary for this project since communications will travel over two very

distinct mediums, requiring different protocols. In figure 4.5 the multiple stacks are illustrated, where

depending on the different medium, either the RDP/CSP or TCP/IP stacks will be used.

The CSP/RDP stack is useful for space-link communications, like the ones between GSs and space-

crafts or spacecraft-spacecraft. This is due to its simplicity and low overhead. In this scenario the major

concern is the quality of the link and not its congestion, in contrast with the typical earthly communication

scenario like Internet connections.

33

Page 51: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Data Link

Network

Transport

Bundle

Application

Specific for each

network region

Common over across

all network regions

AX25

CSP

RDP

DDTP

App

Ethernet

IP

TCP

DDTP

App

OMNETPP

Simulator

DDTP

App

Figure 4.5: DDTP Network stack

AX25

CSP

RDP

DDTP

App

AX25

CSP

RDP

DDTP

AX25

CSP

RDP

DDTP DDTP

App

Ethernet

IP

TCP

Eth

IP

TCP

Figure 4.6: DDTP Multi stack transmission

The TCP/IP stack is, on the other hand, appropriate for Internet connections and is being used for the

purpose of inter connecting GSs. Both TCP and RDP protocols offer guaranties of integrity, message

order and delivery acknowledgment. These are the minimal requirements for a network stack running

the DDTP protocol.

The OMNET stack is only used for testing, debuging and performance evaluation purposes. It comprises

of a simulated TCP/IP stack that runs inside the OMNET simulator.

A single transmission can flow trough more than one stack as long there is a multi-stack node, like it is

illustrated in figure 4.6. The nodes with multi stack capabilities are called gateways and are necessary

for enabling communications between the different mediums.

4.1.5 Data structures

Each DDTP session is defined by four parameters:

• Source and destination address

These addresses identify the nodes sending and receiving the data, respectively. These identify

uniquely the nodes and are not related to their OSI Layer 3 addresses. Since the DDTP protocol

was developed to work with big networks, something specially relevant in the case of cubesat

clusters, this address has 32bits in size. Although, since the implementation was designed to be

configurable, the size could be easily changed without requiring software adaptations.

• Session ID

34

Page 52: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

This is a counter of how many sessions a node has initiated. Each node stores this value for its

own sessions. Together with the source address the session id identifies uniquely a session. This

pair of values is always the identification used for a session, and is sent in the metadata message

in the beginning of a transmission, as explained in section 3.3.1.

• Priority

Represents the priority value of a session related to other sessions that may be executed in parallel

over a single link. This is an optional field.

In addition to these, a data block counter is used to identify each data block in a session. This is neces-

sary since data blocks do not arrive in an orderly fashion, due to the distributed nature of the protocol,

and to identify block in retransmission requests. In a regular Peer2peer protocol, a cryptography-safe

computational digest would be used for both identifying the block and confirming their integrity. Although

this solution is more elegant, it is not feasible in a cubesat like system where processing power is very

limited, so the mentioned solution was chosen.

Each data block stored in by a peer can be in three different states:

• Alive

A datablock relative to a session is stored. And, as such, needs to be forwarded to the next peer

in route to its destination.

• Dead

The structure is free and can be safely used.

• Zombie

The datablock is free and can be used, but contains a valid data block of a session. When a

node transmits a data block to another one, it no longer needs to store it, but there is however

no cost associated with keeping the data stored. Because of this, the data block state is simply

changed to zombie and all software references to this block are maintained. Besides keeping this

data available, even though it has already been sent, its real advantage comes from the fact that

in the event of a retransmission request from the session destination node, the data block can be

recovered and retransmitted at no added cost.

The project was developed with the intent of being highly customized. For the Linux implementation a

key/value configuration file can be used to configure the software with all the possible parameters. This

allows one to change the configurations without having to recompile the software. This can be very

useful for GS configurations.

For embedded systems however, like the ones using FreeRTOS, this solution is not possible. So the

same parameters needs to be defined by hard-coding them in the software before uploading the resulting

binary executable to the system.

These parameters include the following values:

• interfaces

35

Page 53: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

• interface costs

• routes

• gateway

• network stacks

• log level

• addresses

4.2 Programming language selection

One of the first decisions that it was necessary to make, was selecting the programming language to be

used in the project development. A crucial decision that by itself establishes a lot of the project develop-

ment foundations. There are two major requirements in the development of software to be deployed in

a spacecraft: Reliability and low resource usage. Particularly in a Cubesat the resources available are

very limited.

In terms of resource usage, the C programming language as a clear advantage. By being a very low

level language (sometimes even referred as high level assembly) its overhead is minimal, the available

compilers produce very optimized machine code and it allows the programmer to access low level infor-

mation that can be used to write more optimized code in certain instances. All this comes at the cost of

programming complexity however.

For this requirement all the modern, very popular, high level languages as Java, Python and Ruby are

completely out of question. They would bring great benefits, not only by allowing the programmer to

write less complex, more easily understandable and maintainable code, but also due to the security and

robustness that their automatic memory management offers (the majority of errors in C written code

originates during memory and pointers operations). However this advantages come at the cost of a very

high level, resource demanding system, that is not acceptable for a Cubesat like the ISTSAT-1.

In terms of reliability the C programming language is a very well known and tested solution. Its been

constantly used by the industry since it was first developed in 1972, there are many well test, constantly

in use, freely available compilers and has a lot of space heritage. Its lacks however a memory manager,

thus requiring the programmer to perform all the memory accesses itself. This is typically a cause of

many problems. The use of strict coding rules and guidelines (like the ones specified by NASA or ESA)

can however greatly reduce this risk.

The C programming language is also the most portable by far. Whichever combination of Center Pro-

cessing Unit (CPU), Instruction Set Architecture (ISA), and hardware one selects, there will probably be

a C compiler available. Since the ISTSAT-1 is still in development, this is an important factor. This also

allows one to easily share code between different subsystems in the spacecraft and on earth.

Considering the overall scenario, the C programming language was chosen for the development of this

36

Page 54: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

project. Not only does it fulfill the needed requirements, but along with its space heritage and portability

it makes a very solid choice.

4.3 Build tools

Since the project needs to be compiled and build in several different configurations, both due to its

modular software approach explained in section 4.1 and supporting multiple platforms a flexible solution

for compiling the project was required. The cmake tool was chosen due to its reliability from being a well

tested and wildly used solution that is also multiplatform. The gitlab automatic test suite was also used,

this not only allows the frequent build of different versions of the software during its development, but

also running code analysis and several tests frequently.

4.4 Code Analysis

There are two types of code analysis that are of great benefit to any software project: Static and dynamic.

Both were used in this project.

4.4.1 Static

For static analysis two tools were used, an Integrated Development Environment (IDE), named Inteljea

Clion, and the clang compiler static analysis tool. These tools offer different advantages and are better

used together.

The clang compiler static analysis tool, however offers a slower but more deep insight into the state

of the written code, checking for more complex bugs, coding styles inconsistencies, and other hard to

track problems. These include checking for out of bounds, memory leaks, uninitialized variables and

functions, cast problems, initialization problems, null pointers and some others.

4.4.2 Dynamic

For dynamic analysis two tools were used, GNU Debugger (GDB) and Valgrind. The GDB, a well known

tool, allows one to monitor, pause, and edit the developed software during its execution. Valgrind on the

other hand is a dynamic analysis tool capable of detecting memory leaks, uninitialized or un-allocated

memory usage. This is extremely important for a project such as this, software bugs can be critical.

4.5 Documentation

A common problem that occurs in many software projects is the lack of documentation. Even a very

well developed project can become unusable if there is no record of how it can be used. Particularly in

complex or critical project (like space related ones) this requirement becomes even more serious. To

37

Page 55: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

solve this problem two types of documentations were produced: Software reference documentation and

Design documentation.

4.5.1 Software reference

Software reference documentation is a type of document that describes in detail the full API (ideally

both internal and external to the project) of the developed software. This should detail all the relevant

information about the project functions, variables, directories, files and anything else that may be rele-

vant. This can be a daunting task, but if one uses the proper tools and consistently keeps documenting

the developed software throughout the project, it becomes a simple task that will greatly improve the

project’s quality.

To achieve this purpose the Doxygen1 software was used, a tool that generates reference documenta-

tion from analyzing annotated C source code. This results in both consistently documented code, in a

standard format, and the production of a very detailed reference documentation.

4.6 Source Code Version Control

Using a source code version control tool is not necessary for any software project, but it was also

highly recommended by the ESA FYS program. It allows one to keep a commented history of all the

modifications done throughout the project, allows a hole team to work collaboratively while keeping a

backup copy in a server.

Initially subversion was used and latter the project was moved to git. Both tools are fine to use for

this project, with the git tool being a more optimized, distributed solution and subversion working in a

classical, centralized, server-client model. A git related tool called gitlab was used to complement the

source version control with some other features like automatic testing capabilities that will explained in

more detail in section 4.7.

4.7 Testing

Constant and thorough testing is a fundamental part of any software project, but it is even more important

when it is space related. For the development of the DDTP protocol two types of tests were used Unit,

and load tests.

• Unit Test

Unit testing is a technique for checking and maintaining the developed code quality. For each unit of

code, normally this can be functions, files or modules, one or more tests are developed. These will

execute the unit with different input values, test its execution intermediary values through assert

statements, and test the resulting output. This simple concept allows one to test the software

with a very small granularity. This is very important in order to find problems early, precisely, and

1https://www.stack.nl/~dimitri/doxygen/

38

Page 56: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

throughout the development of the project. New problems and bug can be discretely introduced

each time one changes to a project.

To perform this task an open-source C lib was used called munit 2.

• Load tests

To ensure that the software is capable of functioning correctly when its operational limits are

reached, load test are used. Theses tests run several executions of the software in limit push-

ing situations (eg. over maximum connection requests, very high delays, very small delays) and

assert whether the software is able to deal with this situations without deriving from following the

specification (eg. crashing).

To achieve this a simulator was used. Due to the exotic nature of this protocol (distributed radio

communications) fully non simulated executions are challenging, and since an important factor of

any kind of software test is to be able to execute it frequently, OMNET a network simulator was

used. The usage of this simulator and its related environment will be explained in section 5.

4.8 Development Environment

All the software development was done in a Linux OS, with the remaining platforms and network stacks

being implemented at a second stage. The first execution corresponded to simply running unit tests,

which progressed to localhost transmissions until it was necessary to use a network emulator to execute

more complex scenarios.

For the purpose of executing the complete developed protocol (as opposed to the unit tests, that execute

small unit individually), the OMNET3 was used. This software simulates a network typology, allowing one

to prepare big and complex networks, both wired and wireless, with programmable event, while allowing

the nodes to execute arbitrary C++ software. This means that it was possible to adapt the DDTP protocol

to run in the simulated nodes of a OMNET network.

Other possibilities were also considered, like the Netkit4 simulator, that even though it is a less powerfull

solution compared to OMNET it does not require the implementation of a new network interface, as

uses the TCP/IP Linux interface. This however proved not to be a sufficiently capable solution for the

scenarios that needed to be emulated.

In term of programming practices. a Keep It Simple and Stupid (KISS) approach was used, the clang-tidy

tool was used for setting and keeping a code format and the ESA coding standard for space software

was followed, in order to keep the software at a level of quality necessary for space deployment. One of

the key requirements of this standard is that one should not use any type of dynamic memory allocation.

All the memory resources should be allocated at the beginning of program execution. This is not only to

avoid the typical memory allocation bugs but also to allow one to easily calculate how much memory the

software will use, an important metric since spacecrafts tend to be very resource constrained.

2https://github.com/nemequ/munit3https://www.omnetpp.org/4http://wiki.netkit.org/man/man7/netkit.7.html

39

Page 57: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

40

Page 58: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Chapter 5

Experimental evaluation

In order to validate and quantify the reliability, functionality and quality of the designed solution, a set

of tests were performed. These are divided into the scenarios described in section 3.1 so that one

can confirm and analyze the core features of DDTP. Since the characteristics necessary for testing a

distributed DT protocol (such as high latency, high error rate, link disruptions, distributed network) are

difficult to emulate in laboratory, the OMNET network emulator was used to create a simulated network.

To add more value to the obtained values and compare them to the current available solutions, a publicly

available saratoga reference implementation was evaluated in the same scenarios. An unmodified copy

of its C++ implementation1 was used at revision 56b9f1.

In figure 5.1 the simulated topology used for the following tests is illustrated. Each node of the network

is connected to each other by a bidirectional channel with a datarate of 10KB/s, where links can be

disconnected during a transmission, through scheduled events, or even before the simulation (forcing a

transmission to follow a particular route). All nodes in the topology are running the same DDTP imple-

mentation, with same the upper layer software (see figure 4.3). They do however contain different route

and network configurations, since they are placed in different network positions. It should be noted that

node A and B are the only two nodes that contain more than one link, and so, have the possibility of

using another network route.

1https://sourceforge.net/p/saratoga/saratoga-vallona/ci/default/tree/

41

Page 59: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Link α

Link βA

B

C

DLink δ

Link γ

Figure 5.1: Testing simulation topology

5.1 One to one

In order to measure the performance of both protocols in a one-to-one scenario, using the topology

illustrated in figure 5.1, multiple transmissions were performed between node A and B, exclusively over

link α (link β was disconnect), with multiple data payload sizes. All the values obtained in this section

were captured in the network interface of node B.

In figure 5.2 the DDTP and Saratoga transmissions are illustrated, where one can observe that the trans-

mission time increases linearly with the payload size. In this scenario the Saratoga protocol is clearly

faster, which is to be expected since it uses less metadata due to its decreased functionality compared

with DDTP. However, even thought the difference is relatively small, this means that in a exclusively

(combinations are possible) one-to-one scenario, a simpler protocol like Saratoga is preferable.

In table 5.1, the values of the transmission are displayed, with DDTP achieving an average throughput

of 8.909KB/s and Saratoga of 9.295KB/s.

Table 5.1: One to one transmission

Time (s) Throughput (kB/s)

Size (KB) DDTP Saratoga DDTP Saratoga

100 11.9 10.6 8.4 9.4

200 22.8 21.4 8.8 9.3

300 33.1 32.1 9.1 9.4

400 44.1 42.9 9.1 9.3

500 55.0 53.4 9.1 9.4

1000 111.7 109.4 8.9 9.1

2000 222.1 218.7 9.0 9.1

42

Page 60: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

0

10

20

30

40

50

60

0 100 200 300 400 500 600

Tim

e (

s)

Data payload (KiB)

DDTP

Saratoga

Figure 5.2: DDTP vs Saratoga - One to one

5.1.1 One to one - Delay tolerant

Another feature that requires verification is the DDTP DT capabilities. Again, the transmissions were

performed between node A and B (5.1), exclusively through link α (link β was disconnect), with a 200KB

data payload, and all traffic was captured at the network interface of node B.

In figure 5.3 the DDTP transmission throughput is displayed in function of the time, where each point in

the chart corresponds to a 1 s average of the throughput. A link disruption was scheduled at the 5 s mark,

causing an unexpected interruption in the transmission. This forces the transmission to pause, waiting

for the link re-connection, since no other routes are available. As can be observed in the mentioned

figure, from the 5 s mark to 53 s no data was transmitted. At that point the link reconnection is detected

and the transmission is resumed, finishing at 72 s.

As was desired, the property of being able to pause and resume a transmission according to the link

availability was validated. This is one of the core requirements of the developed protocol.

In figure 5.4 the same experience, in the same conditions, was repeated with the Saratoga imple-

mentation. Here the link is once again disconnected at the 5 s mark, reconnecting at 20 s. Similarly to

DDTP the transmission was able to pause and resume accordingly to the availability of the link.

43

Page 61: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

0

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

0 10 20 30 40 50 60 70 80

Th

rou

gh

pu

t (B

/s)

Time (s)

Route A

Figure 5.3: DDTP DT transmission

0

2000

4000

6000

8000

10000

12000

0 5 10 15 20 25 30 35 40

Th

rou

gh

pu

t (B

/s)

Time (s)

Route A

Figure 5.4: Saratoga DT transmission

44

Page 62: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

5.2 Multi to one

In order to validate DDTP abilities in a multi-to-one scenario two transmissions were performed. Using

the same topology from the previous section (see figure 5.1), two transmissions of a 200KiB data pay-

load were performed simultaneously. One from node B to D, over link γ, and another from node C to D

over link δ. It should be noted that in this experiment node D is receiving both transmissions at the same

time. Link α and β were disconnected to ensure that no traffic goes through node A.

The experiment was performed with both DDTP and Saratoga separately, as ilustrared in figure 5.5. The

DDTP took a total of 44.796 s and Saratoga 42.783 s. It is to be expected that Saratoga achieves a better

result in this case since, similarly to the results in section 5.1, it uses less metadata in its messages.

The real advantage of DDTP will be observed in the experiments performed in more complex scenarios

that will be described in the following sections.

0

2000

4000

6000

8000

10000

12000

0 5 10 15 20 25 30 35 40 45 50

Th

rou

gh

pu

t (B

/s)

Time (s)

DDTP

Saratoga

Figure 5.5: Multi to one - DDTP vs Saratoga

5.3 One to multi

Using the topology illustrated in figure 5.6, with a 10 kB/s channel that directly connects node A, B and

C, a 200KiB transmission was performed. This transmission originated from node A to, simultaneously

node B and C. This corresponds to a one-to-multi transmission as defined in section 3.1. The transmis-

45

Page 63: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

sion is illustrated in figure 5.7. It is important to note that this case is very different from the remaining

scenarios. This is because, since messages are sent in multicast, there is not confirmation from the

recipients of their correct arrival (i.e. an ACK message). To solve this problem, recipients will send

retransmission requests for missing or corrupt data blocks.

In this particular case, two copies of the same 200KiB data payload were sent to node A and B in a total

of 20.887 s. The alternative to this woud be to perfom 2 one-to-one transmissions.

Looking at table 5.1, one can see that DDTP took 22.8 s to perform a one-to-one transmission of a

200KiB payload. This means that to solve this scenario with only one-to-one transmission, it would be

necessary to perform two equal transmissions taking a total of 45.6 s.

In this scenario DDTP’s multicast mechanism clearly offers a much more optimized solution.

A

B

C

Figure 5.6: One to multi topology

46

Page 64: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

0

2000

4000

6000

8000

10000

12000

0 5 10 15 20 25

Th

rou

gh

pu

t (B

/s)

Time (s)

Figure 5.7: DDTP - One to multi transmission

5.4 Distributed

To validate DDTP main feature, its distributed property, a transmission of 200KiB was performed be-

tween node A and D, using the topology illustrated in figure 5.1. All links and nodes were connected at

the beginning of the simulation, with a link disruption scheduled for link α. Node A has two routes for

reaching node D: Route A through link α; and route B through link β. Unlike what happened in section

5.1.1, where only one route was available and so node A was forced to pause the transmission, when

the disruption occurs the transmission should resume through route B.

In figure 5.8 this experiment is illustrated, where each point in the chart represents a 1 s throughput

average. When the link α is disconnected, at the 9 s mark, the transmission through route A stops. At

this point any current solution would proceed by simply pausing the transmission and waiting for the link

restablishment. This is the behavior observed in figure 5.4 by Saratoga. Unlike Saratoga, however, the

DDTP resumes the transmission through route B as soon as it detects that route A is no longer avail-

able. The result of this is the full transmission finishing in under 30 s. The simpler DT approach used

in section 5.1.1, with the same data payload, resulted in a 72 s transmission time, this corresponds to

a huge improvement on DDTP part. It should also be taken into account that for bigger link disruption

times this difference is higher, increasing linearly with the link disruption time.

47

Page 65: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

0

100

200

300

400

500

600

700

800

0 5 10 15 20 25 30

Th

rou

gh

pu

t (B

/s)

Time (s)

Route A

Route B

Figure 5.8: DDTP distributed transmission

5.5 Compression

In section 3.4.5 the Pocket++ compression scheme was introduced. Since the ISTSAT-1 will compress its

mission data with this software, the DDTP should be tested with it, not only to confirm its compatibility but

also to measure its performance. To this effect, a sequence of 2262 spacecraft telemetry messages were

transmitted between node A and B, in the topology illustrated in figure 5.1, first in their original format

and then compressed by Pocket++. The original message sequence accounted to a total of 277KiB,

and the compressed version 68KiB, resulting in a ∼4.07 compression ratio. Since the messages used

correspond to samples from a spacecraft telemetry, a high compression ratio is to be expected. This is

because it is normally the case for telemetry to contain repetitive or similar values over time. The results

of this transmission are displayed in figure 5.9. The original messages took 30.975 s to finish while the

compressed version only took 8.382 s.

This test results can be extended to the, more complex, distributed scenario. This is because it makes

no difference to DDTP the kind of data payload it is transmitting (whether it is compressed or not).

In the case of ADS-B messages, their content is very repetitive by nature. This is because their

fields (e.g airplane ID, geographical coordinates, flight number) contain information within a fixed range

of values. Moreover, this is specially true for a set of airplanes geographically close to each other, which

will be the case for the ones tracked by ISTSAT-1. Due to this, it is expected that, much like the example

above, Pocket++ will provide a high compression ratio when applied to ADS-B messages.

48

Page 66: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

0

2000

4000

6000

8000

10000

12000

0 5 10 15 20 25 30 35

Th

rou

gh

tpu

t (B

/s)

Time (s)

Uncompressed (277KB)

Pocket++(68KB)

Figure 5.9: Pocket++ transmission

If one were to configure the ISTSAT-1 mission module to only track a particular airplane, or a small

collection, the compression ratio would be even higher, since not only would some of the message field

remain constant, such as the airplane and flight identification, but fields like the geographical coordinates

would change in a incremental fashion. Thus increasing their recursive information.

49

Page 67: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

50

Page 68: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Chapter 6

Conclusion and future work

A Cubesat is a very resource constrained type of spacecraft, with low energy reserves, small solar pan-

els, and low communication and processing capabilities. Due to this, the development of a Cubesat

offen requires very optimized solutions. The ISTSAT-1 mission is to perform a feasibility study of the

use of cubesats for receiving ADS-B signals from traveling airplanes. A safety system that broadcast

information from each airplane. It then needs to transfer the processed ADS-B information to earth,

through one or more GSs. Since cubesats are typically launched in LEO, they have a very fast traveling

speed (close to 8 km/s), that results in a very small time window (under 20min) to communicate with the

GSs on earth. Current solutions solve this problem by operating in a DT fashion.

This project proposes a new approach, the development of a distributed DT protocol, capable of per-

forming the same tasks already being solved by the current solutions but in a much more optimized way,

increasing the overall speed at which data can be received. This solution is not only appropriate for

spacecrafts like the ISTSAT-1, that simply wish to transmit mission data to a server, but can also be used

for more complex networks like spacecraft clusters with ISL and the simultaneous transmission of data

to multiple receivers on earth, like a WSN.

Four application scenarios were defined, and these encompass the major requirements necessary. From

these four, only two are currently being solved by the existing solutions: one-to-one and multi-to-one

transmissions. The developed solution was designed to not only solve the first two but also the new

ones: one-to-multi and distributed transmissions.

The experimental results showed that using DDTP will result in much faster transmissions in two of the

scenarios.

When multiple links are available (distributed scenario) DDTP is able to make use of these links and

avoid completely pausing the transmission when a disruption occurs. This offers a very significant per-

formance improvement over current solutions which simply operate in a DT fashion in these scenarios.

This is the use case of the ISTSAT-1 project.

When multiple transmission destinations are available over a single link, DDTP also manages to reduce

very significantly the transmission times. While current solutions simply perform several one-to-one

transmissions to solve this problem, DDTP multicast capabilities allow the transmission to reach all des-

51

Page 69: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

tinations simultaneously. This is the use case of a WSN whose nodes are receiving a firmware update

over a space link.

The first two scenarios, one-to-one and one-to-multi are solved by both DDTP and the current solutions,

but due to the increased metadata usage in DDTP current solutions are actually slightly faster, in the

one-to-one test Saratoga was able to finish the transmission 1.8 s faster than DDTP. However, purely

one-to-one or one-to-multi scenarios are not the use case for which DDTP is designed for.

Future work should include the testing of DDTP in real world scenarios, including its integration with the

remaining systems of the ISTSAT-1 cubesat. More complex routing algorithms could also be developed,

potentially increasing transmission speeds even further. One possibility would be having DDTP collect

information from the module responsible for determining the ISTSAT-1 location (the Altitude Determina-

tion and Control System module). This would allow DDTP routing algorithm to predict when links would

become available/unavailable and make choices based on this information. DDTP power usage onboard

of ISTSAT-1 should also be analyzed and, if necessary, optimized.

52

Page 70: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

Bibliography

[1] CalPoly, “Cubesat design specification”, The CubeSat Program, California Polytechnic State . . .,

2009, ISSN: 1110662X. DOI: http://dx.doi.org/10.1155/2015/681901.

[2] Secure World Foundation, New Actors in Space. 2011, p. 159, ISBN: 9781618398055.

[3] J. Ferreira, “ISTNanosat-1 Heart”, Master’s thesis, IST - Instituto Superior Técnico, 2012. [Online].

Available: https://fenix.tecnico.ulisboa.pt/downloadFile/395144736837/MScThesis-

JFerreira_vFinal.pdf.

[4] A. Mccook, “On the right path”, Nature, 2011, ISSN: 00280836. DOI: 10.1038/nj7353-667a.

[5] P. Coelho, “ISTNanosat-1 Quality Assurance , Risk Management and Assembly , Integration and

Verification Planning”, no. May, p. 107, 2016.

[6] H. Weiss, “Delay-Tolerant Networking Architecture”, RFC Editor, RFC 4838, Apr. 2007, pp. 1–61.

[Online]. Available: https://tools.ietf.org/html/rfc4838.

[7] A. Schlesinger, B. M. Willman, L. Pitts, S. R. Davidson, and W. A. Pohlchuck, “Delay/Disruption

Tolerant Networking for the International Space Station (ISS)”, IEEE Aerospace Conference Pro-

ceedings, no. October 2010, 2017, ISSN: 1095323X. DOI: 10.1109/AERO.2017.7943857.

[8] O. N. Challa and J. McNair, “CubeSat Torrent: Torrent like distributed communications for CubeSat

satellite clusters”, Proceedings - IEEE Military Communications Conference MILCOM, 2012. DOI:

10.1109/MILCOM.2012.6415828.

[9] R. F. Afonso, “Sistema de Gestão e Determinação de Atitude do Engenharia Electrónica Júri”,

p. 74, 2016.

[10] P. M. Gameiro, “Distributed Delay Tolerant Protocol”, 15th International Symposium on Wireless

Communication Systems (ISWCS), 2018, p. 6, ISBN: 9781538650059.

[11] M. C. Chuah, P. Yang, B. D. Davison, and L. Cheng, “Store-and-forward performance in a DTN”, in

IEEE Vehicular Technology Conference, 2006, ISBN: 0780388879. DOI: 10.1109/VETECS.2005.

1543275.

[12] K. Scott and S. Burleigh, “Bundle Protocol Specification”, RFC Editor, RFC 5050, Nov. 2007,

pp. 1–50. [Online]. Available: https://tools.ietf.org/html/rfc5050.

[13] W. Beech, D. Nielsen, and J. Taylor, “AX . 25 Link Access Protocol for Amateur Packet Radio”,

no. July, 1998.

53

Page 71: A distributed delay tolerant data transfer protocol for ... · A cubesat is a very small, low cost, artificial satellite designed for space research purposes, very popu-lar in the

[14] R. F. T. Berners-Lee and L. Masinter, “Uniform Resource Identifier (URI): Generic Syntax”, RFC

Editor, RFC 3986, Jan. 2005, pp. 1–61. [Online]. Available: https://www.ietf.org/rfc/rfc3986.

txt.

[15] S. E. Alaoui and B. Ramamurthy, “Routing optimization for DTN-based space networks using a

temporal graph model”, 2016 IEEE International Conference on Communications, ICC 2016, 2016.

DOI: 10.1109/ICC.2016.7510733.

[16] L. Wood, C. Smith, W. M. Eddy, W. Ivancic, and C. Jackson, Taking Saratoga from space-based

ground sensors to ground-based space sensors, 2011. DOI: 10.1109/AERO.2011.5747332. [On-

line]. Available: dx.doi.org/10.1109/AERO.2011.5747332.

[17] L. Wood, W. M. Eddy, W. Ivanèic, J. McKim, and C. Jackson, “Saratoga: A Delay-Tolerant Net-

working convergence layer with efficient link utilization”, in 2007 International Workshop on Satel-

lite and Space Communication, IWSSC’07, 2007, ISBN: 142440939X. DOI: 10.1109/IWSSC.2007.

4409410.

[18] L. Wood, “Saratoga: A Scalable Data Transfer Protocol”, RFC Editor, RFC Draft, Mar. 2012, pp. 1–

53. [Online]. Available: https://tools.ietf.org/html/draft-wood-tsvwg-saratoga-11.

[19] “CCSDS BUNDLE PROTOCOL SPECIFICATION Recommendation for Space Data System Stan-

dards PROTOCOL”, no. September, p. 94, 2015.

[20] T. de Cola, H. Ernst, and M. Marchese, “Performance analysis of CCSDS File Delivery Protocol

and erasure coding techniques in deep space environments”, Computer Networks, 2007, ISSN:

13891286. DOI: 10.1016/j.comnet.2007.04.015.

[21] CCSCS, “Space Communications Protocol Specification (SCPS)—Transport Protocol (SCPS-TP)”,

2006. DOI: CCSDS714.0-B-2. [Online]. Available: http://public.ccsds.org/publications/

archive/714x0b2.pdf.

[22] G. Crowley, C. Swenson, C. Fish, and A. Barjatya, “Dynamic ionosphere cubesat experiment”,

Tech. Rep., Oct. 2009. [Online]. Available: http://digitalcommons.usu.edu/smallsat/2011/

all2011/84/.

[23] Z. S. Gibalina, “Estimation of capabilities of cooperative CubeSat systems based on Alamouti

transmission scheme”, 2018.

[24] R. ESA and S. Division, “Space Engineering - Software ECSS-E-ST-40C”, Tech. Rep., Mar. 2009.

[Online]. Available: http://wwwis.win.tue.nl/2R690/doc/ECSS-E-ST-40C(6March2009).pdf.

[25] E. N. W. G. G. Camarillo, “Peer-to-Peer (P2P) Architecture RFC”, RFC Editor, RFC, 2009, pp. 1–

26. [Online]. Available: https://tools.ietf.org/html/rfc5694.

[26] Y. Song, L. Liu, and J. Chen, “A Temporal Graph Model based Power Aware Routing Algorithm in

Deep-space Networks”, 2017.

[27] D. Evans, O. Chattlain, and R. Vitulli, “The ESA POCKET Housekeeping Telemetry Compression

Algorithm”, no. February, p. 10, 2015.

54