240 likes | 413 Views
Distributed Video Streaming Over Internet. Thinh PQ Nguyen and Avideh Zakhor Berkeley, CA, USA Presented By Sam. Agenda. Motivations Assumptions System overview Protocol Rate allocation algorithm Packet partition algorithm Simulations Comments Conclusion. Motivation.
E N D
Distributed Video Streaming Over Internet Thinh PQ Nguyen and Avideh Zakhor Berkeley, CA, USA Presented By Sam
Agenda • Motivations • Assumptions • System overview • Protocol • Rate allocation algorithm • Packet partition algorithm • Simulations • Comments • Conclusion
Motivation • Many existing schemes assume a single fixed route between the receiver and the sender
Motivation • Make content available at multiple sources • Smooth video delivery • No single sender can support the required bit rate
Assumptions • Available bandwidth from all the senders to the receiver exceeds the required video bit rate. 0.4Mbps 0.8Mbps 2Mbps
Assumptions • The routes from a client to the senders do not share the same congestion link
Assumptions • Broadband connection. Last hop physical bandwidth limitation (dial-up modem) is of little use in this situation
Contributions Overview • Protocol that allows simultaneous streaming of video from multiple mirror sites to a single client, with smooth sending rates so as to reduce jitter • An algorithm that runs on the receiver to specify the sending rate for each sender in order to minimize the total loss rate • A distributed algorithm that runs on each sender to partition packets so as to minimize the probability of packet arriving late
Protocol Receiver algorithm Sender algorithm Scenario • Receiver-driven • Each sender estimates and sends its round trip time to the receiver • Receiver receive it and estimates sender’s loss rates for each sender. • Based on 2 factors, receiver calculates and decide each sender’s sending rates • Receiver sends an identical control packet to each sender. • Sender will determine the next packet to be sent based on the control packet
Bandwidth Estimation • TCP Friendly rate control algorithm (TFRC) B : The current available TCP-friendly bandwidth between each sender and the receiver (Upper bound for the TCP-friendly sending rate) Trto : TCP timeout R : estimated round-trip time in seconds (using moving average of RRT over a fixed interval) P : estimated loss rate (number of lost packets / total number of packets sedting over a fixed interval) S : TCP segment size in bytes
Rate Allocation Algorithm • Receiver computes the optimal sending rate for each sender based on its loss rate and estimated available bandwidth. During the interval (t, t + ∆) F(t) total number of loss packet L(I, t) estimated loss rates S(I, t) estimated sending rates Sreq(t) is the required bit rate for the encoded video B(I, t) TCP-friendly estimated bandwidth
Rate Allocation Algorithm • Sort the senders according to their estimated loss rates from lowest to highest. • Assign each sender its available bandwidth, beginning with the ones with lowest loss rates and moving to the ones with higher loss rates, until the sum of their available bandwidths exceeds the bit rate of the encoded video.
Systolic window • If B(I, t) changes rapidly, S(I, t) needs to be recomputed more frequently, and more control packets have to be sent from the receiver to all the senders, resulting in inefficiencies. Systolic Window • Periodic compute B(I, t) in a fixed interval Ф • If B(I, t) > S(I, t) + w, count + 1 • If B(I, t) < S(I, t) - w, count – 1, otherwise count remains • If count > γOR count < -γ, rate allocation algorithm is run
Packet Partition Algorithm • Each Sender receive control packet from the receiver through a reliable protocol in the following format: • Assume 5 Senders and entire copies are resided in each senders • Dx : Estimated delay from sender x to receiver (1 byte field) • Sx : Sending rate in packets/second for sender x (2 bytes field) • Sync : Sequence number that determines the next packet to send
Packet Partition Algorithm • If the reference time Tk’, the estimated arrival time of the kth packet sent by sender j is nj,kσ(j)+2D(j) nj,k : Number of packets already sent since k’ to packet k σ(j): Sending interval between packets for sender j D(j) : Estimated delay from the sender j to the receiver • Ak(j, k) = Tk’(k) – [nj,kσ(j)+2D(j)] Tk’(k) Playback time for kth packet with respect to Tk’ Time difference between arrival and playback time of kth packet If Ak(j, k) > 0, kth packet is on time, otherwise kth packet is late Therefore, maximizeing Ak(j, k) to minimize the probability that the kth packet is late
Packet Partition Algorithm • Only the sender who maximizes Ak’(j, k) will be assigned to send kth packet • Each sender computes Ak’(j, k) for each packet k for itself and all other senders Ak(j, k) = Tk’(k) – [nj,kσ(j)+2D(j)] • D(j) in the D field • σ(j)=P/S(j) (P : packet size) • Tk’(k) not affect the value
Packet Partition Algorithm Ak(j, k) = Tk’(k) – [nj,kσ(j)+2D(j)] • nj,k = 0 for all senders. • +1 after each sending data
Packet Partition Algorithm • Synchronization problem occurs when control packet is late/loss Solution • 5 identical control packets are sent each time • If none of the control packets is acknowledged with 2 RTT from a particular sender, another 5 identical control packets are sent until acknowledged • Probability that sender does not receive in 2n RTT is p5n • If p is 0.1, then 2n RTT failure probability is 10-6
Choice of Synchronization Sequence Number • Control packet arrival time varies between senders • Ak(j, k) = Tk’(k) – [nj,kσ(j)+2D(j)] • Choose min. k’, resulting large buffer overhead
Simulations T = 0 to 2s. Starts sending control packets T = 25s, senders send using the algorithms T = 200s, 25 of 100 TCP sources from 1 stop sending T = 400s, 10 new TCP sources start and stop at random
Comments • Simple/Good flow for distributed video streaming • Further work should be done to tackle the assumption • Not involve scheduling • Large buffer overhead in the receiver
Conclusion • Framework for Simultaneously streaming video from multiple senders to a single receiver • Using TCP-friendly protocol • Propose a new protocol, rate allocation algorithm and packet partition algorithm