cdn流媒体协议支持(流媒体服务器 cdn)

0.引言

阅读本文前,也可以看看前面关于协议介绍的文章,文章列表如下:

RTP协议

超详细RTMP协议详解(资深流媒体架构师推荐)

RTSP协议交互流程之推流分析

RTSP协议交互流程之拉流分析

详解RTCP协议和源码分析

详细分析HLS框架

 

cdn流媒体协议支持(流媒体服务器 cdn)

 

1.流媒体常用协议

传输协议在流媒体的传输过程中发挥着重要的作用,流媒体协议的选取直接影响到服务器的性能问题,流媒体中的每一种协议因其自身的优缺点被应用到不同的场景中发挥着不同的作用。主流的流媒体协议有实时传输协议(RTP)、实时传输控制协议(RTCP)、即时串流协议(RTSP)、资料预留协议(RSVP)、串流媒体传送协议(MMS)。

cdn流媒体协议支持(流媒体服务器 cdn)

1.1 RTSP 协议

RTSP 协议(Real Time Streaming Protocol),用来在服务器客户端建立实时流会话,RTSP 实现了一个可扩展框架,被广泛地应用到实时流数据的传输中,该协议的特点主要有:

(1) 可扩展性好,易解析

RTSP 是控制音视频的多媒体串流协议,在传输时允许多个串流控制同时进行,可由标准HTTP 或 MIME 解析器进行解析。流媒体服务器可以对传输数据的协议进行自行选择,几乎所有的 HTTP 扩展机制都可加入 RTSP,新的方法和参数也很容易加入到 RTSP 中。

(2) 支持多服务器

在传输过程中,流媒体文件放置于不同的服务器上,流媒体服务器可对其并发控制,用户也可与多台流媒体服务进行连接,在传输层实现媒体文件的同步。

(3) 独立传输

 

1.2 RTMP 协议

RTMP 协议用来进行实时消息传输,最大的特点是需要通过客户端与服务器建立Connection 连接来进行通信。如下图为建立 RTMP 的 Connection 连接示意图。其中的 C0~C1与 S1~S2 为客户端与服务器进行通信的控制信息。

 

cdn流媒体协议支持(流媒体服务器 cdn)

 

1.3 HLS 协议

HLS 协议(HTTP Live Streaming)是苹果公司的动态码率自适应技术。最初,HLS 是由苹果公司开发的,用于各类移动设备如 i Phone、i Pod、i Touch 和 i Pad 等。HLS 协议相比于RTMP 协议有很多优势。例如,在一些特殊的网络环境下,RTMP 协议会被防火墙屏蔽,且RTMP 协议不适用于标准的 HTTP 接口的数据传输,苹果公司提出使用 HLS 协议后成功解决了以上问题。另外,RTMP 是一种有状态协议,每个视频流的客户端状态都需要进行维护,在视频服务器进行平滑扩展方面处理较差,而 HLS 使用无状态的 HTTP 协议传输数据,客户端只需对存储在服务器上的 TS 文件按顺序进行下载即可。

HLS 协议支持码率自适应,即可以根据设备的带宽自动寻找适合视频播放的码率。在延迟时间上,HLS的延迟有可能 在 10s 左右(当然也是可以降低),而 RTMP 协议的延迟一般为 3s左右(也是可以降低),因此,HLS 适用于对直播延迟要求较低的业务场景中。

HLS 协议在进行数据传输时会将媒体文件以小切片的方式进行传送,但这也带来弊端,众多的小切片会生成大量的文件,在对其进行存储或处理时造成大量的资源浪费。这种情况在较长时移(以天为级别)的情况下会出现索引量巨大、响应速度减慢等现象,因此,HLS 协议对存储 I/O 要求较为严格。这些问题都是可以改进和优化。

为此,HLS 协议做出了改进,即采用内存缓存数据实时切片技术,这种技术将 TS 切片文件存到内存中而非磁盘,极大减少了读盘次数,延长磁盘使用寿命的同时也提高了流媒体服务器的稳定性,最重要的是,由于客户端在请求数据时直接从服务器内存中提取,大大提高了请求响应速度,优化了视频的观看体验。目前,内存缓存数据实时切片技术已被应用在许多新型点播服务器系统中。

 

2.CDN 基本概念及其组成

CDN(Content Delivery Network)即内容分发网络。CDN 是一个针对网络内容收发的服务体系,它通过在各地部署一些服务器(边缘服务器),在服务器上设计一些算法策略将用户所请求的内容以最优的方案发送出去,更快地响应用户请求,这些算法策略中以负载均衡、内容分发和调度等功能模块为主。世界上第一个 CDN 是随着 Akamai 公司的成立而诞生的,它是计算机科学家 Tim Berners Lee 与数学教授 Tom Leighton 智慧的结晶。最初 Leighton和 Lewin 的核心理念是将内容缓存在终端用户附近,而不再从原始服务器(存放内容或应用的数据中心),CDN 的出现,让用户可以更快速地获取目标视频,同时,也缓解了 CDN 视频网站的流量压力。

