适用于音视频的弱网测试整理

一、什么是弱网环境

对于弱网的定义,不同的应用对弱网的定义是有一定的差别的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分。按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网。除此之外,弱信号的Wifi通常也会被纳入到弱网测试场景中。随着国内移动端迅猛发展,大大增加用户碎片化使用移动端的概率,用户可能会在地铁上,高铁上,巴士上,甚至是电梯,电梯间,楼梯间,隧道,车库,大型活动现场等空间使用互联网应用。
在这里插入图片描述

二、音视频受网络限制的原理

Q1:当请求从客户端发出,最后服务器响应请求并返回,看似简单的流程,中间经过了些什么呢,又是有哪些流程会受到弱网情况的影响呢?
在这里插入图片描述
首先,简要介绍一下传输层协议,TCP/IP协议族是一个四层协议系统。

  • 从下到上分别为 数据链路层、网络层、传输层、应用层,每一层都通过若干协议实现完成不同的功能。
  • 其中数据链路层实现了网卡接口的网络驱动程序,处理数据在物理媒介上的传输,并隐藏了各个物理媒介之间的区别,为上层协议提供了统一的接口;网络层 通常网络上的两台主机之间不是直接相连接的,两种之间存在多个中间节点(路由器)。它的的作用就是在众多的节点中选择中间节点,使两台主机能够通信,确定两台主机的的地址管理和路由选择;传输层为两台主机上的应用提供端到端(end to end)的通信。与网络层不同的是,传输层只关心通信的起始端和目的端的可靠数据传输,而不在乎数据包的中转过程;应用层负责处理应用程序的逻辑(比如文件传输、名称查询和网络管理等)作用于用户层。而数据链路层、网络层和传输层负责处理网络通信细节,这部分必须稳定而高效,因此它们都在内核空间中实现。
  • 而刚提到的数据通信,从应用层发送一段数据时,需要将该数据通过协议栈从上往下依次传递,同时每一层协议都会在上一层数据的基础上加上自己的头部信息 (比如我们常见的TCP/UDP协议,在接收到我们要发送的数据时,就会在我们要发送的数据前面加上自己的头部信息)。完成所有数据封装后,当帧达到目的主机后,重新沿着协议栈自低而上依次传递,各层协议依次处理帧中本层负责的头部,获取到所需信息,并最终将处理后的数据分用交给应用程序。由此底层经过繁琐的数据处理后,完成一次数据的直接通信,而不同阶段客户端和服务器处于不同网络环境,每一层协议均会受网络状况的影响。

在这里插入图片描述
Q2:已知数据在网络层、数据传输层、应用层等都会受到网络影响,那具体会存在哪些网络问题呢?又是如何去对抗解决这些网络问题呢?

1、影响网络传输质量有很多原因,比如目标网站所在的服务器带宽不足或负载过大、网线问题导致网速变慢、防火墙的过多使用、系统资源不足等都会影响网络质量,其中最主要的是 网络拥塞、网络丢包、网络抖动 等问题,这些问题会是造成音视频卡顿、实时性不佳的主要原因。

2、解决这些核心网络问题,主要由上层 网络层(部分网络层无法解决,也会由 应用层 参与解决)。

其中,网络传输层主要协议有 TCP 和 UDP ,传输层协议在 TCP/IP 分层协议中位于应用层之下,一般在操作系统内部提供实现。其中,TCP 是面向连接的可靠传输协议,为数据传输的完整性和有序性提供了保障;UDP 是无连接的不可靠传输协议,数据传输的可靠性完全交由应用层处理。

在这里插入图片描述
实时音视频应用场景下,UDP 会作为优先选择已经是广泛共识。原因主要包括以下几点:

1、TCP 协议并非为音视频实时应用场景设计,其内部的拥塞控制和差错控制等机制为了可靠性和高吞吐量而导致延时的增加,在弱网环境下延时的恶化更为明显。ITU StandardG.114 对延时的定义是,端到端延时大于 400ms 时,用户的交互体验将受到明显的影响。

