1
Multirate Media Streaming Using Network Coding Niveditha Sundaram
Parameswaran Ramanathan
Suman Banerjee
Department of Electrical and Computer Engineering University of Wisconsin-Madison Madison, WI 53706–1691 nsundara, parmesh @ece.wisc.edu,
[email protected] Abstract Multimedia data transfers typically involve large volumes of data. Multirate multicast transmissions using layered source coding are generally used to deliver data streams to heterogeneous receivers. Network coding has been envisioned to increase throughput and deliver higher data rates than conventional source coding or no coding. The paper proposes a polynomial time algorithm for multicast to heterogeneous receivers using network coding. The overall goal of the algorithm is to maximize the aggregate rate to all the receivers. The problem is formulated as a linear programming optimization and solution from this optimization is used to assign linear network codes to all nodes using the Linear Information Flow (LIF) algorithm described in [1]. Empirical evaluation of the proposed solution shows that all receivers can be given a rate equal to their max-flows in all of the simulated instances.
I. I NTRODUCTION With the emergence of multimedia applications in business and entertainment, demand for real-time multi-point applications such as multi-party gaming, video-conferencing and videoon-demand services have increased. Multimedia data transfers typically contain large volumes of data, and hence redundant unicast transmission of the same data to multiple receivers is likely to consume excessive network resources. Conventional unirate multicasting is a solution to reduce the resource consumption. However, if the receivers in same multicast session differ in their max-flow rate from the source, unirate multicasting either overwhelms slow receivers or starves the fast ones. Hence, multirate multicasting, where individual receiver rates depend on their max-flow rates, is a preferred mode for distributing large content applications. One approach to achieve multirate multicasting is layered coding [2–6]. In layered coding, the source encodes the data stream into a base layer and several enhancement layers. Receivers subscribe to a layer cumulatively, i.e, if a receiver subscribes to layer , it also receives layers . . . . The layers are incrementally combined at the receiver to provide progressive refinement. Rate control algorithms for multirate multicasting strive to make efficient use of the network resources [2–4, 7]. The objective of the algorithms is to deliver a rate to each receiver that is dependent only on its flow rate from the source. Issues such as max-min fair rate allocation
and utility-fair rate allocation have been addressed in [6, 8–12]. These schemes use layered coding to achieve the desired fairness. The scheme proposed in this paper also uses layered coding for multirate multicasting. However, the proposed scheme also exploits a recently proposed idea called network coding [1, 13–16]. In network coding, the source and the intermediate nodes have the additional capability of encoding streams. It has been envisioned as a means to reduce delay, increase throughput, and improve reliability of a given network. Literature in network coding can be classified into two distinct categories, one focusing on the information theoretic aspects and the other on applications. On the information theoretic side, [13, 14] proved that, using network coding, each receiver can be given a rate equal to the minimum of the maximum flow from the source to each of the receivers. An algebraic framework identifying the networks code for each node to achieve the desired rates in presented in [15]. Polynomial time algorithms to identify linear network codes for all nodes to deliver minimum of the maximum flow rate to all receivers is proposed in [1, 16]. Implementation-oriented schemes for multicast media streaming in overlay networks and for file distribution to large number of cooperative users are respectively proposed in [17] and[18]. To the best of our knowledge, all of the work in literature on network coding except [15] consider homogeneous receivers, i.e., all receivers are given the same data rate irrespective of the available bandwidth. In [15], heterogeneous receivers are considered and algebraic conditions are derived for existence of solutions given different data needs of the receivers. However, an efficient algorithm to find the network codes that simultaneously meet the given data needs of the receivers are not presented in [15]. In contrast, this paper presents a polynomial time algorithm for finding the network codes for heterogeneous receivers in the context multimedia streaming with layered coding, i.e., the heterogeneity among the receivers is in the number of layers (consequently, the data rates) delivered to them. The overall goal is to deliver as many layers as possible to each receiver. This overall goal is formulated as maximizing the sum of the number of layers delivered over all receivers. The key aspect of the paper is that it describes a polynomial time algorithm for identifying the network codes to be used by each node to meet the overall goal. Empirical evaluation of the proposed algorithm are also included. The rest of the paper is organized as follows. The model and the problem statement are presented in Section II. A brief review of the scheme from [1] is presented in Section III. The proposed solution is described in Section IV. An empirical evaluation of the solution is included in Section V. The paper concludes in Section VI. II. M ODEL
AND
P ROBLEM S TATEMENT
The network is modeled as a weighted directed graph , where is the set of nodes and is the set of weighted directed edges between them. The weight on a edge represents the bandwidth available between nodes and . One of the nodes in is the source node that generates a multimedia stream and a subset is a set of receivers for the multimedia stream. The stream is encoded as a set of layers , . . . , such that to decode a layer a receiver needs all layers ! , . . . , " . Furthermore, the layers are such 2
L0 1
L0 2
L1
3
L1
L1 5
L1
L0
L0 {L 0,L 1}
Source
Source 0
L0
L1
1
L1
7
{L 0,L 1}
L1
Fig. 1.
2
L0
4
L1 L1
L1 {L 0,L 1}
L2
8 7
5
6
L0 + L 1
(a) Digraph without Network Coding
3
L1
L0 + L 1
{L 0,L 1}
L1
L2
L0
L0
L0
8 6
4
L1 {L 0,L 1}
0
L0
{L 0,L 1,L 2}
L0 + L 1
(b) Digraph with Network Coding
Illustration of network coding.
that the quality of decoded stream depends on the number of layers a receiver can decode; the more the layers, the higher the quality. Each node applies linear network codes on the data stream it receives before forwarding them on the output edges. Specifically, consider a typical node #$ . Let %& denote the set of nodes from which node directly receives a data stream, i.e., %"&')(*,+-. /0 and forwards to 21 . Similarly, let 34& denote the set of nodes to which node forwards a data stream, i.e., and forwards to 81 . Further, let 98:<; = &?> denote the data stream node 3/&5 (*6+-7 0
receives on input edge 7-@ 4 . Then, the data stream forwarded by node on an output edge is 9A:<&B= ;@> C : D = &?>J=K:<&B= ;L>-M!9A: D = &?>N for each O34&P D/EGFBH4I
where : D = &?>J=K:<&B= ;@> is a coefficient taken from a Galois Field of suitable dimension. The vector of ’s I corresponding to an edge 7 is referred to as the network code applied by node for I edge . Because of network coding, a node QOR may not directly receive , . . . . Instead, it may receive a linear combination of the layers. If node Q'S receives an appropriate set of linearly combined layers, then it can decode them to construct a subset of the layers , . . . . The receiver can further decode the layers to reconstruct the multimedia stream. More specifically, consider a receiver Q . Suppose that it receives data 9 :T; = U> from each O%V . If the network codes are properly selected at all nodes, then the receiver Q can decode the layers , . . . , XW FBY W as follows. The receiver Q first selects ZK%[@Z \ coefficients from the Galois Field, denoted as ]_^`=K:T; = U> , badc6aeZK%@Z and 6#%V . Then, it decodes ^f7QghC ]P^i=K:<; = U>-M9j:<; = U> ; EGFBY
for each
badc6aeZ %VLZTk
For example, consider the network shown in Figure 1(a) and 1(b). Assume all links are of unit capacity. Node 0 is the source node and nodes 5, 7, and 8 are the receivers. It can be shown that, without network coding, receivers 5, 7, and 8 can be given at most two layers ! and . One such solution without network coding is shown in Figure 1(a). However, with network coding, receiver 8 can be given an additional layer . Figure 1(b) shows a solution \
3
with network coding that deliver layers 0 and to receivers 5 and 8 and l , , and to \ receiver 7. This is possible because node 2 linearly combines the two data streams it receives from nodes and m before “forwarding“ both streams on the unit capacity link between nodes n and o . As a result, receivers 5 and 8 receive l and 8pq , from which they reconstruct l and . Receiver 7, on the other hand, directly receives , and . Thus, network coding \ increases the aggregate data rate that can be delivered to the receivers. Note that, in general, a node may not receive data on all its input edges and likewise it may not forward data on all its output edges. The total date rate delivered to receiver Q is the number of layers it can decode. Let rB denote the rate assured to receiver Qs . Further, let t denote the maximum flow rate from source to Q in the network. The paper assumes that the rG must satisfy the following Weak Fairness Criterion:
t
Va
t
^XuvrGVawr ^
,
i.e., a receiver with larger maximum flow is given a higher data rate. The problem then is to find the network codes for all nodes to maximize the total rates to all receivers while satisfying the weak fairness criterion. III. R EVIEW
OF
LIF A LGORITHM
The solution proposed in this paper builds on the LIF algorithm in [1]. Therefore, we briefly review the LIF algorithm. The LIF algorithm works as follows. Suppose x is the source node denote the max-flow from x to receiver Qye . For and is the set of receivers. Let t simplicity of presentation, assume all links in the network have unit capacity. The LIF algorithm begins by constructing t edge disjoint paths from the x to receiver Q , for each Qzd . It then steps through the nodes in topological order. In each step, it assigns a network code to the outgoing edges from the node. Since the nodes are considered in topological order, when a node is being considered, all its incoming edges would have already been assigned a network code. The network code to an outgoing edge is assigned based on the following observation: if the data stream assigned to the edges in any min-cut from the source to a receiver are linearly independent, then the receiver can reconstruct the multimedia stream transmitted by the source. More specifically, consider a receiver Q . Let { be any set of t { edges such that it contain exactly one edge from each t edge-disjoint { paths from x to Q . is min-cut from x to Q . Therefore, if the data stream on the edges in are linearly independent, then receiver Q can reconstruct the multimedia stream. Note that, if a edge belongs to a path for more than one receiver, then linear independence property must be satisfied with respect to each receiver. For example, consider the network in Figure 1. As stated earlier, the max-flows to receivers 5, 7, and 8 are 2, 2, and 3, respectively. Figure 2(a) shows the 2, 3, and 2 paths to the receivers 5, 7, and 8 (indicated by solid lines for | , dashed lines for } , dash-dot lines for ~ ). Suppose that, in stepping through the nodes, the LIF algorithm has assigned the data stream to the outgoing edges of nodes 1, 3, and 4 as shown in Figure 2(b) and it is currently considering the edge (2, 6) of node 2. The edge (2,6) belongs on the paths of receivers 5 and 7. The set 4
Path to 5 Path to 7 Path to 8
Source 0
1
3
4
L0 1
2 L0
8 5
7
6
(a) Paths to receivers 7 and in digraph Figure 1. Fig. 2.
Source 0
L1
L2
L0
3
L1
L1
4
2 8
5
7
6
(b) Example network code for edge
@ .
LIF code allocation example. n
n
is a min-cut based on the paths to receiver 5 and (A m*P and o 1 is a min-cut based on the paths to receiver 7. If the edge (2, 6) is assigned a network code _pq , then the data on the both of the above min-cuts will be linearly independent. In [1], the authors prove that one can always find such a linearly independent code in polynomial time (if all the receivers are homogeneous). (*B
o1
IV. P ROPOSED S OLUTION The proposed solution approach is comprised of the following six steps. Algorithm Heterogeneous Receiver Rate Estimate 1) Partition the set of receivers into subsets ' . . . ' such that: (i) the receivers in each have identical max flows, and (ii) the max flow of receivers in subset z , awQa is greater than that of receivers in any X^ , if c65Q . ^ 8 2) Construct graphs . . . b as follows z^bP^* 0^? , where _^ )w < and 0^X( e+ 6_^1 . 3) Construct and solve a linear programming problem (see Figure 3) to determine r^ , for all yaca , which are the rates delivered to receivers in ^ and parameters :T&B= ;L><^ where 7 V@Al 0^ for each badc6a . 4) Augment the graphs . . . b with edge weights as determined from the linear programming problem. In particular, edge in graph ^ is assigned a weight ¡:T&B= ;L><^ . 5) Using Ford-Fulkerson max flow algorithm, determine paths to receivers in ¢^ , for all such that each receiver gets a flow of r^0£r ^8 . adc6a 6) Use LIF algorithm [1] on the paths identified in Step | to deliver net rate r?^ to each receiver in ^ for all badc,a . Figure 3 shows the linear program formulation. The variables in the linear programming problem have the following semantics. 5
Linear Programming Problem Maximize ¤q¥ rG subject to
/* Executed by source */
1. ¤
:T@= ;L> EG¦¨§© ª:«@= ;L>¬^
r ^0£r ^ 8
/QdS®#P^i[badc6a
2. ¤
:<&B= U> E¦¨§ © ¯:<&*= °><^
±r ^£r ^ 8
/Qd5®#P^i[badc,a
3. ¤
& EG²§ :<;L> © ª:T&B= ;L><^
³¤
4.
¡:<&B= ;L><^'º
5.
H ¾ ¿NÀ ¤¼^ »g½ 2:T&B= ;L><^'a
6.
r¨º
Fig. 3.
Å Å
t
© ¯:T&B= ;L>¬^
where
/6µP^L[adc,a & EB´f§ :<;L> © ª:T; = &?><^ ¶ ^·(* ¸+-7 0^1 ¹ ^·7A(* ¸+-. /0# 0^B1 /QdS®#P^
t
{
:<&B= ;L>
, where
"7 $
badc6a
, where
Á·:T&B= ;L>
t¼ÂÃ
(·Ä"+-7 V@Al
is the minimum max flow among receivers in
1
.
Linear Program for maximizing the rates.
© ª:T&B= ;L><^ :T&B= ;L><^
: Rate allocated to receiver Q in subgraph Æ^ on edge . : Total capacity allocated to all receivers in subgraph ^ on edge
7
.
n
The constraints listed under m in Figure 3 are flow balance constraints. Specifically, , flow constraint corresponds to flow balance constraints at the source. For all ¸aRcda balance constraints for the source include all outgoing edges A# !^ . For c± , the total outgoing flow rate from the source is equal to r , which is the minimum max flow n rate guaranteed to all receivers. rB is assumed to be . Constraint corresponds to flow balance constraints at the receivers. Receiver flow balance constraints include all incoming edges QN 0^ for badc6a . Similarly, constraint m gives the flow balance constraints for all intermediate nodes in the graph. For each node, the total outgoing flow rate is equal to the total incoming flow rate on each path to a receiver QdÇ®¸A^? . Constraints j | in Figure 3 are the network coding constraints. Constraint | gives the capacity constraint for each edge 0µ . The sum of all the V:T&B= ;L>¬^ for each 7 V@ for all badc,a can not exceed the capacity of edge . Finally, constraint o gives the minimum rate that should be allocated to all receivers, which is equal to the minimum max flow among all the receivers in . Example: Consider the overlay network shown in Figure 4(a) with link capacities as shown. n n Node is the source and nodes mA are receivers. The max flow to receivers mA are j o oA} respectively, and therefore at the end of Step in Algorithm Heterogeneous Receiver n Rate Estimate (HRRE) Èh(P¨1 , h( m1 , and ÆÉOÊ(*A1 . Figure 4(b), 4(c) and 4(d) n \ show the three subgraphs and bÉ that are obtained at the end of Steps m and with \ the edge weights :<&B= ;L><^ as shown, for badc,am . Solving the linear program from Step m the rates are determined to be 4, 6 and 7 for r , r and rÉ respectively. From Steps | and o , the \
6
Source
0
1
Source
0 1 {L 0,L 1,L 2,L 3}
2 2
1
{L 0,L 1,L 2,L 3}
2
{L 0,L 1,L 2,L 3,L4,L 5,L 6}
1
3
2
2
2
4
2
2
4 {L 0,L 1,L 2,L3}
{L 0,L 1,L 2,L3} 1
{L 0,L 1,L2,L 3,L 4,L 5}
{L 0,L 1,L 2,L 3}
1
1 2
2
1 1
1
1
{L 0,L 1,L 2,L3,L 4,L 5}
1
3 1
1
1
1 1
(b) Digraph showing ËÍÌ .
(a) Overlay network Source 0
Source 0
1 1 {L 4,L 5} 3
1
1
1
{L4,L 5}
2
2
4 {L 4,L 5}
4
(c) Digraph showing Ë¡Î .
Fig. 4.
{L 6}
(d) Digraph showing Ë2Ï .
Overlay network and the subgraphs Ë Ì , Ë Î , and Ë2Ï .
network codes found for , and ¢É are shown in Figure 5(a), 5(b) and 5(c). From the \ figures, it can be seen that the network codes deliver the promised rates of 4, 6, 6, and 7 to receivers 1, 2, 3, and 4, respectively. For instance, receivers 1, 2, 3, 4 get a rate of from subgraph Ð , receivers 2, 3, 4 get 2 more from , making a total of 6, while receiver 4 gets \ a rate of 1 more from bÉ achieving a total rate of 7 for receiver 4. A. Proof of Correctness The following theorem can be proved about Algorithm HRRE. Theorem 1: Algorithm HRRE finds a set of network codes such that a receiver c6#z^ gets rate r ^ for all badc,a . Proof: The proof follows from the following observations: 7
Source 0 0 L0
{L 0,L 1,L 2,L 3}
L1
L0 + L 1
Source L2
L3
Source 0
L0 + L + L 2 3
1
+ L0
L0
+ L2 L2
2
L2
L 0,L3
{L 0,L 1,L 2,L3}
4
Å
L5 L4
L1 + ,L 0 L3
{L 4,L 5} 3 L5
L1 2
{L4,L 5}
{L 0,L 1,L 2,L 3}
L 4,L 5
4
4
{L 4,L 5}
(b) Digraph showing network coding using Ë¡Î .
(a) Digraph showing network coding using Ë Ì .
Fig. 5.
L6
L4
3 + ,L 0
L3
L1
{L 0,L 1,L2,L 3}
{L 6}
(c) Digraph showing network coding using Ë2Ï .
Network coding in subgraphs ËÍÌ , Ë¡Î , and Ë Ï .
Å
The linear programming problem in Figure 3 always has a feasible solution because a solution that guarantees minimum of max flow to all receivers using LIF algorithm satisfies all constraints of the linear program. The minimum of max flow to all receivers in '^¢Ñr^XÒr ^ 8[6a³c#a . This follows from the flow balance constraints Steps 1, 2, 3 of the linear programming problem. All receivers in ®£_^ get a rate of r ^³r ^ 8 in subgraph Æ^ using network coding . Follows from the above observation and the results in [1]. [¢aÒc,a Receivers in ^ get a rate of r ^ . The receivers in !^ are in graphs Ð , . . . z^ . Each \ receiver receives rf from È , r £r¨ from and so on until r^0sr ^8 from ^ . Å Å
\
Thus, all the receivers in
!^
\
receive a rate of
r ^
for all
badc,a
.
V. E VALUATION This section contains results from an empirical evaluation of Algorithm HRRE (Heterogeneous Receiver Rate Estimate) described in Section IV. The objectives of the evaluation are as follows: Å Å Å
demonstrate the advantage of using multirate multicast over unirate multicast for streaming quantify the benefit of using network coding over not using any coding compare the performance of HRRE for different topologies
The simulation environment is described as follows. The networks are based on an overlay architecture with ten fully-connected nodes with link capacities that uniformly distributed between 1 and 15. One of the nodes is the source of the multimedia stream and the other nine nodes are receivers.
8
1.3 SPIDER SPIDER−E HRRE
1.2
Avg. Normalized Rate (ANR)
1.1 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0
Fig. 6.
1
2
3
4 5 6 7 Example Overlay Networks
8
9
ANR for different receivers for 10-node overlay network.
Figure 6 compares the performance of three algorithms for multimedia streaming, namely HRRE with network coding, unirate multicasting called SPIDER [19], and an enhanced version of SPIDER called SPIDER-E for multirate multicast without network coding. The comparison is with respect to a performance measure called Average Normalized Rate (ANR), where ANR is defined as follows. Let r be the rate delivered to receiver Q in given scheme and let t be the max-flow rate from the source to receiver Q . Then, ANR for that scheme is defined as rG . Clearly, larger the ANR, the better the scheme. C t ZK6Z
E
¥
In Figure 6, the x-axis corresponds to the receivers . . . Ó and the y-axis shows the ANR for each receiver for the three schemes. Note that the receivers are numbered in the increasing order of their max-flow rates, i.e., node 1 has the least max-flow rate and node 9 has the largest max-flow rate. For each node, the leftmost bar indicates basic SPIDER scheme for unirate multicast. [19] showed that SPIDER delivers the minimum of max flow rates to all receivers. Although SPIDER will not overwhelm a receiver with a lower max flow rate, it will starve the node with higher max-flow rate because it delivers the same rate to all receivers. The middle and the rightmost bar respectively show the results for SPIDER-E and HRRE. From the figure it can be seen that, for streaming data, multirate multicast with no coding (SPIDERE) and with network coding (HRRE) deliver higher rates than unirate multicast (SPIDER). SPIDER-E shows an ANR increase of approximately *|fÔ over SPIDER and HRRE shows an ANR increase of approximately Ô over SPIDER. It can be seen that for all the networks considered, HRRE achieves max flow rate to all receivers. Although SPIDER-E delivers the minimum max flow rate to receiver , and delivers rates that are higher than the minimum max flow rates to receivers close to , it starves all the higher rate receivers. On the other hand, HRRE with network coding ensures that all receivers receive their respective max flow rates for all of the ten topologies that are considered. Since no receiver can receive at rates higher than its max-flow rate, HRRE achieved the best possible rates for all receivers in all the ten simulated networks. 9
VI. C ONCLUSIONS The paper presented an algorithm for finding network codes that maximize total rates to heterogeneous receivers. There are not any efficient algorithms in literature to find network codes to serve heterogeneous receivers. Algorithm Heterogeneous Receiver Rate Estimate is the first polynomial time solution in literature that finds network codes to allocate rates to heterogeneous receivers. Empirical evaluations show that the algorithm achieves rates equal to the max flow rate to all receivers in all simulated topologies. R EFERENCES [1] P. Sanders, S. Egner, and L. Tolhuizen, “Polynomial time algorithms for network information flow,” in Proceedings of SPAA 2003, June 2003. [2] S. McCanne, V. Jacobson, and M. Vetterli, “Receiver-driven layered multicast,” in Proceedings of ACM SIGCOMM 96, Aug. 1996. [3] X. Li, S. Paul, and M. Ammar, “Layered video multicast with retransmissions (lvmr): Evaluation of hierarchical rate control,” in Proceedings of IEEE INFOCOM 1998, Mar. 1998. [4] X. Li, S. Paul, and M. Ammar, “Multi-session rate control for layered video multicast,” in Proceedings of Multimedia Computing and Networking, Jan. 1999. [5] K. Nakauchi, H. Morikawa, and T. Aoyama, “A network-supported approach to layered multicast,” in Proceedings of ICC, June 2001. [6] K. Kar, S. Sarkar, and L. Tassiulas, “Optimization based rate control for multirate multicast,” in Proceedings of IEEE INFOCOM 2001, Apr. 2001. [7] S. Bajaj, L. Breslau, and S. Shenker, “Uniform versus priority dropping for layered video,” in Proceedings of ACM SIGCOMM 98, Sept. 1998. [8] S. Sarkar and L. Tassiulas, “Fair allocation of utilities in multirate multicast networks,” in Proceedings of Allerton Conference on Communication, Control and Computing, Sept. 1999. [9] S. Sarkar and L. Tassiulas, “Distributed algorithms for computation of fair rates in multirate multicast,” in Proceedings of IEEE INFOCOM 2000, Apr. 2000. [10] K. Kar, S. Sarkar, and L. Tassiulas, “A scalable low-overhead rate control algorithm for multirate multicast sessions,” IEEE Journal on Selected Areas in Communications, vol. 20, no. 8, pp. 1541–1557, Apr. 2001. [11] H-W. Lee, J-W. Cho, and S. Chong, “A distributed max-min flow control algorithm for multi-rate multicast flows,” in Proceedings of GLOBECOM 2004, Dec. 2004. [12] Y. Cui, Y. Xue, and K. Nahrstedt, “Max-min overlay multicast: Rate allocation and tree construction,” in Proceedings of IWQoS, June 2004. [13] R. Ahlswede, N. Cai, S-Y. R. Li, and R. W. Yueng, “Network information flow,” IEEE Transactions on Information Theory, vol. 46, no. 4, pp. 1204–1216, July 2000. [14] S-Y. R. Li, R. W. Yueng, and N. Cai, “Linear network coding,” IEEE Transactions on Information Theory, vol. 49, no. 2, pp. 371–381, Feb. 2003. [15] R. Koetter and M. Medard, “An algebraic approach to network coding,” IEEE Transactions on Networking, October 2003. [16] S. Jaggi, P. Chou, and K. Jain, “Low complexity algebraic multicast network codes,” in Proceedings of International Symposium on Information Theory, July 2003. [17] J. Guo, Y. Zhu, and B. Li, “Codedstream: Live media streaming with overlay coded multicast,” in Proceedings of SPIE, Dec. 2003. [18] Y. Zhu, B. Li, and J. Guo, “Multicast with network coding in application-layer overlay networks,” IEEE Journal on Selected Areas in Communications, vol. 22, no. 1, pp. 1–13, Jan. 2004. [19] S. Ganguly, A. Saxena, S. Bhatnagar, S. Banerjee, and R. Izmailov, “Fast replication in content distribution overlays,” in Proceedings of IEEE INFOCOM 2005, Mar. 2005.
10