Wi-Fi 總結(jié)

術(shù)語

術(shù)語 英文 中文
WLAN Wireless Local Area Networks 無線局域網(wǎng)絡(luò)
Wi-Fi 無意義(Hi-Fi 雙關(guān)) 無線網(wǎng)絡(luò)
WPA Wi-Fi Protected Access Wi-Fi 網(wǎng)絡(luò)安全存取
Wi-Fi Alliance Wi-Fi Alliance Wi-Fi 聯(lián)盟
MAC media access control -
WPS(AOSS/QSS) Wi-Fi Protected Setup Wi-Fi 保護設(shè)置
PBC Push Button Configuration 按鈕配置
PIN Personal Information Number PIN 碼
UFD USB Flash Device 存儲在USB接口的閃存設(shè)備上的信息
NFC Near Field Communication 近距離無線通信(通過刷卡)
AP Access Point (無線)接入點 / 基站
STA Station 站點 / 工作站
Wi-Fi P2P Wi-Fi peer-to-peer 點對點()
Wi-Fi Direct Wi-Fi 直連
SSID Service Set Identifier 服務(wù)集標識(無線網(wǎng)絡(luò)名字)
[wpa_supplicant wpa_supplicant 后端 wpa 請求者(ap, p2p)
wpa_cli wpa_supplicant 前端 wpa 客戶端面
Beacon Beacon 信標幀
WEP Wired Equivalent Privacy 有線等效保密

WEP:

Wired Equivalency Protection,一種Wi-Fi連接的安全標準,類似的安全標準還包括下面的WPA,WPA2纳像。它可以使用64/128bit的ASCII/HEX(0-9,A-F)的Password飒炎,它的密鑰是由Password和一個IV(初始化向量)組成刹勃,加密算法是stream cipher RC4兑凿,并使用 CRC-32校驗和確保完整性。加密解密過程如下:AP發(fā)送的數(shù)據(jù)包(包括IV和加密過的數(shù)據(jù))–>無線客戶端收到此數(shù)據(jù)包–>提取其中的IV旅挤,用于和本地的Password形成密鑰–>解密數(shù)據(jù)包。它有兩種鑒權(quán)方式:Open System, Shared Key.

Open System:

這種鑒權(quán)方式不需要客戶端提供任何credentials伞鲫,因此谦铃,實際上任何客戶端都可以嘗試與AP進行鑒權(quán)和連接,這其中并不存在實際意義上的鑒權(quán)榔昔。鑒權(quán)連接結(jié)束驹闰,AP用WEP密鑰加密數(shù)據(jù)瘪菌,這時,客戶端就需要正確的Password形成密鑰來解密

Shared Key:

通過四次握手并使用WEP加密來完成鑒權(quán)嘹朗。詳細區(qū)別請參閱:opensystem_vs_sharedkey.txt

WPA:

Wi-Fi Protected Access师妙,實現(xiàn)了802.11i的大部分標準,它和下面的WPA2有兩種鑒權(quán)方式,一是使用802.1x屹培,一種是使用Pre-Shared Key

WPA2:

Wi-Fi Protected Access默穴,完全實現(xiàn)802.11i標準

WPA個人版/WPA-PSK:

使用Pre-Shared Key鑒權(quán)方式的WPA,設(shè)計給負擔(dān)不起 802.1X 驗證服務(wù)器的成本和復(fù)雜度的家庭和小型公司網(wǎng)絡(luò)使用褪秀。同WPA2個人版/WPA2-PSK

WPA企業(yè)版:

使用802.1x鑒權(quán)方式給WPA蓄诽。同WPA2企業(yè)版

802.1X:

802.1協(xié)議族中的一部分,它是一種基于端口的網(wǎng)絡(luò)接入控制機制媒吗,它給希望接入LAN的設(shè)備提供了一種鑒權(quán)機制仑氛,它是基于EAP的.擴展閱讀:http://en.wikipedia.org/wiki/802.1x

EAP:

Extensible Authentication Protocol,一種普遍使用的認證機制,它是一個認證框架闸英,并不是一種特殊的認證機制锯岖。EAP提供一些公共的功能,并且允許協(xié)商所希望的認證機制甫何。這些機制被叫做EAP方法出吹,現(xiàn)在大約有40種不同的方法。當EAP被基于802.1x的網(wǎng)絡(luò)接入設(shè)備(諸如802.11a/b/g 辙喂,無線接入點)調(diào)用時捶牢,現(xiàn)代的EAP方法可以提供一個安全認證機制,并且在用戶和網(wǎng)絡(luò)接入服務(wù)器之間協(xié)商一個安全的PMK(Pairwise Master Key)巍耗。該PMK可以用于使用TKIP和AES加密的無線會話叫确。在Pre-Shared Key驗證方式中,PMK=PSK芍锦。

PMKSA:

PMK Security Association竹勉,參考:pmksa.txt

TKIP:

Temporal Key Integrity Protocol,數(shù)據(jù)傳輸加密算法(類似于WEP加密的 RC4 算法)

AES:

Advanced Encryption Standard娄琉,數(shù)據(jù)傳輸加密算法(類似于WEP加密的 RC4 算法)

CCMP:
Counter Mode with Cipher Block Chaining Message Authentication Code Protocol次乓,數(shù)據(jù)完整性編碼校驗算法(類似于WEP中 CRC32 算法)

MIC:

數(shù)據(jù)完整性編碼校驗算法(類似于WEP中 CRC32 算法)

總結(jié)Wifi連接過程大致如下:
客戶端與AP的鑒權(quán),與AP建立連接孽水,若使用加密票腰,AP發(fā)送并加密數(shù)據(jù)包驱闷,無線客戶端接收并解密數(shù)據(jù)包者娱。密碼學(xué)中有兩個概念:加密算法和密鑰琉历,通過這兩個東西來解加密過的數(shù)據(jù)包。 密鑰析恢,對于WEP咙轩,WPA/WPA2個人版來說眶明,總是由一個Pre-Shared Key惩坑,加上其他元素,經(jīng)過一系列過程產(chǎn)生而來朝扼,這個Pre-shared Key就是我們平時接入Wi-Fi時需要輸入的密碼赃阀。對于WPA/WPA2企業(yè)版,這個Pre-Shared Key叫做PMK擎颖,形成密鑰的過程原理相似榛斯。 目前,EAP方法基本上是與802.1x一起使用

image.png

目前Wi-Fi的加密模式主要有:WEP搂捧,WPA驮俗,WPA2-PSK。

2.4G 與 5G

隨著無線設(shè)備數(shù)的增加. 2.4GWi-Fi 已滿足不了人們的日常需求, 5GWi-Fi應(yīng)運而生, 先看下標準定義

IEEE802.11協(xié)議對2.4GHz頻段的規(guī)定:

頻率范圍:2.4GHz~2.4835GHz允跑;14個信道王凑,信道帶寬20M(相鄰多個信道頻率重疊)。下面你看到的頻率范圍包含22M吮蛹,是因為有2M被用作強制隔離頻帶,不參與數(shù)據(jù)傳輸拌屏。

在中國潮针,2.4G這條高速公路上一共有13條車道(信道)。

雖然一共有13條車道倚喂,但由于資源有限每篷。所以,不同車道之間端圈,便會存在共用“路面”的問題焦读。13條車道中,最多只有3條車道可以不相互影響舱权,例如1矗晃、6、11車道互不相互干擾宴倍。

IEEE802.11協(xié)議對5GHz頻段的規(guī)定:

頻率范圍:5.150-5.250GHz张症、5.250-5.350GHz、5.470-5.725GHz鸵贬、5.745-5.825GHz俗他;共201個信道,信道帶寬40M/80M/160M(可選擇阔逼,相鄰多個信道頻率重疊)兆衅。

雖然中國5G車道只有 4 個,但每個相鄰的車道間距有20MHz(2.4G車道間距是5MHz),在20MHz時羡亩,車道之間不會有干擾摩疑。如果為了提升速率,把兩個20MHz的車道合在一起夕春,就形成了40MHz未荒。以此類推,中國5G頻段最多可以提供80MHz的超大車道及志,所以5G的速率自然快樂片排。

wpa_supplicant

wpa_supplicant本是開源項目源碼,被谷歌修改后加入android移動平臺速侈,它主要是用來支持WEP率寡,WPA/WPA2和WAPI無線協(xié)議和加密認證的,而實際上的工作內(nèi)容是通過socket(不管是wpa_supplicant與上層還是wpa_supplicant與驅(qū)動都采用socket通訊)與驅(qū)動交互上報數(shù)據(jù)給用戶倚搬,而用戶可以通過socket發(fā)送命令wpa_supplicant調(diào)動驅(qū)動來對WiFi芯片操作冶共。

簡單的說,wpa_supplicant就是WiFi驅(qū)動和用戶的中轉(zhuǎn)站外加對協(xié)議和加密認證的支持每界。

wpa_supplicant是支持WPA和WPA2(IEEE 802.11i / RSN)的Linux捅僵,BSD,Mac OS X和Windows的WPA請求者眨层。它適用于臺式機/筆記本電腦和嵌入式系統(tǒng)庙楚。請求者是在客戶站中使用的IEEE 802.1X / WPA組件。

它實現(xiàn)與WPA身份驗證器的密鑰協(xié)商趴樱,并控制WLAN驅(qū)動程序的漫游和IEEE 802.11身份驗證/關(guān)聯(lián)馒闷。wpa_supplicant被設(shè)計成一個在后臺運行的“守護程序”程序,并作為控制無線連接的后端組件叁征。

wpa_supplicant支持單獨的前端程序纳账,包含基于文本的前端(wpa_cli)和GUI(wpa_gui)。

wifi 的 concurrent mode

所謂wifi的共存模式捺疼,有以下幾種:

  1. station mode + station mode
  2. station mode + ap mode
  3. station mode + p2p mode
  4. p2p mode + ap mode

目前android自從JB version后疏虫,就開始支持station + p2p的共存,但其他的共存模式目前在android上都還未支持∑『簦現(xiàn)在市面上的wifi驅(qū)動主要是支持前三種共存议薪,目前第四種共存模式,暫未見到媳友;而station+ap mode,目前我們有在BXXX項目中使用斯议,使用場景就是:

做Ap供其他的mid或phone來連接,同時自己又做station mode來連接外面可以上網(wǎng)的路由器醇锚,這樣在mid或phone上哼御,就可以在訪問BXXX的同時坯临,還可以上網(wǎng)。BXXX自己當然也可以上網(wǎng)了恋昼。

但需要主要的是看靠,以上各模式中的station,ap液肌,p2p在驅(qū)動中都需要對應(yīng)的網(wǎng)絡(luò)接口的挟炬,所以如果要支持concurrent mode,你的驅(qū)動insmod后嗦哆,必須吐出兩個網(wǎng)絡(luò)接口才行谤祖,如果只有一個網(wǎng)絡(luò)接口,那肯定是不支持concurrent mode的老速,見下圖粥喜,加載驅(qū)動后就會出現(xiàn)wlan0,p2p0兩個網(wǎng)絡(luò)接口橘券。

image.png

另外需要注意额湘,這兩個網(wǎng)絡(luò)接口,都是在驅(qū)動中虛擬出來的旁舰,共享同一個物理硬件锋华,因此他們也共享物理硬件所能達到的throughput,由于他們共同一個物理硬件箭窜,所以wlan0和p2p0必須在同一個channel上毯焕,因此跟wlan0和p2p0連接的網(wǎng)絡(luò)都在同一個channel上,這樣這個大網(wǎng)絡(luò)里所有的設(shè)備共同參與這個信道的載波偵聽/沖突檢測绽快,即同一時間只能有一個站在空氣中發(fā)送無線包芥丧。如果剛開始出現(xiàn)ap/p2p跟wlan0的channel不一致的情況紧阔,那一般都是ap/p2p斷開之前的鏈接坊罢,重新調(diào)頻到wlan0的信道建立新的鏈接。

wlan0擅耽,p2p0都是在linux下的wifi驅(qū)動中創(chuàng)建的活孩,譬如進來一個數(shù)據(jù)包是根據(jù)什么標準來判斷,該路由到wlan0還是該路由到p2p0乖仇,

這是一個很趣的問題憾儒;另外wlan0接口和p2p0接口他們的發(fā)送數(shù)據(jù)包是如何調(diào)度和管理的,也是一個值得關(guān)注的問題乃沙。

image.png

2:station mode + ap mode
本節(jié)介紹station+ap的concurrent mode是如何建立的起趾。先上一張整體的框架圖:

image.png

在調(diào)試階段,為了驗證ap+sta是否正常工作警儒,我們最好是step by step的先驗證sta mode是ok的训裆,然后驗證ap

mode是ok的眶根,最后才是sta+ap mode是否ok。

#define WPA_DRIVER_FLAGS_P2P_CONCURRENT    0x00000200 //Wifi驅(qū)動支持STA和P2P的并發(fā)運行
  1. https://w1.fi/wpa_supplicant/
  2. https://w1.fi/wpa_supplicant/devel/
  3. https://blog.csdn.net/kissinger_1984/java/article/details/83113056
  4. https://blog.csdn.net/xiaojsj111/article/details/30482001
  5. https://blog.csdn.net/ztguang/article/details/51015976
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末边琉,一起剝皮案震驚了整個濱河市属百,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌变姨,老刑警劉巖族扰,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異定欧,居然都是意外死亡渔呵,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門忧额,熙熙樓的掌柜王于貴愁眉苦臉地迎上來厘肮,“玉大人,你說我怎么就攤上這事睦番±嗝” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵托嚣,是天一觀的道長巩检。 經(jīng)常有香客問我,道長示启,這世上最難降的妖魔是什么兢哭? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮夫嗓,結(jié)果婚禮上迟螺,老公的妹妹穿的比我還像新娘。我一直安慰自己舍咖,他們只是感情好矩父,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著排霉,像睡著了一般窍株。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上攻柠,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天球订,我揣著相機與錄音,去河邊找鬼瑰钮。 笑死冒滩,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的浪谴。 我是一名探鬼主播开睡,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼祈搜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了士八?” 一聲冷哼從身側(cè)響起容燕,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎婚度,沒想到半個月后蘸秘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡蝗茁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年醋虏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哮翘。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡颈嚼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出饭寺,到底是詐尸還是另有隱情阻课,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布艰匙,位于F島的核電站限煞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏员凝。R本人自食惡果不足惜署驻,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望健霹。 院中可真熱鬧旺上,春花似錦、人聲如沸糖埋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阶捆。三九已至凌节,卻和暖如春钦听,著一層夾襖步出監(jiān)牢的瞬間洒试,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工朴上, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留垒棋,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓痪宰,卻偏偏與公主長得像叼架,于是被迫代替她去往敵國和親畔裕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361