cdn流媒体协议支持(流媒体服务器 cdn)

CDN 的组织形式有两种,一种是覆盖网络形式,另一种是网络式。覆盖网络式是被很多商用 CDN 所采用的方式,数据文件提供者将内容副本发送到分散的缓存服务器上,当用户请求时,请求链接会被重定向到最近的 CDN 服务器,而数据文件提供者不会对底层网络设施进行直接操控,这样会很大程度地提升 web 站点的响应速度,用户体验更好,也便于管理者进行管理;另一种网络式结构是指包括路由器和交换机在内的网络组件直接将内容请求转发到最近的代理服务器上,这种方式并不能很大程度地提升文件传输速度,也不便于维护人员进行数据维护。

CDN 解决的最根本问题是访问延时。通常由于网络架构及分布、宽带及服务器性能等原因会造成访问延时。CDN 广泛采用各种类型的缓存服务器,在用户量访问较大的地区或者网络中,增加缓存服务器的数量,通过负载均衡策略对大批量用户进行调度,为用户选择最优缓存服务器,由缓存服务器直接响应用户请求,其中负载均衡技术可以实时地获取网络流量以及各个 CDN 节点的负载状况、连接数量、请求响应时间等信息,从而做出最合理的调度策略。用户就近取得所请求的内容,请求时延大大降低,尤其在遇到用户量大,网络拥挤等状况,CDN 可以大大提高用户访问网站的响应速度

CDN 有如下几个特点:

(1) 采用分布式存储,通过本地 cache 加速,很大程度上提高了用户的响应速度

(2) CDN 的镜像服务兼容了运营商之间的互联,处于不同网络中的用户都能得到良好的访问质量,当用户访问的内容含有大量图片和静态页面时,这一优势更加明显。

(3) CDN 可自动进行带宽优化,远程镜像服务器在用户访问时直接从 cache 上读取数据,同时,采用的负载均衡技术也可远程加速,选择最快的 cache 服务器,从而分担网络流量,减轻服务器负载,加快远程访问的速度。

(4) CDN 节点间的冗余机制很大程度上提高了网络安全性,有效防止黑客入侵,降低各节点之间的耦合度,更好地保证了服务质量。

 

归纳起来,CDN具有以下主要功能:

(5)节省骨干网带宽,减少带宽需求量;

(6)提供服务器端加速,解决由于用户访问量大造成的服务器过载问题;

(7)服务商能使用Web Cache技术在本地缓存用户访问过的Web页面和对象,实现相同对象的访问无须占用主干的出口带宽,并提高用户访问因特网页面的相应时间的需求;]

(8)能克服网站分布不均的问题,并且能降低网站自身建设和维护成本;

(9)降低“通信风暴”的影响,提高网络访问的稳定性。

 

3.CDN 关键技术

一个最简单的 CDN 网络包含一台 DNS 服务器和若干台缓存服务器。在实际场景中,用户向某个网站发起请求,DNS 服务器会首先对用户的请求网址进行系统解析,经过 DNS 服务器的解析会将域名的解析结果交给一台专用 DNS 服务器,这台专用 DNS 服务器会将 CDN中负责全局负载均衡的设备 IP 地址返回给用户,用户得到这个 IP 地址后,再次向负载全局负载均衡的设备发起访问请求,这台设备起着调度的作用,它会根据发起请求的用户的 IP 地址以及用户请求的 URL 携带的内容就近选择一台符合条件的缓存服务器,在选择缓存服务器的过程中还会综合考虑服务器上所携带内容是否符合用户请求条件、服务器与用户间的距离以及当前服务器的负载情况等因素,在进行了全面综合的分析之后才会返回给用户选定的缓存服务器的 IP 地址最后用户再次向此 IP 地址发起请求从而获取到所需内容,这便是一个完整的请求服务的过程有一种情况必须要考虑就是当用户请求的这台缓存服务器上没有用户想要的内容,但负责负载均衡的区域级设备依旧将它分配给用户去请求,则缓存服务器会有一个回源操作,即向它的上一级缓存服务器去请求内容,以此类推,直到回源追溯到源站服务器,并将请求的内容拉取到本地。

CDN 的关键技术可以从内容的路由、分发、存储以及管理这四方面进行分析。

(1) 内容路由技术

