AFDP started as a term project for a distributed systems engineering course we were taking. The goal was to create a protocol for efficiently distributing large files to many hosts on a LAN.
The protocol is built on top of UDP, and uses a rate-based flow control mechanism to provide efficient and reliable file distribution. AFDP uses the publishing metaphor: any machine receiving files is called a subscriber and any machine sending files is called a publisher. One special subscriber is designated as the secretary; this machine is responsible for managing the group membership and authorizing publishers. AFDP dynamically selects between 3 different transfer modes: unicast, multicast (on hosts that support it), and broadcast.
This dynamic selection of transfer modes is very useful for tuning network and host loading, throughput, and for dealing with hosts and networks that don't support multicast. If the number of hosts in the group is very small, it is often best to unicast to each subscriber. As the group grows, AFDP may switch to either multicast (if all the hosts and networks support it) or broadcast (if all the hosts are on the same LAN). This dynamic selection is based on easily adjusted tuning parameters, and is not supported by any other protocol we know of.