適合新手學習的wifi模組總結資料(超詳細)

2021-08-28 19:49:27 字數 1754 閱讀 1350

適合新手學習的wifi模組總結資料(超詳細)

wlan技術

wlan是英文wirelesslan的縮寫,就是無線區域網的意思。無線乙太網技術是一種基於無線傳輸的區域網技術,與有線網路技術相比,具有靈活、建網迅速、個人化等特點。將這一技術應用於電信網的接入網領域,能夠方便、靈活地為使用者提供網路接入,適合於使用者流動性較大、有資料業務需求的公共場所、高階的企業及家庭使用者、需要臨時建網的場合以及難以採用有線接入方式的環境等。

四種主要物理元件

工作站(station):構建網路的主要目的是為了在工作站間傳送資料。所謂工作站,是指配備無線網路介面的計算裝置。

接入點(access point):802.11網路所使用的幀必須經過轉換,方能被傳遞至其他不同型別的網路。具備無線至有線的橋接功能的裝置稱為接入點,接入點的功能不僅於此,但橋接最為重要。

無線媒介(wireless medium):802.11標準以無線媒介在工作站之間傳遞幀。其所定義的物理層不只是一種,802.11最初標準化了兩種射頻物理層以及一種紅外線物理層。

分布式系統(distribution system):當幾個接入點串聯以覆蓋較大區域時,彼此之間必須相互通訊以掌握移動式工作站的行蹤。分布式系統屬於802.11的邏輯元件,負責將幀轉送至目的地。

下圖為802.11網路的基本服務集(basic service set),其中包含了這四種物理元件。

圖一wifi適配層

裡面定義很多字串變數和適配層的介面實現,是對wpa_supplicant程式通訊的介面封裝,用來完成上層和wpa_supplicant的通訊, 標頭檔案在libhardware/include/hardware下,這裡的函式用來向jni的本地實現提供呼叫介面。

這裡的函式,我把它們分為四類函式:

一類是命令相關的(控制)函式,就是在jni層android_***_command()函式所呼叫 的wifi_command()函式,呼叫流程如下:

android_***_command()=>docommand()=>wifi_command()=>wifi_send_command()=>wpa_ctrl_require()。

二類是 監聽函式,即wifi_wait_for_event()函式,呼叫流程如下:android_net_wifi_waitforevent()=> wifi_wait_for_event()=>wpa_ctrl_recv()。

三就是wpa_supplicant的啟動,連線,關閉函式

四是驅動的載入和解除安裝函式

圖二wpa_ctrl的作用

定義了兩類套接字和乙個管道,並分別實現了和wpa_supplicant的通訊,而在實際的實現中採用的都是套接字的方式,因此wpa_supplicant適配層和wpa_supplicant層 是通過socket通訊的。

要是從wifi.c中真的很難看出它和wpa_supplicant有什麼關係,和它聯絡密切的就是 這個wpa_ctrl.h檔案,這裡面定義了乙個類wpa_ctrl,這個類中宣告了兩個socket套介面,乙個是本地乙個是要連線的套接 口,wpa_ctrl與wpa_supplicant的通訊就需要socket來幫忙了,而wpa_supplicant就是通過呼叫 wpa_ctrl.h中定義的函式和wpa_supplicant進行通訊的,wpa_ctrl類(其實是其中的兩個socket)就是他們之間的橋梁。

python的爬蟲(八)(適合新手)

個人筆記 一系列 python爬蟲 一 python爬蟲 二 python爬蟲 三 python爬蟲 四 python爬蟲 五 python爬蟲 六 python爬蟲 七 python爬蟲 九 python爬蟲 十 python爬蟲 十一 這次想把爬取資訊用郵件的方式傳送給別人,那麼實現就要自動傳送...

適合新手的 webpack 詳細配置

我相信很多想學習 webpack 的童靴,一定都進過它的官網 webpack 中文官方文件 也有一定的了解 webpack 相關的知識啦,我在這裡就不多說了。估計很多同學和我一樣,看了官網的東西還是雲裡霧裡,這 webpack 到底怎麼用呢?什麼時候該用什麼呢?本文就來說說,對於新手而言的 webp...

適合新手學的 mysql DML基本語句

一.在mysql管理軟體中,ddl已經定義了資料庫結構。那麼如何對其中的資料進行管理呢?可以通過sql語句中的dml語言來實現資料的操作,包括使用 insert 實現資料的 插入 delete 實現資料的 刪除 update 實現資料的 更新。1.插入資料insert insert into 表名 ...