tc 是linux 內置的命令;使用man pages 查看 我們看到,其功能為 show / manipulate traffic control settings,可對操作系統進行流量控制; netem 與 tc: netem 是 Linux 2.6 及以上內核版本提供的一個網路模擬功能模塊。該 ...
tc 是linux 內置的命令;使用man pages 查看 我們看到,其功能為 show / manipulate traffic control settings,可對操作系統進行流量控制;
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 。
需要註意的是:本文介紹的流控只能控制發包動作,不能控制收包動作,同時,它直接對物理介面生效,如果控制了物理的 eth0,那麼邏輯網卡(比如 eth0:1)也會受到影響,反之,如果您在邏輯網卡上做控制,該控制可能是無效的。(註:虛擬機中的多個網卡可以在虛擬機中視為多個物理網卡)。
DESCRIPTION NetEm is an enhancement of the Linux traffic control facilities that allow to add delay, packet loss, duplication and more other characteristics to packets outgoing from a selected network interface. NetEm is built using the existing Quality Of Service (QOS) and Differentiated Services (diffserv) facilities in the Linux kernel.
Linux下用tc控制網路延時和丟包率:
tc修改網路延時:
sudo tc qdisc add dev eth0 root netem delay 1000ms
刪除策略:
sudo tc qdisc del dev eth0 root netem delay 1000ms
修改丟包率:
sudo tc qdisc add dev eth0 root netem loss 10%
刪除策略:
sudo tc qdisc del dev eth0 root netem loss 10%
配置確認:
sudo tc qdisc show dev enp2s0
配置刪除:
sudo tc qdisc del dev enp2s0 root
NetEm (already enabled in the Linux kernel) provides Network Emulation functionality for testing protocols by emulating the properties of wide area networks. To simulate an additional latency of 80 ms, just type sudo tc qdisc add dev eth0 root netem delay 80ms It just adds a fixed amount of delay to all packets going out of the local Ethernet. To stop the additional latency, just type sudo tc qdisc change dev eth0 root netem delay 0ms Lines to add to the file /etc/rc.local before exit 0, to add 40ms of latency : # Add +40ms latency tc qdisc add dev eth0 root netem delay 40ms Note: If your network interface is not eth0, replace eth0 with the name of your network interfaceNetEm相關
在調研 iperf 的時候,偶然看到。對項目很有幫助。
原文鏈接:https://iperf.fr/iperf-servers.php#netem
擴展閱讀:https://www.cnblogs.com/Dev0ps/p/8985778.html
https://blog.csdn.net/huuinn/article/details/80970079
https://wiki.linuxfoundation.org/networking/netem
https://wiki.linuxfoundation.org/networking/netem#emulating_wide_area_network_delays (更多萬維網模擬相關)
tc 高級用法:
延遲有波動併成正態分佈趨勢:
tc qdisc add dev eth0 root netem delay 100ms 20ms distribution normal