Pular para o conteúdo

Problemas comuns com a entrada UDP

UDP (User Datagram Protocol) - protocolo de comunicação em redes locais ou na Internet, com atrasos mínimos e estabilidade mínima.

Antes de começar a solução de problemas, recomendamos usar o nosso script System Tune para otimizar as configurações do Linux.

Com o Astra você pode analisar qualquer fonte compatível. Basta executar no console o seguinte comando:

Terminal window
astra --analyze "udp://eth0@239.255.1.1:1234"

Para parar o analisador do Astra, pressione Ctrl+C. Leia mais sobre o Astra MPEG-TS Analyzer

O Tcpdump é uma ferramenta comum para verificar o tráfego de rede. Por exemplo, o comando para verificar a recepção de multicast UDP no grupo 239.255.1.1 pela interface eth0:

Terminal window
tcpdump -pnni eth0 udp and host 239.255.1.1

Se você não sabe qual é a interface, pode encontrá-la com o comando:

Terminal window
ip route get 239.255.1.1

A saída do tcpdump aparece como várias linhas com informações sobre a origem, o destino e o tamanho dos pacotes. Por exemplo:

21:38:42.143839 IP 192.168.88.100.33610 > 239.255.1.1.1234: UDP, length 1316
21:38:42.143868 IP 192.168.88.100.33610 > 239.255.1.1.1234: UDP, length 1316

Para parar o tcpdump, pressione Ctrl+C

Não funcionar significa bitrate zero na saída do Astra MPEG-TS Analyzer. Por exemplo:

Jan 27 09:00:00: INFO: Bitrate: 0 Kbit/s
Jan 27 09:00:01: INFO: Bitrate: 0 Kbit/s

Primeiro verifique o tráfego na interface de rede com a ferramenta tcpdump. Se não houver informação sobre pacotes recebidos, você precisa verificar a configuração da rede ou a configuração da fonte.

  1. Configuração de rotas inválida. Se você tem várias interfaces, verifique se a rota para o grupo multicast está configurada corretamente ou defina o nome da interface no endereço udp
  2. Problemas de conectividade. Verifique se o seu servidor está conectado à ethernet ou se a interface vlan foi criada
  3. Versão do IGMP incompatível. Por exemplo, o seu servidor usa IGMPv3, mas o equipamento de rede suporta apenas IGMPv2: Configurar a versão do IGMP

Se o tcpdump mostra informações sobre os pacotes UDP, os problemas podem ser os seguintes:

  1. UDP bloqueado pelas regras do firewall. Verifique a configuração do seu firewall
  2. Se o seu servidor tem várias interfaces, adicione uma rota para o grupo multicast ou configure o RP Filter: RP Filter e recepção de multicast no Linux

Os erros de CC (Continuity Counter) indicam que a continuidade dos pacotes está corrompida. O erro pode ser causado pela perda ou pelo excesso de pacotes:

Jan 27 09:00:00: INFO: Bitrate: 13259 Kbit/s
Jan 27 09:00:00: ERROR: CC: PID:18=3 PID:20=3 PID:256=24
Jan 27 09:00:01: INFO: Bitrate: 13261 Kbit/s
Jan 27 09:00:01: ERROR: CC: PID:18=5 PID:20=2

Primeiro é preciso verificar as perdas e os erros na interface de rede:

Terminal window
ip -s link show eth0

Observe os erros RX. Algumas placas de rede fornecem informações mais detalhadas sobre a natureza da perda:

Terminal window
ethtool -S eth0

As perdas podem não estar apenas nas placas de rede do seu servidor. Elas também podem estar na porta do equipamento de rede. Você encontra como ver isso na documentação do fabricante do equipamento de rede. Onde eth0 é o nome da interface. Depois da linha RX vem uma linha com números. O terceiro número são os erros de recepção UDP.

As configurações de Qualidade de Serviço (QoS) no seu equipamento de rede podem afetar o tráfego UDP. Confirme que as suas configurações de QoS priorizam o tráfego UDP e não limitam a sua banda.

O excesso de pacotes aparece como um bitrate dobrado no Astra MPEG-TS Analyzer. Pode ser verificado com o tcpdump, quando pacotes com o mesmo destino têm origens diferentes:

21:38:42.143839 IP 192.168.88.100.33610 > 239.255.1.1.1234: UDP, length 1316
21:38:42.143868 IP 192.168.88.100.24081 > 239.255.1.1.1234: UDP, length 1316

Pode haver duas causas:

  • Se o endereço de origem é o mesmo, mas as portas são diferentes (no exemplo, 33610 e 24081), o servidor de origem envia o mesmo canal duas vezes
  • Se os endereços de origem são diferentes, mais de um servidor está enviando pacotes para o mesmo grupo

Nos dois casos é preciso verificar a configuração do servidor remoto. Se isso não for possível, ou como solução temporária, você pode descartar os pacotes da segunda fonte com o firewall.