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

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

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

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

tc 的最最基本的使用  

 

  1. tc qdisc show    # 顯示  
  2. tc qdisc  add dev eth0 root ...... # 加入  
  3. tc qdisc  change  dev eth0 root ...... # 修改存在的 qdisc ,記的,加入同一條後只能用 change 來修改  
  4. 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% 之間。
顯示如下

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