Postellation: an Enhanced Delay-Tolerant Network (DTN) Implementation with Video Streaming and Automated Network Attachment

Similar documents
SmartSSR DTN Router. Alan Mick David Edell Workshop on Spacecraft Flight Software FSW-10, 12/8/2010 NOT SUBJECT TO EXPORT (ITAR) CONTROL

Workshop on ns-3, Implementation and Evaluation of Licklider Transmission Protocol (LTP) in ns-3

Internet Research Task Force (IRTF) Category: Experimental. S. Ostermann. Ohio University. March 2014

Interplanetary Overlay Network (ION): What s New

Chapter 12 Network Protocols

TCP/IP THE TCP/IP ARCHITECTURE

IP Mobility vs. Session Mobility

CS 421: COMPUTER NETWORKS SPRING FINAL May 24, minutes. Name: Student No: TOT

Data Communication & Computer Networks MCQ S

Networks Fall This exam consists of 10 problems on the following 13 pages.

LTP, CBHE, and BP Registries. draft-dtnrg-ltp-cbhe-registries. Keith Scott Marc Blanchet

Operating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski

Chapter 2 Application Layer. Lecture 4: principles of network applications. Computer Networking: A Top Down Approach

CSCI 466 Midterm Networks Fall 2013

Part VI. Appendixes. Appendix A OSI Model and Internet Protocols Appendix B About the CD

Chapter 09 Network Protocols

Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin,

Chapter 7. Local Area Network Communications Protocols

===================================================================== Exercises =====================================================================

CSE 461 Midterm Winter 2018

Managing Caching Performance and Differentiated Services

The Transmission Control Protocol (TCP)

NWEN 243. Networked Applications. Transport layer and application layer

Da t e: August 2 0 th a t 9: :00 SOLUTIONS

SaaS Providers. ThousandEyes for. Summary

CS 640: Introduction to Computer Networks. Today s Lecture. Page 1

Announcements. IP Forwarding & Transport Protocols. Goals of Today s Lecture. Are 32-bit Addresses Enough? Summary of IP Addressing.

Review of Previous Lecture

Need For Protocol Architecture

CSE/EE 461 HTTP and the Web

MIDTERM EXAMINATION #2 OPERATING SYSTEM CONCEPTS U N I V E R S I T Y O F W I N D S O R S C H O O L O F C O M P U T E R S C I E N C E

CS 3516: Advanced Computer Networks

PLEASE READ CAREFULLY BEFORE YOU START

4.0.1 CHAPTER INTRODUCTION

The OSI Model. Open Systems Interconnection (OSI). Developed by the International Organization for Standardization (ISO).

13. Internet Applications 최양희서울대학교컴퓨터공학부

VXLAN Overview: Cisco Nexus 9000 Series Switches

Chapter 15 IPv6 Transition Technologies

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START

Internetworking Over SpaceWire: A Link-Layer Layer Broadcast Service for Network Stack Support

Internet Research Task Force (IRTF) Request for Comments: 6255 Category: Informational May 2011 ISSN:

Square Pegs in a Round Pipe: Wire-Compatible Unordered Delivery In TCP and TLS

Computer Networks. Lecture 9 Network and transport layers, IP, TCP, UDP protocols

CSC 4900 Computer Networks: End-to-End Design

The Netwok 15 Layer IPv4 and IPv6 Part 3

Computer Networks. Wenzhong Li. Nanjing University

PLEASE READ CAREFULLY BEFORE YOU START

Need For Protocol Architecture

Logic Model Checking of the Delay Tolerant Networking s Bundling Protocol

CS 4390 Computer Networks. Transport Services and Protocols

IPv6: Are we really ready to turn off IPv4? Geoff Huston APNIC

The Migration from IPv4 to IPv6

DATA COMMUNICATOIN NETWORKING

CMSC 322 Computer Networks Applications and End-To- End

CS 356 Internet Security Protocols. Fall 2013

Category: Standards Track March 2009

No, the bogus packet will fail the integrity check (which uses a shared MAC key).!

Set of IP routers. Set of IP routers. Set of IP routers. Set of IP routers

MODULE: NETWORKS MODULE CODE: CAN1102C. Duration: 2 Hours 15 Mins. Instructions to Candidates:

Chapter 2. Application Layer. Chapter 2: Application Layer. Application layer - Overview. Some network apps. Creating a network appication

Provide One Year Free Update!

Introduction to Computer Networks. CS 166: Introduction to Computer Systems Security

Introduction to the Application Layer. Computer Networks Term B14

CCNA Exploration Network Fundamentals. Chapter 03 Application Functionality and Protocols

OUTLINE. Where we ve come from: CCSDS space links. Where we are now: Where we are going: MTO possibilities

