流媒体内容分发终极解决方案:当融合CDN与P2P视频交付结合

前言

随着互联网的发展,流媒体视频内容日趋增多,已经成为互联网信息的主要承载方式。相对传统的文字,图片等传统WEB应用,流媒体具有高数据量,高带宽、高访问量和高服务质量要求的特点,而现阶段互联网"尽力而为"的特点决定了在现有网络架构下大规模流媒体应用是存在困难的。而向受众提供高速且高质的视频内容是许多专业电视及视频内容提供商的重要目标,因此支持视频流的CDN 和相关辅助技术很重要,因为他们不仅可以优化视频传输速率,同时还可以兼顾传输的视频文件质量水平。

本文火伞云将为大家探讨融合CDN与视频流P2P视频传输技术相结合的一些细节,比如我们将探讨该技术是什么,如何实现融合CDN+P2P架构,并向大家说明将CDN架构与P2P视频传输技术相结合的好处。

一、 什么是 融合 CDN?

在深入探讨融合CDN之前,我们先有必要再了解一下CDN。CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,通过智能化策略,将中心的内容发布到最接近用户、服务能力最好的的网络"边缘"节点,使用户可以就近取得所需的内容,解决Internet网络拥塞状况,提高用户访问网站的响应速度。

然而,传统的CDN技术仍然是一种客户机-服务器(C/S)的计算模式。尽管传统CDN将服务能力和服务内容在网络上进行了分布,可以在一定程度上加速流媒体内容的分发,提高服务质量。但由于其核心仍然是基于C/S的架构,其服务的扩展能力取决于分布节点的不断部署,由此造成了CDN服务能力扩展的成本非常高,需要不断的投资。同时,用户访问是具有随意性,突发性等特点的,而传统CDN系统不具备弹性动态扩展的能力,难以从根本上提升CDN系统的效率。

融合CDN是在传统CDN基础上,通过技术手段融合全球各主流CDN厂商的优质节点,以实现全业务处理能力的智能调度加速管理服务,融合CDN通过强大的智能调度策略来综合利用上述资源来解决实际场景中的问题,可以带来更加优质的服务效果、更加稳定的质量和相对降低的服务成本。

二、 什么是P2P视频传输?

P2P即Peer to Peer,也就是节点对节点的对等传输。P2P技术将各个用户互相结合成的一个网络,共享其间的带宽、共同处理其中的信息。与传统的客户机-服务器模式(C/S模式)不同,P2P工作方式中,每一个客户终端既是客户机又是服务器。采用P2P架构可以有效地利用大量普通计算设备的计算资源和带宽资源,将计算任务或存储数据分布到所有结点上,达到高性能计算、高I/O能力、高带宽和海量存储的目的。同时,由于P2P的特性,系统在大规模并发服务时凸显优势,整体系统具备动态扩展能力,整体系统的部署成本低,系统效率高,同时具有系统级的服务可靠性。

然而,单纯的客户端P2P应用也存在自身的缺点,首先P2P系统天生具有可控性、可管理性差的特点,同时面临可用性问题,从整个系统而言,P2P是可靠的,但是对于单个内容或者单个任务而言,P2P是不稳定的,每个Peer具有随意性,随时可以退出系统;交换的内容随时可能被删除或者被终止共享。另外,由于传统P2P技术中Peer之间交换数据的通道,更多的是由自动寻找最优逻辑链路,而忽视实际的物理链路的情况,对电信运营商IP承载网的实际构架考虑不多,造成骨干网拥塞、网络流量风暴等损害电信运营商利益的问题。这些问题都阻碍了单纯的客户端P2P技术难以进一步发展成为电信级的技术平台。

