背景
视频用户是移动网络流量的主要消费者。和其他APP相比,观看视频的用户体验和网络环境密切相关。播放成功率、卡顿率、高清占比这些核心体验指标无不与网络环境下的产品表现相关。
我们能发现市场上已有的一些网络分析和环境画像的实践。例如热门手游“王者荣耀”里提供了网络质量的测量,用当前的路由器,小区,公共网络的延迟时间来描述当时的网络状态,给用户呈现一个直观的检测结果。比如用500kbps的网络限速模拟公交模型;用丢包率20%来模拟地铁模型等。网络画像的重要性用一句话概括就是:个性化,差异决策。不同用户在观看视频时,所处的网络环境具有明显的差异性。这种差异体可以概括在两个方面:
网络质量差异。网络质量最终影响的是视频码流下载的速率。当下载速率长时间低于视频码率或者抖动剧烈,就容易产生播放卡顿。下载速率受到播放链路上各个环节的综合因素的影响,这要求我们评估链路上环节的质量,在发生下载速率下降时找到出问题的环节,针对具体问题应用对应的解决方案,才能做到见招拆招,得心应手。
网络环境差异。用户是在家庭网络、公用网络还是在通勤的路上。这里环境的识别不再是一个实时的数据采集分析,它需要一段周期的前置数据收集,要能根据网络流量等一系列特征理解出用户所处的使用环境,从而具备这种环境下可能出现的播放事件做提前预判的能力,结合定制化策略的应用,可以提供给用户更好的视频观看体验。
网络画像
评估播放过程中的网络,比较通用的手段是通过视频分片的下载速度,或是播放器缓冲区(buffer)下降速速率来估计。诚然,下载速度和buffer下降速率能反映出的播放链路端到端的表现,但是在实际的工程实践中,我们希望能掌握更多维度的信息,以采取不同的播放策略。例如如果播放分片下载速度突然下降,如果我们知道是CDN侧发生了故障,就可以将播放链路切换到备用的CDN;而如果是用户的局域网带宽拥挤了,我们可以通过智能档逻辑切换播放更低码率的码流。当我们能感知视频播放过程中的网络变化,分析下载速度变化的原因,就能够有效作出相应策略,提升播放体验。
在用户终端播放视频的网络如图1所示。从网络拓扑结构出发,影响视频用户播放下载的因素主要包括用户设备,局域网,公网,CDN四个部分。用户设备影响网络质量的主要参数是信号强度。局域网的网络质量反映了网关的数据分发能力。一些量化指标包括设备到网关的数据时延、丢包率,网络信道拥挤度等。公网的网络质量反映设备进行随机网络请求的质量。指标包括到随机地址的时延、丢包率等。CDN侧主要是CDN的质量和调度策略是否正常,它反映了。量化指标包括下载播放分片的下载速度、TCP时延、丢包率。
图1:视频用户网络拓扑结构
用户设备、局域网、公网、CDN这4个维度里的指标来源分散,且数据量纲不统一,需要对指标数据进行处理清洗,再通过统计特征分析找到它对网速的表征能力。从原始的时序数据里提取出统计特征的方法如图2所示:
图2:特征提取流程
1. 数据清洗:原始数据采集因为线程时序等问题,会引入脏数据。主要包括0值或极大值。例如在处理网关时延rtt时会混杂一些-1,0,或超时值等数据。异常值会影响到最终的判定结果,一般选择删除处理,而对于缺失值,可以做删除或者填充的操作, 填充则根据情况选择均值、随机、k近邻填充等方法。
2. 数据规范化:数据规范化将清洗后的数据做归一化,去除单位的限制,方便不同指标的比较或者加权操作。最后将多个特征变为一个多维向量,通过向量标准化以达到数据规范化的目的, 不管是ms为单位的数据还是KBps为单位的值,统一构成向量中的一个元素。
3. 特征衍生与选择:特征衍生旨在对原始的特征进行转换,计算出所需要的新的数据,例如:对特征计算均值、方差、标准差,对特征选取X分位数据来表征等。比如,网关时延rtt每次上报的数据是多次采集的结果,在计算的时候一般采用计算其的均值、方差等来表示,而网卡流量而言,期望得到是一段时间内其能达到的最大值,因此,取均值并不是最佳方案,在这里做的是取其的90分位的值来表征。
而特征的选择方面,可以通过相关性的验证,来选择与校验结果相关度较高的特征,比如使用皮尔逊相关系数来验证变量之间的相关性。通过一系列的数据清洗、规范、选择之后得到的特征,是否具有所需的区分度,还要借助相应的聚类算法得以佐证,并可以利用散点图+密度图的方式来更加直观地观察数据。
图3:特征散点图
图3是部分用户的网关时延与其平均网速的散点图分布情况,横轴为平均网速,单位是kbps, 纵轴为每次采集到的网关时延均值大小(单位ms),每一个红点为一条数据,与传统散点图不同的是,图中还计算了散点的密度分布情况,蓝色区域为密度区,颜色越深密度越大,除此之外,右侧纵轴以及上面的横轴还有数据分布情况的边界分布图。该图通过把数据转化为可视化图像的方式,展示了这部分数据的分布情况。可以从图中获得的信息是:
密度最高的部分几种在网关时延小的区域;
从横轴来看,网速越高的部分,网关时延出现较大值的量越少。
应用场景
网络质量分析提供了多维度的结果,这个结果能比较准确的告诉我们网络为什么出问题。针对不同种类的问题,应用相应的策略,就可以达到理想的效果。表1列举了一些不同类型弱网下的策略。
表1 弱网策略列表
体验优化方案 |
应用场景 |
|
设备信号强度弱 |
提醒用户信号弱,靠近wifi等 |
loading提示 客服系统自动卡顿诊断 起播 buffer策略 智能档策略 |
局域网网络质量弱 |
提醒用户重启或优化家用路由器参数,选择更空闲的信道等 |
|
公网网络质量弱 |
使用并发下载、quic/bbr等弱网积极下载协议等,使用保守的buffer缓冲策略 |
|
cdn网络质量弱 |
切换备用cdn,备用域名等 |
1. 弱网用户提示
在弱网缓冲时,如果是信号或局域网时延高的时候,如图4所示,会在缓冲页面给给用户相应提示,引导用户实现相应的优化。在客服系统的卡顿检测结果中,同样也会给出相应的提示。
图4:wifi信号弱的缓冲提示
2. 弱网调度优化:
如果网络检测结果是公网质量不错,CDN质量较差的情况,一般是遇到了调度问题。这时候反查下载链接是否有问题,例如CDN调度是否出现跨省或跨运营商;URL是否被劫持;CDN水位是否吃紧需要启用备用线路等。
3. 弱网下载优化:
如果网络检测结果是公网质量较差,CDN质量也较差,说明用户处在弱网的环境下,我们会启动并发下载,QUIC,BBR等积极的下载方式抵抗高延迟和高丢包率,同时也会引导用户使用智能档或降低码率观看。
4. 用户场景画像:
网关时延、网关IP、信号强度、网关时延等数据在不同场景下的表现也是不同的。例如家庭网络相对较稳定,拥有更低的网关时延,连接局域网的设备有较为固定的,网关IP也有一定的共性等。我们综合运用前面的网络指标进行分析和特征提取分类,可以应用到最终的用户场景的识别。如图5所示。
图5:通过网络特征进行场景画像
☞以太坊2.0、分片、DAG、链下状态通道……概述区块链可扩展性的解决方案!