1、多媒体流化服务:DASH(Dynamic Adaptive Streaming over HTTP)
多媒体中90%都是视频,对于这样大的流量传输,可以对视频本身压缩后传输;
从空间上压缩(一个画面内):对于重复的像素数据,可以只发送一个像素和重复的个数;
从时间上压缩(相邻画面间):提取画面前后改变的部分;
但是随着用户、视频的增多,即便是压缩传输也不能满足了,于是出现了多媒体流化服务Dash;
1.1、服务器
- 将视频文件分割成多个块;(比如10s一个片段)
- 每块独立存储,根据不同码率编码;(视频清晰度360、480、720、1080等)
- 生成告示文件(manifest file),提供不同块的URL;
1.2、客户端
- 先获取视频的告示文件;
- 周期性地测量服务器到客户端的带宽;
- 查询告示文件,在一个时刻请求一个块(HTTP头部指定字节范围),根据带宽选择码率高的视频块;
2、CDN(Content Delivery Network)内容分发网络
2.1、概述
“二八定律”决定了网络中充斥着同一视频的多个拷贝;
如果视频都要去原始服务器获取资源,必然由于客户端到服务器路径上太多跳而延时、拥塞、瘫痪;
如果常用的资源分散在各个节点,就能加快用户的访问速度,CDN就是将这些资源内容分发到网络的各个地方;
2.2、如何选取节点?
- enter deep:将CDN服务器深入到大量接入网;
(离用户近,速度快,但服务器数量多,也不便管理)
- bring home:将CDN服务器部署在一级ISP处,再租用线路将服务器簇连接起来;
(和之前老师提到的谷歌操作方法很像,那也是内容服务商ICP加快访问的操作)
?2.3、CDN工作过程
点击某个连接http://netcinema.com/6Y7B,请求某个视频;
首先向本地名字服务器查询,再向根名字服务器查询,最后查到netcinema的权威名字服务器;
但是这个DNS不直接返回netcinema服务器的IP,而是重定向,返回KingCDN的域名;
根据KingCDN的域名,查到KingCDN的IP,然后建立连接传输数据;
3、刚好在看课程,下图是B站的视频统计信息,这么快就现学现卖了,他山之石可以攻玉
|