随着受众的增长、分辨率的提高和用户对视频质量期望的提高,点对点内容分发(P2P)已成为流媒体行业的热门话题。这似乎是一个明智的选择:P2P技术具备极强的可扩展性,可以很好地驾驭流量洪峰(这对传统客户端/服务器模式来说是一种威胁),从而增加容量并提高观众的体验质量。随着越来越多的公司选择用P2P技术支持他们现有的 CDN 分发,我们想花点时间解释P2P分发的流行程度以及它的工作原理。

点对点:从互联网的早期到ZB字节时代

点对点网络架构并不新鲜:事实上,它们从互联网开始就存在了。虽然今天客户端/服务器模型处于世界网络的中心,但从一开始情况并非如此。在很久以前,互联网是作为一个免费的,分布式的网络来共享信息。

作为第一个应用TCP/IP协议的网络,ARPANET(Advanced Research Projects Agency Network)在20世纪60年代为互联网奠定了基础。这个先驱网络实际上是一个点对点网络,连接了包括加州大学洛杉矶分校、圣巴巴拉大学、犹他大学和斯坦福大学在内的几所美国大学。

Usenet(新闻组,简单地说就是一个基于网络的计算机组合)于 1979 年推出,随后使用UUCP(Unix-to-Unix Copy Protocol)创建了第一个商业化前的互联网社区。其新闻服务器的运行方式与点对点网络非常相似,通过交换资源来实现资源共享,无需管理员参与。

早期的互联网协议,如FTP(文件传输协议)和电信网也保持了网络在很大程度上的分布式。在应用客户端/服务器模型时,它们允许对称使用模式,使每个主机能够同时作为客户端和服务器运行。虽然不是点对点协议本身,但流行的IRC聊天(因特网中继聊天)协议通过DCC(Direct Client-to-Client)和CTCP(Client-to-Client Protocol)扩展提供了点对点服务。这些允许非中继聊天和文件传输的直接客户端间通信。同样,互联网的基础之一的DNS(域名系统)是基于分布式架构的。DNS名称服务器同时使用作为服务器和客户端的点对点模式。

事实上,直到 20 世纪 80 年代和 90 年代,为日益增长的用户提供服务所需的 CPU 成本才使客户端/服务器模式处于中心地位。

1999年,Napster(Napster是一款可以在网络中下载自己想要的MP3文件的软件。它同时能够让自己的机器也成为一台服务器,为其它用户提供下载)重新点燃了互联网的分布式趋势。与随后的其他用户一起,它使数百万用户聚集在一起,使用他们日益强大的家庭计算机来协作并形成共享搜索引擎和文件系统。2000年,通过LimeWire和iMesh等客户端软件访问的Gnutella(一种文件共享网络)推出了下一代点对点文件共享。为了避免集中化,它部署了一种效率较低的方法:洪泛式查询,即查询请求在整个网络中广播,而无需中心服务器管理。2001年,出现了基于TCP的文件共享协议BitTorrent。虽然其第一代需要tracker服务器在用户之间进行协调,但后来 BitTorrent 客户端软件使用一种称为分布式哈希表(DHT)的节点发现机制来设法避免集中化

这些网络通常用于共享受版权保护的内容,从而违背了互联网在不同设备和不同地域之间共享资源和数据的最初目标。此时,P2P不幸成为盗版的代名词。

然而,点对点协议并不只用于非法文件共享。许多合法应用程序还利用分布式架构为其产品和用户提供更好的性能。游戏出版商暴雪娱乐公司对点对点网络的使用可以追溯到20世纪90年代中期。当Diablo(暗黑破坏神——暴雪娱乐出品的角色扮演游戏)于1996年推出时,游戏使用点对点进行多人游戏设置:一个玩家充当主机,其余玩家作为客户端。暴雪著名的Battle.net还将点对点技术应用于数十万同时在线玩家之间的游戏中,一个服务器负责聊天和玩家匹配。后来,暴雪开始使用BitTorrent,通过暴雪下载器分发游戏的更新和补丁,如魔兽世界。

暴雪并不是唯一利用点对点技术进行大规模静态文件下载的公司。其他软件提供商包括微软,它最近使用点对点提供Windows 10和Xbox One的更新。

