您当前的位置:首页 > 新闻 > 科技

腾讯视频P2P带宽节省率持续提升之路

时间:2020-03-27 12:54:07  来源:  作者:

要想提升P2P带宽节省率,最直接的方式当然是压缩CDN带宽,但简单粗暴的减少CDN下载势必会带来播放体验问题。腾讯视频数据传输研发高级工程师严华梁在LiveVideoStackCon 2019深圳的演讲中详细介绍了腾讯视频针对P2P带宽节省的最新探索与实践。

 

PART1/P2P技术项目背景

P2P实际上是利用用户之间互相分享视频的数据,来减少从CDN下载数据的量,从而达到带宽节省的效果。

腾讯视频P2P带宽节省率持续提升之路

 

一般情况下,在使用P2P进行带宽节省的基础上,服务所需带宽的计算公式如上图所示:带宽 = 播放量平均码率 *平均播放时长(1-P2P带宽节省率)。观看视频的用户除了从平台服务器上调用数据,还会从其他用户那里来调用数据。

腾讯视频业务在过去几年迎来了高速的发展,用户规模不断提高,无论是播放量还是视频平均码率都有明显的提升。此时摆在我们面前的一大挑战就是:如何持续提升P2P带宽节省率,并做到CDN带宽成本保持较少增长?

腾讯视频P2P带宽节省率持续提升之路

 

上图展现了我们提升P2P带宽节省率的思路。结合之前的带宽计算公式我们可知,如果需要降低CDN的带宽成本,最简单粗暴的方式就是减少CDN的下载,但这样会带来诸如卡顿的音视频体验问题。我们的思路是首先系统性地优化P2P网络的传输效率。由于P2P网络是一个对端网络,因此需要从下载端与上传端两个方面综合看待该项命题。那么在完成对P2P的系统优化之后,在此基础上我们还需要考虑更少的CDN下载,接下来我们就分阶段思考如何实现这一目标。

PART2/如何提升P2P带宽节省率?

腾讯视频P2P带宽节省率持续提升之路

 

若想实现更快的P2P下载,需要做的第一件事情便是传输协议的优化。众所周知,在TCP中存在一个慢启动阈值,为了优化拥塞控制算法我们需要对慢启动阈值进行动态设定,算法策略其实就是经典的ssthresh=max(BDP, cwndα/10)。在此基础之上我们又引入两个策略:丢包避免与丢包过滤。丢包避免从降低丢包率入手,也就是最近RTT大于rttMin+(rttMax-rttMin) β/100,cwnd不增加;丢包过滤从提高吞吐率入手,也就是最近RTT小于rttMin+(rttMax-rttMin)* γ/100, cwnd不退避。上图展示了我们自研的P2P拥塞控制算法与TCP Cubic的对比结果,红线代表TCP Cubic而蓝色则代表我们自研的P2P CC。从数据中可以看到当出现网络抖动时,TCP Cubic对丢包和时延比较敏感,滑动窗口抖动非常剧烈,而P2P CC则相对平稳许多。

TCP的拥塞控制尽管已经演化多年,但仍旧存在较多问题。这告诉我们一个道理:没有一种拥塞控制算法能够适应所有的业务场景或者说网络场景。因此我们希望通过结合应用场景来实现个性化的拥塞控制。

腾讯视频P2P带宽节省率持续提升之路

 

所谓的个性化拥塞控制其实就是依据播放时间线进行差异化传输。如上图所示,播放时间线从播放点开始梳理,播放点往后开始读取数据。那么离播放点越近的数据则会被优先读取到,即优先级较高。于是在这一区间段内我们采用比较激进的拥塞控制参数,尽可能保证传输的效率而损失一部分丢包重传的优化;在距离播放点较远的区段内,采用另外一种策略—— 优先考虑丢包率和重传率并降低吞吐率。上图展示的是新旧算法P2P下载速度的对比,我们可以看到相对于固定阈值的旧算法,新算法尤其是在FAST与MEDIUM档有明显提升。在网络下载效率方面,优化后的整体重复下载率较之前有非常明显的提升。

腾讯视频P2P带宽节省率持续提升之路

 

解决完拥塞控制的相关命题,接下来面对的是如何进行有效选种并高效利用。最关键的一点便是如何评估种子的质量。