2、TCP 的拥塞控制机制和差错控制机制 位于操作系统内部实现,应用层无法优化,无法应对不同场景需求进行调整,严重 缺乏灵活性。

3、UDP 协议本身开销比 TCP 小,传输控制策略完全交由应用层来实现,具有足够的灵活性。

拥塞问题:
当网络中传输的数据流量超过网络瓶颈容量,就会产生拥塞问题。

拥塞的直接影响是突发丢包或者突发抖动,如果不及时预测拥塞的发生,及时降低发送数据量,接收端将会出现卡顿、延时大、画质差等等问题。

拥塞产生的原因有两点:

接收方容量不够
网络内部有瓶颈
那作为测试,我们一是 需要快速准确地进行网络拥塞探测;二是 观测是否可以 避免拥塞以及尽可能快地从拥塞状态恢复。

拥塞探测 根据观测数据的差异可用分为两类:

基于丢包的算法(Loss-based):通过丢包事件来检测网络拥塞。

基于延时的算法(Delay-based):通过对延时的测量来判断网络拥塞。

丢包问题:
如上所述,实时交互式媒体传输基于 RTP/UDP 协议,丢包问题由应用层处理。

网络传输方面的对抗丢包技术手段主要包括 重传(ARQ)、前向纠错(FEC)。

信源编码方面根据数据以及编码方的不同也可以提供某些特定的抗丢包能力,比如视频编码中采用 B 帧降低丢包的影响。

抖动问题:
概括而言,抖动问题就是 网络传输延时变化问题,抖动越大表示网络传输延时变化越大。

抖动问题会造成接收端卡顿、播放快进等严重影响音视频沟通体验的问题。造成抖动问题的原因是多方面的,比如新的流加入造成网络资源竞争加剧、源端数据发送速率本身不平稳以及其他网络原因。

目前处理抖动的通用策略是 接收端建立抖动缓冲区(JitterBuffer)来消除抖动。接收端通过增加抖动延时来吸收不均匀的延时,达到均匀播放的目的。

三、弱网测试保障适用场景

  1. 弱网测试对 直播应用 和 音视频应用 都是刚需,他们所面对的网络环境具有较强的 复杂性、异构型,用户可能会在任何地方任何网络条件下进行直播或者视频会议。特别是视频直播,用户可能会在地铁里观看直播,可能在高铁上观看直播,主播有可能在户外信号弱的地方进行推流,也有可能在大型活动的现场进行推流。而视频会议的员工可能在全球的任何地方,有可能当地的网络条件较差。
  2. 但是直播和视频会议等实时音视频应用,对视频的 连续性、图像质量、音频质量、连接的稳定性 要求都是非常高的,在不同环境下的严重程度也存在很大差异,任何一方面做得不尽人意都可能影响到用户对产品的使用感受,可能会导致用户流失。因此非常有必要针对各种可能遇到的弱网环境,对应用的各方面进行优化和调整。这样一来,如何检测复杂网络下音视频的体验,是音视频测试关注的重点问题。

四、弱网测试工具分享

  • 通过对市面上8种测试工具进行调研,考虑到平台兼容性、最终选中Charles/Qnet两种弱网检测工具。在这里插入图片描述
    其中包括 charles、Qnet 两种弱网检测工具的使用,测试工具弱网场景的模拟原理了话,就是通过实时将系统接受和发出的网络数据包拦截下来,人工的造成延迟、掉包和篡改操作后再进行发送。无论是要复现网络异常造成的程序错误,还是评估应用程序在不良网络状况下的表现,都可以在不需额外搭建环境的情况下,在系统层次达到想要的效果。

