使用tc命令模拟网络延迟和丢包

本文介绍了如何在Ubuntu系统下利用tc命令来模拟网络延迟,包括如何增加100ms和200ms的延迟,并提供了配置确认及删除的方法。通过示例展示tc命令的应用,帮助理解网络流量控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作环境

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS"

模拟网络延迟

命令参数

tc qdisc [ add | change | replace | link | delete ] dev DEV [ parent qdisc-id | root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ]

网络延迟增加100ms

sudo tc qdisc add dev enp2s0 root netem delay 100ms

ps. enp2s0为本地接口名

  • 命令执行前,测试ping www.huuinn.com
$ ping www.huuinn.com
PING www.huuinn.com (112.124.119.168) 56(84) bytes of data.
64 bytes from 112.124.119.168: icmp_seq=1 ttl=53 time=11.0 ms
64 bytes from 112.124.119.168: icmp_seq=2 ttl=53 time=11.3 ms
64 bytes from 112.124.119.168: icmp_seq=3 ttl=53 time=12.3 ms
64 bytes from 112.1
iperf 是一个强大的网络性能测试工具,主要用于测量两个主机之间数据传输速率。要使用它来模拟网络延迟丢包,你需要在客户端服务端分别运行iperf,并利用一些选项来实现这一目标。 以下是基本步骤: 1. 安装 iperf:首先确保你的 Linux 系统上已经安装了 iperf。如果没有,可以通过包管理器安装,例如在 Ubuntu 上输入 `sudo apt-get install iperf`。 2. 启动服务器端:在服务端(通常是接收数据的一方)运行iperf,使用 `-s` 或 `--server` 开始监听模式。例如: ``` sudo iperf -s -J --delay <延迟能量> --loss <丢包率> ``` 其中 `<延迟能量>` `<丢包率>` 需要替换为实际值,单位通常为毫秒(millisecond)百分比(%)。 3. 启动客户端:在客户端(发送数据的一方)运行iperf,连接到服务器,并指定 `-c` 或 `--client` 选项。同时,增加 `-i` 或 `--interval` 选项来显示实时报告,以便观察延迟变化。示例命令: ``` sudo iperf -c <服务器IP> -t <持续时间> -i <间隔时间> -J ``` 4. 模拟延迟丢包:`--delay` 选项设置了往返行程的额外延迟时间,而 `--loss` 设置了丢包率。例如,`--delay 200ms --loss 5%` 将引入200毫秒的延迟并随机丢弃5%的数据包。 请注意,这里的设置可能会受到操作系统网络硬件的影响,建议在网络环境中试验并调整参数。此外,iperf主要用于测试而非持久模拟,如果需要长期稳定的网络状况,可能需要配合其他网络管理工具如tc一起使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值