丢包(Packet loss)是指一个或多个数据数据包(packet)的数据无法透过网上到达目的地的情况,无论是Windows还是Linux系统中都会出现丢包的情况。netem是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网在Linux系统中性能,诸如低带宽、传输延迟、丢包等等情况。除此之外,我们在Linux模拟丢包的过程中还需要用到Linu模拟丢包工具tc,全名为traffic control(流量控制)。

tc可以用来控制netem的工作模式,也就是说,如果想使用netem,需要至少两个条件,一个是内核中的netem功能被包含,另一个是要有tc工具。本文介绍的流控只能控制发包动作,不能控制收包动作,同时,它直接对物理接口生效,如果控制了物理的eth0,那么逻辑网卡(比如eth0:1)也会受到影响,反之,如果你在逻辑网卡上做控制,该控制可能是无效的。(注:虚拟机中的多个网卡可以在虚拟机中视为多个物理网卡)

下面我们来看linux 模拟丢包的相关命令:

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 发送。

2、模拟网络丢包:

tc qdisc add dev eth0 root netem loss 1%

该命令将 eth0 网卡的传输设置为随机丢掉 1% 的数据包。

也可以设置丢包的成功率:

tc qdisc add dev eth0 root netem loss 1% 30%

该命令将 eth0 网卡的传输设置为随机丢掉 1% 的数据包,成功率为 30% 。

3、模拟包重复:

tc qdisc add dev eth0 root netem duplicate 1%

该命令将 eth0 网卡的传输设置为随机产生 1% 的重复数据包 。

4、模拟数据包损坏:

tc qdisc add dev eth0 root netem corrupt 0.2%

该命令将 eth0 网卡的传输设置为随机产生 0.2% 的损坏的数据包 。 (内核版本需在2.6.16以上)

5、模拟数据包乱序:

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

6.删除规则:

好了,模拟完丢包和延迟之后,要记得删除掉规则

sudo tc qdisc del dev eth0 root

以上就是对Linux模拟丢包工具以及Linux模拟丢包的相关命令的介绍,Linux模拟丢包可以观察到在特定的网络环境下一些软件的和系统的丢包率,对此进行一些优化。在本站的Linux教程中还有大量的Linux知识等你来学。

模拟网络丢包的linux,简述Linux模拟丢包相关推荐

  1. 网络通信中TCP出现的黏包以及解决方法 socket 模拟黏包

    粘包问题概述 1.1  描述背景 采用TCP协议进行网络数据传送的软件设计中,普遍存在粘包问题.这主要是由于现代操作系统的网络传输机制所产生的.我们知道,网络通信采用的套接字(socket)技术,其实 ...

  2. 性能测试 Linux 环境下模拟延时和丢包实现

    在性能测试过程中,我们还需要模拟网络异常的情况下,是否会出现一些异常数据.最常见的就是写库操作,比如说我们下单的场景,如果出现网络异常的时候是否会出现数据对不上这种情况. 如我们JMeter发送成功的 ...

  3. linux 丢包排查思路简述(tcp+rdma)

    linux 丢包排查思路简述 概述 网络包接收流程 网络包发送流程 丢包排查的思路 tcp排查方法 rdma排查方法 网络工具汇总 参考链接 概述 我们首先以tcp网络为例,谈谈linux系统如何收发 ...

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

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

  5. linux 检测网络丢包率,网络问题解决思路,Linux 知识点,测试丢包率,抓包及分析...

    近期接触的项目涉及到语音传输,经常遇到信令传输的异常,或通话网络不稳定,需要抓包分析原因,故接触到这一块知识. ping 简单的连通测试 ping 45.32.79.140 -c1000 -s1024 ...

  6. 抓包分析,一条Linux命令实现路由器自动登录深大校园网认证(Drcom Pt版)

    先说结论,通过抓包分析简化最后可以得出,其登录过程只是一个简单的向服务器发送HTTP GET请求或HTTP POST请求.只要在路由器启动之后自动发送一段 HTTP 请求,即可实现自动登录. 对于 G ...

  7. python socket通信 recv 丢包_用clumsy模拟丢包测试socket库的失败重传

    用python的socket库写了通信小程序,现在我需要通过软件模拟出在网络极差的情况下,socket底层解决丢包问题的能力怎么样,我一开始想的是分别在linux和windowns下分别测试,后来一想 ...

  8. Linux内核中网络数据包的接收-第一部分 概念和框架

    与网络数据包的发送不同,网络收包是异步的的.由于你不确定谁会在什么时候突然发一个网络包给你.因此这个网络收包逻辑事实上包括两件事: 1.数据包到来后的通知 2.收到通知并从数据包中获取数据这两件事发生 ...

  9. linux内核网络协议栈--数据包的网卡缓冲区(二十四)

    程序员可能关心的基本网卡知识 网卡相关介绍:http://www.linuxidc.com/Linux/2012-12/77132.htm 一.什么是网卡? 它是主机的网络设备,本身是LAN(局域网) ...

  10. 网络包排错指南-类linux 平台

    网络包排错指南-类linux 平台 背景信息 最近一直在测试k8s,如果你了解或者解接触过docker,那你一定知道docker 相关的网络很大部分在桥接.路由.Iptables 上做文章.如果你凑巧 ...

最新文章

  1. Day 13: Dropwizard —— 非常棒的Java REST服务器栈
  2. MONGODB 集群 配置及 客户端PHP 连接
  3. input点击事件不能用_用js简单写一个计算器
  4. RMQ问题-ST表倍增处理静态区间最值
  5. 【Python CheckiO 题解】Text Editor
  6. idea端口占用解决记录
  7. java 执行存储过程报语法错误_为什么我在批处理从Java上执行PostgreSQL上的存储过程时收到错误通知“结果不合理”?...
  8. [视频]中国军事专家论谷歌地球(Google Earth)
  9. flink离线mysql_Flink 流模式跑离线任务
  10. hantzsch酯_有机人名反应——Hantzsch吡啶合成
  11. java中使用switch case报错case expressions must be constant expressions
  12. ImageMagick中文使用手册——复合字体效果
  13. linux镜像文件太大不好下载_Rufus下载_Rufus官方下载[U盘工具]
  14. Qt开发经验小技巧196-200
  15. XDOJ 回文数 C语言
  16. med4way:中介效应和交互效应分析
  17. Dialog_xml制作——博客地址
  18. C++ 使用Poco库实现XML的读取和写入
  19. 3D软件中怎么绘制杯子?
  20. 【无标题】JAVA解压ZIP文件并解析Excel(easyExcel)

热门文章

  1. win10计算机管理员的权限才能删除,Win10文件夹删除不了需要管理员权限怎么办?Win10文件夹删除不了需要管理员权限的解决方法...
  2. 入门DP教程(超详细)
  3. 大学生网课答案查询公众号搭建教程
  4. 如何将WebRoot部署到tomcat中
  5. 实测 ubuntu 20.04 使用 lidar_imu_calib 功能包 进行 激光雷达与imu标定
  6. 安卓防止微信调整字体大小
  7. 英语语法——名词和名词性从句
  8. quartus II DDS实验
  9. 【CSS3盒子模型新样式】boder-box
  10. 阿里云域名搭建DNSLOG