zoukankan      html  css  js  c++  java
  • Linux系统模拟网络测试

    需要注意的是:

    • 此方法只能控制发包动作,不能控制收包动作。
    • 命令直接对物理接口生效,如果控制了物理的eth0,那么逻辑网卡(比如eth0:1)也会受到影响;反之,如果您在逻辑网卡上做控制,该控制可能是无效的。(注:虚拟机中的多个网卡可以在虚拟机中视为多个物理网卡)

    工具使用

    首先获取机子的网卡信息,如eth0或者em0之类的。然后通过执行命令来监控和改变网卡状态,达到的模拟的效果。命令可能需要root权限或sudo来执行。

    模拟网络延迟

    tc qdisc add dev eth0 root netem delay 100ms 10ms 10%

    • 100ms为固定延迟
    • 10ms为随机值(可以省略)
    • 100ms为随机概率(可以省略)

    语句语义为:将eth0加入到监控中,并将每个包都延迟100ms,有10%的几率有±10ms的浮动。(注:再次修改需要修改命令为tc qdisc change dev eth0 root netem delay 100ms 10ms 10%)

    模拟网络丢包

    tc qdisc change dev eth0 root netem loss 20% 50%

    • 20%为丢包比率
    • 50%为相关概率(可以省略)

    语句语义为:将eth0的丢包率改为20%,后一个包有丢弃有50%的几率和前一个包相关。

    tc qdisc add dev eth0 root netem delay 50ms 10ms 10% 先执行
    tc qdisc change dev eth0 root netem loss 40% 70% 在文件备份策略执行后,再执行这条命令

    模拟网络包错误
    1. 模拟包重复:
      tc qdisc add dev eth0 root netem duplicate 1%
      语句语义为:将 eth0 网卡的传输设置为随机产生 1% 的重复数据包 。
    2. 模拟数据包损坏:
      tc qdisc add dev eth0 root netem corrupt 0.2%
      语句语义为:将 eth0 网卡的传输设置为随机产生 0.2% 的损坏的数据包 。 (内核版本需在 2.6.16 以上)
    3. 模拟数据包乱序:
      tc qdisc change dev eth0 root netem delay 10ms reorder 25% 50%
      语句语义为:将 eth0 网卡的传输设置为:有 25% 的数据包(50%相关)会被立即发送,其他的延迟10 秒。
    取消网络模拟

    取消网络模拟,相当于取消监控该网卡,使用命令:
    sudo tc qdisc del dev eth0 root netem





  • 相关阅读:
    redis应用场景
    使用Nginx+Lua+Redis构建灰度发布环境
    Comparison method violates its general contract
    mysql+redis
    缓存技术PK:选择Memcached还是Redis?
    缓存技术PK
    菜鸟教程之工具使用(九)——Git如何进行分支的merge操作
    菜鸟教程之工具使用(八)——EGit禁止自动转换回车换行符
    菜鸟教程之工具使用(七)——从GIt上导出Maven项目
    菜鸟教程之工具使用(六)——让Maven项目直接在eclipse内部的Tomcat中运行
  • 原文地址:https://www.cnblogs.com/linyu51/p/15656199.html
Copyright © 2011-2022 走看看