Ich schreibe einen ziemlich niedrigen Treiber für eine Wireless-Karte, und während die meisten Spezifikationen ziemlich einfach sind, habe ich mich noch nicht mit einer einzigen Frage beschäftigt:
Wenn sich meine Station im Energiesparmodus befindet und der Empfänger für längere Zeit (z. B. 10 Sekunden) zwischen den DTIM-Frames ausgeschaltet ist und der Access Point in der Zwischenzeit neu gestartet wird, ist meine Verbindung verloren. Wie kann ich das tun? erkenne das?
Ich bin mir bewusst, dass der häufigste Fall darin besteht, dass die Synchronisation so gründlich verloren geht, dass ich einige Beacons vermissen werde und danach einfach zur AP-Suche zurück gehe, aber wenn ich Glück habe, sehe ich Beacons, Gibt es einen Weg, um herauszufinden, dass dies eine neue "Instanz" des gleichen AP ist?
Ich kann an
denkenAls Perfektionist würde ich gerne wissen, ob es einen völlig zuverlässigen Weg gibt, um zu erkennen, dass der AP neu gestartet wurde, anstatt nur Anhaltspunkte zu sammeln.
Ich würde vorschlagen, dass Sie sich die TSF in empfangenen Beacon-Frames ansehen und Wenn es zu stark von der erwarteten TSF abweicht, senden Sie NULL-Daten Rahmen zum AP. Wenn der AP neu gestartet wurde, sollte er mit a antworten Rahmen mit Grund löschen "Klasse 2 Rahmen von erhalten nicht authentifizierte STA ".
Ich kenne keine drahtlosen Karten auf dieser Ebene, aber ich würde einen praktischen Weg einschlagen und die Kommunikation vom AP, die gerade zur Trennung führt, nach einem Muster analysieren, das mit einer typischen Abschaltsequenz übereinstimmt; Beispiel: "Kein Verkehr mehr, plötzlicher Verlust der DTIM-Synchronisierung und dann eine AP-Ankündigung".
Ganz oben in meinem Kopf: Vielleicht sehen Sie sich Kismets AP-Erkennungs- und Analyse-Code für ein oder zwei Ideen an. Ich würde wetten, dass jemand anderes dieses Problem schon einmal begegnet ist.
Prost!
Tags und Links wifi low-level power-saving