这里我们引入一套完整的基于QoS的选种淘汰机制:第一项考察的指标是数据完整度,例如在PC客户端的磁盘内存在一些缓存,PC客户端上的数据相对更加完整,这样便可在整个视频播放的过程中提供更高质量的上传数据;第二项考察的指标为是否断连;第三项是数据接收成功率,其中包括丢包率;最后一项指标是被冻结次数,也就是当连接上一个比较好的种子之后,对上传效率的影响是积极的。但如果进行一次数据交互之后对端提供的反馈信令结果是忙碌,那么可能是因为种子质量出色而连接的对象有些多。在这种情况下,该时间段内负载已经达到较为满负荷的状态,有可能超过了硬件可承载的水平。当有新的请求过来时,会反馈忙碌的状态,从而控制下载请求。但由于该种子质量出色,因此服务器会选择对该链路进行冻结处理,暂时不向该端请求数据传输,并保留对接的端口,待该端不再忙碌之后继续请求下载数据。

随着智能路由器的普及,NAT类型被限制得越来越严格,P2P想找到一个质量出色的种子并成功连接的概率越来越低、难度越来越大,因此设计这样的保护机制可以确保种子物尽其用。

腾讯视频P2P带宽节省率持续提升之路

 

选种之后面临的问题是选片。在P2P传输中,一个流媒体文件会被做切片处理,从而更充分地利用UDP进行传输。UDP本身发送一个数据包会受MTU的影响,例如以64K为一片,切片一段文件,并以不同颜色表示若干个文件片段的下载状态。每一片应当分配给哪一个种子来实现P2P下载?这是我们在选片算法当中需要考虑的问题。

结合时间线,我们提出了一个被称为集中式协同选片算法的策略。按照时间轴进行梳理,离播放点近的数据是即将被播放的,下载优先级最高。这里的“集中式”就是指集中下载优先级高的数据,从而保证整体播放的流畅。“协同”则是指多个种子对优先级高的某一区域数据进行协同下载,例如前面几片分配给一个种子,后面几片分配给另外一个种子。如果简单粗暴地让64K数据直接向某一个种子提出下载请求,那么一旦该种子下线或对应的网络中断,那么64K的数据相当于被整体丢包,假如丢包的数据处于距离播放点较近的位置,短时间内又无法高效地下载,就会出现播放的中断。

为了做到集中式协同下载,我们引入了两个队列:可下载块队列与正在下载块队列。在P2P中,通过种子之间的位图交换,我们可以获知应当下载哪些块,这便是可下载块队列。正在下载块队列的大小是相对固定的,也就是说对于任何一个种子,如果在选片时发现正在下载的块没有完整下载完毕,那么就会优先下载这一部分。例如一个种子开始下载,此时系统发现其他种子超时,那么系统不会重新下载别的分片而是继续下载该种子后面的分片,从而利用这种集中式协同的思路,尽可能完整地下载某一块数据。我们知道UDP的数据传输没有TCP那样严格依赖顺序,而集中式协同的设计主要是为了按顺序尽可能快地将距离播放点比较近的数据下载下来,从而实现P2P下载效率与播放体验的精准平衡。

全平台的视频介质统一至关重要,大家知道广播电视行业需要牌照,这样影视作品才能在TV端合法上线。但腾讯没有这方面的牌照资质,因此我们需要寻求外部牌照方合作。而第三方合作就存在一个问题:对方会要求在TV端播放时必须显示牌照方的水印,而不能显示腾讯视频自己的水印。

腾讯视频P2P带宽节省率持续提升之路

 

一般情况下,水印会被直接编码在原视频数据当中,称为“硬水印”。为了做到全平台统一,我们则使用了软水印技术,也就是将视频内容与水印分开。同一个视频内容在不同的平台上,介质完全一样而水印显示则根据场景改变,从而满足不同场景的水印需求。

腾讯视频P2P带宽节省率持续提升之路

 

我们构建了一套系统性的种子质量提升方案:在第一层,系统会对一些无效的种子做过滤处理,这里的“无效种子”更多的是指在一些限制条件下对种子的筛选择优,如ISP过滤(以避免对运营商网络不友好的跨运营商传输)、NAT类型过滤(常规手段实现NAT穿透较为困难,我们会尽可能选用对称型以减少在穿透方面的损耗)、平台过滤(更多考虑移动端,因为移动端存在运营商网络的限制)、连接数过滤。

结束第一层过滤之后,我们会根据一些属性,使用多属性权重打分决策算法对其进行处理。这里的属性主要有在线时长(能否提供稳定的在线上传)、上传能力(如100M、200M带宽等)、NAT类型与地域就近。完成加权打分之后,我们会对种子进行一个质量等级的划分。随后优先返回评分较高的种子,这样可充分改善客户端的种子建连与下载效率。

腾讯视频P2P带宽节省率持续提升之路

 

为实现更多的P2P上传,我们还需优化上传控制。在P2P网络传输的早期,例如大家在大学时可能用过BT下载,如果宿舍里面有一个人正在进行BT下载,那么其他人可能连常规的互联网访问都无法正常进行。也就是说如果控制不好P2P的上传过程,实际上会对TCP的ACK等普通网络传输过程带来不利影响,因此我们希望实现更加出色的上传控制。这里的优化借鉴了类BBR的思路,也就是通过周期性地动态测速,对每个P2P信道实时计算上行带宽累加,并作为限速值进行上传动态限速控制,限速机制采用TCP中匀速发送的机制,从而降低瞬时大数据包对网络传输链路的冲击。

对于客户端来说,通过信道连接不同种子,我们这里测量的是不同信道的带宽情况,并累加作为整体上传的限速值。上图右侧可视化图表展示了动态测速方案的效果,我们可以看出其整体波动均匀集中。用户在使用客户端访问服务时可能会同时进行一些其他的上网行为,例如看视频时点击某个网页。测速图表中的“PC空闲时间”就是指用户未使用鼠标、键盘的时间,如果侦测到鼠标、键盘使用,那么我们则认为用户在访问互联网其他服务。根据测速结果我们可以看到,随着空闲时间不断增加,动态测速呈现一个缓慢上升的趋势,也就是说动态测速可以感知并自适应用户其他访问互联网的行为,并确保视频服务的可用。

在完成对P2P下载与上传的优化之后,我们还需实现更少的CDN下载。我们所做的第一件事就是优化http下载,对此我们并未采用过于高深莫测的算法,而更多采用的是策略优化+拥塞控制优化(QUIC、BBR)。

腾讯视频P2P带宽节省率持续提升之路

 

策略上的优化,总体思想其实是多元——第一项是MSS也就是IP直出和域名兜底。IP直出是为了减少DNS解析所带来的耗时,域名兜底则主要是为了适应运营商的切换,如用户从中国电信的Wi-Fi网络切换到中国联通的4G移动网络,此时原电信服务器的IP需要切换至联通服务器下的IP之上,我们会对域名进行解析并实现兜底。

第二项是多IP竞速连接,之前IP直出决定了有多个IP待选,这里我们使用了多IP竞速连接以提高速度。

第三项是多链接加速,现在大家提到比较多的一个是MP TCP,也就是实现WiFi网卡与运营商网卡的组合加速。

在策略优化的基础上,我们进行了拥塞控制优化,如使用QUIC、BBR等。

腾讯视频P2P带宽节省率持续提升之路

 

若想实现更少的CDN下载,除了优化http,必不可少的一项举措是合理利用CDN资源。

结合业务特性,我们进行了系统调度的优化:首先尝试深度整合业务,例如用户访问腾讯视频,如果是非会员那么会在正片开始之前看到一段时间较长的广告。在广告播放期间系统就可利用P2P网络预先下载正片数据,在此期间CDN并未被使用。除此之外在播放专辑画面时,如果专辑中上一集即将播放结束,那么下一集即可开始预加载。当然还有一种情况是用户退出当前正片之后,可能需要重新点击打开重复观看,此时系统会对播放点数据做缓存处理,从而实现当用户想要再次打开观看时,系统可快速从本地加载数据并快速开始播放。

当然,如果是会员无广告的情况,为了保证播放体验我们还是会优先选择CDN下载数据,从而保证快速启动播放。在这里我们构建了一套网络预测模型,结合历史下载速度、实时下载速度与当前视频码率综合做出决策,判断启动播放究竟需要多长时间,并尽可能降低CDN的下载时长。例如当用户使用光纤网络时,由于网络带宽资源充裕,下载速度较高,即便没有P2P,CDN也可快速下载所需数据并实现快速启动播放。

