对于弱网的定义,不同的应用对弱网的定义是有一定的差别的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分。按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网。除此之外,弱信号的Wifi通常也会被纳入到弱网测试场景中。随着国内移动端迅猛发展,大大增加用户碎片化使用移动端的概率,用户可能会在地铁上,高铁上,巴士上,甚至是电梯,电梯间,楼梯间,隧道,车库,大型活动现场等空间使用互联网应用。
Q1:当请求从客户端发出,最后服务器响应请求并返回,看似简单的流程,中间经过了些什么呢,又是有哪些流程会受到弱网情况的影响呢?
首先,简要介绍一下传输层协议,TCP/IP协议族是一个四层协议系统。
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)来消除抖动。接收端通过增加抖动延时来吸收不均匀的延时,达到均匀播放的目的。
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文件(可直接导入)