Internet Radio System Internet Radio System
home Student Projects no local find frame, full screen Google search web for topic jump to footer translate with Babelfish by Roedy Green ©1996-2008 Canadian Mind Products
This essay is about a suggested student project in Java programming. This essay gives a rough overview of how it might work. It does not describe an actual complete program. I have no source, object, specifications, file layouts or anything else useful to implementing this project. Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; I have too many other projects of my own.

I do contract work for a living, which could include writing a program such as this. However, I don’t do people’s homework for them. That just robs them of an education.

You have my full permission to implement this project any way you please.

The intent of this project is to come up with a very low cost, low-broadcast-bandwidth Internet radio. There is another project with a similar goal, Voice Compression compression scheme for typical low-budget voice broadasts.

There are two popular schemes by which a low-budget radio station could broadcast on the Internet: Real Audio and Napster. The problem with Real Audio is that you need a massive server with a fat Internet connection to distribute packets directly to every listener in real time. The problem with Napster is that you can’t deliver in real time, and you can’t guarantee that people will always be able to find a given program.

This project is to invent a new distributed protocol for Internet Radio that requires only a modest server no matter how many listeners there are.

The key notion is that every listener also acts as a relay station to other listeners. Ideally every listener could relay to several other listeners, but in practice you will be lucky if any one listener can even provide the bandwidth to handle one other listener. The central problem is user uplinks are usually slower than downlinks. The other major problem is that a chain is only as strong as its weakest link.

By creating daisy chains of user listener stations relaying the packets, you might be able to create a very long chain, and still deliver packets with only a 5 minute delay, possibly sufficiently real time for a phone-in radio talk show.

Stations that are not receiving packets would nak the central server to request being added to a different chain, or to pick up a missed data packet from some other chain that still has that packet in transit. If a user had a fast Internet connection, they could relay to several other listeners instead of just one. You might find volunteers willing to host relay software on servers to act as primary relays.

The central server sends administrative packets directly to listeners requesting them to relay packets to other IPs. It sends the bulk of the traffic indirectly by daisy chains. Listeners with faster links are put earlier in the chains so they can increase the fanout early on where it has maximal benefit. This way the central server need not have all that big a bandwidth connection to the Internet. The server can request that relay stations sometimes send ack packets back to the central server to monitor the progress of packets down the chains. These administrative packets can be very small. E.g. every 10th hop might trigger an automatic ack home.

For this to work, you need super compression. Think about voice only. Commercial music radio can afford Real Audio. Political/issue talk radio cannot. Perhaps there is some research on voice compression which models the vocal tract and recreates the voice from phonemes or other digital clues. At the very least, you would do MP3 compression on each jumbo packet.

The downside of this protocol is that when you first tune in, you might not hear anything for five minutes or so. It needs a very large amount of buffering to deal with the flakiness of the relay scheme.

Some of the pieces you will need are UDP, JMF and Java Web Start.

If you solve this, one of your first customers might be infidelguy.com among many others. It is important to get all points of view heard, even those you disagree with. You can’t very well move forward into this complex new age with confidence until all voices have been heard.

I later learned there are already implemenations of this idea. The official term for it is P2P radio. Since I wrote this, BitTorrent was invented, which works along similar principles. BitTorrent itself might be used to distribute non-real-time broadcasts.

BitTorrent
bulk file distributor
MBone On-line Book
multicasting
podcasting
UDP

CMP_homejump to top
CMP logo
feedback Please email your feedback for publication, errors, omissions, broken/redirected link reports
and suggestions to improve this page to Roedy Green : feedback email
made with CSS
HTML Checked!
ICRA ratings logo
mindprod.com IP:[65.110.21.43]
Your face IP:[38.103.63.16] You need Adobe flash to see this public service ad.
You are visitor number 6,322.
You can get a fresh copy of this page from: or possibly from your local J: drive (Java virtual drive/Mindprod website mirror)
http://mindprod.com/project/internetradio.html J:\mindprod\project\internetradio.html