前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >攻城狮手记 | 降本增效黑科技,带你了解X-P2P

攻城狮手记 | 降本增效黑科技,带你了解X-P2P

作者头像
腾讯云音视频
发布2021-08-30 15:41:44
1.4K0
发布2021-08-30 15:41:44
举报
文章被收录于专栏:音视频咖音视频咖

伴随着直播行业的井喷,越来越多的大型活动和赛事开始采用网络直播的方式,它们在为平台带来高涨热度和庞大流量的同时,也对平台的网络和分发能力带来了巨大的挑战。

面对海量并发,腾讯云音视频除了有坚实的RT-ONE™基础网络、强大的音视频PaaS产品能力保障外,还有一项少有人知的神秘黑科技——能大幅降低带宽压力的X-P2P技术。

它到底有什么神奇过人的地方呢?为了让大家了解这项技术,我们和X-P2P团队的工程师们来了一场深入的交流。

P2P即Peer to Peer,也就是对等网络。和传统的CS(Client/Server)、BS(Browser/Server)网络架构相比,P2P网络中的每个节点的地位都是对等的。每个节点既充当服务器,为其他节点提供服务,同时也享用其他节点提供的服务。这个概念看起来很简单,但要将P2P技术应用到直播上,却没有那么容易。

P2P对等网络与传统CS网络架构

「P2P这项技术很早就有了,腾讯做P2P的历史其实也很悠久。QQ、微信、腾讯视频、QQ影音、旋风下载这些产品都有用到P2P,可是当讨论要做直播P2P的时候,内部的声音还是觉得做不了,做不到,认为这个东西没法实现。」回忆最初做直播P2P,X-P2P团队的攻城狮这样说道:“直播和点播不一样,点播做P2P,你将文件存在那里,过一天、过一个月可能都会有人看。但直播不行,它要低延时,时间窗口期没有那么大,可能就那么几秒钟,这几秒钟一过,所有人就都已经看到最新内容了,你再分享就没有意义了。”

做直播P2P,X-P2P团队就必须要解决实时低延迟这个难点。普通的P2P,内容都是已经完整存在的,实现相对简单,但直播内容是实时产生,实时传输的。X-P2P最初采用的还是窗口模式,这也是点播P2P的常用模式。这种模式,首先设置两个阶段的窗口,第一个阶段的窗口为保护窗,是接近播放的临近播放区,这段时间是临近播放的数据缓冲区,内容比较紧急,如果其中内容没有完整,则立即向CDN请求,进行下载,保证不影响播放;第二个阶段的窗口为P2P抢占窗,是临近播放区之后的一段时间,这段时间距离播放较远,是直播产生的数据预存区间,其中内容依靠其他P2P节点来努力填充。因为点播不存在延时问题,窗口可以设置的很长,这样的模式就能够获得很好的效果。但这种模式放到直播来,就会出现一个很大的问题,要想获得很好的效果,两个窗口就都需要大于4S,这样最优的结果也会产生接近10s的端到端延迟。

窗口模式示例

「我们是15年开始做这项技术的,那时候的直播和现在区别还是很大的,延时也不像现在这么低,所以一开始用这种窗口模式也能满足需求。」因此,X-P2P团队的工程师们不断的优化这种模式,将窗口越缩越短,通过不断缩短窗口时长来满足直播的低延时要求。但随着直播本身的延时越来越低,团队的工程师们意识到,单纯缩短窗口时间总有一天会到达瓶颈,但直播对低延时的要求却是没有止境的,必须要突破窗口的限制,另辟蹊径才能解决这个问题。

「当时我们的目标就是让直播P2P能够做到和CDN一样的低延时,所以我们就假设没有走P2P,直接从CDN拉,然后去感受这个数据是如何及时达到的,去找到它的特征。」放弃原来的思维方式,走出一条新的道路是非常困难的,这也是为什么在最初做的时候,内部会认为这项技术实现不了。但通过这样的尝试,X-P2P的工程师们最终找到了突破窗口限制的方法:利用直播本身的特征,以帧为单位来接收数据。直播是实时的,假设一场直播的帧率为25帧,那就等于它每40毫秒会传输1帧。直播P2P的传输也可以这样,每40毫秒传1帧,过了40毫秒就传下一帧。没有了窗口,就需要新的方法来确定数据的完整性,X-P2P又对数据进行了编号,直播中所有的帧都应该是按顺序到来的,如果先来了1,后面来的是3,就知道2丢了。通过这样的方法,X-P2P团队成功的突破了窗口的限制,使得直播P2P能够做到和CDN一样的低延时。

无窗口制数据完整性验证

