So messen und minimieren Sie den UDP-Paketverlust

So messen und minimieren Sie den UDP-Paketverlust

Bei Anrufen über eine VoIP-Anwendung kommt es manchmal zu Sprachunterbrechungen. Da alle VoIP-Anwendungen UDP zur Datenübertragung verwenden, gibt es in Linux ein Tool, mit dem sich der Paketverlust messen und die Leistung des Netzwerks messen lässt?

Was könnten die allgemeinen Gründe für den Verlust von UDP-Paketen sein und welche Maßnahmen muss ich ergreifen, wenn viele Pakete verloren gehen?

Antwort1

Einer der Hauptgründe für UDP-Verluste, insbesondere in LANs, sind Pufferüberläufe. Diese können im Switch oder in den sendenden oder empfangenden Servern auftreten. Ein Mechanismus, mit dem Sie unter Linux Paketverluste feststellen können, ist die Ausführung des folgenden Befehls:

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

Dies führt zu einer Ausgabe ähnlich der folgenden, wobei die letzte Spalte die Anzahl der verlorenen Pakete angibt:

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

Sie können dann eine Reihe unterschiedlicher Tricks ausprobieren, um diese Probleme zu beheben (erneut verwenden wir Linux als Beispiel):

  • Stellen Sie sicher, dass die App, die die Daten nutzt, über genügend CPU-Kapazität verfügt.
  • Stellen Sie sicher, dass die Threads, die die E/A durchführen, so nah wie möglich am Netzwerkgerät sind
  • Stellen Sie sicher, dass alle UDP-Puffer groß genug sind, um die Daten aufzunehmen (Sie können auch hier die Ausgabe des Watch-Befehls beobachten, um zu sehen, ob die Spalten tx_queueoder rx_queuegrößer werden), und vergrößern Sie dann die UDP-Puffer mit sudo sysctl -w 'net/ipv4/udp_mem=xxx yyy zzzz', oder sysctl -w 'net/core/rmem_default=????', oder sysctl -w 'net/core/wmem_default=????'(beachten Sie, dass xxx,yyyy,zzz definiert sindHier

In unverhohlener Eigenwerbung habe ich ein Produkt namensPontus Vision Thread Managerdas dies kontinuierlich automatisch abstimmt.

Antwort2

Was könnte der allgemeine Grund für den Verlust von UDP-Paketen sein?

Überlastung (zu viele Pakete) mit mangelnder QOS (zufällige Pakete gehen verloren, VoIP wird nicht vorrangig behandelt) und/oder fehlerhafte Geräte (Leitungsqualität usw.). Besorgen Sie sich im ersten Fall QOS-fähige Geräte, im zweiten Fall überprüfen Sie die Leitungen (Hardware, Switches usw.), ob sie fehlerhaft sind.

Für eine Internetverbindung benötigen Sie an beiden Enden QOS-Router – die Sie nicht haben (es sei denn, Ihr Anbieter bietet VoIP an, dann verfügt er wahrscheinlich über die Infrastruktur). Da Ihr Down-Kanal jedoch normalerweise viel größer ist als der Up-Kanal, ist ein lokaler Router, der nur den Down-Kanal priorisiert, normalerweise „gut genug“.

Eine schlechte Leitungsqualität ist allerdings ein schwer zu behebendes Problem.

Antwort3

Wenn Sie UDP-Paketverluste erleiden, erleiden Sie mit ziemlicher Sicherheit auch TCP-Paketverluste. Der Unterschied besteht darin, dass TCP verlorene Pakete erneut überträgt und UDP dies nicht tut. VoIP-Anwendungen können nicht erneut übertragen, da die Informationen sonst nicht mehr gültig wären.

Ich gehe davon aus, dass Ihre VoIP-Anrufe über das Internet laufen. QoS kann notwendig sein, aber es nützt nichts, wenn Ihre Internetverbindung nicht richtig funktioniert. Verwenden Sie diesePaketverlusttestum es zu überprüfen. Es wird Ihnen sagen, wo Paketverlust auftritt, d. h. beim ISP oder an Ihrem lokalen Standort.

Wenn an Ihrem lokalen Standort Probleme auftreten, ist es an der Zeit, Ihr Kabel- oder DSL-Modem auf guten Signal-Rausch-Abstand, Ausgangsleistung und Dämpfung (DSL) zu überprüfen.

verwandte Informationen