Taxa de transferência do netcat baixa, mas iperf alta


9

Eu estava testando a taxa de transferência entre dois computadores, conectados no mesmo roteador, um com lan de 100mbps e outro com wifi de 54mbps.

Aqui está a parte interessante:

  • usando nc, recebo 2,63MB / s ao enviar de A para B (medido com pv -r|nc ipB)
  • usando iperf, recebo 23MB / s, o que é praticamente bom.

O que poderia estar errado nc?

O sistema operacional é o ubuntu 11.04 para ambos.


Eu tenho uma pergunta muito semelhante que você pode achar útil: rede de medição rendimento com netcat vs. CIFS taxas de transferência / SMB

Respostas:


6

A escala parece correta para o NetCat não suportar TCP Windowing. Se você fizer um tcpdump na interface enquanto os dois benchmarks estiverem em execução, acho que você verá esse padrão para o NC:

  1. Pacote ->
  2. <- Confirme
  3. Pacote ->
  4. <- Confirme
  5. Pacote ->
  6. <- Confirme
  7. Pacote ->
  8. <- Confirme

E esse padrão para o IPerf:

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

Ao janelas de segmentos TCP, você pode obter taxas de transferência muito mais altas, pois não precisa esperar o Ack após cada pacote, somente após cada segmento.


1
Posso confirmar que vejo o mesmo problema na minha configuração de 10g. dd/netcatrelata largura de banda menor em comparação com iperf. dd/netcatrelatório sobre 3Gb / s, enquanto iperfrelata 9Gb / s.
Vince

Gostaria de verificar se seu palpite está correto aqui? :)
rogerdpack 24/09

Minha caixa do Windows 10 usando o netcat estava apenas enviando pacotes de 8 KB com um tamanho de janela TCP de apenas 8 KB, resultando em um desempenho terrível em gigabit. Acontece em nc e ncat, mas o SSH fornece mais de 90 MB / s entre as mesmas máquinas. Há um erro antigo nos soquetes do Windows que causa isso: support.microsoft.com/en-us/help/823764/…
Orion Lawlor

1

Não é netcat. Com iperfeu recebo

[  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

Com nc -l -p 1852 > /dev/nulle cat /dev/zero | pv -r | nc 192.168.1.200 1852eu recebo

[  34MB/s]

(Varia entre 30 e 60.)

Quais dados você está alimentando netcat?


0

Só porque sua placa sem fio é capaz de conexões de 54 mbs, não significa que você obterá essa taxa de transferência. Em particular, parece que você tem 802.11g, que possui um salto Achilies . Enquanto ** todo * dispositivo sem fio com o qual está falando também for g, ele será rápido, mas assim que um dispositivo que é apenas b velocidade capaz, ele tem que usar o menor denominador comum para conversar com todos os dispositivos.

Você pode tentar abrir um terminal na máquina sem fio e em execução iwconfig. Procure o campo Bit Rate = e veja a que velocidade você está realmente conectado.


0

Cuidado com as unidades iperf. Essa é uma armadilha comum: o iperf geralmente é exibido em Mbit / s em vez de Mbyte / s.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.