libsrm: A Framework for Reliable Multicast Transport

Warning: This is a highly experimental pre-alpha release of libsrm2.0.

libsrm is a transport protocol framework for reliable multicast applications that was motivated by earlier work on Scalable Reliable Multicast protocol  (SRM) and its instantiation in the shared drawing tool wb. In addition to a novel timer-based feedback scheme for loss detection and recovery, the authors of the SRM paper also proposed an ALF-based approach to RM protocol design, resulting in a transport protocol that is optimized for the network. While the paper proposed the notion of applying ALF to reliable multicast transport, the problem of designing and developing a customizable protocol framework that could be used by applications with different reliability semantics was left open.

One of the key problems in designing a general protocol framework is the "data naming" problem, articulated here. Traditional transport protocol primitives to name and identify data such as monotonic sequence numbers are not sufficiently flexible to request specific pieces of data and ignore others. Our solution to the naming problem, called the Scalable Naming and Announcement Protocol  (SNAP) proposes structured namespaces and a special protocol to disseminate them scalably.

libsrm is intended as a vehicle for research into issues in multicast transport such as loss recovery, data naming, data consistency, and congestion control, and as a testbed for large scale real world RM experiments. It has also been used to develop new and interesting RM applications, e.g., the MASH webcast application, available as part of the MASH release. The software architecture of the toolkit, shown below, consists of

SRMv2 Software Architecture
libsrm is implemented as an event-based library and plugs into any event system (e.g., Tcl/Tk) via a simple API that allows handlers for timer and I/O events to be registered. libsrm provides a C programming interface, as well as a tcl command interface.

Download


Related Reading



This page is maintained by Suchitra Raman and Yatin Chawathe.
Last Updated: Wed Nov 4 15:49:27 EST 1998
Send comments to srm-developers@mash.cs.berkeley.edu.