wifi基本框架

2021-08-27 03:08:48 字數 1517 閱讀 7184

wifi系統框架

wifi流程圖:

第二部分: jni 層分析

frameworks/base/core/jni/android_net_wifi_wifi.cpp.這個檔案裡面是呼叫hal層的wifi.c裡面對應方法的介面的集合,提供給frameswork層的類wifinative裡面的方法呼叫

第三部分: hal 層分析

3,1驅動的載入和解除安裝

wifi_load_driver():驅動的載入。wifi驅動是編譯成ko檔案, ko檔案儲存的位置。

3,2 wpa_supplicant 相關(上行介面)

3,3 資料傳輸(涉及wpa_supplicnt的上行介面)

3,3,1 傳送資料

wifi_command(const char *command, char*reply, size_t *reply_len):這個方法被jni呼叫,主要是上層傳送命令通過這個方法傳遞給wpa_supplicant。

3,3,2 接受資料

wifi_wait_for_event(char *buf, size_tbuflen):上層呼叫這個方法阻塞等待wpa_supplicant傳遞上來的資訊,主要是呼叫wifi_ctrl_recv(struct wpa_ctrl *ctrl, char *reply, size_t *reply_len)來實現。

3,4 wpa_supplicant

就是wifi驅動和使用者的中轉站外加對協議和加密認證的支援。

3,4,1上行介面:

wpa_supplicant提供兩種方式的上行介面。一種基於傳統dbus機制實現與其他程序間的ipc通訊;另一種通過unix domain socket機制實現程序間的ipc通訊。

3,4,2下行介面:

wpa_supplicant提供的下行介面主要用於和kernel(driver)進行通訊,下發命令和獲取資訊。wpa_supplicant下行介面主要包括三種重要的介面:

(1)pf_inet socket介面,主要用於向kernel傳送ioctl命令,控制並獲取相應資訊。

(2) pf_netlink socket介面,主要用於接收kernel傳送上來的event 事件。

(3) pf_packet socket介面,主要用於向driver傳遞802.1x報文

3,5 wpa_supplicant 和kernel 的互動

wpa_supplicant與kernel互動的操作,一般需要先明確驅動介面,以及使用者態和kernel態的介面方法,以此來進行呼叫操作這裡分為4個步驟。

1.首先需要明確指定的驅動介面。因為有較多的驅動介面可以使用,如wext、nl80211等。指定了之後,才能呼叫相應介面的方法。

2.儲存驅動介面

3.介面方法的實現(分為使用者態和kernel態)。

系統已經定義了,我們只需找到定義的地方,了解有哪些方法。

4.互動

(a)使用者態向kernel態傳送請求(通過ioctl)

(b)kernel態向使用者態傳送事件通知(通過netlink)

wifi探針基本概念

1 wifi探針技術 wifi 探針技術是指基於wifi探測技術來識別ap 無線訪問接入點 附近已開啟 wifi 的智慧型手機或者wifi終端 筆記本,平板電腦等 無需使用者接入wifi,wifi探針就能夠識別使用者的資訊。有以下幾個特點 1 使用者無需參與,只要wifi開啟,就可被探測到,無需連線...

wifi的基本概念

一.802.11 a b g n協議概念和區別 首先802.11 是一種無線區域網標準。802.11 a b g n ac 都是由802.11 發展而來的。不同的字尾代表著不同的物理層標準工作頻段和不同的傳輸速率,也就是說它們的物理層和傳輸速度不同。協議 頻率 訊號 最大傳輸速率 802.11 2....

WiFi基本引數

分享幾個wifi的幾個核心引數 beacon interval 間隔調高有助於無線網路效能 client 端省電,間隔調低可以加快wireless client 鏈結上去速度 beacon傳送頻繁frame會比較占用無線頻寬資源 beacon 單位通常以微秒 millsecond 為單位 1 100...