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

[TOC]

《CDN技术详解》读书笔记

【读书笔记】流媒体 CDN 系统的组成与关键技术_第1张图片

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

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

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

视频播放的基本步骤:

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

流媒体的具体传送过程:

【读书笔记】流媒体 CDN 系统的组成与关键技术_第2张图片
  1. 客户端 Web 浏览器首先向 Web 服务器请求一个展现描述的文件,用来获取播放和控制所需的一些信息。
  2. 客户端 Web 浏览器将展现描述文件交付给本地播放器,播放器进行初始化
  3. 播放器向流媒体服务器请求响应的流媒体数据,并在传送过程中实时交互控制信息。一旦流媒体数据抵达客户端。满足播放器缓冲要求后,开始实时播放。

2. 流媒体传送协议体系

流媒体传输过程中问题:

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

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

  • 实时流传输协议 RTSP
  • 实时传输协议 RTP
  • 实时传输控制协议 RTCP
  • 实时消息传送协议 RTMP
  • HTTP 流化协议
【读书笔记】流媒体 CDN 系统的组成与关键技术_第3张图片

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系统架构描述

【读书笔记】流媒体 CDN 系统的组成与关键技术_第4张图片
  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 系统的组成与关键技术_第5张图片

内容文件预提取技术

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

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

防盗链机制和实现

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

防盗链常用形式:

  • 利用 HTTP Referer 字段。
  • 利用登陆验证信息。
  • 利用cookie携带动态验证信息
  • 利用POST下载
  • 利用图形验证码
  • 利用动态密钥。
  • 在内容中插入数据
  • 打包下载

你可能感兴趣的:(【读书笔记】流媒体 CDN 系统的组成与关键技术)