netcat 처리량은 낮지 만 iperf는 높음


9

동일한 라우터에 연결된 두 대의 PC 사이의 처리량을 테스트 중이었습니다. 하나는 100mbps LAN, 다른 하나는 54mbps wifi입니다.

흥미로운 부분은 다음과 같습니다.

  • 를 사용 하면 A에서 B로 보낼 ​​때 2.63MB / s를nc습니다 (로 측정 pv -r|nc ipB)
  • 을 사용 iperf하면 23MB / s 를 얻습니다 .

무엇이 잘못 될 수 nc있습니까?

OS는 둘 다 우분투 11.04입니다.


: 나는 당신이 유용 할 수 있음을 매우 비슷한 질문이 netcat을 대 CIFS / SMB 전송 속도와 처리량 네트워크를 측정

답변:


6

TCP Windowing을 지원하지 않는 NetCat에 적합한 스케일 사운드. 두 벤치 마크가 실행되는 동안 인터페이스에서 tcpdump를 수행하면 NC에 대해 다음 패턴이 표시됩니다.

  1. 패킷->
  2. <-Ack
  3. 패킷->
  4. <-Ack
  5. 패킷->
  6. <-Ack
  7. 패킷->
  8. <-Ack

IPerf의 패턴은 다음과 같습니다.

  1. 패킷->
  2. 패킷->
  3. 패킷->
  4. 패킷->
  5. 패킷->
  6. 패킷->
  7. <-Ack
  8. 패킷->
  9. 패킷->
  10. 패킷->
  11. 패킷->
  12. 패킷->
  13. 패킷->
  14. <-Ack
  15. 패킷->
  16. 패킷->
  17. 패킷->
  18. 패킷->
  19. 패킷->
  20. 패킷->
  21. <-Ack

TCP 세그먼트를 윈도우 화하면 매 패킷마다, 모든 세그먼트 후에 만 ​​Ack를 기다릴 필요가 없기 때문에 훨씬 높은 처리량을 얻을 수 있습니다.


1
10g 설정에서 동일한 문제가 있음을 확인할 수 있습니다. dd/netcat보다 낮은 대역폭을보고합니다 iperf. dd/netcat3Gb / s에 대해보고하는 반면 iperf9Gb / s 에 대해 보고합니다.
Vince

여기서 추측이 올바른지 확인 하시겠습니까? :)
rogerdpack

netcat을 사용하는 Windows 10 상자는 TCP 창 크기가 8KB에 불과한 8KB 패킷을 전송하여 기가비트보다 끔찍한 성능을 제공했습니다. nc 및 ncat 모두에서 발생하지만 SSH는 동일한 시스템간에 90MB / 초를 제공합니다. Windows 소켓에는 오래된 버그가 있습니다. support.microsoft.com/en-us/help/823764/…
Orion Lawlor

1

그렇지 않습니다 netcat. 와 iperf내가 얻을

[  3] local 192.168.1.201 port 55610 connected with 192.168.1.200 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   394 MBytes  39.4 MBytes/sec

nc -l -p 1852 > /dev/nullcat /dev/zero | pv -r | nc 192.168.1.200 1852내가 얻을

[  34MB/s]

(30과 60 사이에 있습니다.)

어떤 데이터를 먹이고 netcat있습니까?


0

무선 카드가 54MB 연결이 가능하다고해서 해당 처리량을 얻을 수있는 것은 아닙니다. 특히 Achilies 힐 이있는 802.11g가있는 것처럼 들립니다 . 만큼 **이 이야기 할 때마다 * 무선 장치도 같이 g 는 빨리 갈 것이다, 그러나 빨리 아니라 심지어 하나의 장치 b를 속도를 수있는, 그것은 모든 장치에 이야기에 가장 낮은 공통 분모를 사용한다.

무선으로 실행중인 컴퓨터에서 터미널을 열려고 시도 할 수 있습니다 iwconfig. 를 찾아 비트 레이트 = 필드와 당신이 실제로에서 연결 속도 무엇을 참조하십시오.


0

iperf 장치에주의하십시오. 이것은 일반적인 함정입니다. iperf는 종종 Mbyte / s 대신 Mbit / s로 표시됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.