Dirk Kutscher

Personal web page


without comments

A list of current and previous software projects.

IETF Datatracker Document Metadata Processing

I have created two tools for fetching and formatting metadata for IETF documents (RFCs and Internet Drafts). I sometimes want to create publications lists or just reference IETF documents in other publications, and these tools are intended to automate the process as much as possible.

  • tracker-doc: for fetching document metadata by user-id (datatracker ID)
  • bibdoc: for formatting document metadata in text or bibtex format

More information: https://dirk-kutscher.info/projects/datatracker-publications/

Reflexive Forwarding

Current Information-Centric Networking protocols such as CCNx and NDN have a wide range of useful applications in content retrieval and other scenarios that depend only on a robust two-way exchange in the form of a request and response (represented by an Interest-Data exchange in the case of the two protocols noted above). A number of important applications however, require placing large amounts of data in the Interest message, and/or more than one two-way handshake.

While these can be accomplished using independent Interest-Data exchanges by reversing the roles of consumer and producer, such approaches can be both clumsy for applications and problematic from a state management, congestion control, or security standpoint. Reflexive Forwarding is a proposed extension to the CCNx and NDN protocol architectures that eliminates the problems inherent in using independent Interest-Data exchanges for such applications.

We have implemented Reflexive Forwarding in NDN.

cwik for automating QUIC interop tests and performance measurements

cwik is an open, interactive and extensible Clojure framework for automating QUIC interop tests and performance measurements, based on Peter Doornbosch’s Kwik library. It can be used for defininig test campaigns programmatically and can enable reproducible experiments as well as facilitate automatic evaluation. Developed by Thomas Ripping, source code available on github.com.

Network of Information

This project hosts code and information for various packages implementing or using the Network of Information paradigm. The software provides implementations of the NI naming scheme (draft-farrell-decade-ni) and other NetInf features (such as convergence layers, forwarding, caching) in different languages, including C, Clojure, Java, PHP, Python, and Ruby. It also contains additional tools such as patches to curl and wget and shells scripts for web server support.Network of Information can be downloaded from http://sourceforge.net/projects/netinf/.


RDTN is a DTN bundle router implementation written in Ruby. RDTN can be downloaded from http://dev.tzi.org/retrospectiva/projects/rdtn/. DTN-Ruby I have developed Ruby bindings (dtn-ruby) for DTN2\'s application library. dtn-ruby comes with some Ruby classes that provide some abstraction over the direct bindings to the DTN2 client lib functions. There is a class called DtnClient, and instances of this class represent connections to the DTN bundle router. See the sample application dtncat in the apps directory of the dtn-ruby SVN module.dtn-ruby can be downloaded from https://prj.tzi.org/cgi-bin/trac.cgi/wiki/Dtn-ruby.


The Message Bus (Mbus) is a light-weight local coordination protocol for developing component-based distributed applications that has been developed by TZI and University College London. Mbus provides a simple and flexible message oriented communication channel for a group of components that may be distributed on multiple hosts in a local network. The Mbus transport services include useful features such as peer location, point-to-point and group communication and security. The protocol specification has been published as RFC 3259. Mbus implementations have been developed for different programming languages and platforms, including small one-chip computers. The protocol has been applied to different application domains, e.g., for coordinating application components in decomposed multimedia conferencing applications and for providing coordination services for pervasive computing environments such as home networks. End-user releases of Mbus implementations are available at http://www.mbus.org/. SVN access to the C++ version for developers is available at https://prj.tzi.org/cgi-bin/trac.cgi/wiki/Mbus.

Written by dkutscher

December 10th, 2009 at 7:43 pm

Posted in