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

一、什么是弱网环境

对于弱网的定义,不同的应用对弱网的定义是有一定的差别的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分。按照移动的特性来说,一般应用低于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.mzph.cn/news/102424.shtml

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

相关文章

【JAVA】最容易忽视的数据类型——枚举

个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 前言 Java枚举是一个特殊的类一般表示一组常量,比如一年的 4个季节,一年的 12 个月份,一个星期的7天,方向有东南西北等。今天就让我们来学习一下在JAVA中这个特殊的类。 枚举 枚举是一…

10.12作业

以下是一个简单的比喻,将多态概念与生活中的实际情况相联系: 比喻:动物园的讲解员和动物表演 想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴子等。现在,动物园里有一位讲解员&…

吃瓜神奇!企查查、天眼查、天眼销,到底哪家强?

最近,我发现很多人在讨论查企业信息的工具,什么企查查、天眼查、天眼销等,到底哪家强呢? 首先,我们来简单了解一下这些工具。企查查是一款可以帮助用户查询企业信息的工具,通过输入关键词,可以搜…

【VUE】element Table指定字段单元格样式及数据格式化

将列表中的指定字段的数据&#xff0c;根据字典值回显&#xff0c;并修改指定状态的显示样式 <el-tableref"table"height"500px":data"dataList"><template v-for"(item, index) in columns"><el-table-column:key&quo…

嵌入式面试常见问题(一)

目录 1.什么情况下会出现段错误&#xff1f; 2.swap() 函数为什么不能交换两个变量的值 3.一个函数有六个参数 分别放在哪个区&#xff1f; 4.定义一个变量&#xff0c;赋初值和不赋初值分别保存在哪个区&#xff1f; 5.linux查看端口状态的命令 6.结构体中->和.的区…

Tomcat自启动另一种方法

Tomcat自启动另一种方法 问题&#xff1a; 不知道怎么回事&#xff0c;好几台电脑都可以开机自启动tomcat&#xff0c;正常运行项目。一样的配置一样的操作流程&#xff0c;偏偏要运行的机器开机自启动后&#xff0c;项目不能运行&#xff0c;手动重启tomcat又可以用了。网上…

FHRP首跳冗余的解析

首跳冗余的解析 个人简介 HSRP hot standby router protocol 热备份路由协议 思科设备上 HSRP VRRP 华为设备上 VRRP HSRP v1 version 1 HSRP v2 version 2 虚拟一个HSRP虚拟IP地址 192.168.1.1 开启HSRP的抢占功能 通过其他参数 人为调整谁是主 谁是从 &a…

【低代码表单设计器】:创造高效率的流程化办公!

当前&#xff0c;有不少用户朋友对低代码表单设计器挺感兴趣。其实&#xff0c;如果想要实现提质增效的办公效率&#xff0c;创造一个流程化办公&#xff0c;那么确实可以了解低代码技术平台。流辰信息作为服务商&#xff0c;拥有较强的自主研发能力&#xff0c;根据市场的变化…

Mybatis入门

Mybatis mybatis是一款优秀的持久层框架&#xff0c;用于简化JDBC的开发。&#xff08;控制层 controller&#xff09;&#xff08;业务层service&#xff09;&#xff08;持久层dao&#xff09;&#xff08;数据库&#xff09; 快速创建springboot-mybatis工程 jdk选11 &am…

ubuntu下使用gcc编译c程序: “error: stray ‘\357’ in program“

现象&#xff1a; ubuntu下使用gcc编译c程序: “error: stray ‘\357’ in program“ 尝试查找原因&#xff1a;打开从windos直接粘贴c程序到ubuntu的c代码&#xff0c;发现多了 <200b>&#xff1a; 方案&#xff1a;尝试在vim编辑器删除&#xff0c;多出来的字符后编译…

ARM 按键控制 LED灯,蜂鸣器,风扇