「其实客户直播只有量级巨大的才有必要上P2P,但量一大的话,客户的容忍度就比较低,它不是一个小规模的产品,动不动就有上万人,上十万人同时在看,很多活动更是超百万人在线。像去年的S10,我们X-P2P的量级已经接近20T,峰值在线更是超过两千万。对于这样的活动,客户都是会拿着放大镜来找问题,绝对不允许出任何故障的。」

当面对像S赛、奥运会这样同时会吸引上千万人关注的超大型活动,任何一点点的问题都会变成很严重的事故。设想一个情景,下班回家打开斗鱼,看直播的时候画面卡住了,刷新几次之后恢复了正常观看,你会觉得这个问题很严重吗?但如果这个场景换成,在家等着看奥运会百米飞人大战,结果直播卡住了,刷新几次之后恢复了正常观看,这时候比赛可能都结束了,你又会是什么感受呢?

所以做直播P2P必须要在面对海量并发时还能保持稳定,但想要实现这一点却很困难。一场直播,不仅内容是实时的,观众也是在实时变化的。观众不断的离开、加入,然后又离开,如何去保证P2P这样一张拓扑网络的稳定?A分享给B,B分享给C,C分享给D,如果A走了怎么办?网络稳定了,分享率怎么保证?面对这些难题,X-P2P团队的工程师们和客户一起找问题,做优化,将技术做的越来越完善。

「最初接的第一家大规模客户是斗鱼,当时技术不是很完善,他们每天都会反馈很多的问题,我们自己也在找问题,大部分都是很小的点,但就是不断优化这些小问题,从中找原因,再解决,我们把技术做到了业内领先。」通过这样一个小点一个小点的积累,X-P2P突破了一个又一个的技术难题。自研传输协议的轻量级可靠传输,环+树混合的网络拓扑结构,动态传递来源路径等等这些技术让X-P2P现在能够实现分享率超过90%,卡顿小于1%的效果。

X-P2P使用效果

「我们X-P2P的抗突发能力还有其它效果现在都做到了业内领先,但不是说它就已经没问题、没优化空间了。一个是对客户大规模使用的敬畏,任何小的问题处理不慎都会以庞大基数体现出来,所以稳定性是一再提高到0 Bug、各核心指标平稳上线的程度。二是来自团队自驱,技术是无止境的,我们自己也在不断突破,追求更稳定的效果,更高的质量。」

当下,X-P2P的主要应用场景还是直播,但X-P2P团队的工程师们早已将眼光投向更广阔的前沿领域。

「X-P2P的X本来就有“未来”的含义,P2P对等网络这个概念已经太久远了,我们现在做的很多很前沿的东西已经没法用P2P来概括了,用万物互联来概括或许更贴切。我们现在的架构就是面向万物互联的。」谈到X-P2P技术的未来,团队的负责人这样说到。

现在的P2P已不似早期那样野蛮、暴力。BitTorrent的中文翻译是“比特洪流”,早期的P2P就像“洪流”一样,是一种对网络资源的无情侵占。而现代P2P则充分考虑了就近调度、节点间负载均衡,是对CDN边缘节点的无形补充。这就像仓储物流发展的三个阶段:早期万维网,还没有CDN的时候,所有用户访问网络,都要经过骨干网,导致骨干网瓶颈明显,就像所有人买东西都要到厂家门口取货;有了CDN之后,资源被下沉到CDN的OC节点,类似于每个省会都建立了分销点,大家去取货再也不必都跑到厂家那里了,直接去省会分销点就好了;而有了现代P2P之后,每个拿到数据的节点,都能自己充当分销点,其他人可能在自家县城就可以找到分销点,从而就近拿到货品,极大地节省了省会分销点的压力,优化了整体网络负载。在万物互联的未来,P2P的去中心化也将进一步发挥优势。

虽然现在距离万物互联还有着很长的一段距离,但X-P2P团队对此充满了信心。他们目前也正在和清华大学合作,共同解决网络传输、组网调度等方面的问题。未来,X-P2P团队的工程师们也将继续打磨产品,为构建万物互联提供坚实助力。

腾讯云音视频在音视频领域已有超过21年的技术积累,持续支持国内90%的音视频客户实现云上创新,独家具备 RT-ONE™ 全球网络,在此基础上,构建了业界最完整的 PaaS 产品家族,并以 All in One SDK 的创新方式为客户服务。腾讯云音视频为全真互联网时代,提供坚实的数字化助力。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云音视频 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
X-P2P
自研新一代P2P 技术,友好地利用用户网络闲置带宽,优化网络资源调度,降低全网整体负载,既显著地降低分发成本,又提供等同于CDN的视听体验。通过简单集成SDK,轻松应对大流量突发,控制灵活,适用于直播、点播、短视频、大文件下载、游戏安装包升级等业务场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档