Stream-2-Stream Logo Stream~2~Stream: Next Generation Streaming

Stream~2~Stream
Main Downloads Stations Documentation Forums Project page

Stream-2-Stream implements multicast+, a next generation streaming protocol. Multicast+ is more efficient and requires less bandwidth than direct streaming (e.g. shoutcast/icecast). Stream-2-Stream (abbreviated "s2s" or "S2S") stations have no user limit; stations can be set up without paying a fortune for bandwidth. Stream-2-Stream saves bandwidth by passing streams from one peer to another through multicast and unicast p2p, rather than everyone getting a stream from one central server (Shoutcast/Icecast).

Multicast+ will allow the internet to gradually upgrade to multicast, a more efficient method of streaming. A multicast stream is broadcasted to listeners capable of receiving it, if a listener cannot receive the stream (behind a non-multicast router) then it can request a unicast p2p stream. Stream-2-Stream keeps all the multicast address info away from the user. When a station is set up an open multicast address is found automatically or can be specified manually if desired. A user must simply provide the client with the address (server IP:port, not multicast) of the s2s server to listen.

In order to understand multicast+, we must first understand multicast and unicast. Traditional network transfer is called unicast, communication from one computer to another. For every client served the bandwidth used by the server is increased by the rate of the stream. If 1000 peers are connected on a 128k MP3 unicast server, the server must upload 125 megabits per second. The cpu load also increases as more clients connect. This is how shoutcast and icecast work. It is a very inefficient method of streaming

To solve the problem in 1993 multicast was introduced. Multicast is communication from one computer to multiple computers. Only the bandwidth of the stream is required to serve millions of peers. If 1000 peers are connected on a 128k MP3 multicast server, the server must upload 128 kilobits per second. That is 1000x less than unicast. This also solves the cpu load problem, it will not go up as more users connect. Multicast is a more efficient method of transfer and uses less bandwidth than unicast

Multicast has it's problems too though. For a client to receive a multicast stream, every router on the path from the server to the client must support multicast. This is not a big problem on LANs (and many WANS) since most fully support it, but on the internet it is. The internet is in the process of gradually upgrading to multicast, some routers support it, some don't. Another problem with using multicast is it is impossible to see how many listeners are connected to your station.

For more information on multicast:
http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/ipmulti.htm
http://www.cisco.com/warp/public/614/17.html
http://en.wikipedia.org/wiki/IP_Multicast

Here is where multicast+ comes in to solve the problems. Multicast+ is a combination of multicast and unicast P2P. If a peer cannot receive the multicast stream then a unicast p2p connection will be used instead. Once connected if this peer has enough bandwidth it will rebroadcast the stream to the same multicast address that it had trouble receiving from. Now when users nearby this peer connect, they may be able to receive the multicast stream. The internet is not going to have its routers updated to multicast all at once, it will be a gradual change. Multicast+ will help with this gradual change.

To solve the listener counting problem every peer keeps a constant unicast connection with the server. If the connection is broken then the peer is deleted from the listener list.

Saying multicast+ is the next generation of streaming is truly a bold statement, but it is the most efficient and most practical way to stream at this time.

In the following pictures, the red is the broadcaster and the blue are the listeners.


Traditional streaming, Direct unicast (Shoutcast/icecast) network structure



s2s multicast+, the next generation of streaming, a combination of multicast and unicast p2p


You can see in the s2s picture that the broadcaster is only uploading 2 streams. In the direct unicast (Shoutcast/icecast) picture the broadcaster uploads a stream to each of the 9 peers.

Support This Project
SourceForge.net Logo