linux下使用TC模拟弱网络环境

linux下使用TC模拟弱网络环境

模拟延迟传输简介

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)也会受到影响,反之,如果您在逻辑网卡上做控制,该控制可能是无效的。(注:虚拟机中的多个网卡可以在虚拟机中视为多个物理网卡)。

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 发送。示例:现在 ping 一下 216 机器:
# 可以看出数据明显的波动性。
  • 模拟网络丢包:
tc qdisc add dev eth0 root netem loss 1%
# 该命令将 eth0 网卡的传输设置为随机丢掉 1% 的数据包。示例:在 216 上执行
tc qdisc add dev eth0 root netem loss 10%
# 显示 16 个包只有 13 个收到了。也可以设置丢包的成功率:
tc qdisc add dev eth0 root netem loss 1% 30%
# 该命令将 eth0 网卡的传输设置为随机丢掉 1% 的数据包,成功率为 30% 。
  • 删除网卡上面的相关配置:将之前命令中的 add 改为 del 即可删除配置:
tc qdisc del dev eth0 root netem #自己加的配置
# 该命令将 删除 eth0 网卡的相关传输配置
  • 模拟包重复:
tc qdisc add dev eth0 root netem duplicate 1%
# 该命令将 eth0 网卡的传输设置为随机产生 1% 的重复数据包 。6 模拟数据包损坏:
tc qdisc add dev eth0 root netem corrupt 0.2%
# 该命令将 eth0 网卡的传输设置为随机产生 0.2% 的损坏的数据包。 (内核版本需在 2.6.16 以上)
  • 模拟数据包乱序:
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
  • 查看已经配置的网络条件:
tc qdisc show dev eth0
# 该命令将 查看并显示 eth0 网卡的相关传输配置9
eg:
tc qdisc add dev ens32 root netem delay 2000ms 100ms 20%
tc qdisc del dev ens32 root netem delay 2000ms 100ms 20%
tc qdisc del dev ens32 root

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448048.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CDN 是什么 、CDN 引入

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 CDN 的全称是 Content Delivery Network,即内容分发网络。 CDN的基本原理是广泛采用各种缓存服务器,将这些缓存…

长寿的人会有的8个健康理念

长寿的人会有的8个健康理念。年轻的时候总是在挥霍身体健康,吸烟、喝酒没有节制,到老了之后身体会出现各种问题。老年人如果想要身体健康、长寿的话,就要从日常生活习惯做起。下面小编就来介绍长寿的人会有的8个健康理念: 1、少…

Ubuntu下selenium+Chrome的安装使用

Ubuntu下seleniumChrome的安装使用 安装 chrome 官网下载安装包 sudo dpkg -i google-chrome-stable_current_amd64.deb whereis google-chrome 安装selenium pip3 install selenium 下载chromedriver(火狐使用geckodriver)驱动 http://npm.taobao.org/mirrors/chromed…

shoot for用法

Look, there are people like Ross who need to shoot for the stars, with his museum, and his papers getting published.---《老友记》 而像罗斯这种人则追求卓越,博物馆,发表论文。 争取;为...而努力Were shooting this year for a 50% increase in…

VUE : 双重 for 循环写法、table 解析任意 list 、万能表格组件、解析一维数组、动态生成 table 所有数据

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1.需求: 我想要一个 table 组件能在实际调用时动态生成所有的 tr 、td 。 后端返回的只是一个 list , 前端页…

安全离职妙招

高招的离职,不但有可能让前老板帮你说好话,让前同事成为你的啦啦队,未来若有好机会,还会想到你,只要你学会克服离职流程中的五个尴尬情境。 情境一、离职怎么提? 口头请辞,最先告知上司。 有…

字节内推~

大佬们有兴趣来字节约饭么,下面是内推链接~ 社招内推链接:https://job.toutiao.com/s/LwpKWU8 校招内推链接:https://job.toutiao.com/s/LwsFw6g

使用编辑工具快速创建实体对象的方法

