linux 下使用 tc 模拟网络延迟和丢包-使用 linux 模拟广域网延迟 - Emulating wide area network delays with Linux
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 % 删除策略:
sudo tc qdisc del dev eth0 root netem loss % 配置确认:
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 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 , 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 interface
NetEm相关
在调研 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
linux 下使用 tc 模拟网络延迟和丢包-使用 linux 模拟广域网延迟 - Emulating wide area network delays with Linux的更多相关文章
- linux 下使用 tc 模拟网络延迟和丢包(转)
1 模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带 ...
- linux 下使用 tc 模拟网络延迟和丢包
1 模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带 ...
- linux下使用tc(Traffic Control) 流量控制命令模拟网络延迟和丢包
目录 TC案例 TC常用命令 TC安装 TC原理介绍 TC规则 TC操作原理 TC命名规则 TC单位 TC命令 TC案例 如何使用tc模拟网络延迟和丢包 修改网络延时: sudo tc qdisc ...
- 收集TCP端口的访问延迟和丢包率
需求: 找一款工具可以对TCP 80端口 收集 访问延迟和丢包率 找到的工具: 1.Hping : http://www.hping.org/ 2.paping : https://docs.azu ...
- 【java】 linux下利用nohup后台运行jar文件包程序
Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 ...
- Linux下打包压缩war和解压war包
Linux下打包压缩war和解压war包 unzip是一种方法,如果不行则采用下面的方法 把当前目录下的所有文件打包成game.war jar -cvfM0 game.war ./ -c 创建wa ...
- Linux模拟网络延迟、丢包等
一.工具介绍 1.netem netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽.传输延迟.丢 ...
- [UE4]模拟网络延迟和丢包
进入游戏界面,按下键盘的“~”键,打开控制台界面,输入net会自动列出跟网络相关的命令 1.Net pktLag=,模拟延迟,单位是毫秒 2.Net PktLagVariance=300,在模拟延迟的 ...
- windows下模拟网络延时、丢包、抖动
1.Fiddler 免费软件 模拟网速功能比较单一(Rules --> Performance --> Simulate Modem speed),选项较少,Fiddler仅是减缓带宽并未 ...
随机推荐
- canves做的时钟目前已经开源
canves做的时钟目前已经开源 git地址: https://github.com/jidanji/canves-clock/tree/1.0.1 项目截图 时流过的时间变得有颜色,其他的没有颜色.
- 活久见: maven pom 竟然都会崩溃!
问题是: 我的应用的pom 并没有任何报错,但是代码报错,而且编译不通过. 如下,我本地项目,从 spring-cloud-alibaba-dependencies 0.2.1.RELEASE 升级到 ...
- Java继承之方法重写
目录 Java继承之方法重写 代码体现 概念 注意事项 "两同两小一大" 其他注意点 重写与重载 @Override注解 Java继承之方法重写 在Java继承中,子类可以获得父类 ...
- jQuery基础之获取和设置标签元素属性
jQuery基础之获取和设置标签元素属性方法,如下图: 代码实现: <script src="JS/jquery-1.12.4.min.js"></script& ...
- Lucene&Solr框架之第二篇
2.1.开发环境准备 2.1.1.数据库jar包 我们这里可以尝试着从数据库中采集数据,因此需要连接数据库,我们一直用MySQL,所以这里需要MySQL的jar包 2.1.2.MyBatis的jar包 ...
- 使用hexo、github Pages搭建博客
1. 安装node 如果本机已经有node,为避免安装出现问题,建议先升级到最新版.参考:https://juejin.im/post/5b9739d1e51d450e9f66ee3b 2. 安装he ...
- 设计模式之观察者模式C#实现
说明:主要参考<Head First设计模式(中文版)>,使用C#代码实现. 代码:Github 1.观察者模式UML图 2.气象监测类图 3.气象监测代码(书中C#版) 3.1 Obse ...
- GO基础之异常处理
一.异常 1. 错误指程序中出现不正常的情况,从而导致程序无法正常执行.•大多语言中使用try... catch... finally语句执行.假设我们正在尝试打开一个文件,文件系统中不存在这个文件. ...
- 5.Ansible Jinja2 模板
1.jinja2渲染NginxProxy配置文件 jinja2 房屋建筑设计固定的 jinja2模板与Ansible关系 Ansible如何使用jinja2模板 template模块 拷贝文件? te ...
- 如何在Mac上识别和删除损坏的字体
字体看起来像无害的文件,而且大多数时候都是这样.但是,就像任何计算机文件一样,字体可能会损坏或损坏.发生这种情况时,它们可能会导致文档或应用程序出现问题.在Mac上使用“ 字体簿”来验证已安装的字体, ...