为了使 P2P 传输发挥作用,系统首先在设备或对等点之间建立连接。然后,对等方可以在将视频流传送给其他对等方时共享视频流,这样您的设备就可以传输和接收视频。然而,为了使该系统正常工作,对等点必须存储一定量的数据并相互交换状态信息,以便保留连接性并共享数据。只要这些对等点提供足够的传出带宽,每个对等点都应该能够从其连接的对等点传送和接收视频内容。点对点传输旨在以最低带宽要求提供高质量和可扩展的视频流,而不管每个对等点的能力或网络速度是否不规则。

三、 P2P与CDN融合的可行性探讨

P2P系统弹性好,可扩展性强、服务效率高,但是在内容版权管理、用户管理、QoS服务保障、流量有序性等方面比较弱。而CDN技术则是拥有突出的服务质量保障、极强的内容、用户管理能力,但扩展性差,大规模服务投入成本高,且效率难以提升。

由此,我们可以看出作为当前的两种主流内容传送技术,CDN和P2P各有所长,在计算模型上的差异具有一定的互补性,如果能够结合P2P的扩展能力和CDN的可靠性、可管理性,就可以构建一个可管理的、能够承载电信级内容应用的流媒体内容分发平台。

四、 如何实现 融合 CDN + P2P架构?

目前就P2P与CDN融合现有的研究,有人提出了一种上层传统CDN架构,下层采用P2P技术进行分发的模式。也就是流媒体内容通过传统CDN技术,从中心推送至网络边缘服务节点缓存,然后从边缘服务节点到用户之间的传输则采用P2P技术,而P2P的范围一般是控制在本地节点服务范围之内。如果用户需要的内容,本地节点没有,则节点通过CDN网络向中心服务器索取,拿到本地之后再向本地用户进行P2P分发。这种模式基本上利用了传统P2P与CDN各自的特性,一方面利用CDN服务高保障的特性推送至离用户最近的服务节点,同时又利用了P2P的可扩展性提升了节点的可服务能力。

然而这种P2P与CDN的混合只是利用了其各自的外部特性,从本质上而言,P2P自身没有改造,CDN也没有优化,自身架构没有发生融合,只相当于把两种技术的服务方式做了迭加。

P2P与CDN的融合应该是充分的利用了双方各自的最优之处,不仅能够在服务上能各自在不同的阶段发挥各自的优势,同时也应该利用对方的优势对自身弱势的地方进行改造与完善,最后再加以统一、迭加,形成一个真正优化的,CDN与P2P互相融合的流媒体内容分发平台。

火伞云以P2P技术对CDN网络进行优化、改造。在传统CDN中,从中心到边缘服务器之间的数据链路需要相当大的投资,同时资源的效率不高、带宽复用率低;另外在跨ISP等情况下,链路的畅通也难以得到保障。针对这一问题,火伞云采用以P2P的方式组织CDN节点设备,利用P2P的目录服务和多点传输能力,实现CDN节点设备之间的内容交换、互相备份,由此可增强从中心到边缘节点的CDN网络的内容传送效率、使系统冗余性得以提高,从而提升CDN的内容分发能力。

同时P2P也借鉴CDN技术的一些优点,将CDN的管理机制和服务能力引入P2P网络,增加超级节点的地位,形成以CDN为可靠的内容核心,以P2P为扩展机制的架构,增加内容、用户的可管理性,同时使得网络流量更加有序。

火伞云一方面在CDN网络核心层(即从中心到边缘服务器层)采用P2P技术进行优化,用P2P技术重新组织原有C/S架构的各服务节点,另外在P2P网络中也融入CDN技术的一些优点,使其在可控、可管理性上得以提高。在两种技术充分融合、渗透、改造之后,将两者统一,形成一个真正优化的(上层CDN经过P2P化改造,提升了分发能力,下层P2P可控性强,有管理能力)的CDN与P2P完整融合的流媒体内容分发平台。

五、 使用 融合 CDN + P2P 架构的 优点

经过P2P与融合CDN技术的全面融合的流媒体内容分发平台,将获得如下优势:

