veth 쌍(Mininet)에서 대기 시간 + 지터를 시뮬레이션하기 위해 다음 명령을 실행하고 있습니다.
sudo tc qdisc add dev h1-eth0 root netem delay 100ms 5ms
100ms 지연(제 예에서는 5ms 아님)만 지정하면 모든 것이 예상대로 작동합니다. 인터페이스 간 핑을 실행하면 실제로 100ms 지연이 있음을 알 수 있기 때문입니다.
64 bytes from 10.0.0.2: icmp_seq=17 ttl=64 time=100 ms
64 bytes from 10.0.0.2: icmp_seq=18 ttl=64 time=100 ms
64 bytes from 10.0.0.2: icmp_seq=19 ttl=64 time=100 ms
64 bytes from 10.0.0.2: icmp_seq=20 ttl=64 time=100 ms
64 bytes from 10.0.0.2: icmp_seq=21 ttl=64 time=100 ms
64 bytes from 10.0.0.2: icmp_seq=22 ttl=64 time=100 ms
64 bytes from 10.0.0.2: icmp_seq=23 ttl=64 time=100 ms
그러나 지터 매개변수를 추가할 때 실제로 대부분의 경우 100ms에서 5ms 사이의 변동이 있지만 약 4000ms라는 엄청난 지연도 발생합니다.
64 bytes from 10.0.0.2: icmp_seq=64 ttl=64 time=104 ms
64 bytes from 10.0.0.2: icmp_seq=65 ttl=64 time=104 ms
64 bytes from 10.0.0.2: icmp_seq=63 ttl=64 time=4391 ms
64 bytes from 10.0.0.2: icmp_seq=68 ttl=64 time=101 ms
64 bytes from 10.0.0.2: icmp_seq=70 ttl=64 time=101 ms
64 bytes from 10.0.0.2: icmp_seq=66 ttl=64 time=4393 ms
64 bytes from 10.0.0.2: icmp_seq=71 ttl=64 time=105 ms
64 bytes from 10.0.0.2: icmp_seq=67 ttl=64 time=4393 ms
64 bytes from 10.0.0.2: icmp_seq=72 ttl=64 time=103 ms
64 bytes from 10.0.0.2: icmp_seq=73 ttl=64 time=100 ms
64 bytes from 10.0.0.2: icmp_seq=69 ttl=64 time=4390 ms
64 bytes from 10.0.0.2: icmp_seq=78 ttl=64 time=102 ms
64 bytes from 10.0.0.2: icmp_seq=74 ttl=64 time=4392 ms
64 bytes from 10.0.0.2: icmp_seq=75 ttl=64 time=4393 ms
64 bytes from 10.0.0.2: icmp_seq=80 ttl=64 time=102 ms
64 bytes from 10.0.0.2: icmp_seq=76 ttl=64 time=4393 ms
64 bytes from 10.0.0.2: icmp_seq=77 ttl=64 time=4390 ms
편집: 방금 이 문제가 실제 인터페이스에서도 발생하는지 확인했는데 실제로 발생합니다.
내가 뭔가를 놓친 걸까요, 아니면 실제 문제가 있는 걸까요?