일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- openpyxl
- postgres
- port forwarding
- appium
- kitura
- Materials
- 28015
- centos
- rethinkdb
- STF_PortForwarding
- insert
- 실행권한
- postgresql
- ssh
- PYTHON
- nohup
- mysql
- SWIFT
- Jupyter
- nmap
- STF
- nGrinder
- perfect
- ftp
- create table
- GoCD
- appium server
- Jupyter Notebook
- sshpass
- ubuntu
- Today
- Total
don't stop believing
Traffic Control (tc) - loss, corrupt, duplicate 본문
Traffic Control (tc)의 delay에 이어서 확인합니다.
이번에는 packet loss 입니다.
10%의 packet loss를 설정하겠습니다.
먼저 이전에 적용된 rule을 삭제하겠습니다.
$ sudo tc qdisc del dev enp4s0 root $ sudo tc qdisc add dev enp4s0 root netem loss 10% $ sudo tc qdisc show dev enp4s0 qdisc netem 8013: root refcnt 2 limit 1000 loss 10%
이번에도 사내 pc에 ping을 날려보겠습니다.
$ ping 10.10.0.78 -c 20 PING 10.10.0.78 (10.10.0.78) 56(84) bytes of data. 64 bytes from 10.10.0.78: icmp_seq=1 ttl=64 time=0.351 ms 64 bytes from 10.10.0.78: icmp_seq=2 ttl=64 time=0.352 ms 64 bytes from 10.10.0.78: icmp_seq=3 ttl=64 time=0.353 ms 64 bytes from 10.10.0.78: icmp_seq=4 ttl=64 time=0.347 ms 64 bytes from 10.10.0.78: icmp_seq=5 ttl=64 time=0.353 ms 64 bytes from 10.10.0.78: icmp_seq=6 ttl=64 time=0.355 ms 64 bytes from 10.10.0.78: icmp_seq=7 ttl=64 time=0.354 ms 64 bytes from 10.10.0.78: icmp_seq=8 ttl=64 time=0.347 ms 64 bytes from 10.10.0.78: icmp_seq=10 ttl=64 time=0.346 ms 64 bytes from 10.10.0.78: icmp_seq=11 ttl=64 time=0.345 ms 64 bytes from 10.10.0.78: icmp_seq=12 ttl=64 time=0.354 ms 64 bytes from 10.10.0.78: icmp_seq=13 ttl=64 time=0.348 ms 64 bytes from 10.10.0.78: icmp_seq=15 ttl=64 time=0.353 ms 64 bytes from 10.10.0.78: icmp_seq=16 ttl=64 time=0.355 ms 64 bytes from 10.10.0.78: icmp_seq=17 ttl=64 time=0.353 ms 64 bytes from 10.10.0.78: icmp_seq=18 ttl=64 time=0.357 ms 64 bytes from 10.10.0.78: icmp_seq=19 ttl=64 time=0.346 ms 64 bytes from 10.10.0.78: icmp_seq=20 ttl=64 time=0.347 ms --- 10.10.0.78 ping statistics --- 20 packets transmitted, 18 received, 10% packet loss, time 19431ms rtt min/avg/max/mdev = 0.345/0.350/0.357/0.025 ms
사내 네트워크라 latency는 0.3ms 정도로 나오고 있습니다.
ping statistics에 보면 20 packets transmitted, 18 received, 10% packet loss, time 19431ms로 되어 있습니다.
20번의 ping을 보내고(transmitted) 18번 pong을 받았습니다. (received) 그래서 20번중 2번 packet을 손실해 10%의 loss가 발생했습니다.
이번에는 packet 변조 입니다.
5%의 packet 변조를 설정합니다.
$ sudo tc qdisc del dev enp4s0 root $ sudo tc qdisc add dev enp4s0 root netem corrupt 5% $ sudo tc qdisc show dev enp4s0 qdisc netem 8014: root refcnt 2 limit 1000 corrupt 5%
5%의 변조니까 50번은 보내봐야 겠네요.
$ ping 10.10.0.78 -c 50 PING 10.10.0.78 (10.10.0.78) 56(84) bytes of data. 64 bytes from 10.10.0.78: icmp_seq=1 ttl=64 time=0.351 ms 64 bytes from 10.10.0.78: icmp_seq=2 ttl=64 time=0.352 ms 64 bytes from 10.10.0.78: icmp_seq=3 ttl=64 time=0.354 ms ...... 64 bytes from 10.10.0.78: icmp_seq=47 ttl=64 time=0.357 ms 64 bytes from 10.10.0.78: icmp_seq=48 ttl=64 time=0.348 ms 64 bytes from 10.10.0.78: icmp_seq=49 ttl=64 time=0.354 ms 64 bytes from 10.10.0.78: icmp_seq=50 ttl=64 time=0.329 ms --- 10.10.0.78 ping statistics --- 50 packets transmitted, 48 received, 4% packet loss, time 50143ms rtt min/avg/max/mdev = 0.329/0.354/0.578/0.041 ms
50번 ping을 보내고 48번 poing을 받았습니다. 변조된 packet 2개(36번째, 42번째)는 삭제되어 4%의 loss로 확인되었습니다.
이번에는 중복된 packet 1%로 설정하겠습니다.
$ sudo tc qdisc del dev enp4s0 root $ sudo tc qdisc add dev enp4s0 root netem duplicate 1% $ sudo tc qdisc show dev enp4s0 qdisc netem 8015: root refcnt 2 limit 1000 duplicate 1%
이번에는 ping을 100번 날려보겠습니다.
$ ping 10.10.0.78 -c 100 PING 10.10.0.78 (10.10.0.78) 56(84) bytes of data. 64 bytes from 10.10.0.78: icmp_seq=1 ttl=64 time=0.358 ms 64 bytes from 10.10.0.78: icmp_seq=2 ttl=64 time=0.354 ms 64 bytes from 10.10.0.78: icmp_seq=3 ttl=64 time=0.352 ms 64 bytes from 10.10.0.78: icmp_seq=4 ttl=64 time=0.355 ms 64 bytes from 10.10.0.78: icmp_seq=5 ttl=64 time=0.355 ms 64 bytes from 10.10.0.78: icmp_seq=6 ttl=64 time=0.348 ms 64 bytes from 10.10.0.78: icmp_seq=7 ttl=64 time=0.362 ms 64 bytes from 10.10.0.78: icmp_seq=8 ttl=64 time=0.347 ms 64 bytes from 10.10.0.78: icmp_seq=8 ttl=64 time=0.379 ms (DUP!) 64 bytes from 10.10.0.78: icmp_seq=9 ttl=64 time=0.346 ms ...... 64 bytes from 10.10.0.78: icmp_seq=90 ttl=64 time=0.354 ms 64 bytes from 10.10.0.78: icmp_seq=91 ttl=64 time=0.353 ms 64 bytes from 10.10.0.78: icmp_seq=91 ttl=64 time=0.385 ms (DUP!) 64 bytes from 10.10.0.78: icmp_seq=92 ttl=64 time=0.355 ms 64 bytes from 10.10.0.78: icmp_seq=93 ttl=64 time=0.352 ms 64 bytes from 10.10.0.78: icmp_seq=94 ttl=64 time=0.355 ms 64 bytes from 10.10.0.78: icmp_seq=95 ttl=64 time=0.347 ms 64 bytes from 10.10.0.78: icmp_seq=96 ttl=64 time=0.352 ms 64 bytes from 10.10.0.78: icmp_seq=97 ttl=64 time=0.352 ms 64 bytes from 10.10.0.78: icmp_seq=98 ttl=64 time=0.353 ms 64 bytes from 10.10.0.78: icmp_seq=99 ttl=64 time=0.353 ms 64 bytes from 10.10.0.78: icmp_seq=100 ttl=64 time=0.348 ms --- 10.10.0.78 ping statistics --- 100 packets transmitted, 100 received, +3 duplicates, 0% packet loss, time 101332ms rtt min/avg/max/mdev = 0.318/0.353/0.387/0.016 ms
100번의 ping을 보내는 동안 3번의 중복 packet이 발생했습니다.
ping의 statistics를 보면 아래와 같이 +3 duplicates로 되어 있습니다.
100 packets transmitted, 100 received, +3 duplicates, 0% packet loss, time 101332ms
packet loss가 아닌 중복된 packet이 더 들어오게 됩니다.
이번에는 앞서 확인한 delay와 같이 적용해 보겠습니다.
극악의 환경을 만들어 보겠습니다.
delay는 300ms에서 +- 50ms로 변동하며 packet loss는 10%, 변조(corrupt)는 5%, 중복(duplicate)은 2%입니다.
$ sudo tc qdisc del dev enp4s0 root $ sudo tc qdisc add dev enp4s0 root netem loss 10% corrupt 5% duplicate 2% delay 300ms 50ms distribution normal $ sudo tc qdisc show dev enp4s0 qdisc netem 8017: root refcnt 2 limit 1000 delay 300.0ms 50.0ms loss 10% duplicate 2% corrupt 5%
이번에도 ping 100번 날려보겠습니다.
$ ping 10.10.0.78 -c 100 PING 10.10.0.78 (10.10.0.78) 56(84) bytes of data. 64 bytes from 10.10.0.78: icmp_seq=1 ttl=64 time=308 ms 64 bytes from 10.10.0.78: icmp_seq=3 ttl=64 time=319 ms 64 bytes from 10.10.0.78: icmp_seq=4 ttl=64 time=320 ms 64 bytes from 10.10.0.78: icmp_seq=5 ttl=64 time=289 ms ..... 64 bytes from 10.10.0.78: icmp_seq=98 ttl=64 time=333 ms 64 bytes from 10.10.0.78: icmp_seq=99 ttl=64 time=347 ms 64 bytes from 10.10.0.78: icmp_seq=100 ttl=64 time=356 ms --- 10.10.0.78 ping statistics --- 100 packets transmitted, 85 received, +2 duplicates, 15% packet loss, time 99290ms rtt min/avg/max/mdev = 141.895/311.313/429.700/48.891 ms
평균 delay는 311.3 ms로 나왔습니다. 2번의 packet 중복(duplicates)이 있었고, 변조(corrupt)를 포함해 packet loss는 15%입니다.
적용이 잘 되는 것 같습니다.
'Network' 카테고리의 다른 글
Linux에서 인터넷 대역폭(속도) 측정하기 - iperf3 (0) | 2019.01.15 |
---|---|
Traffic Control (tc) - Up/Down Bandwidth (0) | 2019.01.15 |
Traffic Control (tc) - delay (0) | 2019.01.10 |
Linux에서 인터넷 대역폭(속도) 측정하기 - iperf (0) | 2019.01.08 |
Ubuntu를 WiFi (AP)로 만들어 봅니다. (두번째 도전) (0) | 2019.01.04 |