五、弱网参数设置参考值

  1. 在各种各样的弱网环境中,网络对应用的影响因素大致分为:可用带宽、丢包、时延、时延抖动等。
  2. 通过对实地网络参数进行测速,如电梯、地铁场景等,参照运营商输出的14种弱网场景,给出大家对于不同弱网场景,参数设定的一个参考值,下面附件中也提供了可直接用于charles导入的网络参数文件。

ps:实地测速使用app端的网络测速工具:appstore 测网速

在这里插入图片描述
名词解释:

上行速率:上行速率是指移动终端给基站发送信息时的数据传输速率,
下载速度:比如手机、笔记本等无线终端给基站传输数据速率;下行速率是指基站向移动终端发送信息时的传输速率,比如手机或笔记本等无线终端从基站或者网络下载数据的速率。
丢包率:丢包率(Loss Tolerance或Packet Loss Rate)是指测试中所丢失数据包数量占所发送数据组的比率。
时延:是指一个报文或分组从一个网络的一端传送到另一个端所需要的时间。它包括了发送时延,传播时延,处理时延,排队时延。(时延=发送时延+传播时延+处理时延+排队时延)一般,发送时延与传播时延是我们主要考虑的。
EDGE:由于EDGE是一种介于现有的第二代移动网络与第三代移动网络之间的过渡技术,因此也有人称它为"二代半"技术。

网络时延参考自百度百科:
上述数据参考自:https://blog.csdn.net/mao834099514/article/details/79456881

六、音视频的极限网络

通过对线上音视频的竞品调研,探索应用于不同场景下音视频的极限网络网端。

快剪辑平台【抖音,快手,秒剪】
编辑器功能平台【剪映,快影,度咔,必剪(参考)】
智能成片【秒剪,抖音,快手,度咔,畅片】

1、常规UI展示:通过对 抖音,快手,秒剪 APP进行弱网检测,【2G弱网】是极端网段。

2、智能成片:通过对 秒剪,抖音,快手,度咔,畅片、粉APP 六种APP 进行弱网检测,【3G弱网】是智能成片功能的极限网段;低于该弱网限制,对应功能的高、中、低端机型,业务功能无法正常应用。

3、ASR 语音识别+导出等操作:通过对 剪映,快影,度咔,必剪(参考)、粉 六种APP 进行弱网检测,【3G弱网】是ASR功能/导出操作的极限网段,低于该弱网限制,对应功能的高、中、低端机型,业务功能无法正常应用。

七、弱网用例场景设计

实际需要进行弱网场景覆盖场景,需根据业务 P0 核心场景划分,以及 新增/产品关注 业务场景进行弱网的覆盖。

八、弱网经典问题分享

针对直播、剪辑视频场景,遇到的客户端弱网问题、以及对应的弱网解决方案进行分享:

在这里插入图片描述
3、串行接口请求失败,一个接口失败导致全部失败

1、根据业务进行排查 / 性能调优

2、根据素材进行素材瘦身

3、拆分减少串行处理的接口,数据异步返回后针对性刷新

持续更新…

九、单位换算分享

冷知识:bps kbps mbps 换算规则

Mbps 即 百万位每秒,Kbps 即 千位每秒,bps 位每秒

速度单位,bit即比特,通常用b(小写)表示,指一位二进制位,1Mbps=1000Kbps=1000000bps;

所以1Mbps=1000 000bps;

这是通常用来衡量带宽的单位,指每秒钟传输的二进制位数

MB即百万字节也称兆字节;

KB即千字节;

B即字节;

之间关系为1MB=1024KB=1024*1024B;

1B=8b

附:charles网络设置xml文件(可直接导入)

十、Q & A

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/131897.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

档案宝档案管理系统在微信小程序上线了!

随着信息时代的到来,企业和组织面临着越来越多的信息和数据需要管理。而档案管理作为一项重要的任务,对于企业的运营和决策起着至关重要的作用。为了满足用户的需求,我们很高兴地宣布,档案宝档案管理系统已经在微信小程序上线了&a…

