计算机网络自顶向下方法总结2.6视频流和内容分发网
目录
2.6 视频流和内容分发网
视频流服务的实现方式是使用应用层协议和以像高速缓存那样方式运行的服务器。
2.6.1 因特网视频
视频时一系列的图像,通常以一种恒定的速率来展现。视频可以被压缩,可用比特率来衡量视频质量。对流式视频的最为重要的性能度量是平均端到端吞吐量。
2.6.2 HTTP流和DASH
在HTTP流中,视频只是存储在HTTP服务器中的一个普通的文件,有一个特定的URL。流式视频应用程序周期性的从客户应用程序缓存中抓取帧,对这些帧解压缩并且在用户屏幕上展现。流式视频应用接收到视频就进行播放,同时缓存该视频后面部分的帧。
DASH(Dynamic Adaptive Streaming over HTTP,DASH),经HTTP的动态适应性流,在DASH中,视频编码为几个不同的版本,每个版本有不同的比特率,用户根据自己的可用带宽选择不同的版本。使用DASH后,HTTP服务器有一个告示文件(manifest file),为每个版本提供一个URL及其比特率。
2.6.3 内容分发网
建立单一大规模数据中心提供流式视频服务有很多问题,所有现在主要的视频流公司都利用内容分发网(Content DIstribution Network,CDN)。
CDN通常采用两种不同的服务器安置原则:深入和邀请做客,具体见书中。许多CDN没有将视频推入它们的集群,而是使用拉策略,类似于因特网缓存。
当用户主机中的一个浏览器指令检索一个特定的视频,CDN必须截获信息以便能够:确定适合用于该客户的CDN服务器集群、将客户的请求重定向到该集群的某台服务器。具体CDN操作和集群选择策略见书中。
2.6.4 学习案例
Netflix使用推在非高峰时将视频分发给它们的CDN服务器。Netflix不需要用DNS重定向来将特殊的客户连接到一台服务器而是直接告知该客户使用一台特定的CDN服务器。
谷歌YouTube使用拉高速缓存和DNS重定向。
最后还有混合CDN-P2P流式系统,最小的依赖成本高的基础设施服务器和带宽。