main.c: #include "uart.h" #include "key_it.h" int main() {all_led_init();uart4_init();//串口初始化//中断初始化key_it_config();key3_it_config();buzzer_init();fan_init();while(1){//保证主程序不结束}return 0; }src/key_it.c: #include"…

小程序中使用echarts的相关配置以及折线图案例(简单易懂)

第一步&#xff1a;引入echarts文件--此文件需要下载&#xff1a; 下载地址&#xff1a;点击此处进行下载echarts文件 点击Download ZIP下载压缩包&#xff0c;注意&#xff1a;e-canvas是我从完整的文件中剥离出来的有用的&#xff0c;不会影响项目。 第二步&#xff1a;把整…

ctfshow萌新计划web9-14(正则匹配绕过)

目录 web9 web10 web11 web12 web13 web14 web9 审一下代码&#xff0c;需要匹配到system|exec|highlight才会执行eval函数 先看一下当前目录下有什么 payload&#xff1a;?csystem(ls); index.php是首页&#xff0c;我们看看config.php payload&#xff1a;?csystem…

nodejs+vue+elementui医院挂号预约管理系统4n9w0

前端技术&#xff1a;nodejsvueelementui 前端&#xff1a;HTML5,CSS3、JavaScript、VUE 1、 node_modules文件夹(有npn install Express 框架于Node运行环境的Web框架, 开发语言 node.js 框架&#xff1a;Express 前端:Vue.js 数据库&#xff1a;mysql 数据库工具&#xff…

邮政编码,格式校验:@ZipCode(自定义注解)

目标 自定义一个用于校验邮政编码格式的注解ZipCode&#xff0c;能够和现有的 Validation 兼容&#xff0c;使用方式和其他校验注解保持一致&#xff08;使用 Valid 注解接口参数&#xff09;。 校验逻辑 有效格式 不能包含空格&#xff1b;应为6位数字&#xff1b; 不校验…

AI「鸟口普查」,康奈尔大学利用深度学习分析北美林莺分布

据世界自然基金会统计&#xff0c;1970-2016 年&#xff0c;全球代表物种种群数量减少了 68%&#xff0c;生物多样性不断下降。 保护生物多样性&#xff0c;需要对当地生态情况进行准确分析&#xff0c;制定合理的生态保护政策。然而&#xff0c;生态数据太过庞杂&#xff0c;统…

小程序中如何设置所服务地区的时区

在全球化的背景下&#xff0c;小程序除了在中国使用外&#xff0c;还为海外的华人地区提供服务。例如我们采云小程序为泰国、阿根廷、缅甸等国家的商家就提供过微信小程序。这些商家开通小程序&#xff0c;为本地的华人提供服务。但通常小程序的开发者/服务商位于中国&#xff…

TCP/IP(十四)流量控制

一 流量控制 说明&#xff1a; 本文只是原理铺垫,没有用tcpdumpwiresahrk鲜活的案例讲解,后续补充 ① 基本概念 流量控制: TCP 通过接受方实际能接收的数据量来控制发送方的窗口大小 ② 正常传输过程 背景:1、客户端是接收方,服务端是发送方 --> 下载2、假设接收窗…

OpenCV4(C++)——模板匹配

matchTemplate 模板匹配和卷积运算大致相同&#xff0c;模板图类似于卷积核&#xff0c;从原图的左上角开始进行滑动窗口的操作&#xff0c;最后得到一个特征图&#xff0c;这个特征图里的数值就是每次计算得到的相似度&#xff0c;通用匹配方式&#xff0c;相似值是&#xff…

浅谈高速公路服务区分布式光伏并网发电

前言 今年的国家经济工作会议提出&#xff1a;将“做好碳达峰、碳中和工作”作为 2021年的主要任务之一&#xff0c;而我国高速公路里程 15.5万公里&#xff0c;对能源的需求与日俱增&#xff0c;碳排放量增速明显。 为了实现采用减少碳排放量&#xff0c;采用清洁能源替代的…