VIM指令

vim的工作模式 vim一般有6种工作模式。 普通模式:使用vim打开一个文件时默认模式,也叫命令模式,允许用户通过各种命令浏览代码、滚屏等操作。 插入模式:也可以叫做编辑模式,在普通模式下敲击 i 、a 或 o 就进入插入模…

微信小程序 获取当前屏幕的可见高宽度

很多时候我们做一下逻辑 需要用整个窗口的高度或宽度参与计算 而且很多时候我们js中拿到的单位都是px像素点 没办法和rpx同流合污 官方提供了wx.getSystemInfoSync() 可以获取到部分窗口信息 其中就包括了整个窗口的宽度和高度 wx.getSystemInfoSync().windowHeight 返回值为像…

基于java+vue+springboot的家庭理财记账信息网站

运行环境 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven 项目介绍 在这科技…

gpio内部结构(一)

一,GPIO内部结构 1,保护二极管 * 引脚内部加上这两个保护二级管可以防止引脚外部过高或过低的电压输入。 * 当引脚电压高于 VDD_FT 或 VDD 时,上方的二极管导通吸收这个高电压。 * 当引脚电压低于 VSS 时,下方的二极管导通&…

【SQL】MySQL中的SQL优化、explain执行计划

查看SQL执行频率 -- 查看当前会话统计结果 show session status like Com_______; -- 查看自数据库上次启动至今统计结果 show global status like Com_______;定位低效率执行SQL 两种定位方式: 1.查看慢查询日志 2.通过show processlist查看所有正在运行的线程exp…

电子沙盘数字沙盘大数据人工智能开发教程第16课

电子沙盘数字沙盘大数据可视化GIS系统开发教程第16课:新增加属性在MTGIS3d控件 public bool ShowFLGrid;//是否显 示方里网格。 public bool Atmosphere;//是否显示大气圈。(因为WPF不支持shader功能,所以效果嘛。。。) 在SDK中为…

el-select的el-option添加操作按钮插槽后实现勾选与按钮操作分离

这里我在el-option的选项文字后面添加了两个svg按钮(编辑和删除):如图 当我们点击el-option时无法区分是勾选el-option还是点击了el-option选项文字后面的按钮,其实只要在后面的编辑和删除的操作按钮的click事件上面添加.native.…

Java数据结构第十九章、手撕图+最小生成树

一、图的基本概念 图是由顶点集合及顶点间的关系组成的一种数据结构:G = (V, E),其中:顶点集合V = {x|x属于某个数据对象集}是有穷非空集合;E = {(x,y)|x,y属于V}或者E = {<x, y>|x,y属于V && Path(x, y)}是顶点间关系的有穷集合,也叫做边的集合。(x, y)表…

【计算机网络笔记】计算机网络的结构

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 文章目录 系列文章目录网络边缘接入网络数字用户线路 (DSL)电缆网络典型家庭网络的接入机构&#xff08;企业&#xff09;接入网络 (Ethernet)无线接入网络 网络核心Internet结构最后 计算机网络的结构…

CSS 中::after的妙用(实现在margin中显示内容)

效果图如下&#xff1a; 背景&#xff1a; 如上图&#xff0c;之前只是当纯的写一个参考货架平面图&#xff0c;用作物料系统的在库状态可视化&#xff0c;当完成页面body分成10等份时&#xff0c;货架之间需要有通道&#xff0c;为了实现实际的样式&#xff0c;我给每个等份都…

【技术研究】环境可控型原子力显微镜超高真空度精密控制解决方案

摘要&#xff1a;针对原子力显微镜对真空度和气氛环境精密控制要求&#xff0c;本文提出了精密控制解决方案。解决方案基于闭环动态平衡法&#xff0c;在低真空控制时采用恒定进气流量并调节排气流量的方法&#xff0c;在高真空和超高真空控制时则采用恒定排气流量并调节进气流…