Hallo Leute,
wir übertragen per TCP/IP Video-Daten, was einen möglichst kontinuierlichen Datenstrom erfordert, denn auch Puffergrößen beim Empfänger sind endlich. Es handelt sich um ein vollkommen autarkes Netzwerk, ein PC und n Empängermodule. Seitdem wir alle Broadcast-Quellen in Windows angeschaltet haben (Freigabedienste, Netbios etc.) funktioniert das soweit stabil. Nur exakt alle 10 min gibt es einen Aussetzer im Transfer für ca 1-2s, was im ungünstigsten Fall zu einem Buffer-Underrun beim Empfänger führt. Ich habe gelesen, dass unter Windows alle 10min der Arp-Cache gelöscht wird, was uns aber als Ursache wenig wahrscheinlich erscheint. Kennt jemand in der Runde noch andere Operationen, die das Betriebssytem in diesem Rhythmus auf Netzwerkverbindungen ausführt? Übrigens tritt der Effekt auch auf einem Mac auf.
Heimnetzwerke - WIFI, LAN, Router und Co 16.507 Themen, 80.999 Beiträge
Hallo supaburn1,
hat ein bisschen gedauert, hatte viel um die Ohren und wollte das auch an verschiedenen Standorten testen, damit das Ergebnis gesichert ist.
Es ist also tatsächlich so, dass das Problem durch den Refresh des Arp-Cache verursacht wird. Da das Paket-Routing letztendlich über die MAC-Adresse eines Netzwerkadapters läuft, ist Windows bzgl. dyn. MAC-Einträge während des Refreshs blind, die Kommunikation ist blockiert.
Zum Glück sind statische Einträge von dem Effekt nicht beroffen, sodass man ihn umgehen kann. Mit dem Kommando arp -s kann man selbst statische Einträge im Arp-Cache platzieren, was für bekannte Gegenstellen kein Problem ist. Deren MAC-Adresse bekommt man einfach heraus, man muss diese nur mit dem Kommando ping + IP-Adresse ansprechen und danach im eigenen Arp-Cache mit dem Kommando arp -a den dyn. Eintrag auslesen.
Einen kleinen Wermustropfen hat das Verfahren. Die IP-Adresse der Gegenstelle(n) muss natürlich statisch sein und der Arp-Cache wird beim Start des Betriebssystems neu gefüllt, auch statische Einträge gehen beim Herunterfahren verloren. Also bleibt nur der Weg, die Initialsierung per Batch-Job beim Hochfahren zu erledigen. Da das aber ein einmaliger Einrichtvorgang ist, stellt das eine praktikable Lösung dar.
Der Zyklus von 10 min hängt wie zu erwarten an einem Registry-Eintrag (ArpCacheMinReferencedLife unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters), der aber hidden ist und von Windows per default auf 600 Sekunden initialisiert wird. Das heißt, dass man den selbst erst anlegen muss, wenn man ihn auf einen anderen Wert setzen will. Für Änderungen an der Registry gilt natürlich der alte Grundsatz: Erst sichern, dann schrauben !!!
Das Thema ist sicher recht speziell, aber falls doch mal jemand einen kontinuierlichen Datenstrom per TCP/IP realsieiren muss, bleibt als Fazit: alle Freigabedienste, NETBIOS und dyn. Arp-Cache abschalten bzw. durch statische Einträge umgehen. Damit funktioniert das jetzt zumindest bei uns ohne Probleme.
Gruß, michasabg