Taxa de perda de pacotes com iperf e tcpdump

10

Testei uma linha com a qualidade do link iperf. A velocidade medida (porta UDP 9005) era de 96 Mbps, o que é bom, porque os dois servidores estão conectados com 100 Mbps à Internet. Por outro lado, a taxa de perda de datagramas foi de 3,3 a 3,7%, o que eu achei demais. Usando um protocolo de transferência de alta velocidade, gravei os pacotes nos dois lados com tcpdump. Do que eu calculei a perda de pacotes - média de 0,25%. Alguém tem uma explicação, de onde essa grande diferença pode estar vindo? O que é uma perda aceitável de pacotes na sua opinião?

stefita
fonte
Qual protocolo você usou ao detectar o tcpdump? Era um tcp ou udp?
PiL
Eu usei o udp para ambos os testes.
26410 stefita
Uhm ... você poderia tentar com outro farejador de pacotes?
PiL
2
O Wireshark usará o mesmo back-end que o tcpdump para capturar pacotes, portanto não fornecerá resultados diferentes (libpcap ou winpcap, dependendo da plataforma).
Jed Daniels
1
Você pode medir a perda de pacotes tcpdumpdurante a iperfsessão? É uma estimativa mais adequada do que a sua. Segundo, monitore o status do servidor durante o teste - pode ser que simplesmente descarte pacotes?
Lexsys 27/05

Respostas:

3

Eu experimentei um dataloss significativo com o iPerf no modo UDP como resultado da CPU não conseguir acompanhar. Por alguma razão, o iPerf com UDP parece consumir muito mais CPU do que o iPerf com TCP. Você experimenta as mesmas porcentagens de perda ao configurar o iPerf para metade da taxa?

Para responder à sua segunda pergunta sobre quanta perda de pacotes é aceitável, depende realmente de qual aplicativo você está executando, de quanto tráfego possui. Realmente, não deve haver perda se você estiver abaixo do seu limite de largura de banda. Para a maioria das coisas, eu provavelmente não reclamaria muito de 0,25%, mas ainda há muita perda se você estiver executando a taxas realmente altas.

[EDIT 1] Alguns outros pensamentos que tive sobre o assunto:

  1. Tente aumentar as taxas do iPerf. Se houver um problema sistêmico em algum lugar, é provável que você experimente a mesma porcentagem de perda, independentemente da taxa. Se você estiver nos limites do seu hardware ou o seu provedor fizer algum tipo de RED , provavelmente não haverá perdas até uma determinada taxa e, em seguida, perdas incrementalmente piores, quanto mais alto você for.
  2. Faça sua medição tcpdump da sessão do iPerf, apenas para verificar se seus testes são precisos.
  3. Experimente o iPerf com TCP. Isso não informará perda, mas se você estiver tendo perda, a conexão não poderá aumentar muito. Como a latência também afetará isso, teste um terminal com a menor latência possível.
  4. Dependendo do equipamento que você possui na parte interna da sua conexão, verifique se está o mais próximo possível. Por exemplo, se você tiver vários comutadores entre o sistema de teste e o roteador de borda, vá para um comutador diretamente conectado.
  5. Se você possui um switch gerenciado, verifique as estatísticas nele para garantir que a perda não ocorra lá. Eu encontrei alguns switches mais baratos que começam a cair quando você chega perto de 100 Mbps de tráfego UDP neles (na maioria dos casos, switches antigos e baratos não gerenciados).
  6. Experimente iPerfs simultâneos de dois clientes diferentes para dois hosts diferentes, para ter certeza de que o limite não é resultado da CPU ou de uma placa de rede local barata.
Jed Daniels
fonte
Essa poderia ser uma boa razão. Infelizmente, não posso testar agora, devido a problemas de firewall. Voltarei à sua resposta assim que realizei um novo teste.
28410 stefita
0

Bem, com o TCP, existem mecanismos para maximizar a utilização de um fluxo; com o UDP, não. Portanto, cada aplicativo precisa criar seus próprios mecanismos, portanto, provavelmente, cada aplicativo usa uma abordagem diferente para fazer isso. Provavelmente, o Iperf permitirá que mais pacotes sejam perdidos porque está tentando alcançar a largura de banda máxima disponível sem se preocupar se as informações são recebidas ou não. O outro aplicativo provavelmente tentará não perder muitos pacotes e reduzirá a taxa de pacotes à taxa de transferência disponível na conexão.

Tubo
fonte
0

Você usou o tcpdump para verificar a perda de pacotes ao usar o iPerf para garantir que a perda de pacotes calculada com o tcpdump corresponda ao iperf?

Você pode descobrir que seus métodos de medição não são comparáveis.

Craig
fonte
0

O iperf descarta automaticamente pacotes que chegam fora de sequência com o UDP? Você pode estar observando um pouco de instabilidade na conexão.

Lloyd Baker
fonte