We will study a stream based transfer protocol called RAP by Reza Rajaie, Mark Hendley and Deborah Estrin.
This paper appeared in IEEE Infocom network conference in 1999.
I suggest you read the tech report instead. The Infocom paper contains very little technical details about the method, and contains mainly description of the results.
(Recall that you can adjust the transmission rate of multimedia streams in various ways - increase compression, reduce frame rate or reduce frame size....)
The pace of transmission is controlled by the MPEG encoder (frame rate, frame size, compression parameters, etc).
RAP uses 2 mechanisms to determine packet loss...
NOTE: ACK packets are not used to request retransmission. They are used to signal congestion condition.
When a new sample of RTT is obtained, the new RTT estimate is computed as follows:
for each transmission record i do:
{
if ( DepartureTimei >= CurrentTime + TimeOut )
{ if ( Statusi != ACKED )
Assume packeti is lost
}
}
ACKlast = 0 if ACKcurr is the first packet
N = 0 if there is no such packet
ACK packets are processed by the following algorithm:
for each packet i in the Transmision History do { if ( ( (N < Seqi) && (Seqi <= Acurr) ) || (Seqi = Alast) ) then Seqi received; else Seqi lost; }
Next we need to determined how to react when there is congestion and also when there is no congestion.
No surprise:
So how do you update the transmission rate ?
How do we determine the new IPGi+1 that achieve this ???
D We know that: Si = ------ bps IPGi D and that: Si+1 = ------ bps IPGi+1 We want to increase transmission rate by X bps. I.e.: : Si+1 = Si + X bps D D So: ------ = ------ + X IPGi+1 IPGi Which result in: C * IPGi IPGi+1 = --------- C + IPGi D where: C = --- X
The authors added several refinements to make the RAP protocol more stable: