网络性能指标概述
前言
前阵子面试时,对方提问道弱网性能指标的意味。虽然我个人内心理解各个指标的含义,但不知如何表达(太逊了)。自己学会,到向外输出确实是有一段距离在的。
这篇文章会使用比喻的方式,辅助自己具象的理解网络性能指标。
性能指标
假设现在,你(客户端)要送一封情书给你喜欢的女孩子(服务端),这封情书就是你需要传输的数据(数据包)。
带宽:
单位时间内,通过网络传输的最大数据率。
比喻的话,就是一小时内送情书的数量,送的情书越多,带宽越高
速率\时延:
这个好理解,简单地说就是数据从一端传输到另一端所需的时间。
这封情书,从你手上送到女孩子手上的速度越快,速率越高,时延越低。
同时,网络时延包括了处理时延、排队时延、发送时延、传播时延四个部分,同样用比喻的方式:
- 处理时延:指主机发送数据包时,把数据包完成发送出去所需的时间。可以理解为写情书所花费的时间。
- 排队时延:路由器或交换机等网络设备处理数据包排队所消耗的时间。就是送情书时,有别的男生也在送女孩子情书,就要等他送完情书,你再去送。
- 发送时延:路由器、交换机等网络设备发送数据所需要的时间,也就是路由器队列递交给网络链路所需要的时间。
- 传播时延:数据包在实际物理链路上传输所花费的时间。也就是手上拿着情书的你,跑到女孩子面前所需要的时间。
抖动:
理解了时延后,抖动也不难理解。
抖动是指最大延迟与最小延迟的差值,比方说访问同一个服务端,最小时延是10ms,最大时延是30ms,那么抖动即是30 – 10 = 20ms。
每天都给女孩子送情书,最快的纪录是3分钟,最慢是10分钟。那么抖动既是7分钟(
丢包:
一端传输至另一端,期间丢失了部分数据,即为丢包。
一次给女孩子送了100封情书,送的过程中丢了10封,那么丢包率就是10%。
弱网测试指标
以Clumsy举例,可以通过多种方式模拟弱网环境。
其中包括:
- 延迟(Lag):把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况;
- 丢包(Drop):随机丢弃一些数据;
- 截流(Throttle):把一小段时间内的数据拦截下来后再在之后的同一时间一起发出去;
- 重发(Duplicate):随机复制一些数据并与其本身一同发送;
- 乱序(Out of order):打乱数据包发送的顺序;
- 篡改(Tamper):随机修改小部分的包裹内容。