2016年5月,星域CDN推出了“旗舰版”和“极速版”两款直播新品,截止笔者撰文,星域CDN的这两款新品已经服务了百余家企业的直播业务,并且得到了小米、爱奇艺、熊猫直播、bilibili、陌陌、触手、战旗直播、大朋VR、GoGal够格等多个直播行业大佬的公开点赞。单从量级来看,星域CDN目前可以说已经承担了直播行业1/3的流量。 当然,业界更为关注的还是使用了“无限节点”技术的旗舰版方案,而作为星域CDN·直播旗舰版的技术研发工程师,笔者也接到了很多圈内朋友的询问,海量的节点如何调度?直播数据流如何分发到离用户更近、网络质量更好的节点?星域直播SDK如何智能选取多个优质节点进行并行传输?星域CDN的直播流畅度是不是真的能达到99%? 在这里,笔者就简单介绍一下星域CDN·直播旗舰版的几个技术要点,希望能帮助大家更好的了解星域CDN的直播技术: 一传统直播流分发由单路变为多路 目前大多数CDN厂商,包括传统CDN厂商和云厂商,提供的直播直播CDN分发基本都基于树状结构,由源节点,中继节点和边缘节点三层组成,当播放客户端观看发起拉流请求时,通过RTMP或者HTTP-FLV协议向边缘节点请求直播流数据时,边缘节点如果没有该路直播流的数据,就会实时回源到中继节点,开奖,同理中继节点最后会回源到源节点拉取该路主播流。如下(图1 左)所示:
图1 使用传统的分发结构(图1 左)会造成: 1卡顿率高 抗抖动能力差,回源都是基于TCP,这要这条链路不断开,链路的抖动会影响分发速率,这样最终会影响这条链路下面的所有观看用户的卡顿; 2高码率直播稳定性差 单条链路分发速率,对于5Mbps内码率的TCP分发能满足,但对于10Mpbs,20Mpbs甚至更高的码率的直播流单条链路的稳定性肯定是不足的; 星域CDN多路分发的优势 为了提高CDN内部分发链路的稳定性,星域CDN(图1右)会将直播流进行chunk分片,同时在一层分发传输中将chunk片打成碎片,分发给下一层节点,例如在中继服务器1这层,源服务器1和2同时分发碎片数据,中继服务器1只要收到足够的碎片就能够解码出chunk片,如此一来,一台源服务器的波动对这层直播流分发来讲影响就大大的减少了。 我们都知道,当前用户播放端拉流都是基于TCP协议(图2):
图2 而用户播放端到边缘服务器之间的抗抖动性相比机房节点分发更弱,开奖,单条链路的拉取速率更加有限。 星域CDN多路订阅的特点: 1完整、可靠、可扩展的私有协议 星域CDN·直播旗舰版在处理播放端拉流的时候,采用SDK向边缘端拉取碎片数据,而SDK拉取数据的协议与CDN内部分发协议是保持一致的,使得SDK在多终端上如PC端flashsdk,Mobile端的androidsdk和iossdk都能很容易移植底层私有协议传输; 2扛网络抖动性强 星域CDN·直播旗舰版SDK可以向多个边缘服务器拉取数据,而多源拉取的核心优势就是单点抖动容错能力强,部分边缘服务器无法拉取,其它服务器仍可以保障数据拉取成功; 3首屏秒开 为了保证首屏时长和可用性,星域CDN·直播旗舰版SDK保留了传统CDN播放的线路,即在启动播放的时候直接通过DNS或者302方式去拉取flv流,保证秒级首屏时长,一旦出现碎片数据分发过慢或者延时过高时,则回退到单点线路,保证的直播流的低延时。 三通过迅雷赚钱宝实现“无限节点” 众所周知,CDN的服务能力与节点数量是正相关的,而几乎所有的CDN厂商都以建多少机房节点,覆盖多运营商来说明自家CDN的分发实力,与业内其他所有CDN服务不同,星域CDN首创了“无限节点“模式,可通过迅雷赚钱宝构建百万量级甚至“无限”的节点网络,从而将CDN服务能力进行数量级的扩大。 具体到星域CDN·直播旗舰版,用户在收看直播时,播放器不仅可以从边缘服务器拉取数据,同时也可以向赚钱宝节点拉取数据(图3 右)。
图3 (责任编辑:本港台直播) |