快速创建java类 (\w)\s(.) /** $2 */\nprivate String $1; search Mode 为 Reqular expression 转载于:https://www.cnblogs.com/otways/p/11283303.html

超详细 图解 : IntelliJ IDEA 逆向生成 JAVA 实体类

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1.配置数据库,,这里连接的是mysql。 2.填写 连接数据库的信息,填写完成后可以点击Test Connection,测试一下是否…

用面粉和醋洗头 让你的头发黑亮又浓密

用面粉和醋洗头发,别看这些最廉价、最普通的东西,却能带来意想不到的效果。调配这种洗头液很简单,取50~100克面粉,加入少许凉水调成稀面糊,倒入沸水中煮开,然后加入25~50克醋&#x…

leetcode练习——数组篇(1)(std::ios::sync_with_stdio(false);std::cin.tie(nullptr);)

题号1. 两数之和: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: …

intellij idea 中去除 @Autowired 注入对象带来的红色下划线报错提示

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 PS: 有 2 种方法,第 2 种方法更简单,在此谢谢好心友人的评论。 方法1: idea中通过Autow…

根据目标选择减肥方法 少做无用功

不同的美体目标适合的减肥方法也是不同的,有些人想减去大部分体重,而有些人只是想让身体曲线更柔美,这就要求有相应的减肥方法,对症下药,才会让减肥少做无用功。 目标:我想穿上小一码的衣服 建议&#x…

Coolite动态加载CheckboxGroup,无法在后台中获取

Coolite在后台动态加载CheckboxGroup&#xff0c;页面显示都正常&#xff0c;但是在后台去获取选中的checkbox时&#xff0c;使用下方法&#xff1a; ///<summary>///获取所选权限 ///</summary>///<returns></returns>privatestringGetPermiss…

基于java的数据结构学习——动态数组C++类模板(含拷贝构造,重载常见运算符)

之前实现了java的动态数组&#xff0c;试着写了个C版的&#xff0c;同样对时间复杂度振荡进行了处理。纯手打&#xff0c;代码如下 &#xff1a; // // Created by PC-Saw on 2018/12/19. //#ifndef DATA_STRUCTURE_MYARRAY_H #define DATA_STRUCTURE_MYARRAY_H#include <i…

科目三考试过程详解

科目三是考驾照的最后一项考试&#xff0c;所以考生在这关都很注意&#xff0c;但是有可能是由于过于紧张都难免会有些失误&#xff0c;如果没过的话&#xff0c;那也就意味着您拿照的时间又延长了另外还要交补考费。因此很多学员都想一次性把这项考试通过&#xff0c;那么我们…

图解 IDEA 中 springboot 项目 MyBatis Generator 逆向生成实体类及 mapper 配置文件

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、准备工作&#xff1a; 1. 新建一个 配置文件&#xff1a;generatorConfig.xml 。 <?xml version"1.0" encoding&qu…

关于IIS 7.5 限制连接数与流量限制模块

网页中的视频是用户喜闻乐见的常见形式之一&#xff0c;并在主要的站点中中以某种形式&#xff08;产品视频、教程视频、理财场景、user generated content、消费报告等&#xff09;在更广泛的应用。 其中的一个挑战是把视频加入到站点&#xff0c;虽然这并不花费很多代价。高质…

2014版学车考驾照精华攻略 总有一个你需要!赶紧收藏吧!!

新交规&#xff0c;新驾考&#xff0c;拿下本本&#xff0c;着实不容易。2013的你&#xff0c;是否已经踏上学车征程&#xff0c;为了顺利拿到本本而苦于八方搜索&#xff0c;四处奔波&#xff0c;一心只为获得有所帮助的经验之谈、简单易懂的学车攻略呢&#xff1f;本着锄强扶…

mybatis 逆向工程生成的 Example 类的使用

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一.逆向工程 逆向工程可以针对单表自动生成 mybatis 执行所需要的代码&#xff08;mapper.java,mapper.xml、po&#xff09;, 根据数据…