linux tc模擬弱網延遲和丟包
阿新 • • 發佈:2022-05-09
模擬延遲傳輸簡介
netem 與 tc: netem 是 Linux 2.6 及以上核心版本提供的一個網路模擬功能模組。該功能模組可以用來在效能良好的區域網中,模擬出複雜的網際網路傳輸效能,諸如低頻寬、傳輸延遲、丟包等等情況。使用 Linux 2.6 (或以上) 版本核心的很多發行版 Linux 都開啟了該核心功能,比如 Fedora、Ubuntu、Redhat、OpenSuse、CentOS、Debian 等等。 tc 是Linux 系統中的一個工具,全名為 traffic control(流量控制)。tc 可以用來控制 netem 的工作模式,也就是說,如果想使用 netem ,需要至少兩個條件,一個是核心中的 netem 功能被包含,另一個是要有 tc
如何檢視Linux網絡卡:ifconfig可檢視,這裡假設Linux網絡卡名字為eth0
- 埠延時命令
- tc qdisc add dev eth0 root netem delay 100ms : 表示對埠廷時100ms
- tc qdisc del dev eth0 root netem delay 100ms : 表示對埠廷時命令刪除
- tc qdisc add dev eth0 root netem delay 100ms 10ms :表示對改變埠廷時命100ms ± 10ms 延時範圍(90到110)
- tc qdisc add dev eth0 root netem delay 100ms 10ms 25% : 表示廷時範圍100ms ,同時有25%以± 10ms波動延遲
- 埠丟包命令:
- tc qdisc add dev eth0 root netem loss 0.1% : 丟包率為0.1%
- tc qdisc add dev eth0 root netem loss 0.3% 25% : 丟包率為範圍(0.3%- 25%)
- 資料包重包命令
- tc qdisc add dev eth0 root netem duplicate 1% : 隨機產生 1% 的重複資料包
- 資料包分發命令
- tc qdisc add dev eth0 root netem gap 5 delay 10ms : 資料包重發每格5的整數倍的包將不被延時。其它的將延時10ms
- 速率控制命令:兩條命令共同完成
- tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
- tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
- 檢視規則資訊
- tc -s qdisc ls dev eth0
- tc qdisc show
- 刪除規則
tc qdisc del dev eth0 root