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





  • 相关阅读:
    实用机器学习 跟李沐学AI
    Explicitly drop temp table or let SQL Server handle it
    dotnettransformxdt and FatAntelope
    QQ拼音输入法 禁用模糊音
    (技术八卦)Java VS RoR
    Ruby on rails开发从头来(windows)(七)创建在线购物页面
    Ruby on rails开发从头来(windows)(十三)订单(Order)
    Ruby on rails开发从头来(windows)(十一)订单(Order)
    新员工自缢身亡,华为又站到了风口浪尖
    死亡汽油弹(Napalm Death)乐队的视频和来中国演出的消息
  • 原文地址:https://www.cnblogs.com/linyu51/p/15656199.html
Copyright © 2011-2022 走看看