설정: Wi-Fi 라우터(dd-wrt 펌웨어가 포함된 atheros NIC)에 무선으로 연결된 클라이언트 노트북(mac). 서버(Linux)는 이더넷 인터페이스를 통해 라우터에 직접 연결됩니다. 이제 처리량을 테스트하기 위해 iperf3을 사용하고 있습니다.
서버에서
iperf3 -s
고객의 사업장에서
iperf3 -R -c 192.168.1.121 -t 60 -b 50M
즉, 클라이언트가 서버에서 -R 옵션을 사용하여 다운로드 중입니다. 이는 TCP 트래픽입니다(Reno 혼잡 제어 포함). 이를 통해 예상되는 순차 처리량은 약 50Mbps였습니다. 혼잡은 임의의 시간에 존재하므로 해당 순간에 처리량이 감소합니다. 이것은 좋다. 이제 Wi-Fi 라우터에서 클라이언트(예: Wi-Fi 송신 포트)로의 트래픽을 제어하려고 합니다. 이를 위해 Linux의 tc 유틸리티를 사용합니다.
Wi-Fi 라우터에서:
tc qdisc add dev ath0 root tbf rate 5mbit burst 32kbit latency 400ms
일단 실행되면 처리량이 예상대로 5Mbps로 떨어졌습니다.
질문: TCP 대신 UDP를 사용하는 경우:
iperf3 -R -c 192.168.1.121 -t 60 -b 50M -u
UDP 트래픽을 생성하는 옵션 -u
도 잘 작동합니다. 그러나 트래픽을 제어하기 위해 동일한 tc 명령이 생성되면 UDP 처리량이 0Mbps로 떨어집니다. tc qdisc 컨트롤을 제거하면 50Mbps로만 돌아갑니다.
가능한 이유는 무엇입니까?