The Network 15 Layer IPv4 and IPv6 Part 3

Network Requirements

Last Lecture. Network Architecture: Layers. This Lecture. In the sending host (2) In the sending host

ETSF05/ETSF10 Internet Protocols Network Layer Protocols

Custodial Multicast in Delay Tolerant Networks

CSCI-1680 Network Layer:

Protocol for Tetherless Computing

Schahin Rajab TCP or QUIC Which protocol is most promising for the future of the internet?

Internet. 1) Internet basic technology (overview) 3) Quality of Service (QoS) aspects

by Esther Jennings, John Segui NASA/JPL Presented by John Segui

The Internetworking Problem. Internetworking. A Translation-based Solution

Chapter 5.6 Network and Multiplayer

EE 122: IP Forwarding and Transport Protocols

OSI Layer OSI Name Units Implementation Description 7 Application Data PCs Network services such as file, print,

Developing ILNP. Saleem Bhatti, University of St Andrews, UK FIRE workshop, Chania. (C) Saleem Bhatti.

Special expressions, phrases, abbreviations and terms of Computer Networks

Data Communication and Network. Introducing Networks

Goal and A sample Network App

P2PSIP, ICE, and RTCWeb

Heterogeneous Addressing in DTN

IP - The Internet Protocol. Based on the slides of Dr. Jorg Liebeherr, University of Virginia

Chapter 2 Application Layer

Growth. Individual departments in a university buy LANs for their own machines and eventually want to interconnect with other campus LANs.

Foundations of Python

QUIZ: Longest Matching Prefix

Chapter 2: Application Layer. Chapter 2 Application Layer. Some network apps. Application architectures. Chapter 2: Application layer

ICS 351: Networking Protocols

ThousandEyes for. Application Delivery White Paper

W3C Workshop on the Web of Things

IPv6 Transition Technologies (TechRef)

Introduction to Networking

1. (10 points): For each of the following, choose exactly one best answer.

Peer entities. Protocol Layering. Protocols. Example

Transcription:

