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模拟网络延迟和丢包相关推荐

  1. 【测试】linux tc命令|Linux模拟网络延迟、丢包等|traffic control(流量控制)

    目录 一.工具介绍 1.netem 2.tc 二.命令使用说明 1.模拟延迟传输 2.模拟网络丢包: 3.模拟包重复: 4.模拟数据包损坏: 5.模拟数据包乱序: 6.删除模拟配置: 更多高级用法 一 ...

  2. Linux Command tc 模拟网络延迟和丢包

    Linux Command tc 模拟网络延迟和丢包 文章目录 Linux Command tc 模拟网络延迟和丢包 1. 介绍 2. 规则 2.1 流量控制方式 2.2 流量控制处理对象 3. 操作 ...

  3. 弱网测试:使用netem模拟网络延迟、丢包、损坏、重复、和乱序等网络问题

    本文目录 1.延时---Delay 1.1.enp2s0 网卡上增加100ms延时 1.2.enp2s0 网卡上增加100ms ± 20ms的延时(80ms到120ms) 1.3.enp2s0 网卡上 ...

  4. linux 下使用 tc 模拟网络延迟和丢包

    1 模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带 ...

  5. Linux下使用 tc 模拟网络延迟和丢包

    1.模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带 ...

  6. Linux使用tc模拟网络延迟和丢包

    1 模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带 ...

  7. 使用 tc 模拟网络延迟和丢包

    1.模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带 ...

  8. linux下使用tc工具模拟网络延迟和丢包

    模拟延迟传输简介 netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽. ...

  9. netsh命令恢复网络_Linux TC模拟网络延迟、丢包、乱序

    一.TC简介 netem与tc: netem是Linux 2.6及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽.传输延迟.丢包 ...

最新文章

  1. 网络工程师课程---4、网络层(网关是什么)
  2. 多模态人物识别技术及其在爱奇艺视频场景中的应用 | 公开课笔记
  3. Java反射原理剖析一
  4. ubutu14.04无法使用sudo,也无法切换到root用户去解决问题怎么办?
  5. ADO.NET Entity Framework -Code Fisrt (二)
  6. Android插件化开发之动态加载的类型
  7. 转: databasemetadata 无法获取数据库表备注的解决方法
  8. 单机版简易考试系统开发过程讲解(C#注册机、用户注册、考试系统、×××全部源码)...
  9. 如何在您的笔记本上搭建View 演示环境 -7.无线配置与连接
  10. JavaScript MVC 框架比较
  11. word多级编号,如何让第一级为大写“一”,其他级别均为小写1.
  12. 用java写 java1,1,2,4,7,13,24,44算法
  13. (转)趋势因子:利用投资期内所有信息的获利方法
  14. vmware虚拟机连接网络
  15. 智能称重系统,车牌识别的优势
  16. 程序员的可迁移技能和经验
  17. 微信小程序--map组件视图无法更新的问题
  18. 116.【SpringBoot和Vue结合-图书馆管理系统】
  19. 苏州蜗牛面试感想 ------- 知其然而不知其所以然
  20. Pascal triangle 帕斯卡三角形 杨辉三角形 二项式定理

热门文章

  1. 关于MySql 5.6 'localhost' (10061)问题
  2. 使用Unity开发RPG游戏完整指南
  3. 值得收藏的 104个 CSS 面试题
  4. 【Java定时任务】浅谈CronTrigger的用法和在线Cron表达式生成网址
  5. discuz常用代码
  6. 梯形法 微积分 c语言,关于 用辛普森法和梯形法求微积分的 程序!
  7. Android常用设计模式之Builder模式理解
  8. 关于 vue 数据请求 本地跨域 和 线上请求的 ip地址 切换 问题
  9. 前端 圆形进度图_使用CSS3实现圆形进度条
  10. [电磁场AnsysMaxell仿真] 从一些简单的操作开始