Langsame TCP / IP- und UDP-Kommunikation

2

Ich arbeite mit einem Gerät an einer Metallschneidemaschine, die über TCP / IP oder UDP über Ethernet kommuniziert. Ich habe ein Testprogramm geschrieben, das zehn Register schreibt und liest und wie lange es dauert, bis der Prozess abgeschlossen ist.

Auf einem Windows 7 Professional-Computer dauert der Test durchschnittlich 200 Millisekunden. Auf einem Windows 10-Computer dauert derselbe Test durchschnittlich 320 Millisekunden. Dies ist mit der gleichen Hardware wie Windows 7 und Windows 10 auf zwei verschiedenen Festplatten und Swap installiert.

Meine Frage ist, was kann ich unter Windows 10 überhaupt so konfigurieren, dass der Test nahezu mit der Geschwindigkeit läuft, mit der er unter Windows 7 ausgeführt wird? Oder ist Windows 10 nur wesentlich langsamer. Unser Verdacht ist, dass dies sicherheitsrelevant ist, wir jedoch keine Einstellung gefunden haben, die den Windows 10-Test verbessert.

RS Conley
quelle
3
Hier bietet sich WireShark an, da Sie die Nutzlast und die Antwortpakete überprüfen können und damit die Verzögerung besser nachvollziehen können. Es ist jedoch nicht das einfachste Werkzeug ...
spikey_richie
1
@spikey_richie Mir ist Wire Shark bekannt, aber wie würde es bestimmen, was das Problem intern in Windows 10 verursacht. Soweit mir bekannt ist, können Probleme mit dem Pfad zwischen zwei Geräten verfolgt werden. Keine internen Probleme mit Windows 10. Wir haben genau denselben Computer, genau dasselbe Kabel, genau dasselbe Gerät und genau dasselbe Testprogramm. Der EINZIGE Unterschied ergibt sich aus dem Booten von Windows 10 gegenüber Windows 7.
RS Conley,
Welche Sprache und Versionen verwenden Sie? 'C', Python, ist es in Cygwin, ... Seit Sie die Betriebssystemversionen geändert haben, haben Sie möglicherweise auch abhängige Bibliotheken geändert. Die Firewall-Verarbeitung stellt sich vor die Frage, ob das Netzwerk wirklich funktioniert und Wireshark in der Lage sein soll, festzustellen, ob zwischen den Paketen Latenzzeiten bestehen und wie sich diese ändern.
Hogstrom
@Hogstrom C # und neueste Version von .NET 3.5. Auf Windows 7 und Windows 10 ist dieselbe Framework-Version installiert. Der EINZIGE Unterschied ist das Betriebssystem. Wir haben versucht, die Firewall und das Virenschutzprogramm auszuschalten, und der Unterschied ist immer noch vorhanden. Entweder sind Windows 10-Binärdateien langsamer bei der Verarbeitung von UDP- oder TCP-Paketen, oder es gibt andere Einstellungen, die sich unterscheiden. Und etwas, das ich versäumt habe, meinen Fragen hinzuzufügen. Beide Festplatten sind Neuinstallationen mit den neuesten ISOs (für 7 und 10) von MSDN.
RS Conley
1
@RSConley Wenn dies Sie immer noch betrifft und Sie die beiden Maschinen zur Verfügung haben, können Sie ihre TCP-Konfiguration vergleichen, indem Sie 'netsh interface tcp show global' in einem cmd-Fenster
ausführen

Antworten:

0

Ich hatte ein ähnliches Problem und es lief auf den Wert von ReceiveBufferSize hinaus. In Win7 ist die Standardgröße 8 KB, in Win10 64 KB.

  1. Stellen Sie sicher, dass Sie die Puffergröße nirgendwo überschreiben.
  2. Wenn Sie nicht glauben, dass Sie dies tun, versuchen Sie es explizit auf 64 KB.
Mihalios
quelle