Назад | Перейти на главную страницу

пропускная способность netcat низкая, но iperf высокая

Я тестировал пропускную способность между двумя компьютерами, подключенными к одному и тому же маршрутизатору, один с локальной сетью 100 Мбит / с, другой с Wi-Fi 54 Мбит / с.

Вот что интересно:

Что могло быть не так с nc?

ОС - это Ubuntu 11.04 для обоих.

Масштаб звучит примерно правильно для NetCat, не поддерживающего TCP Windowing. Если вы выполните 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, вы можете получить гораздо более высокую пропускную способность, поскольку вам не нужно ждать подтверждения после каждого пакета, а только после каждого сегмента.

Это не 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 1852 я получил

[  34MB/s]

(Колеблется от 30 до 60.)

Какие данные вы кормите netcat?

То, что ваша беспроводная карта поддерживает соединения со скоростью 54 Мбит / с, не означает, что вы получите такую ​​пропускную способность. В частности, похоже, что у вас есть 802.11g, который имеет Пятка ахилы. Пока ** каждое * беспроводное устройство, с которым он разговаривает, также грамм он пойдет быстро, но как только даже одно устройство будет б со скоростью, он должен использовать наименьший общий знаменатель, чтобы разговаривать со всеми устройствами.

Вы можете попробовать открыть терминал на машине с беспроводной связью и запустить iwconfig. Ищите Битрейт = поле и посмотрите, с какой скоростью вы действительно подключены.

Остерегайтесь устройств iperf. Это распространенная ошибка: iperf часто отображается в Мбит / с вместо Мбайт / с.