Summary. The authors propose a feedback control mechanism for real-time traffic that solicits feedback from receivers; feedback is based on the loss-rates of the receivers and is sent probabilistically; when congestion is detected by the source, it informs the application who then adjusts the rates.
Multicast creates special needs for feedback control: to achieve scalability, must distribute the feedback alg to the receivers, must avoid message implosion by limiting number of responders somehow, must map those responses received to the entire group and must figure out how to adjust the output rate fairly.
Other feedback control alg don't address multicast. Some other feedback control mechanisms require changes in network architecture.
Algorithm. The source needs the following information in order to determine if congestion is present and notify the application:
Feedback is received on a probabilistic basis. The source and receivers generate random keys. Based on an estimate of the number of receivers (don't know how this is bootstrapped), the source decides how many bits in the key will be significant bits used for matching by the receivers. When solicitations for feedback are sent out to the receivers, the receiver answers only if:
Question: what is ``maximum rtt'' field for?
Since the source does not receive input from all receivers, it must estimate how much congestion is present based on those responses that it did get. It can do this because it knows the probability of a key match given the number of significant bits in the key and the estimated number of receivers.
Rate decreased +/*.
If the number of receivers is less than 10 (another ad hoc value, I believe) the receivers send a NACK if a block was lost since the number of receivers is low enough that this won't cause implosion. The block cannot be retransmitted, but the source does take that loss into account when encoding current blocks.
Performance. Graphed the loss-rates and bandwidth used over time. One can see that when the loss-rate was >5%, the bandwidth used is at a minimum; when <5%, the bandwidth used rises to the maximum allowed.