1、 减少中心节点数据源的压力, ****降低成本。****传统CDN每个服务节点如果要获得中心节点数据源数据,均需要直接访问数据源服务器,造成数据源压力大,消耗带宽多,造成中心到边缘的数据链路得不到保障。而通过对CDN服务节点采用P2P方式进行组织,请求由对等点处理,节点之间可以通过P2P方式互相共享、缓存数据,大大降低了中心数据源的压力,可以显着减少来自流源(原始服务器和CDN)的请求,直接导致更具成本效益的视频传输。

2、 提高系统服务能力可靠性, 实施更简便 ****。****不同服务节点之间对中心数据多点备份,这一策略使得CDN系统整体冗余能力、服务的自我恢复能力得以提高。使得系统的稳定性进一步增强。且由于P2P传输主要使用WebRTC协议,该协议与所有现代浏览器兼容。因此实现起来极其方便,并且还可以提供额外的流源隐私保护。

3、****增加可提供服务的节点数量,提升服务灵活性。****过P2P方式互相共享、缓存数据,使得可以提供服务的节点数量大大增加,同时使得服务节点的服务更加灵活、智能。如流媒体VOD应用时,几个邻近节点可按照一定规则各自缓存不同的流媒体数据,如果A节点服务的用户请求观看B节点缓存的内容,可采取A节点与B节点通过P2P方式交换数据,由A节点为用户提供服务。

4、****增加了系统的可扩展性,提升服务效率。****融合CDN网络提供了一个可扩展的平台,可以为越来越多的观众提供内容。与单CDN厂商相比,它提供对更多服务器的访问,从而增加了观众的容量,有了更多的服务器,视频流内容就可以传送给更多的人,而不会造成网络瘫痪。下层内容分发采用P2P技术实现,使得系统的可扩展能力大大提高。整体系统具有良好的弹性,应对用户访问突发性、随意性的情况,保持良好的服务效率。

5、 ****提高网络的可管理性,避免流量无序。****系统将P2P的范围严格限制在某一边缘服务节点的服务区域内,避免了传统P2P技术造成的过多的跨地区、跨ISP造成骨干网拥塞、流量无序的问题。增强了网络的可管理性和服务高的可靠性。另外,通过客户端,可以实现对用户的监控,流量的监管。

6、提高了视频质量 ****,提升客户体验。****我们知道CDN架构中的PoP 越多,信号传输的距离就越短,而火伞云作为国内知名的融合CDN厂商结合主流CDN厂商的优质节点,这有助于保持最佳视频质量并减少缓冲,这对于直播流和虚拟活动尤其有价值。

7、 扩大地理覆盖范围 ****获取更多受众。****利用多融合进来的CDN网络,您可以接触到更多国家/地区的更多观众。例如一家 CDN厂商的大部分服务器可能集中在北美,而另一家提供商的服务器可能分布在欧洲各地。 通过将两者结合起来,您可以根据目标受众覆盖两个地点的观众。

8、结合 非典型区域性法规 ****促进全球传播。****如果您要向国际观众广播,火伞云融合CDN的特殊设置肯定会派上用场。如前所述,更多国家/地区的更多服务器可以帮助您吸引更多观众。当向中国、越南或俄罗斯等非典型监管地区的观众进行流媒体播放时,融合CDN 策略对于业务至关重要。并非每个 CDN都拥有绕过防火墙或在中国拥有边缘服务器的许可,因此通过在您的融合CDN设置中添加一个可以绕过防火墙的CDN,您的公司可以进入受众和市场。

9、增加总体带宽, 强化 网络 安全 性。

当同伴互相上传视频时,他们会增加所有用户可用的总体带宽。同时实施融合CDN解决方案的另一个好处是它可以增强流媒体设置的安全性,如果一个CDN厂商遇到安全故障,下一个CDN厂商就会介入并继续提供安全的流媒体体验。就像投资时分散风险一样,广播公司和视频内容提供商可以高枕无忧,因为他们知道自己有备份安全选项。

六、哪些公司需要使用融合CDN+P2P解决方案?