内容路由技术的目的是为了均衡多个远程用户的多个请求,让用户可以从最近的内容源获取信息。负载均衡是内容路由技术中的重要算法之一,在 CDN 系统中扮演着很重要的角色,它直接决定整个 CDN 网络能否高效运行。CDN 的负载均衡系统将用户请求分派给网络中的最优节点,最优节点有两种,通常指距离用户最近或是节点到用户之间有一条最优通路

(2) 内容分发技术

内容分发技术是指 CDN 源站到节点服务器的内容分发过程,通常又可细分为两类主动分发和被动分发。主动分发不考虑用户的请求类型,统一由内容管理系统将内容从中心服务器分发到各边缘服务器,通常适用在一些热点内容场景中被动分发依据用户请求类型,无需考虑分发策略进行内容分发,被动分发适用在本地服务器没有用户请求内容的情况下,此时 CDN 会一级一级向上回源进行内容查找。

(3) 内容存储技术

内容存储技术负责对 CDN 网络中的内容进行存储管理。由于内容的格式、大小、类型等都不尽相同,因此内容存储技术在 CDN 中的作用不可估量。对于边缘服务器,内容存储技术不仅保障内容格式兼容,还需保障存储器的高可靠性、高稳定性以及多文件下的文件吞吐率。对于源站服务器而言,内容数量与内容占用空间是内容存储技术优先考虑的因素,内容存储技术采用特定存储架构进行存储,保障内容的稳定与有序。CDN 的内容存储技术是 CDN 网络中的一项重要技术,存储的可靠与稳定是 CDN 的前提与保障,目前的一些 CDN 网络会考虑采用 RAID 技术来保障存储的可靠性。

(4) 内容管理技术

内容管理技术通常用在边缘服务器上,针对单个 CDN 节点进行管理,负责内容的共享与存储,实现节点的存储利用率,提高服务质量。

 

4.CDN 的实际应用

随着近些年点播、直播等流媒体业务的兴起,传统的网络模型和业务模型乃至整个网络服务体系都需进行调整和优化,以便满足用户的需求。以流媒体这样的发展趋势,现有的网络模型、端到端的宽带高 QoS 的需求以及 SP 的接入都是需要考虑的因素,CDN 由此引入,成功地解决上述问题。CDN 的迅速发展同时也带动了流媒体业务的前进,目前,流媒体内容已经成为 CDN 主要承载的对象,几乎取代了 Web 内容。CDN 的服务种类有很多,例如静态内容(文字图片等),流媒体(音视频信息等),服务类等。

流媒体点播与直播业务为大众提供了更好的用户体验。流媒体点播业务已在我国普及开来。流媒体的点播系统可以分为三部分内容收集与封装、内容分发与存储、内容承载软件。

内容收集与封装系统负责将输入的文件内容进行转换(使其符合内容分发与存储系统的文件格式),对收集到的音视频文件进行编码(使其符合内容分发与存储系统的传输流),对编码后的流媒体文件进行切片封装。内容分发与存储系统负责对之前流切割器切割的流媒体文件进行 WEB 服务器存储,并根据请求信息分发到其他各个组件中去。内容承载软件即指流媒体的特定终端播放软件,当客户端通过网页链接发起内容请求时,内容分发系统会将切片文件通过一定的协议发送至客户端,客户端对这些文件进行下载并解码,即可完成一个视频的播放。

流媒体直播业务的兴起使得直播成为互联网时代的一种潮流。直播业务区别于点播的一点是,用户可以做到对视频方的实时观看,甚至与视频方进行实时沟通。一般情况下,直播与点播类似,直播方将要分发的内容实时上传到 CDN 的网络节点,用户便可实现就近节点观看媒体内容。但直播业务对实时性要求高,为了更好地提高用户体验,更好地获取潜在的服务价值,流媒体加速技术与 CDN 加速技术应运而生。

流媒体加速技术是快速寻找最优节点的过程,通过连接流式存储设备以及同步 CDN 节点服务器将源站的大量视频、音频等流媒体内容快速分发给用户。CDN 加速技术是提高流媒体服务速率的一项关键技术CDN 加速技术对媒体内容智能分配或调度,将其分发到专用流媒体访问服务器上,从而可以应对各类网络拥塞节点的压力,大大节省了带宽资源,为用户可以提供更优的站点服务。CDN 加速技术保证了点播与直播的质量,让用户享有了更好的观看体验。

本站无法对海量内容真伪性鉴别,请勿相信本站任何号码,邮件,站外网址等信息,如有需要,请自行甄别。版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至net@163.com举报,一经查实,本站将立刻删除。
(0)
上一篇 2022年12月25日 上午11:10
下一篇 2022年12月25日 上午11:14

相关推荐

发表回复

登录后才能评论