在21世纪初,点对点设计也是流行的呼叫应用程序——Skype的核心(Skype源自“Sky peer-to-peer”)。Skype 的点对点协议无需服务器,确能让全世界数百万人能够通过互联网进行通信。虽然目前技术已经有所改变,Skype仍然在很大程度上依赖于点对点技术。还有许多其他流行的通信应用程序,特别是谷歌环聊(Google Hangouts)。

点对点视频分发的来龙去脉

在20世纪90年代后期,点对点应用程序主要用于内容共享和一对一通信。然而,在接下来的十年中,视频流的出现带来了全新的点对点应用。

视频流需要比以往更多的带宽,因此需要更高效、可扩展的分发方式。点对点技术非常有意义,因为它能够通过同时连接观看同一流的观众来缓解服务器的压力。随着全球受众的开始增长,它通过拉近视频源与用户的距离,在降低带宽成本和提高播放质量方面也具有巨大的潜力。

点对点流可追溯到 2000 年代末。Joost 是最早利用点对点架构进行视频分发的公司之一,该公司是由 Skype 和Kazaa创始人创建的互联网电视提供商。Joost通过其专用的桌面播放器分发内容,后来通过一个基于Flash的Web播放器,服务了众多媒体巨头。

与此同时,领先的内容交付网络(CDN)提供商Akamai认识到了分布式交付的潜力,该公司于 2007 年以 1870 万美元收购了点对点文件共享公司Red Swoosh。

2015 年,Akamai 收购了第二家提供点对点产品的公司——Octoshape。总部位于丹麦的Ocoshape成立于2003年,为CNN报道奥巴马就职典礼提供了P2P加速服务,因此备受关注。

无论这些点对点流技术多么有前途,它们都难以充分发挥其潜力。其中最大的限制是,观众需要安装额外的浏览器插件,这通常对用户来说是侵入性的。这也导致了加入P2P网络的观众越来越少,这使得它自然而然地不那么有效。

这项技术的出现可能也为时过早:尽管对在线视频的需求有所增长,但在2010年之前智能手机、智能电视和流媒体设备还没有达到我们今天所看到的数量。然而,这些解决方案无疑为市场更广泛地采用P2P视频交付技术铺平了道路。

WebRTC:点对点视频交付的新时代

随着受众的不断增加、设备数量的增加和分辨率的提高,视频的带宽消耗比以往任何时候都多,预计到 2022 年,视频将占全球 IP 流量的 80% 以上。

随着这一增长,内容提供商已经意识到了可扩展交付技术的迫切需要以及客户端/服务器架构的局限性。对于热门的直播活动,情况尤其如此。当数百万观众同时收看时,巨大的流量峰值不仅成本高昂,而且会严重损害播放体验。对高效视频交付解决方案的需求日益增长,同时新技术(WebRTC)的兴起也开启了点对点流媒体解决方案的新时代。

HTML5 提供了在没有flash插件的情况下播放视频和音频的可能性,而 WebRTC (Web Real Time Communication) 让浏览器间直接通信成为可能,并为新一代无插件点对点视频分发技术铺平了道路。WebRTC 是 Google 于 2011 年发布的一个开源项目,通过 API 的形式提供 Web 浏览器和移动应用程序实时通信 (RTC) 功能,因此能够直接进行点对点视频和音频通信,无需安装插件或下载原生应用。

WebRTC 还可作为C++库提供,可与iOS、安卓和任何其他平台兼容。它今天得到了绝大多数现代浏览器的支持,包括 Chrome, Firefox, Edge, Opera以及Safari等。

所有这些都意味着基于 WebRTC 的点对点视频传输技术不仅对最终用户透明,且具有跨平台的兼容性, 让更多节点加入P2P网络并参与共享,从而极大的提升P2P效果。

然而,正如你可以想象的那样,现代点对点视频交付技术也必须足够复杂才足以处理当今视频工作流的复杂性:HTTP 流协议;多码率流;内容安全和加密机制(tokens、DRM);广告插入解决方案,这里仅举几例。它们还必须支持多种用于流式传输的设备、以及不同的操作系统和流媒体协议,并与世界各地的不同 ISP配合使用。因此,基于 WebRTC 的点对点交付解决方案跟 CDN 技术类似,往往是多年研发的成果。

