Emcast is a multicast toolkit for distributed/peer-to-peer applications that require multicast communication. It includes the program emcast, a generic multicast utility (like netcat), and the library libemcast, a generic multicast library. Emcast supports IPv4 multicast (IM) and can easily support almost any end-host multicast (EM) protocol. The EM protocols supported are Banana Tree Protocol (BTP), Internet Chat Relay (IRC), and STAR (centralized TCP). Emcast is pronounced em-cast.
Emcast is part of a research project at the EECS Department of the University of Michigan. The lead developer is David Helder, a PhD student at U of M.
For more information, see the README.
Version 0.3.2 is now available. Emcast 0.3.2 fixes a bug in the IP multicast code. Dotted decimal multicast hostnames should work correctly now. (June 22, 2002)
The latest version is 0.3.2. Download it here.
Documentation is included in the emcast tarball. Here are the latest copies:
- README - More information about Emcast
- TODO - TODO list
- libemcast-api.txt - Libemcast API
- emcast-handlers.txt - Emcast handler development
- emcast-protocol.txt - Emcast protocol reference
- HACKING - Information for developers of Emcast
- ChangeLog - Detailed ChangeLog
- AUTHORS - List of authors and contributors
Applications that use Emcast:
End-host Multicast Communication Using Switch-tree Protocols, David A. Helder, Sugih Jamin, Proceedings of the Workshop on Global and Peer-to-Peer Computing on Large Scale Distributed Systems (GP2PC), May 2002
Switch-trees are peer-to-peer algorithms for building and improving end-host multicast trees. Nodes switch parents to reduce tree cost or lower source-member latency. A node switches parents by disconnecting from its parent and reconnecting to a new parent. If the new parent is well chosen, the performance of the tree is improved overall. We look at the performance of switch-trees using the following metrics: cost, latency, link stress and number of switches. Simulations show switch-tree algorithms can build trees of hundreds of nodes at less than twice the optimal cost. In addition, we describe our implementation of a switch-tree protocol. Experiments show that our protocol builds low-cost trees in practice.