netcat thông lượng thấp nhưng iperf cao


9

Tôi đã thử nghiệm thông lượng giữa hai chiếc, được kết nối trên cùng một bộ định tuyến, một chiếc có tốc độ 100mbps, chiếc còn lại có wifi 54mbps.

Đây là phần thú vị:

  • bằng cách sử dụng nc, tôi nhận được 2,63 MB / giây khi gửi từ A đến B (được đo bằng pv -r|nc ipB)
  • bằng cách sử dụng iperf, tôi nhận được 23 MB / s , khá nhiều ok.

Điều gì có thể sai với nc?

Hệ điều hành này là Ubuntu 11.04 cho cả hai.


Tôi có một câu hỏi tương tự mà bạn có thể thấy hữu ích: Đo thông lượng mạng với tốc độ truyền của netcat so với CIFS / SMB

Câu trả lời:


6

Âm thanh quy mô phù hợp với NetCat không hỗ trợ TCP Windowing. Nếu bạn thực hiện một tcpdump trên giao diện trong khi hai điểm chuẩn đang chạy, tôi đoán bạn sẽ thấy mẫu này cho NC:

  1. Gói ->
  2. <- Ack
  3. Gói ->
  4. <- Ack
  5. Gói ->
  6. <- Ack
  7. Gói ->
  8. <- Ack

Và mẫu này cho IPerf:

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

Bằng cách Windowing các phân đoạn TCP, bạn có thể nhận được thông lượng cao hơn nhiều vì bạn không phải đợi Ack sau mỗi gói, chỉ sau mỗi phân đoạn.


1
Tôi có thể xác nhận tôi thấy vấn đề tương tự trên thiết lập 10g của mình. dd/netcatlà báo cáo băng thông thấp hơn so với iperf. dd/netcatbáo cáo về 3Gb / s trong khi iperfbáo cáo 9Gb / s.
Vince

Quan tâm để kiểm tra xem dự đoán của bạn là chính xác ở đây? :)
rogerdpack

Hộp Windows 10 của tôi sử dụng netcat chỉ gửi các gói 8KB với kích thước cửa sổ TCP chỉ 8KB, dẫn đến hiệu suất khủng khiếp trên gigabit. Xảy ra ở cả nc và ncat, nhưng SSH cho 90+ MB / giây giữa các máy giống nhau. Có một lỗi cũ trong các ổ cắm windows gây ra điều này: support.microsoft.com/en-us/help/823764/ mẹo
Orion Lawlor

1

Không phải vậy netcat. Với iperftôi nhận được

[  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

Với nc -l -p 1852 > /dev/nullcat /dev/zero | pv -r | nc 192.168.1.200 1852tôi nhận được

[  34MB/s]

(Biến động trong khoảng từ 30 đến 60.)

Dữ liệu nào bạn đang cho ăn netcat?


0

Chỉ vì thẻ không dây của bạn có khả năng kết nối 54mbs không có nghĩa là bạn sẽ có được thông lượng đó. Đặc biệt, có vẻ như bạn có 802.11g có gót chân Achflower . Chừng nào ** mỗi * Thiết bị không dây nó được nói chuyện với cũng là g nó sẽ đi nhanh, nhưng càng sớm càng thậm chí một thiết bị mà chỉ b tốc độ có khả năng, nó phải sử dụng mẫu số chung thấp nhất để nói chuyện với tất cả các thiết bị.

Bạn có thể thử mở một thiết bị đầu cuối trên máy bằng mạng không dây và đang chạy iwconfig. Tìm trường Bit Rate = và xem tốc độ bạn thực sự được kết nối.


0

Cẩn thận với các đơn vị iperf. Đây là một cạm bẫy phổ biến: iperf thường hiển thị bằng Mbit / s thay vì Mbyte / s.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.