基于 WebRTC 的点对点视频 CDN - 它是如何工作的?

与过去许多完全去中心化的解决方案相反,现代 WebRTC点对点的流媒体解决方案是一个混合系统。作为混合分发网络的一部分,观众同时从服务器和其他观看相同内容的观众中获取视频片段。要充分了解它是如何工作的,让我们深入探讨点对点交付解决方案在播放过程中的工作原理:

当观看者按下播放时,设备会通过HTTPS与我们的后端进行身份验证,后者会根据用户和系统预先的配置,来下发一组特定的配置。相同的 HTTPS 连接用于将 QoS 和流量数据传递到我们的后台仪表板,以便进行实时监控和分析。

我们的后端还会根据调度结果返回一组可供连接的Peers列表:当前连接到同一流的节点,以及能够作为获取视频片段的最有效来源的节点。此列表由我们的专有算法根据观看者位置、ISP、设备等进行智能匹配。

同时,观看者的设备会通过 STUN 服务器识别其他设备并通过中继服务器交换初始连接信息,从而与其他设备直接连接。交换此信息后,观看者可以彼此之间建立WebRTC连接并交换视频数据。

播放的第一个视频片段是从源或CDN服务器获取,以确保快速起播,而下一个视频片段是从可用的最佳源(无论是从一个或是几个节点还是 CDN)中多源取用的。由于从多个源进行并行和同步下载,因此可以从许多不同的设备获取视频片段。这使我们能够通过P2P网络分发高达 80% 的视频流量,并有效处理自适应码率场景。

作为基于 WebRTC 的P2P技术,此解决方案无需插件,因此对最终用户是非常方便的。更进一步,P2P网状拓扑拥有的多源下载机制,可以最大限度地提高流媒体质量。其P2P算法决策考虑了各种变量,包括设备类型、实时或点播流、可用内存、用户的互联网连接质量和电池状态等。为了避免消耗用户的蜂窝网络流量,可以选择禁用通过蜂窝网络连接的数据上传。我们还监控每个设备的上传和下载速度,并应用拥塞控制算法以最佳地利用设备的上行链路带宽。

点对点流-下一个内容交付转到解决方案?

点对点技术有着悠久的历史,发展过程中,一路荆棘和希望并存。然而,今天,点对点视频交付的好处和必要性是显而易见的,越来越多的内容提供商开始转向P2P加速视频技术,以面对 Zettabbyte 时代的交付挑战。随着插件的侵入性逐渐消失,如今的点对点交付解决方案已准备好在主流市场中采用。

我们SwarmCloud是国内最早一批专注于基于WebRTC的P2P流媒体技术的创业公司,致力于用分布式技术解决当前CDN架构带来的高成本以及可扩展性差等问题。在过去的一年里,该行业对P2P加速技术表现出了巨大的信任。随着越来越多国际与国内流媒体网站采用我们提供的加速服务,我们相信基于WebRTC的P2P流媒体技术将引领未来整个CDN技术的变革并且有可能成为下一代流媒体分发标准。历史好像又倒流回Web的起源,分布式架构——早期互联网的基石——终于重新回到了在线服务的核心地位。

