在 Linux 的應用中測試中的延時和丟包模擬

這是 RHCA 中的一個 BDP 的測試,這也是公司很常用的一種延時和丟包的模擬,現在分享給大家.

我們做的應用軟件,還有測試 TCP/UDP  對比,測試 BDP 對 TCP/IP 的影響時,我們都需要一些網絡中的延時和丟包模擬,很多商業的軟件可以做這個事,其實完美的 Linux 本身就可以使用 TC 來實現這個功能. TC 中的 Netem 可以模擬時延,丟包,重複包,亂序等功能

建議大家如果測試的話,使用 tc 當中間的路由器,來接二個網卡,然後打開路由功能來測試.

tc 的最最基本的使用

1
2
3
4
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 :

1
tc qdisc add dev eth0 root netem delay 3000ms

可以在 3000ms 後面在加上一個延時,比如 ’3000ms 200ms‘表示 3000ms ± 200ms ,延時範圍 2800 – 3200 之間.
結果顯示如下



Linux 中丟包模擬

設置丟包 50% ,iptables 也可以模擬這個,但一下不記的命令了,下次放上來:

1
tc qdisc change dev eth0 root netem loss 50%

上面的設丟包,如果給後面的 50% 的丟包比率修改成 ’50% 80%’ 時,這時和上面的延時不一樣,這是指丟包比率爲 50-80% 之間.
顯示如下



轉自:http://www.php-oa.com/2010/12/31/linux-tc-delay-less.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章