大家好,欢迎来到IT知识分享网。
背景
如何判断当前网络环境属于弱网一直是客户端开发中的难题,如果能够判断出当前弱网环境,并针对性地进行网络优化,无疑能给线上用户带来良好的体验。这篇文章就弱网的定义、基于 Cronet NQE 的弱网测试两方面内容进行了一次的简单的探索。
什么是弱网
弱网并没有明确的定义,所以这需要我们根据实际场景来建立一套标准。一般来说有两个角度,即大指标:
- 丢包率
- 网络延时
上述两个都好理解,网络太复杂,造成丢包率高和网络延时高的原因有很多,比如:
网络拥塞状况下, 服务器处理的策略是丢包,来缓解服务器压力(但是有的服务器策略就是不丢包,排队处理,这是两种完全不同的情况,客户端需要处理的方式完全相反,所以这个需要客户端和服务端来协商) - 信号弱
- 2g网 3g网传输的数据量较大,但是带宽小,就会导致大量数据丢失,表现形式就是网络延时
- 中间的网络节点挂了
- …
既然没有明确的定义,那我们只能通过各种工具和手段来判断当前是否为弱网环境了。对于丢包率和网络延时,都是可以使用数据来进行衡量的,下面来介绍更细化的指标。
指标说明
上图所示,httprtt,tcprtt,throughput,signal strength(这个后续参考一下)。
httprtt
httprtt(http Round-Trip Time)又名TTFB(Time to first byte),指从客户端请求的第一个字节开始发送到接收到http header的第一个字节的时间差。httprtt的时间如果过长,一方面是客户端本身接入网络质量的问题,另一方面是服务的延时比较大。
tcprtt
tcprtt(tcp Round-Trip Time)指客户端tcp信道第一个字节发送到接收第一个字节的时间差,即 connect end time – connect start time 的时间。因为HTTP协议底层是基于TCP的,所以在复用同一条tcp连接的前提下,httprtt的时间是包含tcprtt的时间的。大部分情况下httprtt已经可以说明问题的原因。
throughput
throughput,中文名字吞吐量,它是用来衡量单位时间内成功传送数据的数量,是可以比较客观的衡量网络质量的指标。吞吐量 =(获bits结束大小 – 获bits开始大小)/(获bits结束时间 – 获bits开始时间),这里有个细节需要注意,posix socket的read函数返回值是bytes,所以要乘以8得到bits。通常在httprtt比较小的情况下,网络依然很慢,这个时候就可以使用吞吐量来确定网络的质量。
网速
网速可以通过统计设备 1秒内的网卡流量计算得出,单位为 kbps。
网络类型
网络类型可以分为无网、2G、3G、4G、5G、WIFI、蓝牙等,2G网络直接算作是弱网。
弱网测试方案
指标确定
那么&#
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/130180.html