点对点视频分发:从早期互联网到ZB字节(Zettabyte)时代的分布式网络相关推荐

  1. 基于爱奇艺HCDN视频分发网络的开放缓存

    为通过Internet向海量用户传输高清晰度.高码率的视频节目,爱奇艺融合CDN和P2P技术,开发出一套适合多终端的混合分发传输网络--HCDN.本文来自爱奇艺高级技术总监庹虎在LiveVideoSt ...

  2. 视频化表达“吞噬”互联网,文本信息逐渐被替代?

    作者:胡泳 转载自:经济观察报 未来表达:往下碎和往下"演" 1月19日,2021微信公开课Pro版的微信之夜上,腾讯高级副总裁.微信事业群总裁张小龙表示,视频化表达会成为下一个十 ...

  3. 服务器是什么系统_为什么视频监控系统搭建,要使用流媒体服务器做视频分发?...

    众所周知,TSINGSEE有很多视频流媒体平台和辅助分发的组件,例如EasyNVR.EasyDSS.EasyGBS均是流媒体平台,而EasyRTMPLive则是负责拉转推的推流网关. 而对于流媒体服务 ...

  4. 悖论:早期互联网项目,是否需要技术含量?

       在自己创业.看别人创业.和别人一起创业的过程中,一直有个"悖论"困惑着我,让我很不舒服.    因为如鲠在喉,所以不吐不快.        悖论 早期互联网项目,通常来说,技 ...

  5. 【webrtc0419 点对点视频聊天功能】

    通过WebRtc搭建了自己的网站,实现了点对点视频聊天功能. 点对点视频聊天界面videoRoom.js源码 "use strict"var url = location.href ...

  6. 最主流的5个视频分发平台推荐

    随着短视频平台日益火热,越来越多的个人.企业也逐渐踏进这个领域.但各类不同的短视频平台有着不同的属性,面对着不同的短视频平台,该如何选择入驻哪些平台?今天就给大家分析目前最主流的5个视频分发平台,帮助 ...

  7. 第三方视频应用系统开辟互联网营销蓝海

    第三方视频应用系统开辟互联网营销蓝海 文/王易见 目前的视频应用还仅仅局限于像视频分享.P2P视频平台这类,不过我认为网络视频会像普通门户.电子商务这样的行业一样逐渐普及.这不但是视频行业的需要,更是 ...

  8. 监控视频分发转发服务器性能,基于视频监控的分发服务器的研究与实现

    摘要: 随着宽带网络,数字压缩技术和大容量存储技术的高速发展,基于实时多媒体通信的网络服务也达到了前所未有的增长速度.视频监控业务利用现有的因特网基础设施传输网络视频,是目前网络实时多媒体通信中最受关 ...

  9. 视频监控系统搭建为什么要使用流媒体服务器做视频分发?

    大家知道TSINGSEE团队有很多视频流媒体平台和辅助分发的组件,我们研发的EasyNVR.EasyDSS.EasyGBS是流媒体平台,而EasyRTMPLive就是负责拉转推的推流网关,当然还有很多 ...

  10. 云计算是继互联网计算机后在信息时代,你知道啥是“云计算”吗?

    你知道啥是"云计算"吗? 云计算是分布式计算的一种,指的是企业文化通过这些信息管理网络"云"将巨大的数据,可以提高计算方法处理技术工作程序分解成无数个小程序,然 ...

最新文章

  1. 2022-2028年全球与中国乳胶丝市场研究及前瞻分析报告
  2. java中静态方法可以被继承_关于java:静态方法中的继承
  3. 7、Altiris cms 7.0 软件管理 下
  4. 第四百零三节,python网站在线支付,支付宝接口集成与远程调试,
  5. MyEclipse中安装反编译插件
  6. python中缩进_python编程中的缩进是什么意思
  7. vs矩形框边框线显示被选中的区域;_条形码区域解码:Web小工具
  8. Linux debian 查看CPU温度
  9. Java学习之路 之 容易混淆篇
  10. 看雪论坛论坛小测试的答案
  11. 免费下载《程序员面试宝典》.pdf
  12. 【WeUI】关于jQuery WeUI和WeUI版本兼容的问题
  13. 万年历 源码 php,万年历 PHP
  14. 战胜人类最强大脑只是开始,百度大脑“代言”中国人工智能
  15. linux dd 填充全ff,用shell命令tr dd生成内容为FF指定大小的命令。
  16. 关于2022年国内软件质量调查问卷的一些感悟与收获
  17. clang vectorization
  18. Amazon EC2云计算体验
  19. python倒计时定时器_使用python修饰器的定时器倒计时
  20. 免费文本编辑器--RJ TextEd功能介绍及评测

热门文章

  1. Chrome插件(UserScript)开发教程
  2. 计算机启动硬盘响,电脑开机时硬盘响个不停的原因及解决方法
  3. 车辆网之整车Can网络基本结构及转发机制
  4. 移动端与pc端的区别
  5. mac安静执行脚本_自动切换mac输入法-安静模式
  6. sqlite库学习(7)sqlite读取
  7. 数字信号处理概览与框图
  8. Egret(引擎篇)
  9. 25.HTTP协议和WEB服务器APACHE
  10. 图像编码解码(I P B帧),数码相机成像原理