The Multicast Dissemination Protocol (MDP) is a communications protocol for one-to-many transmissions in wired or wireless networks. Multicast protocols are used for such applications as group conferencing or online gaming. The first MDP application, in 1993, was based on Image Multicaster (IMM), a protocol used for the dissemination of satellite image files (such as weather-related images) over the MBone (the portion of the Internet that can handle IP multicasting). The MDP framework, developed between 1995 - 1997, was used in satellite multicast networks, DARPA high-speed simulation networks, and the worldwide MBone. MDP version 2, released in 1997, includes the protocol framework and software development kit (SDK), and features more advanced protocol techniques.
MDP provides a reliable multicast framework, which is a new approach to multicast protocols. Previously, protocols were developed for specific types of reliable multicast applications; the framework makes it possible to develop protocols to suit a variety of application requirements. MDP enables file distribution within the framework. The server breaks the file into sequential blocks of information called maximum data units (MDUs) and sends them at their chosen transmission rate and interval pacing. The receiver reassembles the original file, which can then be either saved or immediately processed by applications such as image viewers or text processors. After a file has been transmitted, the server asks receivers if they require a retransmission. If the receiver detects gaps in the MDU sequence numbers, they schedule a retransmission by sending a negative acknowledgement (NACK) message. Clients may also request repairs during transmissions by sending the server a list of missing packets. Senders may request ACK (acknowledgement that the data was received) messages. NACK suppression and event timing are used to minimize network congestion and retransmission requests.