벤치마킹 시 NetHogs가 0KB/초를 보고하는 이유는 무엇입니까?

벤치마킹 시 NetHogs가 0KB/초를 보고하는 이유는 무엇입니까?

루프백 네트워크에서 리눅스 커널이 얼마나 많은 트래픽을 처리할 수 있는지 궁금해서 벤치마킹해 보기로 했습니다. 터미널에서 다음을 실행했습니다.

% nc -l -p 5235 127.0.0.1 > /dev/null

다른 게시물에서 나는 다음을 실행했습니다.

% nc 127.0.0.1 5235 < /dev/zero

그런 다음 실제로 유량을 측정하기 위해 실행했습니다 sudo nethogs lo. 이는 두 번째 항목을 보여주며 nc초당 약 570,000KB(평균)를 전송하고 있음을 보여줍니다. 첫 번째는 nc초당 평균 약 1,300KB를 보내는 것으로 보이며, 이는 TCP 제어 패킷이라고 가정합니다. 그러나 두 nc프로세스 모두 0KB/초의 수신 속도를 보여줍니다. 왜 이런거야? 각 프로세스는 다른 프로세스에서 보낸 값과 동일한 수신 값을 보고해야 하는 것처럼 보입니다.

버전 정보:

% nethogs -V
 version 0.8.1

% uname -a
Linux file-not-regular.strugee.net 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux

% nc -h |& head -1
[v1.10-41]

답변1

이는 커널이 소스 및 대상 IP 주소를 넘어서는 인바운드 및 아웃바운드 트래픽을 실제로 구별하지 않기 때문입니다. 이러한 패킷은 커널이 소스 IP를 보고 로컬 IP인지 확인하고 이를 아웃바운드로 분류하고 패킷을 더 이상 분류하지 않기 때문에 "이중 계산"되지 않습니다(예: 인바운드).

관련 정보