Upload
fahad-ahmad-khan
View
215
Download
0
Embed Size (px)
Citation preview
8/13/2019 Key EX_4b
1/5
Consider an IRMA multicast tree of 4 levels: the root router is at level 1 and
the leaf routers are at level 4. Each of the root and intermediate routers has
exactly three router children and each leaf router has exactly 10 host children.
A single data packet was multicast and successfully acknowledged by all
receivers. Assume p is the cost of transmitting the data packet on a
downstream link and q is the cost of transmitting an ACK message on an
upstream link.
a) Compute the total cost for the reliable multicast of one single data packet
within the multicast router-only tree (i.e., the cost of transmitting the packet
on downstream links and transmitting the ACKs on upstream links, not
including links to the host sender or host receivers).
b) Compute the savings in cost of the above scheme compared to a simple
scheme that delivers the packet to each receiver using a dedicated unicast
TCP connection.
Problem 1
8/13/2019 Key EX_4b
2/5
# routers in 2nd level = 3
# routers in 3rd level = 9
# leaf routers in 4th level = 27
# user hosts = 270 receivers
# downstream links for a data packet =
27 + 9 + 3 = 39
# upstream links for aggregated ACKs = 39
IRMA multicast cost = 39 p + 39 q
Problem 1- a Solution
8/13/2019 Key EX_4b
3/5
# user hosts = 270 receivers
# unicast TCP connections = 270
The are 3 downstream links for
each unicast packet and 3 upstream links foreach ACK in the router-level tree.
Cost of a one-packet TCP connection = 3p + 3q
Unicast Cost = 270 (3p+3q) = 810p + 810qCost savings of IRMA multicast =
810p + 810q 39p -39 q = 771p + 771 q
Problem 1- b Solution
8/13/2019 Key EX_4b
4/5
Consider a restricted version of IRMA that does
not support caching, i.e., IRMA routers do not
have code/variables to support caching. Thus
recovery of lost packets is only done by the
multicast sender. Write the pseudo code of the
routine executed by an intermediate router when
it receives a Leave request from a child router.
Use the same data structures/notation used in theIRMA paper and clearly define any extra
variables you may use.
Problem 2
8/13/2019 Key EX_4b
5/5
LEAVE (src, dest)
// src is k and dest is ichild(i)= child(i) - {k} // remove child k
if(child(i) = empty) // if no more children, prune router i
{send LEAVE request to parent(i); exit()}
// Update state of router i
old_seqno = ackseq_no(i); old_dupno = dup_no(i); old_awnd = awnd(i);ackseq_no(i) = Min{ackseq_no(j) | j child (i) };
awnd(i) = Min{ackseq_no(j)+awnd(j) | j child (i)} - ackseq_no(i);
dup_no(i) = Max{dup_no(j)| ackseq_no(j) = ackseq_no(i) & j child (i) };
if (old_seqno ackseq_no(i) OR old_dupno dup_no(i)
OR old_awnd
awnd(i) ){ send ACK(ackseq_no(i), dup_no(i), awnd(i)) to parent (i) }
Problem 2 Solution