Lecture No. 22
Date :-  8 Oct. 2003
Scribe by :- Niraj N. Kalamkar (Y3111020)

Scalable Reliable Multicast


  1. Software Distribution: The software at various site needs to be updated. If the distribution is not done reliably then some copies may have older versions and some may have newer version. And there will be conflict in operation.
  2. PPT Slides in Video Conference.
  3. Distributed White Board (WB): Assumues that the White Board is being shared by various parties in Group on Network at distant places. If one  party draws on the board and immidiately the drawing of second party follows,  then everybody involved in the group should see the update by first party and then update by second one and not reverse. In the sence the multicast should be reliable.
Suppose three parties are involved in WB - A, B and C
A Draws Line on WB.
Then B draws line related to A's line.
If application says that these two are casually ordered then Everybody should see updates in this sequence only.
Reordering is not desired here.

Design Goals

Design Challenges

Unicast has "fate sharing".
Meaning:  if either one of sender or receiver fails then the connection is terminated.
Also sender or receiver are responsible for reliability.
(In TCP, sender is responsible. It keeps on trying till it gest ack from receiver.Thus we can say that TCP uses sender based approach.)

But the sender based approach has problems in multicast.
Fig. 1
Problem with Sequencing :

TCP uses byte number for sequencing.
However that has problem with multicast.
Solution: Application Layer Framming

Reliable Multicast Protocol

General working :

On loss detection :
Consider following scenario shown in figure
figure 2
figure 2

  • Each node in the subset (shown inside the circle) will set timer with random values for time outs
  • One of them will eventually time outs and fires the multicast-repair-request.
  • Anybody having packet then can multicast the packet.

Random Timer values

  • Repair Timer

  1. Uniform in [C1, C1+C2] x d(S,A) , where S is source and A is node for which we are setting value of the timer. 'd( )' is distance function.
  2. Here Closest to source will detect loss first as its value of time out will be lowest.
  • Responce Timer

  1. Uniform in [D1, D1+D2]x d(B,A)
  • If C1 high-
    • Large repair delay
    • But more suppression for farther nodes

  • If C2 is high-
    • Larger responce delays
    • but more suppression for larger group size.

  • Similarly for D1 and D2


There should be Adaptive values for C1, C2, D1 and D2
The values should be adapted based on
- observed delays
- observed duplicate request frequency
Also adaption should be application specific as different applications need diffrent tolerance to delays and no. of duplicates
For White Borad - Fast repair are needed
For s/w updates - No need of fast repair.