throughput netcat rendah tetapi iperf tinggi


9

Saya sedang menguji throughput antara dua pcs, terhubung pada router yang sama, satu dengan 100mbps lan, yang lainnya dengan 54mbps wifi.

Inilah bagian yang menarik:

  • menggunakan nc, saya mendapatkan 2,63MB / s saat mengirim dari A ke B (diukur dengan pv -r|nc ipB)
  • menggunakan iperf, saya mendapatkan 23MB / s yang cukup banyak ok.

Apa yang salah nc?

OS adalah ubuntu 11.04 untuk keduanya.


Saya memiliki pertanyaan yang sangat mirip yang mungkin Anda temukan berguna: Mengukur throughput jaringan dengan netcat vs CIFS / SMB transfer rate

Jawaban:


6

Skala terdengar tepat untuk NetCat tidak mendukung TCP Windowing. Jika Anda melakukan tcpdump pada antarmuka saat dua tolok ukur berjalan, saya kira Anda akan melihat pola ini untuk NC:

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

Dan pola ini untuk IPerf:

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

Dengan Windowing TCP segmen Anda bisa mendapatkan throughput yang jauh lebih tinggi karena Anda tidak harus menunggu Ack setelah setiap paket, hanya setelah setiap segmen.


1
Saya dapat mengonfirmasi bahwa saya melihat masalah yang sama pada pengaturan 10g saya. dd/netcatmelaporkan bandwidth yang lebih rendah dibandingkan dengan iperf. dd/netcatlaporan tentang 3Gb / s sedangkan iperflaporan 9Gb / s.
Vince

Peduli untuk memeriksa apakah tebakan Anda benar di sini? :)
rogerdpack

Kotak Windows 10 saya menggunakan netcat baru saja mengirim paket 8KB dengan ukuran jendela TCP hanya 8KB, menghasilkan kinerja yang buruk dibandingkan gigabit. Terjadi di kedua nc dan ncat, tetapi SSH memberikan 90+ MB / detik antara mesin yang sama. Ada bug lama di soket windows yang menyebabkan ini: support.microsoft.com/en-us/help/823764/…
Orion Lawlor

1

Bukan itu netcat. Dengan iperfsaya dapatkan

[  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

Dengan nc -l -p 1852 > /dev/nulldan cat /dev/zero | pv -r | nc 192.168.1.200 1852saya dapatkan

[  34MB/s]

(Berfluktuasi antara 30 dan 60.)

Data apa yang Anda makan netcat?


0

Hanya karena kartu nirkabel Anda mampu koneksi 54mbs tidak berarti Anda akan mendapatkan throughput itu. Secara khusus, sepertinya Anda memiliki 802.11g yang memiliki tumit Achilies . Selama ** setiap * perangkat nirkabel itu berbicara dengan juga g akan pergi cepat, tapi begitu bahkan satu perangkat yang hanya b kecepatan yang mampu, ia harus menggunakan common denominator terendah untuk berbicara dengan semua perangkat.

Anda dapat mencoba membuka terminal pada mesin dengan nirkabel dan berjalan iwconfig. Cari bidang Bit Rate = dan lihat kecepatan Anda sebenarnya terhubung.


0

Waspadalah tentang unit iperf. Ini adalah perangkap umum: iperf sering ditampilkan dalam Mbit / s, bukan Mbyte / s.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.