
Ich habe seltsame Probleme auf meinem Windows 7-PC: Ich habe versucht, den VLC Media Player so einzurichten, dass Audio über RTP gestreamt wird, jedoch geht eine große Anzahl ausgehender UDP-Pakete verloren.
Nach einiger Fehlerbehebung habe ich festgestellt, dass mein PC die gleichen gestreamten Pakete von einem anderen PC problemlos empfangen kann (kein eingehender UDP-Verlust). Wenn mein PC jedoch für die Übertragung des Streams eingerichtet ist, kommt es zu einem UDP-Paketverlust von über 26 %. Selbst wenn die PCs über ein gerades CAT5-Kabel verbunden sind.
Nach einigen Wireshark-Befragungen scheint mein PC diese Pakete überhaupt nicht zu senden. Irgendetwas verhindert, dass sie gesendet werden. Was könnte die Ursache sein? Ich habe keine Ahnung.
Danke für jeden Hinweis.
//EDIT: Ich habe vergessen hinzuzufügen, dass es egal ist, ob der Stream Unicast oder Multicast ist. Die Ergebnisse sind dieselben.
Antwort1
Endlich habe ich eine Lösung gefunden: Wie ich von Anfang an befürchtet hatte, lag das Problem tatsächlich bei Windows. Aus irgendeinem Grund verwendet der IP-Stack standardmäßig nur 8-kByte-Puffer. (Komisch, nicht wahr?) Das reicht nicht für die paar kB UDP-Bursts, die VLC erzeugt.
Es besteht die Möglichkeit, die Größe des Sende-/Empfangspuffers des IP-Stacks mithilfe von Registrierungsschlüsseln zu erhöhen. Aus irgendeinem Grund fehlten diese Schlüssel auf meinem Computer vollständig, sodass die Größe die Standardgröße war.
Um die Sende-/Empfangspuffergrößen zu ändern, aktualisieren (oder erstellen) Sie diesen Registrierungsschlüssel. In meinem Fall wurde das Problem durch die Einstellung einer Puffergröße von 64 kB behoben. Jetzt kein UDP-Ausgangsverlust mehr.
[HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \Afd \Parameters]
DefaultReceiveWindow = 65536
DefaultSendWindow = 65536
Beide Werte sind DWORD (32 Bit), falls Sie diese erstellen müssen.
(Ich habe auch an den Puffergrößeneinstellungen in Netzwerkcontrollern herumgebastelt, das hat jedoch zu nichts geführt.)