Die Antwortzeit der Socket-Kommunikation variiert je nach Gerät

338
Domonkos Baksa

Das Projekt, an dem ich arbeite, erfordert eine NodeMCU (ESP8266 WiFi-Modul), um eine Verbindung zu einem Gateway (Advantech ARK-1123) herzustellen, das mit einem WLAN-Adapter ausgestattet ist. Nachdem das Gateway ein separates drahtloses Netzwerk erstellt und den Knoten verbunden hatte, stellte ich fest, dass die Antwortzeit, eine Nachricht vom Gateway als Socket-Client zu empfangen und einige Daten zurückzusenden, 350 ms pro zurückgesendeter Leitung beträgt .

Nachdem ich den NodeMCU-Code analysiert und nichts gefunden hatte, was dazu führen könnte, habe ich versucht, dasselbe Programm mit verschiedenen Geräten zu testen. Die Ergebnisse waren, dass es ~ nimmt 350ms eine Zeile an das Gateway zu senden, ~ 150 ms auf einem anderen PC mit einem USB - Wireless - Adapter und ~ 10 ms auf mein Handy mit einer TCP - Client - Anwendung, und zwar unabhängig von dem Netzwerk verwendet wird, oder die Art, wie die PCs sind mit dem Netzwerk verbunden (verkabelt oder drahtlos). Ich bin sicher (naja, eher wie Hoffnung), es gibt einige Netzwerkeinstellungen, die ich auf den PCs übersehen kann, was standardmäßig auf dem Telefon ist. Das Ziel wäre, die Zeit auf 10-15 ms am Gateway zu reduzieren.

Irgendwelche Ideen?

0
Unterschiedliche Netzwerkkarten, unterschiedliche MTU-Größen, unterschiedliche Betriebssysteme und Netzwerkstacks, unterschiedliche Systemlasten. Seth vor 7 Jahren 0
Sicher, aber macht es Sinn, dass mein Telefon schneller Daten empfängt als ein PC? Außerdem scheint 350ms absurd, eine Zeichenfolge an ein Gerät im selben Netzwerk zu senden. Domonkos Baksa vor 7 Jahren 0
Ein [NodeMCU] (https://en.wikipedia.org/wiki/NodeMCU) führt mehrere Abstraktionsebenen interpretierter Sprachen aus und verfügt über einen einzelnen RISC-Kern mit ~ 80 MHz und ~ 128 kB Speicher. Je nachdem, was Sie sich vorstellen, ist es ziemlich einfach, es zu engagieren. Darüber hinaus sprechen Ihre Zahlen nur von der WLAN-Leistung, die von a bis ac + variieren kann, je nachdem, was Sie tatsächlich tun und wie Sie die Geräte anschließen. In diesem Fall haben Sie eine beliebige Anzahl von Variablen, die die Antwortzeiten beeinflussen können. Seth vor 7 Jahren 0
Ich habe meinen NodeMCU-Code von allem entfernt, das nicht mit dieser Kommunikation zusammenhängt, um sicherzustellen, dass er nicht von seiner Leistung abhängt. Ich kann den Code anfügen oder eine beliebige Konfiguration angeben, wenn Sie denken, dass dies helfen würde. Ich habe das Gefühl, dass eine Kommunikation als grundlegend gilt, da Socket Com nicht so lange dauern sollte. Das Ping des Geräts reagiert in 4-5 ms, was viel wahrscheinlicher erscheint. Domonkos Baksa vor 7 Jahren 0
Also waren diese Tests über TCP? War TLS beteiligt? War die TCP-Sitzung bereits aktiv oder mussten Sie jedes Mal einen 3-Wege-Handshake durchführen? War Ihr Hörer bereits aktiv oder wurde er von xinetd (oder von systemd oder was auch immer) faul gestartet? Spiff vor 7 Jahren 0

0 Antworten auf die Frage