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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对萬仟网的支持。

linux 无线网卡 延时 丢包 模拟,Linux模拟网络丢包与延迟的方法相关推荐

  1. linux处理机调度实验报告,模拟Linux操作系统下处理机调度实验报告

    在采用多道系统的设计程序中,往往有若干进程同时处于就绪状态.当就绪状态进程数大于处理机数时,就必须按照某种策略来决定哪些进程优先占用处理机.本实验模拟在单处理机情况下处理机调度 处理机调度 一.实验目 ...

  2. 嵌入式linux 无线网卡,一种基于嵌入式Linux的无线网卡的制作方法

    本实用新型涉及无线网卡技术领域,具体为一种基于嵌入式Linux的无线网卡. 背景技术: 随着移动通信和便携通信的发展,无线局域网WLAN应用而生,日渐普及,嵌入式系统的无线局域网接入可以实现对嵌入式系 ...

  3. linux无线网卡蓝牙连接不上,Linux如何解决英特尔无线网卡WiFi网速慢、WiFi蓝牙无法共存等问题...

    使用本教程前,请先确认你机器里有英特尔无线网卡.该教程只适用于英特尔无线网卡.其他无线网卡修改iwlwifi.conf没有任何效果! 无线网卡的型号可以在"设备管理器"应用中查看, ...

  4. 在 Linux 的应用中测试中的延时和丢包模拟

    这是 RHCA 中的一个 BDP 的测试,这也是公司很常用的一种延时和丢包的模拟,现在分享给大家. 我们做的应用软件,还有测试 TCP/UDP  对比,测试 BDP 对 TCP/IP 的影响时,我们都 ...

  5. linux 内网网络波动检测,Linux内网测试环境模拟网络丢包和延时

    本文源自同事分享,在此基础之上做简要修改而成. Linux下有2traffic control(简写TC)和netem这2个工具.Netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功 ...

  6. linux内核丢包分析工具,Linux模拟网络丢包与延迟的方法

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

  7. linux网络丢包测试工具,用NETEM模拟网络丢包 (转)

    [linux] tc netem 模拟网络丢包linux下的tc可以操纵网络,比如分配带宽给不同的应用.模拟网络时延.模拟糟糕网络环境下的丢包等. 但在实际使用模拟丢包时,我们 发现了问题:两台服务器 ...

  8. php丢包率测试,linux 网络延时、丢包与传输带宽关系测试

    一.目的 在互联网中,我们会向网络运营商申请指定额度的带宽.实际传输时,由于网络QoS达不到要求,实际的传输带宽可能达不到标称值.本次测试在局域网环境中使用模拟工具模拟不同QoS下的网络条件,得出不同 ...

  9. TC工具 模拟Linux网卡限速、丢包

    一.关于在性能压测中,限制带宽 1.限制操作参数:限制带宽10M,延迟50ms 缓存区10kb tc qdisc add dev eth0 root tbf rate 10mbit latency 5 ...

最新文章

  1. 用Redis实现微博关注关系
  2. Nginx配置实例-反向代理实现浏览器请求Nginx跳转到服务器某页面
  3. xml文档的「?xml version=“1.0“ encoding=“UTF-8“?」 的作用?
  4. 【TypeScript系列教程07】变量声明
  5. 299 Bulls and Cows 猜数字游戏
  6. gcc及doxygen的安装过程
  7. mysql 5.6.19 linux_MySQL 5.6.19升级到 5.7.9 步骤记录
  8. 计算机的社会应用PPT,《电子计算机的发展与应用》ppt说课稿信息技术七上.ppt...
  9. 需要友元的原因及使用
  10. 藏在兰州拉面里精益管理秘诀
  11. ORACLE 自增序列
  12. string.Format字符串格式说明
  13. php-win.exe 是什么,windows桌面指的是什么
  14. icp经营许可证怎么办?
  15. word2016 上次启动时失败以安全模式能够解决该问题【office专业版】
  16. 通过SSH访问电信天翼云服务器,报ssh_exchange_identification: read: Connection reset by peer的解决方法
  17. offsetParent与parentElement ,parentNode,parentElement,childNodes和children
  18. php求价格最低,php-将Woo-commerce变体销售价格调至低于实际价格
  19. HTML页面静态化技术
  20. XGBoost(极端梯度提升)算法原理小结

热门文章

  1. Rocket - tilelink - FIFOFixer
  2. 《Java编程的逻辑》第三部分 泛型与容器
  3. P4550 收集邮票-洛谷luogu
  4. [USACO2009 OPEN] 滑雪课 Ski Lessons
  5. IDEA修改module的名字
  6. 【腾讯Bugly干货分享】Android Linker 与 SO 加壳技术
  7. 【产品分析】Microsoft MyPhone试用手记
  8. MySQL视图、事务与存储过程
  9. JRE与JDK,SDK的区别
  10. 关于C/C++的trigraphs和Digraphs