几乎所有向大量观众分发内容的广播/电视公司和视频内容提供商都将受益于融合CDN+P2P解决方案,这其中以拥有大量国际观众的广播/电视公司和视频内容提供商为甚。

七、去哪里寻找合适的 融合CDN+P2P提供商及相关注意事项?

最简单、也是最直接的方法是选择一个能够满足您的需求并可以直接投入使用的解决方案提供商,这种方法可以让您工作量最小化。

无论您是要自行研发构建,还是直接寻找合作伙伴,还有一些注意事项可能会对您有所帮助:

1、 选择合适的CDN ****。****选择合适的CDN厂商取决于您的需求,但首先要注意的是您选择的CDN提供商在视频交付方面的经验和既往表现如何。比如还有CDN厂商根本不支持流媒体加速。而且很多CDN厂商只专注于某些地区内容加速,并非每个CDN厂商在世界各地的表现都同样强劲。最后,需要关注的一个重要因素是该厂商网络节点的数量,有的CDN厂商没有很多节点,因而体验不好。

2、 选择DNS或 融合 CDN管理解决方案提供商

融合CDN管理解决方案或多CDN DNS提供商可以使管理多个CDN变得更加轻松。通常此类解决方案提供商可以提供设置、工程支持和集成支持方面的帮助,不同的解决方案还可以帮助使用数据和智能算法以最有效的方式路由网络流量。

3、明确自己的 流量路由策略

DNS负载均衡

市场上有一些DNS解决方案提供商允许用户自定义其流量路由规则。订阅所有所需的CDN后,所有CDN 的CNAME都会被复制并粘贴到DNS记录中,以便DNS服务器可以根据流量路由规则确定用于请求的 CNAME (CDN),最常见的流量路由规则包括循环、加权循环和地理位置。

RUM/综合监控驱动的负载平衡

一些提供商以套餐形式提供此服务,基本思想是利用RUM和综合监控数据作为驱动负载平衡决策的基础。

提供此服务的DNS提供商通常在DNS级别上处理此问题,这意味着它与DNS 负载平衡方法非常相似,只不过它是根据实际性能数据智能地做出决策。火伞云目前主要采用的也是本策略处理此问题,接收请求、测量并将最佳CNAME或IP的值返回给DNS。

八、结语

P2P与CDN技术的融合,一方面可以互补自身先天计算模型的缺陷,对CDN或者P2P传统架构进行改造;一方面P2P的扩展能力和CDN的可靠性、可管理性也可完美结合。这两方面都为实现一个能够承载电信级超大规模内容分发传送应用的内容分发平台提供了机会,火伞云也希望能够为大家提供更优质的大规模流媒体内容分发服务体验。

相关推荐
CircleMouse2 分钟前
Centos7, 使用yum工具,出现 Could not resolve host: mirrorlist.centos.org
linux·运维·服务器·centos
木子Linux1 小时前
【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
linux·运维·服务器·centos·云计算
不惑_1 小时前
小白入门 · 腾讯云轻量服务器部署 Hadoop 3.3.6
服务器·hadoop·腾讯云
阿甘知识库1 小时前
宝塔面板跨服务器数据同步教程:双机备份零停机
android·运维·服务器·备份·同步·宝塔面板·建站
zhou周大哥3 小时前
linux 安装 ffmpeg 视频转换
linux·运维·服务器
loong_XL4 小时前
服务器ip:port服务用nginx 域名代理
服务器·tcp/ip·nginx
夕泠爱吃糖4 小时前
C++中如何实现序列化和反序列化?
服务器·数据库·c++
the丶only4 小时前
单点登录平台Casdoor搭建与使用,集成gitlab同步创建删除账号
linux·运维·服务器·docker·gitlab
书生-w4 小时前
Docker部署GitLab服务器
服务器·docker·gitlab
Ling_suu4 小时前
SpringBoot3——Web开发
java·服务器·前端