Multicast Dissemination Protocol (MDP) Toolkit

MDP logoThe 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.


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


For an brief overview of the MDPv2 protocol, you can read the IEEE paper "The Multicast Dissemination Protocol Toolkit" which summarizes the MDP protocol and toolkit available at this website.

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 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.


MDP source code and distributions of example MDPv2 applications for different platforms are available at:

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.


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.

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

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.

If you are interested in more information about MDP, please contact