網上發現乙個哥們對hostapd,已經進行了一些大**已經進行了分析,可以去看看,寫的很不錯
hostapd作用介紹:
hostapd主要負責管理工作站(station)認證和接入。因此,它只處理管理幀(management frame),並不處理資料幀。即業務資料流量什麼的並不接受。
主要的核心函式為:
hostapd_driver_init(inte***ces
.iface
[i])
hostapd_setup_inte***ce(inte***ces
.iface
[i])
hostapd_driver_init //hostapd配置初始化
hostapd_setup_inte***ce // 初始化網絡卡,啟動
無線資料接收部分:
建立monitor(類似有線的混雜模式)監聽無線資料接收:
capwap_create_iface(drv, buf, nl80211_iftype_monitor, null,0);
eloop_register_read_sock(drv->monitor_sock,
handle_monitor_read,drv, null);
handle_monitor_read主要進行管理幀的處理,
802.11的管理幀主要有信標幀(beacon)、探測請求幀(probe request)、探測回應幀(probe response)、請求認證幀(authentication request)、認證回應幀(authentication response)、請求關聯幀(association request)和關聯回應幀(association response)等
handle_monitor_read: 處理接收的管理幀,分為local_mac 和 split_mac 兩種處理管理幀模式,但是協議並沒有明確規定處理端,因此各廠商對這部分功能的實現也是各有不同。
接收到的資料會帶有radiotap頭
radiotap頭部分析:
處理具體管理幀
wpa_supplicant_event –> 這裡是鏈結到 hostapd_wpa_event函式
管理幀處理
case event_rx_mgmt:
if (!
data
->rx_mgmt.frame)
break;
#ifdef need_ap_mlme
if (hostapd_mgmt_rx(hapd, &
data
->rx_mgmt) >
0) break;
#endif
/* need_ap_mlme */
hostapd_action_rx(hapd, &
data
->rx_mgmt);
break;
–> ieee802_11_mgmt 處理各個種類幀
在ieee802_11_mgmt裡可以看到相關路由器中的黑白名單之類的配置,具體操作時候可以呼叫到這裡。
ap的接入過程分析:
裡面還寫了一些相關ap的一些基礎知識。
ps : ap的作用就相當於交換機的功能,可以說它是無線交換機,實現無線資料的**功能。
怎麼將sta加入到ap中使用時庫libnl提供的相關介面,具體實施過程,我也沒去了解,具體可以看文件:
官方文件:
中文文件:
官方提供的文件裡,庫函式的函式說明查詢十分麻煩,建議直接去官網下個libnl的原始碼看,這樣會比較直觀比較快。
最後說下幾個可能會使用到名字,例如ssid,bssid,bss,ess等等
A 無線網路
accept 29 submit 107 time limit 1000ms memory limit 65536kb description 現在無線網路愈來愈普及,人們對網路質量的要求也愈來愈高。我們假設要在一條筆直的公路上安置無線網路接入點,以方便兩旁的居民上網。設公路的乙個終點為起點,那麼居...
Debian 無線網路
1.檢視網絡卡型號 lsmod grep ipw 2.安裝驅動 aptitude install firmware iwlwifi wireless tools modprobe ipw2200 重啟,網絡卡應該可以被探測到。3.使用方法如下 檢視網絡卡資訊 iwconfig 檢視附近可用的無線網路...
WIFI 無線網路
一般架設無線網路的基本配備就是無線網絡卡及一台ap,如此便能以無線的模式,配合既有的有線架構來分享網路資源,架設費用和複雜程度遠遠低於傳統的有線網路。如果只是幾台電腦的對等網,也可不要ap,只需要每台電腦配備無線網絡卡。ap為accesspoint簡稱,一般翻譯為 無線訪問節點 或 橋接器 它主要在...