Niedrigste Latenz unter den 802.11-WLAN-Standards

8

Ich mache ein Projekt mit einem Arduino- und einem ESP8266-Modul, auf dem die esp-link-Firmware ausgeführt wird. Dadurch kann ich MQTT zur Steuerung des Arduino verwenden. Ich hatte mir stattdessen so etwas wie ein XBee-Modul angesehen - aber sie sind im Vergleich zum ESP8266 so verdammt teuer! ( Wenn Sie nicht wissen, was ESP8266 oder MQTT ist, machen Sie sich keine Sorgen - es reicht zu wissen, dass TCP über WLAN verwendet wird .)

Die MQTT-Pakete sind winzig, sodass der Durchsatz des Wi-Fi-Netzwerks niemals ein Problem darstellen wird. Latenz und Zuverlässigkeit sind jedoch große Faktoren. Das MQTT-System verwendet TCP, daher sollte es zuverlässig genug sein - aber ich bin mir über die Latenz nicht so sicher.

Ich habe die Wahl, eine 802.11b-, .11g- oder .11n-Verbindung für das Netzwerk zu verwenden, das der ESP8266 verwendet. Gibt es irgendetwas in einem dieser Standards, das dazu führt, dass einer eine geringere Latenz hat als jeder andere? Mit welcher würde ich die beste Leistung für sehr kleine und seltene Pakete erwarten?

Seanlano
quelle
1
Bei Überlegungen zur Latenz ist auch die andere Seite beteiligt, und es geht um die Qualität der Implementierung. Ich glaube nicht, dass theoretische Zahlen Sie sehr weit bringen werden.
PlasmaHH
google nach einem LWN-Artikel mit dem Titel "WLAN schnell machen".
Benutzer3528438

Antworten:

10

Zunächst einmal machen Sie etwas SEHR Richtiges, das viele IoT-Designer und -Benutzer nicht tun: Sie sind der Ansicht , dass der Betrieb zuverlässig und latenzbegrenzt sein muss. Das macht nicht jeder, und deshalb sind viele IoT-Geräte wirklich schlecht.

Die Wahl des Standards zwischen 802.11 b / g / n hat keinen großen Einfluss auf Ihre Latenz. Ich gehe davon aus, dass wir Latenzen <10 ms begrenzen, da alles daran "nur in 99,5% der Fälle mit guter WiFi-Hardware funktioniert".

Wenn Sie sich in einem latenzgebundenen Szenario befinden, werden Sie dies sicherlich nicht tun

  • Verwenden Sie TCP (und damit MQTT, das darauf aufbaut).
  • Verwenden Sie ein Gerät, das eine langsame serielle Verbindung emuliert. Wenn Ihre Pakete beispielsweise 4 Zeichen enthalten und Sie 9600 Baud haben, verbringen Sie eine Millisekunde damit, Daten vom µC zum WiFi-Gerät zu übertragen
  • Verwenden Sie WiFi, da es keine Garantie gibt, dass Ihre Station überhaupt innerhalb eines begrenzten Zeitfensters senden kann (nur eine Wahrscheinlichkeit).

Wenn Sie dagegen Zuverlässigkeit benötigen, dürfen Sie dies nicht tun

  • Verwenden Sie reines UDP (da es keine Garantie oder Rückmeldung gibt, dass die Pakete ihr Ziel erreichen).
  • Verwenden Sie ein reines Einwegfunkprotokoll (gleicher Grund)
  • Verwenden Sie einen ESP8266, der aufgrund fehlender Tests, Konstruktionen und Zertifizierungen für einen hochzuverlässigen Betrieb einen Preisvorteil bietet (und daher wird kein großer Elektronikhersteller dies verwenden, ohne diese Tests selbst durchzuführen. In diesem Fall sind vorgefertigte Module von vertrauenswürdigen Herstellern erhältlich normalerweise billiger werden)

Also, zunächst einmal definieren , was Ihre Latenzanforderungen und Ihre Anforderungen an die Zuverlässigkeit sind. Sie müssen ein Stück Papier haben, auf dem steht

Die Latenz für {eine | zwei} Kommunikation muss in {tolerierbaren Prozentsatz}% der Fälle <{maximale Latenz} sein. Es darf nicht mehr als {tolerierbarer Prozentsatz}% des Verlusts eines Pakets wahrscheinlich sein.

Dann können Sie sich die theoretischen Grenzen von Systemen und dann die praktischen Grenzen von Implementierungen derjenigen ansehen, die dazu passen.

Marcus Müller
quelle
Zuallererst machst du etwas SEHR richtig ... Danke! :) Es ist vorerst nur ein Spielzeugbeispiel, mehr als etwas, das ich als echtes Produkt zur Verfügung stellen möchte. Die Wahl des Standards zwischen 802.11 b / g / n hat keinen großen Einfluss auf Ihre Latenz. Ich dachte nicht, dass es zu viel Unterschied machen würde, dachte aber, ich würde fragen. Ich werde auch noch einige meiner eigenen Tests durchführen, aber offensichtlich habe ich nicht die Ausrüstung, um dies so gründlich durchzuführen wie ein Labor. Was das EPS8266 und Wi-Fi betrifft - ich dachte, da es billiger ist, würde ich es zuerst versuchen - und etwas anderes ausprobieren, wenn es nicht akzeptabel wäre.
Seanlano
Ich werde auf jeden Fall eine Aussage über meine akzeptable Latenz und Wahrscheinlichkeit eines Paketverlusts definieren - und diese als meine Kriterien verwenden, um den ESP8266 weiterhin zu verwenden oder nicht.
Seanlano