Network (CDN) and Peer-to-Peer (P2P streaming network can ... A client can download parts of file from several servers via ..... We set up a network as in Fig.
Internet Media Streaming Using Network Coding and Path Diversity Dong Nguyen, Tuan Tran, Tuan Pham, and Viet Le School of Electrical Engineering and Computer Science Oregon State University, Corvallis, OR 97331, USA {nguyendo, trantu, pham, lev}@eecs.oregonstate.edu
Abstract— Delivering live media content over best-effort Internet is a challenging task due to a number of factors such as packet loss, delay, and bandwidth fluctuation. As a result, many approaches have been proposed ranging from Auto Repeat Request-typed solutions, Forward Error Correcting code to routing and scheduling protocols and network architecture design. Multiple path streaming is an important solution which exploits the path diversity to satisfy the high transmission bandwidth requirement of streaming applications. Recently, network coding has been proposed for efficient information dissemination over packet-switched networks. In this paper, we propose a network coding framework for multiple path streaming over the Internet. In particular, we use a number of random network coding schemes in order to both exploit the benefits of path diversity and prevent packet loss. Our framework works at the application layer using the UDP service and is independent of the current network infrastructure. Index Terms— Multimedia streaming, video streaming, network coding, multiple path streaming, path diversity.
I. I NTRODUCTION The last decade has witnessed a growing popularity of multimedia streaming applications over the Internet. There are thousands of Internet multimedia services such as online music, online radios and Internet television, and video-ondemand. Recently, several live Peer-to-Peer (P2P) streaming systems such as PPLive, CoolStreaming provide live video services to a larger number of users worldwide. In addition, Internet Service Providers also attempt to serve video-on-demand to their subscribers through their IPTV services. However, due to the inherent characteristics of media data including high bit rates, delay and loss sensitivity that are different from the normal data, providing high quality multimedia over the lossy Internet with limited and fluctuated bandwidth are still challenging. As such, there are many approaches to improving the quality of Internet media streaming applications. The goals of those approaches can be classified into two categories: (1) achieving reliable communications over lossy Internet; (2) exploiting the current Internet transport infrastructure (i.e., UDP/TCP/IP) in order to make it efficient for media streaming applications. From reliable communication perspective, Auto Repeat Request (ARQ) or Forward Error Correcting (FEC) code are used to prevent packets from packet loss due to the Internet congestion. In the ARQ scheme, the lost packets are recovered by a retransmission mechanism. Streaming applications based on the TCP service are examples of this scheme. Using FEC, the sender transmits some redundant information in addition to the original data. For example, using a systematic ReedSolomon code to protect m source packets, k redundant
packets are formed and transmitted in addition to original packets. If the number of correctly-received packets is equal or greater than m then all m source packets can be recovered. FEC is usually used to prevent packet loss in unreliable UDP communication service. From the Internet transport architecture perspective, new application-layer routing, scheduling algorithms and network architectures (i.e., application-layer overlay networks) have been designed. For example, P. A. Chou and M. Ziao [1] proposed a scheduling algorithm using Markov decision process to efficiently transport media data from a server to a client in a rate-distortion optimization way. P2P networks, which are application-layer overlay networks, are developed to run at the application layer to disseminate data to a large number of users. P2P networks works based on the current Internet transport protocols but use their own network architectures and their own scheduling and routing protocols. Recently, multiple path streaming frameworks which are able to stream different subsets of media data over different paths as opposed to typical scenario where data travels along a single path have been proposed [2] [3]. Content Distribution Network (CDN) and Peer-to-Peer (P2P streaming network can be viewed as multiple path streaming systems. In CDN such as Youtube, a media file is multiply stored in multiple servers. A client can download parts of file from several servers via a number of links to make up a whole file. This multiple downloading alleviates the bandwidth limitation when a single server is used. Similarly, in P2P streaming, media packets belong to a sequence can travel over different paths from the server, relaying over several peers before arriving at the destination to reconstruct the full media sequence. For instance, in Joost P2P streaming system, a peer concurrently connects with 6 to 10 other peers from different geographic locations to download a media stream [4]. The rapidly growing number of users of those systems proves their success for multimedia streaming in the current best-effort Internet infrastructure. Inspired by such development, we propose a server-client multiple path streaming system using network coding. Our system is employed at the application layer using the UDP communication service. Our network coding technique works similarly to the FEC scheme to provide reliable communications over the unreliable UDP communication service, and at the same time, exploit the advantage of multiple path streaming. Our network coding frameworks are simple, yet provide significant improvement of the media quality. Our paper is organized as follows. Section II presents some background on network coding and multiple path Internet streaming and the system model for multimedia streaming.
978-1-4244-2324-8/08/$25.00 © 2008 IEEE. This full text paper was peer reviewed at the direction of IEEE Communications Society subject matter experts for publication in the IEEE "GLOBECOM" 2008 proceedings.
b W a or b?
U
b
T
b b
a D1
U
W b
ab ab
Z
(a)
a
a
X Y
S
X
Y
Z a=b(ab)
(b)
b E1 S
L
D
2a
+
2
1
L
2
1
E
2b
T
U W
X
ab
b=a(ab)
+
Y
D2a + E2b
a
a
a
b
D3a + E3b
T
S
D1a + E1b
a
Z
Decode a and b
Decode a and b
(c)
Fig. 1. An example for using XOR network coding to efficiently utilize the network bandwidth: (a) Without network coding, two packets a and b are congested at link WX; (b) With XOR network coding at node W, two packets can be sent to two sinks without congestion; (c) The same transmission efficiency can be achieved with random network coding.
In Section III, we state our Internet multimedia streaming problems. Section IV illustrate our three network coding schemes. We provide some NS2 simulation results in Section V and the conclusion in Section VI. II. BACKGROUND AND S YSTEM M ODEL A. Network Coding Network coding was firstly proposed by R. Ahlswede et al. [5] as a solution to efficiently utilize the network bandwidth. Compared to the traditional store and forward transmission, i.e., network nodes store and forward information without modification, the network coding solution allows network nodes to store, combine or encode data before forwarding to the outgoing links. As shown in an example in Fig. 1 in which source S wants to multicast two packets a and b to two sinks Y and Z. To avoid congestion when transmitting two packets a and b via link W X (Fig. 1a), node W can encode them into one packet as a ⊕ b (we call this combined packet as netcod packet or coded packet). Upon receiving this combined packet, sinks Y and Z are able to reconstruct both a and b by simple XOR operations (Fig. 1b). Random network coding which was introduced by T. Ho et al. is another form of network coding which is independent of the network topology [6]. As shown in Fig. 1c, node S generates a pair of random coefficients {α1 , β1 } and encodes two packets as α1 a + β1 b that is sent out on link ST . Similarly, another pair of random coefficients {α2 , β2 } is generated and used to form another coded packet α2 a+β2 b that is sent out on link SU . Node T and U can forward the information to the outgoing links without modification. Node W , however, uses random coefficients to encode two coming packets α1 a + β1 b and α2 a + β2 b into one new coded packets α3 a+β3 b that is sent out on link W T . Now sinks Y receives two coded packets α1 a + β1 b and α3 a + β3 b and sink Z receives α2 a + β2 b and α3 a + β3 b from which, they can decode the original packets by solving the system of equations with unknowns a and b. Network coding has been proved to be very efficient for information multicast in both wireline and wireless paradigms. Network coding even becomes robust in situations where the network topology is difficult to obtain or link failures are often such as P2P networks, wireless sensor or ad hoc networks. For example, Avalanche build by Microsoft is a network codingbased P2P content distribution system which can achieve a considerable improvement compared with the traditional approaches [7]. For wireless networks, S. Chachulski et al. [8] proposed a network coding scheme using opportunistic routing
Frame i+1
Frame i
Fig. 2. Sequential dependencies of media packets are presented as a directed line graph.
for multi-hop wireless multicast. In this scheme, wireless nodes opportunistically receive, encode and forward packets to other nodes without using any centralized routing and queueing technique. The authors’s emulation system proved that network coding remarkably outperforms the current stateof-the-art routing schemes. B. Internet Multiple path Media Streaming There has been a significant amount of research dealing with multiple path streaming. In [2], [3], Apostolopoulos designed a multiple path streaming system using multiple state encoding. T. Nguyen and A. Zakhor [9], on the other hand, proposed an FEC framework for distributed video streaming in which several video sources stream a media sequence to a client. The authors proposed a Reed-Solomon code scheme to combat the packet loss problem and to efficiently take the advantage of path diversity. In another work, T. Nguyen and S. Cheung [10], set up a multiple TCP connection streaming framework that optimizes the transmission rates over several concurrent TCP connections to enhance the streaming throughput. In addition, there are many papers on designing live P2P streaming networks. The difficulty with designing live P2P streaming network is that it must not only be scalable with a large number of users but also be able to distribute the realtime media content to all users. D. A. Tran et al. [11] designed a live P2P streaming system that was able to meet such requirements. The idea for using network coding for Internet multimedia streaming is still in its infancy. According to our understanding, there have been a few literatures on this topic. The most significant work is done by M. Wang and B. Li [12] who implemented a live P2P streaming system using the random network coding framework proposed by C. Gkantsidis and P. Rodriguez [7]. The author’s system called LAVA is able to enhance the quality of video applications that serve a large number of clients at the same time. Our work is different from this work in which our network coding framework is designed for server-client streaming. Because there are only one sender and one receiver, there are more options for designing the encoding and decoding process based on the characteristics of media data in order to maximize the media streaming performance. C. Media System Model We assume that the multimedia signal is segmented into independent equal-length segments or frames. Each frame is then encoded into L layers presented as a directed line graph as in Fig. 2. Layers are sent as same-size packets which have different degrees of importance in reconstructing the original media segment and are dependent on each other. The packet corresponding the first layer has the largest degree of importance while the packet corresponding to the last layer has the smallest degree of importance. Hence, the packet order P1 , P2 , ..., PL of a frame is the decreasing order of importance. Packets belonging to a frame are assumed to have the same deadline D. Because of dependency among packets, Pi can be
978-1-4244-2324-8/08/$25.00 © 2008 IEEE. This full text paper was peer reviewed at the direction of IEEE Communications Society subject matter experts for publication in the IEEE "GLOBECOM" 2008 proceedings.
P4
P3
P2
P1
Internet Internet
Sent Packet Stream
P4
X
P2
P4
P1
P3
P4
P1
Packet lost
CONGESTION!
P2
P2
Only P1 and P2 are used for playback Client
Media server
P4
P1
Internet Internet
Received Packet Stream
Media server
P3
P2
P4
P1
(a)
Fig. 3.
x
x
x
P1
Client
(b)
Problems with Internet server-client streaming: (a) Packet loss in single path streaming; (b) Packet loss and duplication in multiple path streaming.
used for playback only when it is received before the deadline D and all packets that it depends on P1 , P2 , ..., Pi−1 have been received correctly. The importance of media packets can be quantified into amounts of distortion reduction contribution in to the media frame. Suppose that packet Pihas a distortion reduction contriL bution di ; (0 < di < 1, i=1 di =1). Consequently, the quality of a reconstructed frame at a receiver can be measured by the normalized average distortion defined as θ=
L i=1
di
(1 − εj ).
(1)
j≤i
where εi is the probability that packet Pi is received correctly. The term j≤i (1−εj ) expresses the dependency of packet Pi on packets P1 , P2 , ..., Pi−1 by the directed line graph above. The normalized distortion being 1 means that no packets of the frame is received and being 0 means that all packets are received correctly before deadline and the frame is fully reconstructed. For the transmission system we assume that the multiple paths is established between the server and the client. Those multiple paths, for example, can be several links via different relay nodes to simultaneously relay packets from the server to client. We assume that each frame has totally N discrete transmission opportunities at all paths and they can be presented as t0 , t1 , ..., tN −1 . The server can send each packet at each transmission opportunity so that the media packets can arrive at the client before their deadline D. III. P ROBLEMS W ITH S TREAMING U SING UDP We are interested in designing a network coding framework at end-systems to efficiently stream media data from the server to the client to exploit the advantages of multiple paths. Because multiple path streaming is composed of several unique paths, we first consider the unique path case. Single path streaming: In the single path streaming, media packets are transmitted following one single path from the server to the client. Consider a streaming scenario as shown in Fig. 3a in which a media frame with four packets P1 , P2 , ..., P4 is sent from the server to the client using UDP. Assume that among those four packets, one packet, say P3 , is lost due to the Internet congestion. Consequently, packet P4 , even received correctly, becomes useless in playing back because it depends on P3 . Since the UDP service is used, the server does not know which packet has been lost to retransmit when the transmission opportunities are available. Multiple path streaming: In this scenario, there are multiple paths between the server and the client and different packets belonging to a media frame are transmitted via different paths before reaching the client. Consider an example in Fig. 3b in which each video frame with four packets P1 , P2 , P3 , P4 is transmitted via two paths. The question is what is the
most efficient way to schedule those four packets to transmit via two paths in order to minimize packet loss and then minimize the media distortion. One simple way of transmission is that the server sends all four packets via the first path and send duplicate those four packets via the second path (with assumption that there are 4 transmission opportunities on each path). Obviously, this way of transmission renders a lot of duplications as shown in the Fig. 3b, leading to inefficient bandwidth usage. There are several solutions to address those streaming problems. One typical solution is using Reed-Solomon code as in [9]. We will show in the following section that network coding can be another option to tackle those problems. IV. N ETWORK C ODING S OLUTION Suppose there are N transmission opportunities to transmit L media packets P1 , P2 , ..., PL so that they can arrive at the clients before the deadline. The server employs network coding to encode those packets and send to the client. At the client, an appropriate decoding process is used to recover the original media packets. We have following network coding schemes: Scheme A (Uniform Network Coding): This is the network coding scheme used in [12]. The server uniformly combines all packets of a media frame into coded packets CP = L i=1 αi Pi , where αi , i = {1, ..., L}, are elements randomly taken from a selected finite field. Because there are totally N transmission opportunities on all links, the server forms N netcod packets with different coefficients transmit them to the client. By encoding this way, the set of packets with different degrees of importance is mapped into a set of equallyimportant packets. The client must receive at least L netcod packets in order to recover the media frame. Consequently, the media quality depends on how many packets are received, not on which packets are received as in the transmission without using any combination. Scheme B (Priority Network Coding): Using network coding scheme B, the server gives priority to combine some important packets, instead of uniformly combining all packets as in Scheme A. For example, the server can combine the most K (K < L) important packets P1 , P2 , ..., PK among K α P L packets as CP = i i . The server then dedicates i=1 all N transmission opportunities to transmit those netcod packets. The client can recover those K important packets whenever it receives enough K coded packets. Clearly, this scheme is suitable for the situation with limited bandwidth, or high packet loss rate. Because the less important packets PK+1 , ..., PL are never combined into coded packets, so they are never received by the client. Thus this scheme does not produce the full quality of the media frame. However, it guarantees a level of media quality at client(s). Scheme C (Systematic Network Coding): In this scheme, the server divides the transmission of L packets into two phases.
978-1-4244-2324-8/08/$25.00 © 2008 IEEE. This full text paper was peer reviewed at the direction of IEEE Communications Society subject matter experts for publication in the IEEE "GLOBECOM" 2008 proceedings.
Internet Internet
CP4
x
CP2
CP1
Received Packet Stream Media server
C
CP1
8 P1+5 P2+ P3
CP2
2 P1+3 P2+ 2P3
CP4
Client
1 P1+6 P2+ 11P3
P3
P2
P1
Decoding needs only 3 packets
(a)
Media server
C P4
C P9
CP P3
C P8
P 2 C
CP4
1
x
CP2
CP1
P4
Internet Internet C P7
CP9
C P6
x
P6
x
P2
P3
P4
P1
x
P2
Client Media server
C P9
P1
Internet Internet C P8
C P7
CP9
C P6
(b)
x
x
P6
Media client
(c)
Fig. 4. The network coding solution for single path and multiple path streaming: (a) Network coding scheme A for single path streaming; (b) Network coding scheme B for multiple path streaming; (c) Network coding scheme C for multiple path streaming .
At the first phase, the server uses L transmission opportunities to plainly sends the source packets in the order P1 , P2 , ..., PL without using any network coding combination. After this phase, the server sends netcod packets if there are transmission opportunities available (L < N ). Thus the server sends CP = L i=1 αi Pi in the remaining transmission opportunities. As a result, the packets transmitted are L source packets and N − L netcod packets as P1 , P2 , ..., PL , CP1 , ..., CPN −L . Scheme C also shares a property with the scheme A in which if a client receives L packets, it is able to recover L source packets. An important advantage of this scheme compared to Scheme A is that a packet in the first transmission phase can be used immediately for playing back without having to wait until successfully decoding the whole frame. The systematic term represents that the source packets are sent followed by netcod packets similar to the systematic block code, e.g., ReedSolomon systematic code, in which the server sends L source packets and an additional number of parity packets. If any L packets are received correctly, L source packets are guaranteed to be decoded. How to send netcod packets: As noted earlier, we assume that the transmission of media packets at the server over multiple paths are divided into transmission opportunities t0 , t1 , ..., tN −1 . Because network coding maps media packets with different priorities into packets of equal priorities, the server just sends packets via any path if it has a transmission opportunity. In other words, we do not need to any special transmission scheduling to send packets over multiple paths. Remarks on overhead: There are two types of overhead in random network coding: transmission overhead and delay overhead. The earlier is the overhead in which random coefficients must be transmitted with the coded packets and the later is the playback time delay because the client has to wait until getting enough number of netcod packets for decoding and then takes time to decode the original packets. To combine L packets of a frame, L coefficients must be used to produce each netcod packet. As a result, the transmission overhead depends on the length of the packet being combined. In practise, coefficients are normally elements of GF(256) (i.e., one byte) and the packet has a length of more than thousand bytes, so this overhead can be ignored. The waiting time to get enough number of netcod packets are unavoidable for Scheme A and B. For example with L = 5 and K = 3, the client has to wait until getting enough 5 packets and 3 packets if using Scheme A and B, respectively, before starting decoding. Scheme C, however, does not have this delay. The decoding is a process of solving a system of equations. In Scheme A and B, the number of unknowns (in the system of equations) is L and K, respectively, while in Scheme C, the number of unknowns is the number of lost packets. Normally, the Gaussian elimination method is used for decoding, hence
t0
t1
t2
t3
t4
t0
t1
t2 Sending time
at server Receive 3 packets
Receive 5 packets
Forward Trip Time
Receiving time at client Scheme A
Netcod decoding time
Scheme B
Netcod decoding time
Starting playback time
Scheme C
Fig. 5. The delay in the streaming system using three network coding schemes: Scheme A has the largest delay while Scheme C has the smallest delay. Scheme A B C
Worst-case complexity O(lL3 ) O(lK 3 ) O(lL3 )
Best-case complexity O(lL3 ) O(lK 3 ) O(1)
TABLE I D ECODING COMPLEXITY OF THREE NETWORK CODING SCHEMES .
the time complexity is O(L3 ) and O(K 3 ) for Scheme A and B, respectively. If the packet length is l symbols, then those complexities are O(lL3 ) and O(lK 3 ). We note that L is not very large since a media frame typically has up to more than 10 layers while l is in the order of hundreds or more than one thousand. Fig. 5 introduces the delay of the streaming with three network coding schemes. The server begins transmission at time t0 . After the forward trip time delay, the first packet is received at the client. If using scheme C, the client can start playing back immediately. However, if using scheme A or B, the client must receiver enough number of coded packets for decoding (e.g., 5 packets for Scheme A and 3 packets for Scheme B) and then spends time to decode the source packets before playing back. We also have a table I which summarizes the worse-case and best-case decoding time complexity of those three network coding schemes. V. S IMULATION R ESULTS AND D ISCUSSIONS To evaluate our network coding approach, we implement some NS2 simulations. We set up a network as in Fig. 6 in which a server S streams a media sequence through routers R1 , R2 , R3 to client T . Cross traffic generator G is used to simulate the network congestion and packet drop at the routers. All links are set to have the same transmission bandwidth of 0.2Mbps. The server send out with the total rate of 0.6Mbps on three output links, and cross traffic generator sends out with the rate of 0.05Mbps on each link. All transmissions in our simulation are based on UDP, thus there is no feedback from the client to the server. We assume each media frame having 5 packets P1 , P2 , ..., P5 and their corresponding distortion reductions d1 = 0.5, d2 = 0.3, d3 = 0.15, 5 d4 = 0.10, d5 = 0.05 (in percentage of distortion, i=1 di =
978-1-4244-2324-8/08/$25.00 © 2008 IEEE. This full text paper was peer reviewed at the direction of IEEE Communications Society subject matter experts for publication in the IEEE "GLOBECOM" 2008 proceedings.
Each frame has 5 transmission opportunities 0.7
0.2Mbps
R1
Media server
S
0.2Mbps
R2
0.2Mbps
T Client
R3
Fig. 6.
0.6 0.5 0.4 0.3 0.2 0.1 0 0
Simulation setup for multiple path streaming using network coding.
Each frame has 6 transmission opportunities 0.35
Non−Network Coding Scheme A Scheme B Scheme C
Normalized Distortion per Media Frame
G
Normalized Distortion per Media Frame
Cross traffic generator
100
200 300 Frame Number
400
0.3 0.25 0.2 0.15 0.1 0.05 0 0
500
Non−Network Coding Scheme A Scheme B Scheme C
100
(a) Non−Network Coding Scheme A Scheme B Scheme C
0.15
0.1
0.05
0 0
100
200 300 Frame Number
(c)
500
(b) Normalized Distortion per Media Frame
0.2
400
Each frame has 8 transmission opportunities
Each frame has 7 transmission opportunities 0.25
Normalized Distortion per Media Frame
1). We simulate the transmissions of a sequence with 500 frames and take the average distortion for every 10 frames. We evaluate the performances of the network coding schemes in comparison with the non-network coding scheme. In the non-network coding scheme, the server sends media packets in a Round-Robin fashion. For example, if there are 7 transmission opportunities t0 , t1 , ..., t6 (N = 7), then the order of transmission is P1 , P2 , ..., P5 , P1 , P2 . The server does not know which packet is lost, so it prioritizes the transmissions of important packets. Using Scheme A, the server combines all five packets into CP = α1 P1 + α2 P2 + α3 P3 + α4 P4 + α5 P5 and transmits to the client at all N transmission opportunities. There is no transmission priority given to important packets. Using Scheme B, the server combines the first four important packets CP = α1 P1 + α2 P2 + α3 P3 + α4 P4 and sends to the client. As presented above, this scheme gives priority to important packets in order to maintain a certain level of media quality under a limited bandwidth condition. Using Scheme C, the server transmits 5 source packets (without combining) using the first 5 transmission opportunities. In the remaining transmission opportunities, the server transmits the random network coding packets which are random combinations of five source packets. Fig. 7 shows the simulation results of three network coding schemes and the non-network coding scheme with different N . We observe that, with N = 5 (Fig. 7a), Scheme A produces the most distorted media on average. This is because there are some durations with high packet loss rates that the client does not receive enough 5 netcod packets for decoding original media packets, resulting whole frame losses. However, Scheme B requires 4 netcod packets for decoding the first four important packets, so it provides higher quality than Scheme A in almost all frames. Scheme C gives the same media distortion as non-network coding scheme because, with N = 5, Scheme C has only one transmission phase for transmitting non-coded packets similarly to the non-network coding scheme. When N increases to 6 (Fig. 7b), Scheme A still performs worst. However, Scheme C now improves the media quality compared with the non-network coding scheme. It is plausible since there is the second phase of transmitting one netcod packet which helps to recover any one lost packet if any. From frame 200 to 500, Scheme B gives the highest media quality. With higher number of transmission opportunities, the network coding schemes A and C enhances the media quality considerably. With N = 7 (Fig. 7c), Scheme A’s performance is slightly better than that of the non-network coding scheme because there are more opportunities so that the client can receive enough 5 netcod packets for decoding. Scheme B always yields the distortion of about 20% since the client always receive enough number of packets for decoding the
200 300 Frame Number
400
500
0.25
Non−Network Coding Scheme A Scheme B Scheme C
0.2 0.15 0.1 0.05 0 0
100
200 300 Frame Number
400
500
(d)
Fig. 7. Normalized distortion per media frame for non-network coding scheme and network coding schemes with different number of transmission opportunities.
most 4 important packets. With N = 8 (Fig. 7d), Scheme A and C give almost non-distorted media. The client is always able to decode all 5 source media packets. Scheme B now performs worst since it never receives the least important packet. VI. C ONCLUSION We have proposed a number of network coding frameworks which are used for Internet media streaming using path diversity. Network coding can protect the transmitted packets from loss due to the Internet congestion, and more importantly, be well-suited for multiple path streaming. Our simulation results have shown that at different channel bandwidth conditions, we can design a network coding scheme that can provide better streaming performance than the non-network coding streaming method. R EFERENCES [1] P. A. Chou and Z. Miao, “Rate-distortion optimized streaming of packetized media,” IEEE Transactions on Multimedia, vol. 8, no. 2, 2006. [2] J. Apostolopoulos, “Reliable video communication over lossy packet networks using multiple state encoding and path diversity,” in Proceeding of The International Society for Optical Engineering (SPIE), January 2001, vol. 4310, pp. 392–409. [3] J. Apostolopoulos, “On multiple description streaming with content delivery networks,” in InfoComm, June 2002, vol. 4310. [4] http://www.joost.com. [5] R. Ahlswede, N. Cai, R. Li, and R. W. Yeung, “Network information flow,” IEEE Trans. Inform. Theory, vol. 46, pp. 1204–1216, July 2000. [6] T. Ho, M. Medard, J. Shi, M. Effros, and D. R. Karger, “On randomized network coding,” in Proc. of 41st Annual Allerton Conference on Communication, Control, and Computing, October 2003. [7] C. Gkantsidis and P. Rodriguez, “Network coding for large scale content distribution,” in Infocom, 2006. [8] S. Chachulski, M. Jennings, S. Katti, and D. Katabi, “Trading structure for randomness in wireless opportunistic routing,” in ACM SIGCOMM, 2007. [9] T. Nguyen and A. Zakhor, “Multiple sender distributed video streaming,” IEEE Transactions on Multimedia, vol. 6, no. 2, pp. 315–326, April 2004. [10] T. Nguyen and S. Cheung, “Multimedia streaming using multiple TCP connections,” in IPCCC, April 2005. [11] D. A. Tran, K. A. Hua, and T. T. Do, “A peer-to-peer architecture for media streaming,” IEEE J. Select. Areas in Comm., vol. 22, January 2004. [12] M. Wang and B. Li, “Lava: A reality check of network coding in peerto-peer live streaming,” in INFOCOM, May 2007.
978-1-4244-2324-8/08/$25.00 © 2008 IEEE. This full text paper was peer reviewed at the direction of IEEE Communications Society subject matter experts for publication in the IEEE "GLOBECOM" 2008 proceedings.