• 使用tc命令模拟linux网络延迟环境


    tc(Traffic Control)是 Linux 中用于流量控制和网络模拟的强大工具。你可以使用它来模拟网络延迟、带宽限制、数据包丢失等。

    以下是一个使用 tc 模拟网络延迟的基本步骤:

    1.查看当前的 qdisc(队列规则)和 filter(过滤器)

    首先,确保你的网络接口没有设置任何 qdisc。你可以使用以下命令查看:

    tc qdisc show dev 
    

    其中 是你的网络接口名称,如 eth0

    2. 设置根 qdisc

    为了应用 tc 规则,你需要在网络接口上设置一个 qdisc。最常用的 qdisc 是 handleroot,但在这里我们将使用 htb(层次化令牌桶)作为示例,因为它允许我们设置更复杂的规则(尽管对于简单的延迟模拟,这并不是必需的)。

    tc qdisc add dev  root handle 1: htb
    

    3. 添加延迟规则

    现在,你可以添加一个延迟规则。假设你想为所有从 发送的数据包添加 100ms 的延迟:

    tc qdisc add dev  parent 1:1 netem delay 100ms
    

    注意:上面的命令中,1:1 是一个子 qdisc 的句柄。在 htb qdisc 下,我们通常使用这种子 qdisc 来应用特定的规则。但是,对于简单的延迟模拟,你也可以直接使用 root qdisc,即:

    tc qdisc change dev  root netem delay 100ms
    

    4. 验证设置

    你可以使用 ping 或其他网络工具来验证延迟是否已应用。

    5. 删除规则

    当你完成模拟并希望删除这些规则时,可以使用以下命令:

    tc qdisc del dev  root
    

    这将删除网络接口上的所有 qdisc 和相关的规则。

    6. 注意

    tc 规则在重启或网络接口重新加载后将失效。如果你希望这些规则在重启后仍然生效,你可能需要考虑将它们添加到启动脚本或 systemd 服务中。但是,请注意,这样做可能会影响生产环境的网络性能。始终在测试环境中验证你的更改。

  • 相关阅读:
    MATLAB Simulink和S7-1200PLC MOBUSTCP通信
    好用的js快速排序的方法
    在家靠python爬虫兼职月入3w+:成年人的世界,钱是底气!
    串口通信printf函数重定向
    分布式锁以及实现方式三种
    ssm电影院管理系统的设计与实现毕业设计源码241505
    IOS逆向初探
    如何在Python爬虫程序中使用HTTP代理?
    工作和生活中,如何用项目管理思维解决复杂的事情?
    RFID技术在仓储物流供应链管理中的应用
  • 原文地址:https://www.cnblogs.com/ydswin/p/18209214