The Java Reliable Multicast Service(TM):
A Reliable Multicast Library
Steve Hanna, Miriam Kadansky and Phil Rosenzweig
Introduction by Phil Rosenzweig and Miriam Kadansky
This technical report, written in 1998, is an early description of our four-year project developing a reliable multicast toolkit. Our goal was to enable developers to be able to easily create applications that use reliable multicast, such as multi-receiver file transfers, stock and news tickers, and collaborative applications. Unreliable multicast, in which data can be sent to many receivers at once, but with no guarantee of delivery, had been deployed in some applications, but the lack of reliability prevented multicast from being used for any commercial applications. Adding reliability would make multicast viable in the business world, marrying the bandwidth savings of multicast with the guaranteed delivery of unicast transport protocols such as TCP.
We were aware that many reliable multicast transport protocols were being developed, and soon decided that there would likely be no one-size-fits-all protocol suitable for use by all types of multicast applications. Therefore, unlike the unicast world in which most applications use the TCP transport protocol, JRMS(TM) allows developers to choose from a variety of protocols depending upon the application's needs. In addition to transport protocols, the toolkit also provides other services for reliable multicast applications, such as address allocation, security, group management, data filtering, and session advertisement.
Early on we decided to do all development in the Java(TM) programming language, primarily for its ease of portability, but also to experiment with the viability of writing a transport protocol in Java. Any reliable multicast application was bound to be used on a variety of platforms, and Java is an obvious way to ensure rapid deployment. We also had a set of new ideas for a scalable reliable multicast protocol. After much study of the three dozen or so already proposed, we designed, implemented, and published Tree-Based Reliable Multicast, or TRAM for short.
Developing our own protocol gave us a context in which we explored many of the issues central to making reliable multicast work: security, congestion and flow control, acknowledgement implosion, data filtering, and group management. From this work, several key innovations were invented. Currently, TRAM has been combined with aspects of other tree-based reliable multicast protocols into the TRACK (Tree-Based Acknowledgement Protocol) protocol, and is under consideration for standardization within the Reliable Multicast Transport Working Group of the Internet Engineering Task Force (IETF). See http://www.ietf.cnri.reston.va.us/html.charters/rmt-charter.html
The JRMS project resulted in many prototype applications, as well as patents and publications. It is available at http://www.experimentalstuff.com
REFERENCES:
- A Congestion Control Algorithm for Tree-based Reliable Multicast Protocols, Dah Ming Chiu,
Miriam Kadansky, Joe Provino, Joseph Wesley, Hans-Peter Bischof and Haifeng Zhu, Sun Microsystems
Laboratories Technical Report TR-2001-97
- A Reliability Window for Flexible and Scalable Multicast Service, Dah Ming Chiu and Jaiwant Mulik,
Sun Microsystems Laboratories Technical Report TR-2000-91
- Pruning Algorithms for Multicast Flow Control, Dah Ming Chiu, Miriam Kadansky, Joe Provino, Joseph
Wesley and Haifeng Zhu, Sun Microsystems Laboratories Technical Report TR-2000-85, also published in
Networked Group Communication 2000, November 8 - 10, 2000,
Stanford, CA
- Some Observations on Fairness of Bandwidth Sharing, Dah Ming Chiu, Sun Microsystems Laboratories
Technical Report TR-99-80
- Experiences in Programming a Traffic Shaper, Dah Ming Chiu, Miriam Kadansky, Joe Provino and
Joseph Wesley, Sun Microsystems Laboratories Technical Report TR-99-77; also published in the Fifth
IEEE Symposium on Computers and Communications (ISCC 2000), 4 - 6 July 2000, Antibes, France
- The Java Reliable Multicast Service: A Reliable Multicast Library, Steve Hanna, Miriam Kadansky
and Phil Rosenzweig, Sun Microsystems Laboratories Technical Report TR-98-68
- TRAM: A Tree-based Reliable Multicast Protocol, Dah Ming Chiu, Stephen Hurst, Miriam Kadansky and Joseph Wesley, Sun Microsystems Laboratories Technical Report TR-98-66
