評估網絡質量因素
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 之後會立即進入下一輪接著發送下一個包,有點類似異步的模式,因此這樣的效率會比較高。
比較重要的是 -b 參數,它可以用來改變 ICMP 包大小:
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 //服務器端
閱讀更多 閃電小新 的文章