Can I get any code?

The bundle protocol and the Lickider transmission protocol (LTP)

The DTNRG are currently working on two protocols for which there is code publicly available. The bundle protocol is a general overlay network protocol, and is the focus of most of the implementation effort in DTNRG. There is a reference implementation of the bundle protocol which is called DTN2 and is documented below.

The Licklider transmission protocol (LTP - sometimes called the longhaul transmission protocol) is a point-to-point protocol intended for over very high delay links such as those used in deep space communications. There are two LTP implementations available -- one from Ohio University (in Java) and one from Trinity College Dublin, Ireland (in C++).

DTN2

The latest release of the DTN reference implementation is version 2.5.0, released in October 2007.

The goal of this implementation is to clearly embody the components of the DTN architecture, while also providing a robust and flexible software framework for experimentation, extension, and real-world deployment. An early version of this implementation was used for the DTN Train Demo -Link is broken - see next link for Possible Alternate Link to Train Demo at the Intel Research Berkeley Open House 2004 and the current version was used for the demo in February 2006. Please report any bugs to dtn-users _at_ mailman.dtnrg.org

This release has been tested on Linux (x64 and 64-bit x86) and Mac OS X (x86 and ppc). Limited support has been tested on Solaris, FreeBSD, and Linux on arm.

Before you configure and compile you will need GCC 3.3 or newer, and development packages of TCL 8.3 or 8.4. Optionally, you may also want BerkeleyDB 4.2-4.5 as a back-end database, and xerces 2.6+ for XML processing.

Mercurial

You can also access the latest ("bleeding edge") version of the code using mercurial.

The repositories are hosted at http://www.dtnrg.org/hg/DTN2 and can be cloned using:

See UsingMercurial for more information on using mercurial. Please be aware this code may be under frequent developmental changes, so your mileage may vary. In addition, if you grab the development copy in this way, any README files or other docs may not be quite up to date.

If you plan on contributing code changes, please read the CONTRIBUTING file that describes the coding conventions for the project.

Please report any bugs to dtn-users _at_ mailman _dot_ dtnrg _dot_ org

Debian Users

This release is also available as a binary debian package for the stable release (etch), as well as in source form through the apt package management system. Add the following lines to /etc/apt/sources.list:

The package is called 'dtn'.

Redhat / Fedora Users

We have pre-built some rpm binary packages:

Simulation

Waterloo has written the DTNSim2 Simulator based on the java-based simulator (gzip/tar) developed by Sushant Jain (who is now at Google).

There is also a simulator using user mode Linux located here.

Other Implementations

* ION: ION is an implementation of the Bundling Protocol, AMS, and LTP (coming soon). ION is produced by the Jet Propulsion Laboratory and partially maintained by Ohio University. It is written in standard C using a shared memory architecture.

* Java BP-RI: A Java implementation of the bundling protocol that is based significantly on the design of DTN2. The BP-RI supports just LTP as a convergence layer, currently, interfacing with the LTP-RI implementation in Java.

* DASM: A DTN implementation for Symbian phones (tested with Nokia Communicators 9300i and 9500). This is an independent implementation tailored to the particular needs of the Symbian OS.

* DTN1: This is a prototype implementation of the DTN architecture, written in C, and tested on both x86 and StrongARM versions of Linux. Please read the top-level README.txt file for details on how to build and use it.

* Java DTN: There is also another Java implementation of DTN, currently being developed by Matt Bradbury. This version is fairly old at this point.

Code (last edited 2008-03-17 16:21:40 by demmer)