Peer-to-peer streaming is an exciting form of Internet stream distribution. It works by distributing a traditional stream broadcast in such a way that any spare and unused upload capacity of a client is used to share the broadcast with other clients in the audience.

Peer to Peer (or PeerCasting as it is also known) can also be described a method of multicasting streams, usually audio and/or video, to the internet via peer-to-peer technology. It can be used for commercial, independent, and amateur multicasts. Peercasting seems to be a workaround to the lack of functioning IP Multicast from most ISPs.

It usually works by having peers automatically relay a stream to a couple more peers, and the P2P network helping peers find a relay for a specified stream to connect to. However, this suffers from poor quality of service during times when relays disconnect or peers need to switch to a different relay.

One solution used is minute swarming, wherein a live stream is broken up into minute length files that are swarmed via P2P software such as BitTorrent, Coral, or Dijjer. However, this suffers from excessive overhead for the formation of a new swarm every minute.

Another solution is to stripe a live stream into multiple substreams, akin to RAID striping. Forward error correction and timing information is applied to these substreams such that the original stream can be reformed using at least all but one of the substreams (fountain codes are an efficient way to make and combine the substreams). In turn, these streams are relayed using the first method.

And yet another solution is to permit clients to connect to a new relay and resume streaming from where they left off by their old relay. Relays would retain a back buffer to permit clients to resume streaming from anywhere within the range of said buffer. This would essentially be an extension to the Icecast protocol.

Despite which solution is used, the underlayiing premace remains the same - Streams are intelligently distributed over an entire network of clients making up a broadcast audience. As the audience grows so do the network resources available to distribute the broadcast without increasing bandwidth costs. This makes it possible to reach more users where Internet broadcasting is prohibitively expensive. Simply put: by sharing of your upstream Internet bandwidth for stream peering, you allow more folks to listen and thereby assist in extending the reach Internet broadcasts.