测试网络丢包率代码(评估网络质量因素及指标)
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时,丢包率小于万分之一。
2. fping
由于ping 发送的 ICMP 包的大小固定,并不能完全模拟真实的网络世界,这点可以通过 fping 实现。另外使用 ping 来测试会消耗大量的时间,而使用 fping 则不会出现此类情况,fping 给某个 IP 发送完 ICMP 之后会立即进入下一轮接着发送下一个包,有点类似异步的模式,因此这样的效率会比较高。
$ fping -g 192.168.1.0/24
$ fping -f iplist
$ fping -a -g 192.168.1.102 192.168.1.106 -s
$ fping -c 10 192.168.1.106 //每个目标ping 10次
比较重要的是 -b 参数,它可以用来改变 ICMP 包大小:
$ 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 //服务器端操作
$ iperf -c serverip -d -i 1 -t 10 //客户端操作
加上 -u 则使用 UDP 协议,这个在 VoIP 比较适用,该场景对于抖动延时特别敏感;
$ iperf -s -u //服务器端
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com