除以上两点之外,我们还会从用户行为入手。上图右侧图线是我们与香港中文大学进行的联合研究的结果:不同的媒体类型如电影、电视剧、综艺等,其视频用户中断播放的位置也不尽相同。对于不同类型的视频用户在某一个时间段离开的概率不同,且存在一定规律。通过数据分析我们可以基于此在下载的时长控制方面进行一些针对性处理。

腾讯视频P2P带宽节省率持续提升之路

 

实现更少CDN下载的最后一点是多源体系建设。由于CDN价格高昂,因此我们应当科学调配内容与承载网络类型之间的关系,从而实现产品服务与成本控制的精准平衡。

上图左侧展示了CDN的大概拓扑结构,从上到下依次是距离用户比较远的服务器、城市或社区的机房、家用路由器与用户终端,与用户之间的距离由远及近。随着5G时代的到来,大家经常提到的一个词是移动边缘计算也就是MEC,未来5G基站即可承担一部分机房的角色。大家总是强调5G技术的高带宽低延时,如果未来我们的视频内容直接下沉到基站,借助5G网络访问就可达到类似于局域网的效果,其所能达到的速度是惊人的。如果CDN距离用户较远,那么本身就存在一个传输链路上的损耗;我们尝试尽可能缩短用户与内容之间的距离,进一步突破互联网传输技术对用户体验的桎梏。

PART3/总结

腾讯视频P2P带宽节省率持续提升之路

 

P2P节省率=P2P带宽/ (P2P带宽 + CDN带宽), 要想提升P2P带宽节省率,最直接的方式当然是直接压缩CDN带宽,如减少CDN下载;但是简单粗暴的减少CDN下载势必会带来播放体验问题,所以我们的思路是先优化P2P网络, 在P2P网络优化下载的效率和稳定性提升之后,再来合理的减少CDN下载。



