评估网络质量因素
1.带宽(throughput):网络的吞吐率,端到端之间可以传输的最大速率,这个指标一般都会有所限制,带宽当然是越大越好,一般超过限制带宽的 50% 就会出现严重的丢包,这个可以通过 nc, wget, curl, iperf, scp 等工具测试。
2.延时(latency):数据包从源节点传输到目的节点需要的时间,如果使用 ping 来测试话,可以通过其 RTT 来反映其状况。RTT[(Round-Trip Time): 往返时延
3.丢包(loss):是指一个或多个数据包的数据无法通过网络传输到达目的节点。该值越大质量越差,可通过 ping, iperf 等工具实现。
4.抖动(jitter):指的是数据到达的顺序、间隔和出发时的差异;我们一般期望网络延迟能够稳定在某个区间上,如果网络延迟抖动比较大,也就说明网络质量存在一定问题。
常用的网络质量评估工具使用方法
1. ping
基本的网络延时、丢包可以通过 ping 实现,如果某个 IP 出现大量的丢包,可以肯定该 IP 提供的服务或者是中间线路出现了问题。网络丢包率是数据包丢失部分与所传数据包总数的比值。正常传输时网络丢包率应该控制在一定范围内。通常,千兆网卡在流量大于200Mbps时,丢包率小于万分之五;百兆网卡在流量大于60Mbps时,丢包率小于万分之一。
![1faa2cf974a10b1b89c726f7c1fefdfd.png](https://img-blog.csdnimg.cn/img_convert/1faa2cf974a10b1b89c726f7c1fefdfd.png)
2. fping
由于ping 发送的 ICMP 包的大小固定,并不能完全模拟真实的网络世界,这点可以通过 fping 实现。另外使用 ping 来测试会消耗大量的时间,而使用 fping 则不会出现此类情况,fping 给某个 IP 发送完 ICMP 之后会立即进入下一轮接着发送下一个包,有点类似异步的模式,因此这样的效率会比较高。
![2edf8671bf2a087355d96fc3e6f61d11.png](https://img-blog.csdnimg.cn/img_convert/2edf8671bf2a087355d96fc3e6f61d11.png)
$ fping -g 192.168.1.0/24
![4c014175bc1e991549da340206de7ca2.png](https://img-blog.csdnimg.cn/img_convert/4c014175bc1e991549da340206de7ca2.png)
$ fping -f iplist
![512df964ddbf2270feec25b657d44605.png](https://img-blog.csdnimg.cn/img_convert/512df964ddbf2270feec25b657d44605.png)
$ fping -a -g 192.168.1.102 192.168.1.106 -s
![d44de80d7329d1d33af92720a1e4c0c4.png](https://img-blog.csdnimg.cn/img_convert/d44de80d7329d1d33af92720a1e4c0c4.png)
$ fping -c 10 192.168.1.106 //每个目标ping 10次
比较重要的是 -b 参数,它可以用来改变 ICMP 包大小:
![23879e8d900c96aeb79e4a46c54cdfc9.png](https://img-blog.csdnimg.cn/img_convert/23879e8d900c96aeb79e4a46c54cdfc9.png)
$ fping -b 1000 -c 100 220.181.111.188 //-b 指定数据字节大小
3. wget, curl, scp
这几个命令都可以用来测试两端的带宽:
$ wget -O=/dev/null http://url/download.tgz
$ curl -o /dev/null http://url/download.tgz
$ scp download.tgz root@parrot:
4. iperf
iperf 这个工具应该是属于全能型的,可以生成 TCP/UDP 流量来测试带宽、延时抖动以及丢包。其中抖动以及丢包可以通过 iperf UDP 实现而带宽可以通过 iperf TCP 实现。不加 -u 参数就是使用 TCP,-s 在 server 段执行:$ iperf -s //服务器端操作
![85bcbf76da009d307d23303a49c130a3.png](https://img-blog.csdnimg.cn/img_convert/85bcbf76da009d307d23303a49c130a3.png)
$ iperf -c serverip -d -i 1 -t 10 //客户端操作
![4820910dad0042c444091778bd7fd2a0.png](https://img-blog.csdnimg.cn/img_convert/4820910dad0042c444091778bd7fd2a0.png)
加上 -u 则使用 UDP 协议,这个在 VoIP 比较适用,该场景对于抖动延时特别敏感;
$ iperf -s -u //服务器端
![db7aaaf471f1b666a820de4101f8912d.png](https://img-blog.csdnimg.cn/img_convert/db7aaaf471f1b666a820de4101f8912d.png)