Application Level Multicasting

Using SplitStream

SplitStream is a cooperative, distributed, peer-to-peer system for application level multicasting. Peers work together to form a tree structure and deliver multicast content. SplitStream places an emphasis on achieving high bandwidth, distributing the load of forwarding content fairly across all peers, and takes advantage of the differences in bandwidth capacities between peers.

Project Report

Multicast Streaming with SplitStream

Project Implementation

  1. Download the implementation
  2. Download the following libraries
  3. To start the server run:
    java -cp splitstream.jar:concurrent-jaxed.jar:log4j.jar:jl1.0.jar:kj_dsp1.1.jar mediaServer.MediaServer mp3_file
  4. To start the client run:
    java -cp splitstream.jar:concurrent-jaxed.jar:log4j.jar:jl1.0.jar:kj_dsp1.1.jar mediaClient.MediaClient server_address
  5. Press <enter> in the server window to begin streaming.


Presentation 1
Presentation 2
Presentation 3


M. Castro, P. Druschel, A.M. Kermarrec, A. Nandi, A. Rowstron, and A. Singh. SplitStream: High- Bandwidth Content Distribution in Cooperative Environments. Lecture Notes In Computer Science, pages 292–303, 2003.
M. Castro, P. Druschel, A.M. Kermarrec, A. Nandi, A. Rowstron, and A. Singh. SplitStream: high- bandwidth multicast in cooperative environments. Proceedings of the nineteenth ACM symposium on Operating systems principles, pages 298–313, 2003.
A. Rowstron and P. Druschel. Pastry: Scalable, Decentralized Ob ject Location, and Routing for Large- Scale Peer-to-Peer Systems. Lecture Notes In Computer Science, 2218:329–350, 2001.
M. Castro, P. Druschel, A-M. Kermarrec  and A. Rowstron, SCRIBE: A large-scale and decentralised application-level multicast infrastructure. IEEE Journal on Selected Areas in Communication (JSAC), Vol. 20, No, 8, October 2002. 
A. Rowstron, A-M. Kermarrec, M. Castro and P. Druschel, SCRIBE: The design of a large-scale event notification infrastructure, NGC2001, UCL, London, November 2001.