Tags:腾讯视频   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
1.首先谷歌浏览器打开腾讯视频(网页版)2.其次,按下F12(开发者工具),选中Elements 3.按下 ctrl+F ,输入“watermark”,点击选择第二个 4.选中后右击delete 删除元素,看视频就没水印...【详细内容】
2021-07-14  Tags: 腾讯视频  点击:(344)  评论:(0)  加入收藏
众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕。不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一个组织良好的评论序列。通过分析弹幕,我们...【详细内容】
2020-10-09  Tags: 腾讯视频  点击:(92)  评论:(0)  加入收藏
文 |浮萍疫情还未完全结束的Q2,腾讯的财报多少还是有点超预期。 财报资料显示腾讯2020年第二季度实现营业收入1148.83亿元,同比增长29%,Non-IFRS净利润301.53亿元,同比增长28%,高...【详细内容】
2020-08-13  Tags: 腾讯视频  点击:(93)  评论:(0)  加入收藏
在新媒体公司工作的职场萌新小李最近遇到一个小难题,上级把几十个腾讯视频发给他,要求在上午把它们转为mp4格式,并上传到某平台进行传播。可他利用了不少时间在网上百度搜索软...【详细内容】
2020-08-06  Tags: 腾讯视频  点击:(89)  评论:(0)  加入收藏
当前,互联网在我们日常生活中的参与度极高,相信很多人都喜欢在家里用视频APP看电影,如腾讯视频,优酷视频,爱奇艺视频是发展较好的视频软件,还有咪咕视频,乐酷视频等等。不过目前我...【详细内容】
2020-05-27  Tags: 腾讯视频  点击:(40)  评论:(0)  加入收藏
腾讯视频上有丰富的影视资源,不少网友都会选择在腾讯视频上追剧。一些用户在手机上使用腾讯视频app看视频时会遇到画面黑屏不播放视频的情况,其实这种问题还是很好解决的,下面...【详细内容】
2020-04-10  Tags: 腾讯视频  点击:(99)  评论:(0)  加入收藏
腾讯视频是国内领先的在线视频媒体平台,不少用户都会开通腾讯视频会员来观看腾讯视频上的会员专享内容。考虑到现在的用户可能拥有多个观看设备,腾讯视频app提供了设备共享管...【详细内容】
2020-04-09  Tags: 腾讯视频  点击:(48)  评论:(0)  加入收藏
要想提升P2P带宽节省率,最直接的方式当然是压缩CDN带宽,但简单粗暴的减少CDN下载势必会带来播放体验问题。腾讯视频数据传输研发高级工程师严华梁在LiveVideoStackCon 2019深...【详细内容】
2020-03-27  Tags: 腾讯视频  点击:(75)  评论:(0)  加入收藏
做了一些小项目,用的技术和技巧会比较散比较杂,写一个小品文记录一下,帮助熟悉。需求:经常在腾讯视频上看电影,在影片库里有一个"豆瓣好评"板块。我一般会在这个条目下面挑电影。...【详细内容】
2019-09-27  Tags: 腾讯视频  点击:(107)  评论:(0)  加入收藏
Mac版腾讯视频支持丰富内容的在线点播及电视台直播,为Mac用户提供列表管理、视频音量放大、色彩画质调整、自动关机等等更强大的功能服务。Mac版腾讯如何缓存视频? 1、首先在...【详细内容】
2019-08-22  Tags: 腾讯视频  点击:(2658)  评论:(0)  加入收藏
▌简易百科推荐
非法购买公民信息、开发人脸认证规避技术……今年年初,广东省公安厅网安部门侦破全国首例破解“青少年防沉迷系统”的新型网络犯罪案件,抓获犯罪嫌疑人13名,查处非...【详细内容】
2021-12-28    人民日报客户端  Tags:数据安全步   点击:(5)  评论:(0)  加入收藏
就在今天,腾讯方面宣布将在2022年1月31日下架企业QQ和营销QQ,其实这一消息的降临并不让笔者意外,因为早在今年的10月28日20点之后,企业QQ和营销QQ就被停止了续费服务。相信很多...【详细内容】
2021-12-27  科技探险家    Tags:企业QQ   点击:(22)  评论:(0)  加入收藏
日前,上海交通大学发布《全球电竞之都评价报告》,对全球15个致力于发展电竞之都的城市进行评价,上海作为中国城市电竞发展的排头兵,其拥有众多优质电竞企业及完整产业集群,因此排...【详细内容】
2021-12-27  经济日报    Tags:电竞   点击:(3)  评论:(0)  加入收藏
为优化网络氛围环境,微博又开始整顿用户信息了。本月月初,微博官方发布公告,要求昵称中带有如“二货”“SB”“瘪三”“娘炮”等明显低俗或侮辱性词汇的用户尽快修改,否则将面临...【详细内容】
2021-12-24  运了个营    Tags:微博   点击:(10)  评论:(0)  加入收藏
昨日谷歌宣布,自2022年12月19日开始停止对OnHub的软件支持,OnHub路由器仍将提供Wi-Fi信号,但用户无法用谷歌Home应用程序管理它。无法更新Wi-Fi网络设置、添加额外的Wifi设备或...【详细内容】
2021-12-22  雷峰网    Tags:Google OnHub   点击:(5)  评论:(0)  加入收藏
IT之家 12 月 20 日消息,百度网盘青春版 iOS 客户端今日晚间率先开启内测,安卓客户端将在稍后内测。使用苹果 iPhone 的IT之家小伙伴可以点此下载内测版,需要先下载 TestFlight...【详细内容】
2021-12-21  IT之家    Tags:百度网盘   点击:(10)  评论:(0)  加入收藏
对于拼车单,是接还是不接,不少网约车司机表示很矛盾。接吧,钱少事多,常常跑了个寂寞,不接吧,车多客少,挑三拣四没饭吃。 在平台大力推广拼车单之下,不少司机迫于生活压力,最终还是打...【详细内容】
2021-12-17  网约车情报分享    Tags:滴滴   点击:(9)  评论:(0)  加入收藏
蓝鲸TMT频道12月16日讯,据饿了么官方微信公众号,近日,在圆桌会上,蓝骑士与平台交流了配送安全问题。饿了么表示,线上将技术手段融入安全防护;线下将持续进行安全培训,并试点智能头...【详细内容】
2021-12-17    金融界  Tags:饿了么   点击:(24)  评论:(0)  加入收藏
开源最前线(ID:OpenSourceTop) 猿妹编译项目地址: https://github.com/restic/restic全球知名代码托管平台 GitHub 今天就重磅发布了今年的年度报告——《2021 年度 O...【详细内容】
2021-12-17  Python部落    Tags:   点击:(9)  评论:(0)  加入收藏
新京报快讯 据中国网络视听节目服务协会网站消息,12月15日,中国网络视听节目服务协会发布了《网络短视频内容审核标准细则》(2021)。中国网络视听节目服务协会组织有关短视频平...【详细内容】
2021-12-16    新京报  Tags:短视频   点击:(11)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条