Como medir e minimizar a perda de pacotes UDP

2

Às vezes, enfrento quebra de voz ao chamar por meio de um aplicativo VOIP. Como todos os aplicativos VOIP usam UDP para transmissão de dados, existe alguma ferramenta no Linux para medir a quantidade de perda de pacotes e medir o desempenho da rede.

Qual poderia ser o motivo geral da perda de pacotes UDP e quais medidas eu preciso tomar quando há muita perda de pacotes?

    
por Supratik 20.12.2010 / 18:44

3 respostas

1

What could be the general reason for UDP packet loss

Congestionamento (muitos pacotes) com falta de QoS (pacotes aleatórios perdidos, VoIP não tratado com prioridade) e / ou equipamentos defeituosos (qualidade da linha, etc.) Para o primeiro, obtenha equipamentos com capacidade QOS, para o último, verificar as linhas (hardware, interruptores, o que for) por serem ruins.

Para uma conexão com a Internet, você precisa de roteadores QOS em ambas as extremidades - o que você não terá (a menos que o VoIP seja oferecido pelo seu provedor, então ele provavelmente tem a infraestrutura no lugar). Dito isto, uma vez que o seu canal descendente é normalmente muito maior do que o canal ascendente, um router local a priorizar apenas o canal descendente é normalmente "suficientemente bom".

A má qualidade da linha é um problema difícil de lidar.

    
por 20.12.2010 / 18:53
0

Se você está sofrendo perda de pacotes UDP, você provavelmente está sofrendo com a perda de pacotes TCP também. A diferença é que o TCP irá retransmitir pacotes perdidos e o UDP não. As aplicações de VoIP não podem retransmitir porque, se o fizessem, as informações não seriam mais válidas.

Suponho que suas chamadas VoIP estão passando pela Internet. A QoS pode ser necessária, mas não fará bem se a sua conexão com a Internet não estiver funcionando corretamente. Use este teste de perda de pacotes para verificá-lo. Ele irá dizer-lhe que a perda de pacotes está acontecendo, ou seja, no ISP ou no seu site local.

Se encontrar problemas no seu site local, é hora de verificar seu modem a cabo ou DSL para obter uma boa relação de ruído de sinal, potência de saída e atenuação (DSL).

    
por 21.12.2010 / 04:45
0

Um dos principais culpados da perda de UDP, especialmente em LANs, é o excesso de buffer. Isso pode acontecer no switch ou nos servidores de envio ou de recebimento. Um mecanismo que você pode usar no Linux para verificar a perda de pacotes é executar o seguinte comando:

watch -n 1 -d 'cat /proc/net/udp'

Isso mostrará uma saída semelhante à seguinte, onde a última coluna é o número de pacotes descartados:

Every 1.0s: cat /proc/net/udp                                                                                                                                 Mon Sep 28 15:01:00 2015

  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode ref pointer drops
11362: 00000000:3443 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 18224 2 ffff880808040000 0
19543: 00000000:D438 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 3809742 2 ffff8808060c8400 0
30819: 00000000:0044 00000000:0000 07 00000000:00000000 00:00000000 00000000     0        0 12644 2 ffff88100f2b0400 0

Você pode então tentar vários truques diferentes para tentar resolvê-los (novamente usando o Linux como exemplo):

  • garantir que o aplicativo que está consumindo os dados tenha CPU suficiente disponível
  • certifique-se de que os encadeamentos que executam a E / S estejam o mais próximos possível do dispositivo de rede
  • certifique-se de que os tamanhos de buffer do udp sejam grandes o suficiente para acomodar os dados (novamente, você pode observar a saída do comando watch para ver se as colunas tx_queue ou rx_queue crescem) e aumentar os buffers udp usando sudo sysctl -w 'net/ipv4/udp_mem=xxx yyy zzzz' , ou sysctl -w 'net/core/rmem_default=????' , ou sysctl -w 'net/core/wmem_default=????' (note que o xxx, yyyy, zzz são definidos como aqui

Em uma auto-promoção sem vergonha, eu criei um produto chamado Pontus Vision Thread Manager que continuamente ajusta isso automaticamente.

    
por 28.09.2015 / 16:20