linux 下使用 tc 模擬網絡延遲和丟包


帶寬或者流速單位:

Kbps KByte/sec 千字節/秒
Mbps MByte/sec 兆字節/秒
Kbit Kbits/sec  
Mbit Mbits/sec  

 

 

1模擬延遲傳輸

# tc  qdisc  add  dev  eth0  root  netem  delay  100ms

該命令將 eth0 網卡的傳輸設置為延遲100毫秒發送。 

更真實的情況下,延遲值不會這么精確,會有一定的波動,我們可以用下面的情況來模擬出帶有波動性的延遲值:

# tc  qdisc  add  dev  eth0  root  netem  delay  100ms  10ms

該命令將 eth0 網卡的傳輸設置為延遲 100ms ± 10ms (90 ~ 110 ms 之間的任意值)發送。 

還可以更進一步加強這種波動的隨機性:

# tc  qdisc  add  dev  eth0  root  netem  delay  100ms  10ms  30%

該命令將 eth0 網卡的傳輸設置為 100ms ,同時,大約有 30% 的包會延遲 ± 10ms 發送。

 

2、模擬網絡丟包

# tc  qdisc  add  dev  eth0  root  netem  loss  1%

該命令將 eth0 網卡的傳輸設置為隨機丟掉 1% 的數據包。

也可以設置丟包的成功率:

# tc  qdisc  add  dev  eth0  root  netem  loss  1%  30%

該命令將 eth0 網卡的傳輸設置為隨機丟掉 1% 的數據包,成功率為 30% 。

 

3、模擬包重復

# tc  qdisc  add  dev  eth0  root  netem  duplicate 1%

該命令將 eth0 網卡的傳輸設置為隨機產生 1% 的重復數據包 。 

 

4、模擬包損壞

# tc  qdisc  add  dev  eth0  root  netem  corrupt  0.2% 

該命令將 eth0 網卡的傳輸設置為隨機產生 0.2% 的損壞的數據包 。 (內核版本需在2.6.16以上)

 

5、模擬包亂序

# tc  qdisc  change  dev  eth0  root  netem  delay  10ms   reorder  25%  50%

該命令將 eth0 網卡的傳輸設置為:有 25% 的數據包(50%相關)會被立即發送,其他的延遲 10 秒。  

新版本中,如下命令也會在一定程度上打亂發包的次序:

# tc  qdisc  add  dev  eth0  root  netem  delay  100ms  10ms

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM