netcatスループットは低いがiperfは高い


9

私は同じルーターに接続された2つのPC間のスループットをテストしていました。1つは100 MbpsのLAN、もう1つは54 Mbpsのwifi

ここに興味深い部分があります:

  • を使用してnc、AからBに送信するときに2.63MB / sを取得します(で測定pv -r|nc ipB
  • を使用してiperf23MB /秒を取得しますが、これはほとんど問題ありません。

何が悪いのncでしょうか?

OSはどちらもubuntu 11.04です。


非常によく似た質問があります

回答:


6

NetCatがTCPウィンドウ処理をサポートしていないため、スケールサウンドはほぼ適切です。2つのベンチマークの実行中にインターフェイスでtcpdumpを実行すると、NCに対して次のパターンが表示されると思います。

  1. パケット->
  2. <-了解
  3. パケット->
  4. <-了解
  5. パケット->
  6. <-了解
  7. パケット->
  8. <-了解

そして、このIPerfのパターン:

  1. パケット->
  2. パケット->
  3. パケット->
  4. パケット->
  5. パケット->
  6. パケット->
  7. <-了解
  8. パケット->
  9. パケット->
  10. パケット->
  11. パケット->
  12. パケット->
  13. パケット->
  14. <-了解
  15. パケット->
  16. パケット->
  17. パケット->
  18. パケット->
  19. パケット->
  20. パケット->
  21. <-了解

TCPセグメントをウィンドウ処理することにより、すべてのパケットの後でAckを待つ必要がないため、すべてのセグメントの後でのみ、スループットを大幅に向上させることができます。


1
10gセットアップで同じ問題が発生することを確認できます。dd/netcatは、と比較して低い帯域幅を報告しiperfます。dd/netcat3 iperfGb /秒について報告するのに対し、9 Gb /秒について報告します。
ビンス

ここであなたの推測が正しいかどうかを確認しますか?:)
rogerdpack 2018

netcatを使用している私のWindows 10ボックスは、8KBパケットを送信しているだけで、TCPウィンドウサイズはわずか8KBであり、ギガビットを超えるパフォーマンスをもたらしました。ncとncatの両方で発生しますが、SSHは同じマシン間で90+ MB /秒を提供します。この原因ウィンドウソケットの古いバグがあります: support.microsoft.com/en-us/help/823764/...
オリオンロウラーズ

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/nullし、cat /dev/zero | pv -r | nc 192.168.1.200 1852I GET

[  34MB/s]

(30〜60の間で変動します。)

どのデータを供給していnetcatますか?


0

ワイヤレスカードが54mbs接続に対応しているからといって、そのスループットが得られるわけではありません。特に、Achiliesヒールを備えた802.11gをお使いのようです。限り、それがに話しているすべての*ワイヤレスデバイスでもある**としてグラム、それは速くなりますが、すぐとしてだけであるとしても、一つのデバイスBの速度が可能な、それはすべてのデバイスに話を最小公分母を使用する必要があります。

ワイヤレスで実行しているマシンで端末を開いてみてくださいiwconfigビットレート=フィールドを探し、実際に接続されている速度を確認します。


0

iperfユニットに注意してください。これはよくある落とし穴です。iperfは、Mバイト/秒ではなく、Mビット/秒で表示されることがよくあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.