【读书笔记】流媒体 CDN 系统的组成与关键技术

[TOC]

《CDN技术详解》读书笔记

流媒体 CDN 系统的组成与关键技术

  • 流媒体等同于在线影音。如电影、电视剧,流是指它们在网络上传输的状态
  • 流媒体要求实时性,连续性,时序性。

1. 流媒体系统工作原理概述

视频播放的基本步骤:

  1. Access, 文件获取。系统将多媒体文件由硬盘读取到内存。
  2. Demux,解复用。将合在一起的视频和音频分开。
  3. Decode,解码。将压缩后的视频和音频进行解码。
  4. Output, 输出。包括音频输出和视频输出

流媒体的具体传送过程:

  1. 客户端 Web 浏览器首先向 Web 服务器请求一个展现描述的文件,用来获取播放和控制所需的一些信息。
  2. 客户端 Web 浏览器将展现描述文件交付给本地播放器,播放器进行初始化
  3. 播放器向流媒体服务器请求响应的流媒体数据,并在传送过程中实时交互控制信息。一旦流媒体数据抵达客户端。满足播放器缓冲要求后,开始实时播放。

2. 流媒体传送协议体系

流媒体传输过程中问题:

  1. 与纯文本数据相比,多媒体数据需要占用更多的网络带宽。增加了几千倍的压力。
  2. 多媒体需要实时的、稳定的网络传输,只有带宽和时延抖动维持在一定水平,才能保证流媒体在用户端平稳播放。
  3. 多媒体数据流突发性很强,单纯增加带宽往往不能解决这种突发问题。因此,需要多媒体应用程序都有接收端的缓存机制

为了应对以上问题,存在几个流媒体传输协议:

  • 实时流传输协议 RTSP
  • 实时传输协议 RTP
  • 实时传输控制协议 RTCP
  • 实时消息传送协议 RTMP
  • HTTP 流化协议

RTP和RTCP

RTP Realtime Transport Protocol 实时传输协议,定义包含音视频数据、序号、时间戳以及其他有用信息的标准分组结构的协议。简单地说,RTP 的任务是提供时间信息和实现流同步。

RTCP Realtime Transport Control Protcol 是 RTP 的伙伴协议,RTP 只负责流媒体数据包的交付,而不负责按顺序保证质量的交付,为了控制质量,RTCP 分组包中包含已发送的数据包数量、丢失的数据包数量等统计信息,服务端可以根据这些信息动态地改变传输速率。

RTSP

RTSP Real Time Streaming Protocol ,实时流传输协议。用来实现播放控制的协议,如流媒体的播放、暂停和继续。

RTMP

RTMP Real Time Message Protocol 实时消息传输协议。Adobe System公司为 Flash 播放器和流媒体服务器之间传输音频、视频和数据所开发的私有协议。

  • RTMP 基本通信单元是消息和消息块。消息有种类上看,分为:
    • 协议控制消息
    • 用于发送音频数据的音频消息
    • 用于发送视频数据的视频消息
    • 发送用户数据的数据消息
    • 共享对象消息
    • 命令消息

HTTP Streaming

HTTP Streaming 会将视频数据在服务器上进行编码,然后将编码后的数据进行更细粒度的分片,再把每个分片通过 HTTP 协议传输到客户端。

特点:

  1. HTTP Streaming 的客户端需要对视频文件的每个分片发送HTTP请求。
  2. 因为采用分片的特点,客户端可以灵活控制HTTP请求发出的速度。
  3. 可以在播放过程中进行码率切换,结合网络带宽资源,为用户提供更好的体验。

3. 流媒体业务对CDN 系统的要求和挑战

流媒体加速与Web加速之间的业务差异

  • 内容类型差异
  • 用户行为的差异。比如跳转,暂定,回退等操作
  • 内容管理要求差异。比如网站片库的管理,冷热片源的管理
  • 回源要求的差异。对于流媒体内容,CDN 一般采用 PUSH的方式进行预分发。

