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)也会受到影响,反之,如果您在逻辑网卡上做控制,该控制可能是无效的。(注:虚拟机中的多个网卡可以在虚拟机中视为多个物理网卡)。
Linux 有个 tc 工具,即 traffic control,可以用来模拟网络丢包和延迟。在开发后台 server 时,如果我们想要知道这个 server 在特定的网络丢包情况下,是否能表现良好,就可以用 tc 来模拟丢包率。
模拟丢包
下面命令可以模拟丢包,从 eth0 网口出去的包将随机丢失 10%:
sudo tc qdisc add dev eth0 root netem loss 10%
模拟延迟
下面命令,从 eth0 网口出去的包将延迟 40ms:
sudo tc qdisc add dev eth0 root netem delay 40ms
特定场景下的丢包和延迟
注意,上面我们介绍的命令,是针对整个 eth0 网口起作用的,也就是说,只要是从 eth0 出去的所有的包,都会产生随机丢包或者延迟。但有时候,我们只想让丢包和延迟作用于某个目的地址,那要怎么做呢?
sudo tc qdisc add dev eth0 root handle 1: prio sudo tc qdisc add dev eth0 parent 1:3 handle 30: netem loss 13% delay 40ms sudo tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 199.91.72.192 match ip dport 36000 0xffff flowid 1:3
上面的命令,我们告诉 tc,对发往 199.91.72.192:36000 的网络包产生 13% 的丢包和 40ms 的延迟,而发往其它目的地址的网络包将不受影响。
删除规则
好了,模拟完丢包和延迟之后,要记得删除掉规则:
sudo tc qdisc del dev eth0 root
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 华语群星《宝丽金超白金精选特辑Ⅰ 2CD》[WAV+CUE][980MB]
- 周传雄.1994-发觉【歌林】【WAV+CUE】
- 群星.2015-Celebration.45th.Anniversary环球志101系列6CD【环球】【WAV+CUE】
- 谭咏麟.1997-永恒的珍(新歌+精选)【宝丽金】【WAV+CUE】
- 原画壁纸及美图第262期,无水印可自取
- 原画壁纸及美图第263期,无水印可自取
- 原画壁纸及美图第264期,无水印可自取
- 绝区零感电鸣徽有哪些 绝区零感电鸣徽效果介绍
- 绝区零冻结鸣徽有哪些 绝区零冻结鸣徽效果介绍
- 绝区零丽娜角色精美壁纸分享 丽娜高清图片大全
- 《命运2:终焉之形》评测:在线人数几回峰值的史诗新篇
- 《艾尔登法环:黄金树幽影》评测:你所拥有的力量,正是你为王的理由
- 【游新视界】《幻兽帕鲁》帕桑!岛上滴樱花开了,不回来看看吗?
- 群星1996-《96滚石年度最卖座主打歌刷新全纪录·伤心咖啡馆之歌》台湾首版[WAV+CUE]
- 群星.1997-滚石年度最卖座专辑主打歌全纪录·乱世佳人2【滚石】【WAV+CUE】