您似乎認爲手機會永久性地爲每個已知網絡發出探測請求。
這是不是的情況 - 而不僅僅是電話,但一般。引用Wi-Fi聯盟[*]:
什麼是被動和主動掃描?
客戶端掃描的原因是確定一個合適的AP,客戶端可能 [需要我的]現在或將來需要漫遊的AP。客戶可以使用兩種 掃描方法:主動和被動。 在主動掃描期間, 客戶端無線電發送探測請求並偵聽來自AP [強調我的]的探測響應 。 通過被動掃描,客戶端收音機在每個通道上監聽由AP定期發送的信標 [再次強調我的] 。被動掃描通常需要更多時間,因爲客戶端必須監聽並等待信標,而不是主動探測尋找AP。被動掃描的另一個限制是,如果客戶端在通道上等待的時間不夠長,則客戶端 可能會丟失AP信標。
所以這是完全應用程序/ OS依賴,如果
手機STA進行主動掃描,發送探測請求,
或只是座位那裏聽信標(或什麼都不做完全)。
在我的記憶 - 它已經有幾年沒工作/看着Android的代碼,因此它可能有變化 - Android將不進行主動掃描,因此將不發送探測請求到已知的SSID,,除非你在Wi-Fi網絡設置屏幕。它只會聽信標。
有這背後一定的Wi-Fi 802.11設計原理:
STA應該是移動的。畢竟,如果你不是從 不時移動,使用Wi-Fi沒什麼意義(除了市場營銷 或懶惰,當然智能手機改變了這一點),你可能會得到 有線。
...如果你是移動,這是合理的認爲你在 電池運行,
所以你想節省電池壽命:所以你寧願做被動 掃描聽信標而不是主動掃描發送探測器 請求,因爲這使用更少的功率。
這種節能替代能力的想法在802.11設計中被廣泛應用,隱藏在地毯下,當你是一個STA的時候。
因此,它完全是OS堆棧/應用程序依賴於STA,如果它1 /只聽信標/ 2主動發送每個已知AP的探測請求3 /發送廣播探測請求,並且如果它這樣做以連續的方式,或者定期地,或者取決於它是否處於已知狀態(如果屏幕開啓,並且用戶進入Wi-Fi網絡設置屏幕)。
現在可能還有其他一些考慮因素,如某些地區性法規要求您首先聽信標以決定是否可以使用某些渠道。但重點在上面。
*:
http://www.wi-fi.org/knowledge-center/faq/what-are-passive-and-active-scanning
編輯:
在編程方面:
1 /你似乎有什麼是IOP(互操作性)的問題,因爲您期望STA提供有關掃描主動和被動以及涉及的探測請求的特定行爲,而這不是它在這方面的工作原理真實的世界。根據您的應用程序的最終主要目標,這可能是設計中的一個缺陷 - 或者只是一個小小的麻煩。您可能想限制自己某個特定設備的品牌,或嘗試涵蓋所有具有開發成本的情況。
2/...或者你只是對你的觀察感到驚訝,並尋找解釋。在這種令人驚訝的結果的情況下,不言而喻:直接去wireshark檢查你的程序觀察(如果你的程序是一個數據包嗅探器)或行爲(如果你的程序是一個客戶端/服務器/層XYZ協議實現)。
關於802。關於主動和被動掃描和省電的11種策略:
來自Matthew S.Gast的「802.11無線網絡:權威指南,第二版」(IEEE 802.11工作組成員, 802.11任務組M.作爲Wi-Fi聯盟無線網絡管理營銷任務組的主席,他領導了對節能,性能優化,位置和定時服務的認證要求的調查。我可以強烈推薦一本書。
p。 171:
ScanType(主動或被動)
主動掃描使用探測請求幀的傳送來 識別所述區域網絡。被動掃描通過 監聽信標幀節省電池電量。
p。 172:
被動掃描
被動掃描節省電池能量,因爲它不需要 發送。在被動掃描中,電臺將移動到頻道列表的 的每個頻道,並等待Beacon幀。
此外,有點舊(2003年),但這些傢伙知道他們的網絡的東西。關於掃描策略:
從思科「802.11無線LAN基礎知識」第5章「移動性」。
頁153:
漫遊算法
,以確定何時漫遊不是由IEEE 802.11 規範中定義和是的機構,因此,左到供應商實現。 [...]這些算法由供應商實施 的事實爲供應商提供了一個機會,通過創建 比競爭對手更好的新算法來實現差異化。漫遊 算法成爲供應商的「祕密武器」,因此對其保密。
頁154 「確定在何處漫遊」:
沒有爲掃描沒有理想的技術。被動掃描的好處是不需要客戶端發送探測請求,但 存在潛在缺失AP的風險,因爲它可能不會在掃描期間收到信標。主動掃描具有主動尋找要關聯的接入點但要求客戶端主動發送探測的好處。取決於802.11客戶端的實現 ,可能比其他更適合。 對於 的例子,許多嵌入式系統使用被動掃描作爲首選方法 方法 [強調我的] [...]
其他有趣的東西在第155頁,「搶先AP發現」。
嗯,我明白了。但順便說一句,當我說「有些手機根本不播放ssids」時,我測試的所有廣播探測請求。 從我之前讀過的內容來看,主動式掃描比被動式掃描更節能,因此它的發明。 –
另外,是不是主動發現必須連接到隱藏網絡? 但是從我看到的,甚至一些隱藏的網絡沒有被播出 –
這是另一個問題,但「隱藏網絡」是一個荒謬的虛假安全措施,你不應該關心,也不是愚蠢的用戶配置他們AP等。這只是一個技巧,它依賴於SSID是純32字節,沒有字符串終止或沒有任何內容,沒有UTF-8或任何編碼的事實,所以它們可能只是「回車+回車+換行+製表符+空格」 。或者只有32'0'字節。沒有「隱藏的SSID」這樣的東西。 – jbm