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

版权声明:本文为博主原创文章,未经博主允许不得转载。更好的样式阅读体验可点击文章底部<<查看原文>> https://blog.csdn.net/huuinn/article/details/80970079

操作环境

$ 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.124.119.168: icmp_seq=4 ttl=53 time=11.3 ms
^C
--- www.huuinn.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 11.026/11.518/12.361/0.514 ms
  • 命令执行后,测试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=111 ms
64 bytes from 112.124.119.168: icmp_seq=2 ttl=53 time=111 ms
64 bytes from 112.124.119.168: icmp_seq=3 ttl=53 time=112 ms
64 bytes from 112.124.119.168: icmp_seq=4 ttl=53 time=111 ms
^C
--- www.huuinn.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 111.515/112.083/112.892/0.647 ms

网络延迟增加200ms

sudo tc qdisc change dev enp2s0 root netem delay 200ms
  • ping测试结果
$ 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=212 ms
64 bytes from 112.124.119.168: icmp_seq=2 ttl=53 time=212 ms
64 bytes from 112.124.119.168: icmp_seq=3 ttl=53 time=213 ms
64 bytes from 112.124.119.168: icmp_seq=4 ttl=53 time=211 ms
^C
--- www.huuinn.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 211.757/212.512/213.966/0.916 ms

配置确认

$ sudo tc qdisc show dev enp2s0
qdisc netem 8001: root refcnt 2 limit 1000 delay 200.0ms

配置删除

sudo tc qdisc del dev enp2s0 root

模拟网络包

sudo tc qdisc add dev enp2s0 root netem loss 50%
  • 测试结果
$ ping www.huuinn.com -c 30
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.6 ms
64 bytes from 112.124.119.168: icmp_seq=3 ttl=53 time=11.9 ms
64 bytes from 112.124.119.168: icmp_seq=4 ttl=53 time=11.2 ms
64 bytes from 112.124.119.168: icmp_seq=5 ttl=53 time=11.0 ms
64 bytes from 112.124.119.168: icmp_seq=6 ttl=53 time=13.2 ms
64 bytes from 112.124.119.168: icmp_seq=8 ttl=53 time=11.4 ms
64 bytes from 112.124.119.168: icmp_seq=12 ttl=53 time=11.3 ms
64 bytes from 112.124.119.168: icmp_seq=13 ttl=53 time=11.9 ms
64 bytes from 112.124.119.168: icmp_seq=15 ttl=53 time=12.0 ms
64 bytes from 112.124.119.168: icmp_seq=20 ttl=53 time=11.8 ms
64 bytes from 112.124.119.168: icmp_seq=21 ttl=53 time=12.4 ms
64 bytes from 112.124.119.168: icmp_seq=24 ttl=53 time=10.9 ms
64 bytes from 112.124.119.168: icmp_seq=26 ttl=53 time=11.4 ms
64 bytes from 112.124.119.168: icmp_seq=29 ttl=53 time=16.0 ms

--- www.huuinn.com ping statistics ---
30 packets transmitted, 14 received, 53% packet loss, time 29278ms
rtt min/avg/max/mdev = 10.947/12.043/16.020/1.242 ms

猜你喜欢

转载自blog.csdn.net/huuinn/article/details/80970079
今日推荐