流媒体CDN系统架构描述

  1. 管理支撑子系统是 CDN 系统的网络管理和业务管理系统。主要功能包括:
  • 网络管理。负责整个系统日常运维的手段,还要负责收集执行业务策略所需的实时统计信息。
  • 运营管理。负责客户管理,客户自服务实现、产品/业务管理、工单管理、认证管理、计费或结费等。
  • 统计分析。负责日志管理功能和数据筛选、分析功能,以及报表生成功能。
  • 业务接口。负责和其他系统之间的接口
  1. 负载均衡子系统
  2. 流媒体服务子系统。为用户提供流媒体服务的各种设备组成的系统,具体来说就是一些 Cache 设备或着 Cache 集群,以及对于集群设备进行资源统计、配合负载均衡系统和运营管理系统进行工作所需要的周边网元设备。
  3. 内容管理子系统。负责对整个 CDN 网络的内容分布情况的管理,从内容进入CDN 网络开始,内容管理系统就负责对内容进行预处理。

4. 流媒体 CDN 系统的关键技术实现

Cache 的设计与实现

  1. 协议实现
  • 由协议上看,对于前进、后退、暂停等这些播放器行为的支持,依赖于 Cache 对终端请求的理解与响应,而这种响应,又依赖于传送协议对这些动作的支持。 RTSP、RTMP 就是因此而生。
  • 当用户请求的内容命中在 Cache 上命中时,Cache 直接向用户提供流服务,此时Cache 设备充当流媒体服务器的角色。
  • 当未命中时,缓存由上一级或者源服务器获取内容,再提供给用户,Cache在用户和流媒体之间扮演代理的角色,在两个连接之间完成协议的转换。
  1. 缓存算法
  • 流媒体缓存替换算法。传统的替换算法如 LFU Lead Frequency Used、LRU Least Recently Used、LRU-threshold等。
  • 媒体内容预提取算法。用户接收流媒体内容有一定的连续性,一旦启动接收,很大概率会接收到后续数据。因此,媒体内容在用户接收流媒体的同时,利用空闲网络资源,将后续数据预先下载到缓存 Cache 中。
  • 前缀缓存算法。用户对于流媒体服务的延迟相当敏感,因为除了最开始的一部分,后续内容在网络带宽条件好的时候都可以预先推送到终端缓存起来。

内容分发机制设计与实现

  1. PULL, 被动下拉方式,由用户请求驱动
  2. PUSH,主动推送方式,由内通管理系统发起,将内容由源活中心媒体资源库分发到各个边缘节点。

组网模式

  • 由网络分层上看,Web CDN 通常是两级架构,即中心-边缘。而流媒体 CDN 通常有三级架构,即中心-区域-边缘。
  • 区别在于流媒体回源的成本比较高,源栈服务器响应一次流媒体内容回源请求,要比 Web 内容消耗更多的资源。

内容文件预提取技术

内容文件预提取是指视频内容进入 CDN 以后,进入内容分发流程之前,CDN 系统对于内容的一系列过程。目的是:

  • 为全网内容管理提供依据,比如对内容进行全网唯一标识,对内容基础信息进行记录
  • 提高 CDN 服务效率或降低系统成本提供手段,比如内容切片
  • 为满足业务要求提供能力,比如对同一内容进行多种码率的转换以满足动态带宽自适应。
  1. 视频转码。将已经压缩编码封装完成的视频流转换为另一个视频流,以适应不同的网络带宽,不同的终端和不通过的用户需求。
  • 码率转换。不改变编码格式,将原始码率转换为新的码率以适合网络传送要求。
  • 空间分辨率转换。通过“全编全解”架构中添加采样模块,利用采样算法和运动矢量的映射算法以及伸缩算法来降低视频码流的空间分辨率。
  • 时间分辨率转换。指通过降低视频序列的频率,降低对解码设备处理能力的要求
  • 编码格式转换。指将原始视频内容所采用的编码格式转换为终端能够解码播放的歌是。
  1. 文件切片。按照一定的规则将一个完整的文件切成大小一致的若干个小文件。目的是:
  • 一些切片可以由其他Cache中获取,降低整个系统中重复复制内容的数量。
  • 使边缘 Cache 能够支持自适应码率业务。

防盗链机制和实现

网站的盗链指通过技术手段,直接在本网站页面上向最终用户提供其他网站的内容,从而免费获取到其他网站的优秀资源。

防盗链常用形式:

  • 利用 HTTP Referer 字段。
  • 利用登陆验证信息。
  • 利用cookie携带动态验证信息
  • 利用POST下载
  • 利用图形验证码
  • 利用动态密钥。
  • 在内容中插入数据
  • 打包下载
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容