Skip Navigation.

Naval Research Laboratory
Code 5520
4555 Overlook Ave., SW
Washington, DC 20375-5337
(202) 767-2804

Multicast Dissemination Protocol version 2 (MDPv2)

Multicast Dissemination Protocol (MDP) Toolkit

The Multicast Dissemination Protocol (MDP) is a protocol framework and software toolkit for reliable multicasting data objects including files and application memory blocks. A primary design goal of MDP is to provide a reliable multicast protocol approach which is suitable for reliable dissemination of data over both wireless and wired networks.

MDP software has been demonstrated across a range of network architecture and heterogeneous conditions including; the worldwide Internet MBone, bandwidth and routing asymmetric network connections, high delay satellite networks, and mobile, radio networks. MDP integrates numerous multicast protocol advances including highly robust, packet-based erasure correction techniques and adaptive group timing mechanisms.

The present MDP software toolkit includes a library with a well-defined API. Several example working applications including a multicast file transfer applications and a very basic multicast chat application are also provided. To learn more and/or download the software see the following sections.

NORM, the NACK (Negative Acknowledgement)-Oriented Reliable Multicast protocol, includes and improves upon the features of MDP, and has been approved as an IETF standard. Users are encouraged to use NORM instead of MDP.

Background

For a brief historical background on previous MDP work that lead up to version 2, see the page: Historical Background of MDP and MDPv2 .

Overview

For an brief overview of the MDPv2 protocol, you can:

  1. Read this IEEE paper "The Multicast Dissemination Protocol Toolkit" which summarizes the MDP protocol and toolkit available at this website.
  2. View the slide show presentation MdpOverview.pdf which provides a very high level overview of MDP and describes some ongoing uses of MDP and its toolkit.

For more detailed technical information, refer to the Internet Draft of the MDP protocol specification "draft-macker-rmt-mdp-00". The draft has expired, but is archived here for historical purposes. Note this document describes a slightly earlier version of the protocol than is implemented in the current code release.

Multicast Congestion Control

More recently, the MDP protocol has been extended to include automatic congestion control features with a goal of being fair and "friendly" to other flows of MDP and TCP traffic. An overview of some of the MDP congestion control work done to date can be found in the IEEE paper "Multicast Dissemination Protocol Congestion Control". The current downloads contain experimental implementations of this feature. More information on the congestion control features will be added to this site in the future. We have collected a lot of encouraging results to date and are continuing to refine this feature of the protocol. We are also participating in, assessing, and incorporating the work being done within the Internet Research Task Force Reliable Multicast Group (IRTF-RMG) in this area.

Downloads:

MDP source code and distributions of example MDPv2 applications for different platforms are available at: http://downloads.pf.itd.nrl.navy.mil/mdp/

Protocol formats in this release are incompatible with earlier previous releases of the imm application (circa 1996 and prior). Example applications, including the command-line tool mdp and tkMdp with a simple GUI (or winMdp on WIN32 platforms), which can run as a client and/or server are available for MBONE tests and demonstrations. This release presently runs on a variety of UNIX platforms and Intel-based WIN32 (Windows 95/NT) machines. A MacOS port may (hopefully) follow. Please contact the developers (see bottom of page) if your platform isn't supported and you would like to see it happen. A plug-in file for UCL's Session Directory (sdr) tool is provided to support MBONE session advertisements of MDPv2 sessions.

See the MDPv2 User's Guide for installation and usage instructions.

Developers:

A draft version of the MDP Developer's Guide is also available. Click MdpDevGuide.pdf for a PDF version or MdpDevGuide.html an HTML version.

Eventually, a fully hyper-linked development manual will be available with example code and tutorial material. The developer's guide is for use with the MDP Software Developer's Kit (SDK) which will be made available in the FTP Distribution Directory for supported platforms. Please be patient as these developer's kits and supporting documentation are still being developed.

We are also introducing on-line code documentation generated using the Doxygen tool for the MDP source code. We are using Doxygen to generate hyper-linked HTML documentation of the code. We will expand embedded comments in the MDP code to provide improved code documentation over time. The documented MDP source code is available for viewing on our web site here: MDP Source Code Documentation.

Contact info

Alpha testing and additional development are underway, so the authors would appreciate feedback from testers and evaluators regarding bug reports or recommendations.

If you are interested in more information about MDP, please contact mdp@pf.itd.nrl.navy.mil. MDP also has a User's and Developer's mailing list. This mailing list is monitored by the MDP developer(s).