共计 3099 个字符,预计需要花费 8 分钟才能阅读完成。
作者:孙长浩(火炏)
弱网环境下的品质保障始终是公认的难题,理论生存中每个人都会遇到弱网环境,比方用户在景区地铁里,高铁上,电梯中,景区周边等场景应用 APP 大概率都会遇到弱网场景。优酷作为视频内容 APP,对网络的要求特色为持续时间长,带宽安稳等,所以对弱网环境尤其敏感。在弱网环境下,用户会遇到诸如卡顿、进行播放等体验问题。咱们通过剖析埋点数据能够清晰的看到目前线上的错误码中,网络 (弱网) 相干的错误码类型占比曾经超过一半以上。因而,为了进步版本上线品质,无效的模仿线上网络环境,弱网环境下的测试是不可或缺的线下测试组成部分。
基于此,优酷弱网平台从业务的理论痛点登程,针对弱网进行标准化的分级定义,对场景进行精确测量,对线上回溯数据进行精准回放,并对线下 / 线上弱网模型匹配训练。通过平台化的形式,提供对立的应用和接入办法,一直积攒和积淀更明确的掂量指标以及合理性的规范判断,给测试和开发人员提供更无效的弱网仿真模型。本文就将联合业务场景,开展聊聊优酷弱网测试平台的管制原理、技术实现以及具体业务的应用状况。
弱网认知及原理
弱网认知
弱网没有严格的指标进行定义,理论能够了解为用户在理论应用集体业务时因信号稳定、网络拥挤等起因造成的业务应用体感差,从而进行的一种体理性形容。
依据用户的理论场景,造成弱网的起因个别有两种:
- 物理硬件导致:比方离路由器过远,信号强度低,也有周边烦扰大,导致误码率低等状况均会导致用户弱网;
- IP 网络传输性能弱:比方网络节点性能过载,运营商网络限度,跨网传输等等。
可参考下图进行了解
通过上图两种场景能够看到整体网络结构比较复杂,存在模仿难、无奈量化的问题,无奈制订统一标准。因而,咱们尝试通过其余形式来进行量化。通过参考 RFC2544 文档,咱们得悉掂量网络性能好坏的办法能够通过吞吐量、丢包率、延时、背靠背四个维度进行掂量,定义规范。因背靠背次要测试转发能力,因而大多数采纳前三项进行掂量。
弱网管制原理
由下图 TCP/IP 协定传输过程,弱网管制次要有两种场景:硬件管制和软件管制。
一、硬件管制
次要是通过信号衰减器和噪声发生器进行管制,通过进行信号的衰减以及噪声的大小管制网络中误码率的增高,从而影响应用层接管信号的延时,带宽和误码,目前做 wifi 性能测试项目次要是应用这个办法,但此种形式目前仅能够定性管制,做不到定量的管制。
二、软件管制
目前支流只通过 Linux 操作系统中的流量控制器 TC(Traffic Control)用于 Linux 内核的流量管制,次要是通过在输入端口处建设一个队列来实现流量管制。
接管包从输出接口进来后,通过流量限度抛弃不符合规定的数据包,由输出多路分配器进行判断抉择:如果接管包的目标主机是本主机,那么将该包送给下层解决,否则须要进行转发,将接管包交到转发块(Forwarding Block)解决。转发块同时也接管本主机下层 (TCP、UDP 等) 产生的包,通过查看路由表,决定所解决包的下一跳。而后,对包进行排列以便将它们送到输入接口。个别只能限度网卡发送的数据包,不能限度网卡接管的数据包,所以能够通过扭转发送秩序靠管制传输速率。Linux 流量管制次要是在输入接口排列时进行解决和实现,如下图所示:
目前大部分路由器以及树莓派都是应用这个形式。另有一些第三方设施厂商提供的设施,大多也是基于此种模式做的,只是在下层进行了更多的一些封装。此种形式能够做到定量的管制,而做不到定性的管制,因而优酷弱网平台从用户理论场景登程,别离反对量化的软件管制和定性的硬件弱网管制。
优酷弱网平台技术实现
平台网络拓扑
为了能够让每个用户很不便的应用弱网平台,经屡次评估及探讨最终采纳网络代理的形式,进行网络流量的拦挡和管制,这样的益处是有较强的通用性,无论是 Android 还是 iOS 以及 windows 零碎均自带网络代理性能,因而用户侧间接在各端设置网络代理并免装置利用即可间接应用,具体的网络拓扑图如下:
平台分层性能架构图
优酷弱网平台开发采取分层实现模式,总体分三层:
- 底层物理层采纳真机及屏蔽箱模式,能够间接对屏蔽箱的真机进行弱网信号管制;
- WIFI 弱网管制层,通过 TC 服务器的形式进行管制;
- 用户前端页面提供设施及场景治理,状态展现等性能。
平台性能及业务利用
平台可反对弱网测试范畴
从 app 的角度看,弱网测试的范畴是十分广的,同时对于 app 的优化也十分重要,下图是对弱网罕用的测试项的一些性能梳理,目前平台针对这些弱网的测试都是能够反对的。
弱网分级标准化定义
大多数开发者对于弱网定义仅限于差、好、坏等这样的形式来进行形容,这样的形容仅仅是一种定性形式,鉴于很多开发解决问题,也仅仅剖析到此,一句网络问题,前面问题就不了了之,优酷弱网平台通过对于弱网参数的分级量化定义,很轻松的就能进行一些性能比照,让开发有针对性优化。
分级量化弱网如下图:
下图是不同分级的量化弱网数据的比照,很容易就能找到产品的差别点:
通过上图,可只低网速场景和高丢包场景,优酷 app 还有能够提供产品体验优化的中央。
优酷弱网体验继续优化
优酷业务次要是音视频播放,对网络稳定性的要求十分高,因而在弱网优化这一块,也积攒的一些教训,次要从网络数据采集登程,针对用户理论的网络情况进行采集。在弱网策略层,对采集到的网络数据进行弱网状态的进入及退出进行策略判断,当用户进行弱网状态时,通过线下数据的策略匹配,对线上用户理论的场景进行匹配,最终达到网路优化的成果,具体可参考如下图:
一、用户弱网场景定义
优酷弱网场景:用户在看优酷视频时,在什么样的工夫和中央遇到了导致用户播放呈现加载工夫过长或者无奈起播的问题,该场景有规律性和确定性。
基于上述优酷弱网场景,咱们进行弱网的一些个性测量,并基于测量数据,咱们在实验室进行用户实在的场景模仿,下图是对用户场景的一部分实测模仿。
下图是对用户场景的波形回放及理论测试成果:
二、弱网继续优化过程
通过在弱网实验室进行重现用户是播放 loading 或者无奈起播景象,比方同样检测到用户在地铁会播放会 loading。能够依据用户的场景检测,进行地铁前提前大 buffer 缓存,或者提前提醒用户缓存等各种形式,一旦用户有弱网场景会进行策略命中及优化,次要流程图如下:
通过用户在弱网具体场景的优化和策略匹配,用户在弱网场景播放上的体验有了继续进步。
真机弱网
4G 信号和 WIFI 信号,不同的信号源有人造的区别,因而在 4G 网络状况下进行弱网测试,所须要的环境更为简单,须要专门的屏蔽室,所须要的老本更高,优酷弱网平台采纳屏蔽柜 + 真机平台 + 衰减器形式提供实在的弱网场景,用户在真机平台上能够一键用户实在的进行弱网模仿。
下图为:反对信号衰减的屏蔽柜
下图为:信号衰减场景
下图为:在不同信号衰减状况下,下载速率的一些关系图:
全国网络的单点接入能力
在咱们理论业务中,因为运营商网络,CDN 拥挤等各种起因,经常产生单点的网络问题,优酷弱网平台通过间接代理到全国各地市的形式,能够疾速定位单点问题,并高效解决。
各弱网计划比照
总结及瞻望
优酷弱网仿真平台,通过代理的形式、平台化的服务,极大冲破弱网测试所需的环境限度,目前已做到了弱网随时可测,然而 5G 网络、IPV6 网络、IOT 设施的大量部署,咱们面临的网络环境更加简单,同时网络拓扑也越来越简单,如何能在实验室对这些网络的仿真仍旧是一个难题。另外线上网络的问题,如何进行自动化的定位和复原也是一个须要继续钻研的内容,弱网平台当前将在这些方向进行发力。心愿将来更多的对网络有趣味的同学,一起成长为网络方面的专家。
关注【阿里巴巴挪动技术】微信公众号,每周 3 篇挪动技术实际 & 干货给你思考!