這是 RHCA 中的一個 BDP 的測試,這也是公司很常用的一種延時和丟包的模擬,現在分享給大家。
我們做的應用軟件,還有測試 TCP/UDP 對比,測試 BDP 對 TCP/IP 的影響時,我們都需要一些網絡中的延時和丟包模擬,很多商業的軟件可以做這個事,其實完美的 Linux 本身就可以使用 TC 來實現這個功能. TC 中的 Netem 可以模擬時延,丟包,重複包,亂序等功能
建議大家如果測試的話,使用 tc 當中間的路由器,來接二個網卡,然後打開路由功能來測試。
tc 的最最基本的使用
- tc qdisc show # 顯示
- tc qdisc add dev eth0 root ...... # 加入
- tc qdisc change dev eth0 root ...... # 修改存在的 qdisc ,記的,加入同一條後只能用 change 來修改
- tc qdisc del dev eth0 root # 刪除
Linux 中延時模擬
設置延時 3s :
- tc qdisc add dev eth0 root netem delay 3000ms
可以在 3000ms 後面在加上一個延時,比如 ’3000ms 200ms‘表示 3000ms ± 200ms ,延時範圍 2800 - 3200 之間.
結果顯示如下
Linux 中丟包模擬
設置丟包 50% ,iptables 也可以模擬這個,但一下不記的命令了,下次放上來:
- tc qdisc change dev eth0 root netem loss 50%
上面的設丟包,如果給後面的 50% 的丟包比率修改成 ’50% 80%’ 時,這時和上面的延時不一樣,這是指丟包比率爲 50-80% 之間。
顯示如下