Postellation: an Enhanced Delay-Tolerant Network (DTN) Implementation with Video Streaming and Automated Network Attachment Marc Blanchet, Simon Perreault and Jean-Philippe Dionne Viagénie, Québec, Québec, Canada Delay-Tolerant Networking (DTN) technology is based on the Bundle Protocol (BP). Inherent to the underlying store-and-forward architecture, current DTN implementations do not support real-time streaming of data such as video, especially in the context of using current IP-based applications and devices over a DTN network. Moreover, current DTN implementations are configured statically with a list of peers, preventing the construction of a dynamic network of devices to join the network. This paper describes Postellation (http://postellation.viagenie.ca), a highly portable DTN stack running on Windows, Linux, Mac OS X, as well as embedded real-time operating systems such as RTEMS. The paper shows the key differences of this implementation, such as how real-time streaming is achieved, as well as the automated network attachment mechanism. A use-case scenario is to have IP devices on board spacecraft with a DTN node carrying IP traffic from the spacecraft to the Earth through the DTN space network. A DTN node on Earth then forwards the traffic to the IP network on Earth. I. Introduction ELAY-TOLERANT networking (DTN) is being proposed as the standard building-block for space networking, Dmuch like Internet Protocol (IP) has been the building block of the Internet. At the core of DTN is the Bundle Protocol[1] (BP), a store-and-forward protocol for generic data transfer. In the DTN architecture, bundles are sent, forwarded, and received by DTN nodes. The lower-layer technologies and protocols over which bundles are transported are called convergence layers. A minimal DTN stack includes a BP engine and at least one convergence layer. Convergence layers exist for sending bundles across the Internet (i.e., TCP and UDP convergence layers) as well as over various space transmission technologies (e.g. Saratoga, Licklider Transmission Protocol (LTP), CCSDS space link protocol). Routing is an important component of a DTN stack, however there is no single standard routing method or protocol. In the context of space networking, there are two main approaches: scheduled routing, where one knows in advance the positions and connectivity windows of DTN nodes, or dynamic routing using heuristics when such contact information is unavailable. The interface between the DTN stack and its applications, the API, is not currently standardized. Postellation (http://postellation.viagenie.ca) is a DTN stack with extra features aiming to enable fast application deployment by reusing tools and techniques that are currently deployed on the Internet. This lowers the cost of DTN adoption. II. Use of Existing Internet Protocols and Applications At the base of the Internet protocol suite is IP, the Internet Protocol. Transmission protocols such as TCP and UDP are carried in IP packets, being logically situated right on top of IP in the protocol stack. Application protocols, of which the most popular is undoubtedly the Hypertext Transfer Protocol (HTTP), come after, on top of the transport protocols. Custom applications are developed on top of the standard application protocols. For HTTP in particular, a myriad of frameworks, development tools, programming languages, XML dialects, JSON REST APIs, etc. are available off the shelf and are being used to build the Internet we know. Countless programmers are being trained with the Web technologies as primary focus. Making these Web technologies, or at least a subset of them, available over DTN would be an excellent way of bootstrapping DTN. It could have the potential to speed up adoption tremendously. 1

III. Use of Web Technologies over DTN The cornerstone is HTTP. HTTP has request/response semantics that can be adapted very naturally to DTN[2]. Each HTTP request or response is encapsulated in bundles and sent over the DTN network. Furthermore, a gateway between DTN and IP can act as an HTTP proxy. Carrying HTTP payload over DTN presents multiple challenges: TCP Congestion Control TCP, the protocol over which HTTP is transported, contains mechanisms to cope with congestion on the Internet. Congestion control works by maintaining a window of in-flight, unacknowledged data between the sender and the receiver. This window automatically grows as data is acknowledged by the receiver and shrinks as data is retransmitted by the sender. This mechanism is not suited for very long delays such as those found in space. Multiple Round-Trips Rendering a typical web page requires making multiple HTTP requests, often to different servers. Some HTTP responses may in turn trigger other HTTP requests. Overall, this means that the set of requests that are necessary to render a web page is partially ordered, making it impossible to completely parallelize all the requests. Thus, multiple round trips are necessary. With long delays it is imperative to minimize the number of round trips to maximize performance. Time-out mechanism at the application layer Some current web applications are designed with assumptions on what is a "reasonable" time for user interaction. Adjustment at the application layer is required when time-out delays are shorter than the expected DTN link delay. For instance, time-out mechanisms might be found in asynchronous javascript (Ajax) requests and in cookie based user sessions. Web applications built with DTN in mind need to relax those assumptions. We believe building DTN applications with web tools is not only feasible, but is a way to save on time, costs, and to minimize risk. Using a local web cache alongside Postellation's HTTP-to-DTN proxy, it is possible to achieve a user experience similar to the one achievable on Earth on the majority of the popular web sites of the Internet. In one demonstration of Postellation's capabilities, we simulated a link delay of 1.3 seconds, equivalent to the Earth-Moon propagation delay. DNS Resolution in a proxy context can be performed either in the client or server realm: When using an explicitly-configured HTTP proxy (i.e. non-transparent mode), browsers do not perform DNS resolution. They expect the proxy to do the DNS resolution based on the contents of the Host HTTP header. In that case, Postellation performs DNS resolution in the server realm, by the connector, after the DTN network has been traversed, as part of regular TCP connection establishment to the HTTP server. When using an implicitly-configured HTTP proxy (i.e. transparent mode), browsers will attempt to perform DNS resolution since, from their point of view, they are just establishing a regular connection directly to the HTTP server, unaware that a proxy is in the way. In this case it is necessary that a DNS infrastructure be made available in the client realm. File-based Operation File based operations are of significant importance in space missions. A file transfer protocol over BP have relatively simple semantics if we suppose the underlying layers are responsible for, relaying, custody transfer and data unit reassembly. Postellation provides two means to transfer files over DTN: Two trivial applications (dtnsend and dtnrecv) transmit an encapsulated a file in a single bundle Standard HTTP client and server combined with the HTTP-to-DTN proxy: The HTTP protocol in addition with the WEBDAV[3] extension is comparable in functionalities to other file transfer protocol, such as the CSSDS File Delivery Protocol (CFDP) and FTP. Files can be uploaded, downloaded and remote operation on the file system such as copy, move or delete can be performed. 2

IV. Video Streaming over DTN The Postellation HTTP-to-DTN proxy can be used to tunnel any protocol carried over TCP. TCP tunneling is performed by using the CONNECT method of the HTTP standard. Streaming video or audio over the internet is characterized by a continuous flow of small packets. For this flow to continue over a DTN network, every packet must be encapsulated into an individual bundle. V. Connecting DTN Nodes Postellation nodes can connect to other DTN nodes via various convergence layers. Each node is named by an end-point-identifier (EID) and has a set of routes to reach other nodes. Auto-configuration of nodes is possible when nodes are organized in a tree topology. Nodes can generate a unique EID derived from the EID of the upstream node followed by a unique identifier (UUID). The structure of the EID reflects the relation with the upstream node and is used to determine the next-hop when forwarding bundles. VI. Implementation Postellation is written in C and complies with the ISO C99 standard. Emphasis has been on minimizing the memory footprint and portability to real-time as well as non real-time operating systems. Postellation includes the Bundle Protocol daemon (bpd) and a suite of BP applications. Bpd and its applications run as separate processes and communication between components requires the BSD socket API and Libevent[4], an asynchronous event notification library. BP applications interact with bpd through a common Application Programming Interface (API), making easy the design of new applications. BP Node BP APP BP APP BP APP BP Daemon BP API Routing Convergence Layer BP Node BP Node BP Node Figure 1: Postellation's components The Postellation distribution includes the simple, de-facto standard applications dtnping, dtnpong, dtnsend, and dtnrecv. In addition, Postellation includes a DTN/HTTP proxy that is composed of two applications that use the Postellation API: the acceptor and the connector. They are named after the roles that they play in an HTTP connection establishment. When a regular HTTP client establishes a new HTTP connection, the acceptor accepts the connection over TCP. It converts the HTTP data into bundles that are sent over BP to the connector. Upon receiving the bundles, the connector will connect to the HTTP server over HTTP, completing the connection establishment 3

process. From the point of view of the HTTP client and server, the acceptor/connector pair can be considered as an HTTP proxy. This proxy can work in transparent mode as well as non-transparent mode. Postellation has been implemented and tested on Linux, Mac OS X, OpenBSD, Windows, and RTEMS. The UDP and TCP convergence layers support both IPv4 and IPv6. A particular feature of this implementation is that UCP and TCP convergence layer link configurations do not specify a client or server role. Connection initiation is attempted from both sides and the first successful attempt "wins" while the other gets cancelled. In practice, on today's Internet, this facilitates mobility and Network Address Translator (NAT) traversal. Postellation automatically fragments and reassembles bundles that are larger than the convergence layer MTU *. For both TCP and UDP, path MTU discovery[5] is used to determine the effective MTU to a DTN peer. It is also possible to statically configure the MTU per peer. We extended the TCP convergence layer specification to include transport over a secure connection using Transport Layer Security (TLS). This non-standard but straightforward extension is very useful in delivering HTTP secure transactions. Interoperability testing Bundle forwarding between Postellation and nodes of other implementations has been tested. The applications used for sending and receiving bundles were dtnping and dtnpong. Two testing scenarios were used: A Postellation node is used as an intermediary node between two nodes of foreign implementation (DTN2[6] and ION[7]). A foreign (DTN2 or ION) node is used as an intermediary node between two Postellation nodes. No custody, report status or security features were used. Routing between nodes was statically configured. Postellation is available for trial and can be used to connect to a public DTN cloud, composed of nodes with artificial delays. The delay is introduced using netem, a Linux kernel module for emulating various connection characteristics. The UDP convergence layer is used between nodes where delay would make TCP impractical. * MTU : Maximum Transfer Unit http://postellation.viagenie.ca 4

Figure 2: Test environment with artifical delay and the HTTP-to-DTN proxy VII. Porting to Real-Time Operating System Postellation has been ported to RTEMS[8]. Since RTEMS does not have a notion of processes, multiple threads are used instead. For example, to run an HTTP proxy on RTEMS, one would need to run bpd in its own thread and either the acceptor or connector application in another. To give an idea of system requirements, the following memory footprint for an i386 target running bpd has been measured: Binary image size: 508 kb (full RTEMS OS + Postellation software) Heap size: 256 kb (bare minimum for enabling the RTEMS networking stack) Stack size: 4 kb (bare minimum on the i386 architecture) This shows that Postellation makes it possible to deploy a full DTN stack in under one megabyte of memory. VIII. Conclusion Postellation is a lightweight and portable DTN (Bundle Protocol) implementation, featuring advanced HTTP and Video streaming capabilities, as well as automatic network attachments. It is available on various platforms such as Linux, MacOSX, Windows, OpenBSD and RTEMS. It can be found and tested at: http://postellation.viagenie.ca. References [1] Scott, K. and S. Burleigh, "Bundle Protocol Specification", RFC 5050, November 2007. [2] Jörg Ott, Dirk Kutscher: Bundling the Web: HTTP over DTN. WNEPT Workshop 2006. URL: http://www.netlab.tkk.fi/~jo/papers/2006-wnept-bundling-the-web.pdf [3] Dusseault, L., Ed., "HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)", RFC 4918, June 2007. [4] Libevent, http://libevent.org [5] Mogul, J. and S. Deering, "Path MTU discovery", RFC 1191, November 1990. [6] DTN2 URL : http://sourceforge.net/projects/dtn/ [7] ION, Interplanetary Overlay Network, URL: http://sourceforge.net/projects/ion-dtn/ 5

[8] RTEMS, Real-Time Executive for Multiprocessor Systems, http://rtems.com 6