Subject: Re: RealAudio G2 server?
To: Olaf Seibert <rhialto@polder.ubc.kun.nl>
From: Sean Doran <smd@ebone.net>
List: port-i386
Date: 03/22/1999 09:08:36
Olaf Seibert <rhialto@polder.ubc.kun.nl> writes:

> > To react like RealAudio does to changing network conditions, I'd think
> > it would need to use variable bit rate encoding (and multiple copies
> > of the encoded files on the server side?) 

That's one approach.  However, antoher approach -- which
one can see Real* taking when the network is congested --
is to use a buffer to impose a varying delay on the
playback of data received from the network, to smooth out
congestion-related dropped and delayed packets.  The more
congested the network, the bigger the buffer (and thus the
longer the delay).

Who knows what the RealAudio stuff really does beyond that?

> In any case, shoutcast is certainly not perfect yet, since it runs over
> TCP (HTTP even), and TCP is indeed not very well suited to this sort of
> thing.

TCP is very well suited to "playback" material, although
because TCP retransmits lost segments and the time it
takes for a retransmitted segment to arrive at the
listening client, the buffering requirements in the face
of a badly-congested network can be quite large.

For "live" traffic, a better approach is to use RFC2001
congestion avoidance without TCP-style retransmissions,
which also eliminates the server's need to buffer a
congestion window per-client.   Forward error correction
information can mitigate "choppy" playback due to
individual lost segments during slow start and congestion avoidance.

        Sean.