利用traffic control模拟网络延迟和丢包
1. 模拟延迟和丢包语句介绍
# 设置延迟语句:
从 eno1、enp7s0f0 网口出去的包将延迟20ms
tc qdisc add dev eno1 root netem delay 20ms
tc qdisc add dev enp7s0f0 root netem delay 20ms
# 设置丢包语句:
从 eno1、enp7s0f0 网口出去的包将随机丢失 10%
tc qdisc add dev eno1 root netem loss 10%
tc qdisc add dev enp7s0f0 root netem loss 10%
# 删除延迟语句:
tc qdisc del dev eno1 root netem delay 20ms
tc qdisc del dev enp7s0f0 root netem delay 20ms
# 删除丢包语句:
tc qdisc del dev eno1 root netem loss 10%
tc qdisc del dev enp7s0f0 root netem loss 10%
# 查看模拟状态
tc qdisc show dev eno1
tc qdisc show dev enp7s0f0
# 确认需要设置的网口
可使用ifconfig 确定需要延迟的网口
eno1为万兆网口
enp7s0f0为千兆网口
根据具体网络需求设置网口丢包及延时
# 判断丢包设置成功
ping +网址
ping 10.10.**.**
ping 192.168.**.**
在非10.10.**.**网址上ping 10.10.**.**查看是否丢包及loss
2. netem、qdisc、tc简介
netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽、传输延迟、丢包等等情况。使用 Linux 2.6 (或以上) 版本内核的很多发行版 Linux 都开启了该内核功能,比如Fedora、Ubuntu、Redhat、OpenSuse、CentOS、Debian等等。
tc是Linux系统中的一个工具,全名为traffic control(流量控制)。tc可以用来控制 netem的工作模式,也就是说,如果想使用netem,需要至少两个条件,一个是内核中的 netem(流量控制工具)功能被包含,另一个是要有tc。
需要注意的是:本文介绍的流控只能控制发包动作,不能控制收包动作,同时,它直接对物理接口生效,如果控制了物理的eno1,那么逻辑网卡(比如eno1:1)也会受到影响,反之,如果您在逻辑网卡上做控制,该控制可能是无效的。(注:虚拟机中的多个网卡可以在虚拟机中视为多个物理网卡)。
TC用于Linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制。接收包从输入接口(Input Interface)进来后,经过流量限制(Ingress Policing)丢弃不符合规定的数据包,由输入多路分配器(Input De-Multiplexing)进行判断选择:如果接收包的目的是本主机,那么将该包送给上层处理;否则需要进行转发,将接收包交到转发块(Forwarding Block)处理。转发块同时也接收本主机上层(TCP、UDP等)产生的包。转发块通过查看路由表,决定所处理包的下一跳。然后,对包进行排列以便将它们传送到输出接口(Output Interface)。一般我们只能限制网卡发送的数据包,不能限制网卡接收的数据包,所以我们可以通过改变发送次序来控制传输速率。Linux流量控制主要是在输出接口排列时进行处理和实现的。
qdisc(排队规则)是queueing discipline的简写,它是理解流量控制(traffic control)的基础。无论何时,内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的qdisc(排队规则)把数据包加入队列。然后,内核会尽可能多地从qdisc里面取出数据包,把它们交给网络适配器驱动模块。最简单的qdisc是pfifo它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。不过,它会保存网络接口一时无法处理的数据包。
利用traffic control模拟网络延迟和丢包相关推荐
- 【测试】linux tc命令|Linux模拟网络延迟、丢包等|traffic control(流量控制)
目录 一.工具介绍 1.netem 2.tc 二.命令使用说明 1.模拟延迟传输 2.模拟网络丢包: 3.模拟包重复: 4.模拟数据包损坏: 5.模拟数据包乱序: 6.删除模拟配置: 更多高级用法 一 ...
- Linux Command tc 模拟网络延迟和丢包
Linux Command tc 模拟网络延迟和丢包 文章目录 Linux Command tc 模拟网络延迟和丢包 1. 介绍 2. 规则 2.1 流量控制方式 2.2 流量控制处理对象 3. 操作 ...
- 弱网测试:使用netem模拟网络延迟、丢包、损坏、重复、和乱序等网络问题
本文目录 1.延时---Delay 1.1.enp2s0 网卡上增加100ms延时 1.2.enp2s0 网卡上增加100ms ± 20ms的延时(80ms到120ms) 1.3.enp2s0 网卡上 ...
- linux 下使用 tc 模拟网络延迟和丢包
1 模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带 ...
- Linux下使用 tc 模拟网络延迟和丢包
1.模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带 ...
- Linux使用tc模拟网络延迟和丢包
1 模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带 ...
- 使用 tc 模拟网络延迟和丢包
1.模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带 ...
- linux下使用tc工具模拟网络延迟和丢包
模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽. ...
- netsh命令恢复网络_Linux TC模拟网络延迟、丢包、乱序
一.TC简介 netem与tc: netem是Linux 2.6及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽.传输延迟.丢包 ...
最新文章
- 网络工程师课程---4、网络层(网关是什么)
- 多模态人物识别技术及其在爱奇艺视频场景中的应用 | 公开课笔记
- Java反射原理剖析一
- ubutu14.04无法使用sudo,也无法切换到root用户去解决问题怎么办?
- ADO.NET Entity Framework -Code Fisrt (二)
- Android插件化开发之动态加载的类型
- 转: databasemetadata 无法获取数据库表备注的解决方法
- 单机版简易考试系统开发过程讲解(C#注册机、用户注册、考试系统、×××全部源码)...
- 如何在您的笔记本上搭建View 演示环境 -7.无线配置与连接
- JavaScript MVC 框架比较
- word多级编号,如何让第一级为大写“一”,其他级别均为小写1.
- 用java写 java1,1,2,4,7,13,24,44算法
- (转)趋势因子:利用投资期内所有信息的获利方法
- vmware虚拟机连接网络
- 智能称重系统,车牌识别的优势
- 程序员的可迁移技能和经验
- 微信小程序--map组件视图无法更新的问题
- 116.【SpringBoot和Vue结合-图书馆管理系统】
- 苏州蜗牛面试感想 ------- 知其然而不知其所以然
- Pascal triangle 帕斯卡三角形 杨辉三角形 二项式定理
热门文章
- 关于MySql 5.6 'localhost' (10061)问题
- 使用Unity开发RPG游戏完整指南
- 值得收藏的 104个 CSS 面试题
- 【Java定时任务】浅谈CronTrigger的用法和在线Cron表达式生成网址
- discuz常用代码
- 梯形法 微积分 c语言,关于 用辛普森法和梯形法求微积分的 程序!
- Android常用设计模式之Builder模式理解
- 关于 vue 数据请求 本地跨域 和 线上请求的 ip地址 切换 问题
- 前端 圆形进度图_使用CSS3实现圆形进度条
- [电磁场AnsysMaxell仿真] 从一些简单的操作开始