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 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. Please report any bugs to dtn-users _at_ mailman.dtnrg.org.
We are currently in the process of migrating hosting for the code and release management to sourceforge. Some of the information below may be inaccurate during the transition. Email Michael Demmer if there are problems with the information.
The DTN2 source code and associated libraries are now hosted on SourceForge.
For released versions, see the SourceForge DTN Release Page.
The latest 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 various repositories are hosted at http://dtn.sourceforge.net/hg/ and can be cloned using:
% hg clone http://dtn.sourceforge.net/hg/oasys
% hg clone http://dtn.sourceforge.net/hg/DTN2
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
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.
- You can access the code for this version via anonymous CVS:
% cvs -d :pserver:anonymous@code.dtnrg.org:/repository login
% cvs -d :pserver:anonymous@code.dtnrg.org:/repository checkout DTN1
The first code release was accomplished as of 30-Mar-2003 and is available here: dtn-release-0.1.tgz
* Java DTN: There is also another Java implementation of DTN, currently being developed by Matt Bradbury. This version is fairly old at this point.