Prefetching Video As we learned in lecture 2, client-side buering can be used to mitigate the eects of varying end- to-end delays and varying available bandwidth. In our earlier example in Figure 1 (lecture 2), the server transmits video at the rate at which the video is to be played out. However, for streaming stored video, the client can attempt to download the video at a rate higher than the consumption rate, thereby prefetching video frames that are to be consumed in the future. This prefetched video is naturally stored in the client application buer. Such prefetching occurs naturally with TCP streaming, since TCP s congestion avoidance mechanism will attempt to use all of the available bandwidth between server and client. To gain some insight into prefetching, let s take a look at a simple example. Suppose the video consumption rate is 1 Mbps but the network is capable of delivering the video from server to client at a constant rate of 1.5 Mbps. Then the client will not only be able to play out the video with a very small playout delay, but will also be able to increase the amount of buered video data by 500 Kbits every second. In this manner, if in the future the client receives data at a rate of less than 1 Mbps for a brief period of time, the client will be able to continue to provide continuous playback due to the reserve in its buer.
Client Application Buer and TCP Buers Figure 1 illustrates the interaction between client and server for HTTP streaming. At the server side, the portion of the video le in white has already been sent into the server s socket, while the darkened portion is what remains to be sent. After \passing through the socket door," the bytes are placed in the TCP send buer before being transmitted into the Internet. In Figure 1, because the TCP send buer at the server side is shown to be full, the server is momentarily prevented from sending more bytes from the video le into the socket. On the client side, the client application (media player) reads bytes from the TCP receive buer (through its client socket) and places the bytes into the client application buer. At the same time, the client application periodically grabs video frames from the client application buer, decompresses the frames, and displays them on the user s screen. Note that if the client application buer is larger than the video le, then the whole process of moving bytes from the server s storage to the client s application buer is equivalent to an ordinary le download over HTTP|the client simply pulls the video o the server as fast as TCP will allow.
المادة المعروضة اعلاه هي مدخل الى المحاضرة المرفوعة بواسطة استاذ(ة) المادة . وقد تبدو لك غير متكاملة . حيث يضع استاذ المادة في بعض الاحيان فقط الجزء الاول من المحاضرة من اجل الاطلاع على ما ستقوم بتحميله لاحقا . في نظام التعليم الالكتروني نوفر هذه الخدمة لكي نبقيك على اطلاع حول محتوى الملف الذي ستقوم بتحميله .
|