天天看點

802.11 學習筆記

一、網絡服務

802

11

總共提供

9

種服務:

分布式

distribution

接入點收到幀

就會使用分布式服務将真傳送至目的地。

整合

integration

該服務由分布式系統提供,它讓分布式系統得以連結至非

IEEE802.11

網絡

關聯(

association

移動式工作站向接入點登記,分布式系統就可以依據登記資訊推斷哪個移動式工作站該使用哪個接入點。僅僅有關聯之後才幹進行身份驗證。在身份驗證完畢之前,接入點會丢棄來自工作站的全部資料。

又一次關聯(

當移動式工作站在同一個擴充服務區域裡的基本服務區域之間移動時,它必須随時評估信号的強度并在必要時切換所關聯的接入點。又一次關聯是由移動式工作站所開啟,當信号強度現實最好切換關聯對象時便會又一次關聯。

取消關聯

disassociation

結束現有關聯。

身份驗證

authentication

認證是

STA

在掃描到合适的

AP

之後

僅僅有通過認證該

才幹通過

使用

WLAN

現有的認證方式有:

(1)open

,即不須要認證,僅僅要互動一個

null

(2)shared key

,須要一個

4

次握手的過程

(3)802.11i

,須要到認證server認證

完畢認證之後僅僅須要發送

ReAssociation Request

然後等待

ReAssociationResponse

幀完畢關聯也就完畢了整個切換的過程。

解除身份驗證

機密性

Wep

等一些加密機制

MSDU

傳遞

MAC Service Data Unit

負責将資料傳送給實際的接收端。

傳輸功率控制

Transmit Power Control

簡稱

TPC

歐洲标準要求操作與

5G

Hz

頻帶的工作站必須可以控制颠簸的傳輸功率,避免幹擾其它相同使用

頻帶的使用者。

動态頻率選擇

Dynamic Frequency Selection

DFS

無線區域網路必須可以檢測到雷達系統并選擇未被雷達系統所使用的頻率。

網絡類型

基本服務集

basic service set ,

BBS

由一組互相通信的工作站構成。

BSS

分為兩種

獨立型網絡

i

ndependent BSS

通常由少數幾個工作站為了特定目的而組成的臨時性網絡。

基礎結構型網絡

Infrastructure networks

有接入點。接入點負責基礎結構型網絡的全部通信。

擴充服務區域

extended service set

ESS

将幾個

串聯稱為

。全部位于同一個

的接入點使用同樣的服務組标示符

service identifier

SSID

三.

MAC

資料鍊路層的兩個子層

邏輯鍊路控制

LLC (Logical Link Control)

子層

媒體接入控制

MAC (Medium Access Control)

§   

與接入到傳輸媒體有關的内容都放在

LLC

子層則與傳輸媒體無關

無論採用何種協定的區域網路對

子層來說都是透明的

網卡及其功能

§

資料的封裝與解封

發送時将上一層交下來的資料加上首部和尾部,

成為以太網的幀。接收時将以太網的幀剝去首部和尾部,

然後送交上一層

鍊路管理

主要是

CSMA/CD

協定的實作

編碼與譯碼

即曼徹斯特編碼與譯碼

網卡從網絡上每收到一個

幀就首先用硬體檢查

幀中的

位址假設是發往本站的幀則收下,然後再進行其它的處理

否則就将此幀丢棄,不再進行其它的處理

802.11

幀主要有三種類型

資料幀、控制幀、管理幀

資料幀

幀格式:

Protocol

:代表MAC

協定版本号

Type

與Subtype

:制定使用幀類型(

控制幀、資料幀、管理幀)

Address1

:幀接收端

Address2

:發送端的位址

Address3

:供接入點與分布式系統過濾之用

Duration

媒介使用權

,RTS

傳送段計算

RTS

幀結束後還須要多長時間用于幀交換。

位址資訊

功能

ToDS

FromDS

Address 1 (

接收端)

Address 2 (

發送端)

Address 3

Address 4

IBSS

DA

SA

BSSID

未使用

To AP (

基礎結構型)

1

From AP (

WDS (

橋接器)

RA

TA

幀送至server

相應第二行

: RA/BSSID             

Address2 : 

SA/TA            

Address3 : 

幀來自分布式系統

相應第三行

: RA/DA             

Address2 : TA/BSSID              

Address3 : SA

控制幀:

通常與資料幀搭配使用,負責區域的清空、信道的取得、載波監聽的維護,并于收到資料時予以肯定确認,借此提高工作站之間資料傳送的可靠性。

由于無線收發器通常僅僅有半雙工工作模式

即無法同一時候首發資料

為防止沖突

同意工作站使用

request to send(RTS)

clear to send

CTS

信号來清空傳送區域。

RTS/CTS進行清空

節點1有個幀待傳,首先發送RTS幀,預約無線鍊路的使用權、要求接收到這一幀的其它工作站保持沉默。

接收到RTS幀,接收端會以CTS幀應答,RTS會令附近的工作站保持沉默。

RTS/CTS完畢交換後,可發送frame。

媒介訪問權僅僅留給單點傳播幀使用,多點傳播和廣播幀僅僅是簡單的傳送。

這樣的機制一般僅僅用在高用量的環境下以及傳輸競争比較激烈的場合,對低用量環境而言,暫不須要。

RTS幀

Duration:媒介使用權,RTS傳送段計算RTS幀結束後還須要多長時間用于幀交換。

Address1:大型幀的工作站位址

Address2:RTS的發送端

Rts的Duration

CTS幀

Address1:接收端的字段,拷貝于RTS的發送端位址。

ACK幀

除了這

3

種控制幀,還有

PS-POLL

幀(省電輪詢)。

管理幀

負責監督,用來增加或退出無線網絡以及處理接入點之間關聯的轉移事宜。

為了限制廣播或多點傳播管理幀所造成的副作用,收到管理幀後,必須加以查驗。僅僅有廣播或者多點傳播幀來自工作站目前所關聯的BSSID時,它們才會被送至MAC管理層。唯一例外是beacon幀。

幀主體分兩種:固定字段、資訊元素。

固定字段(

Fixed-Length Management Frame Components

):資料使用長度固定的字段。一共同擁有10種。

1. Authentication Algorithm Number

身份驗證算法編号:

:開放系統身份驗證

:共享密鑰身份驗證

2~65535;

保留

2. Authentication Transaction Sequence Number

身份驗證處理序列号

用以追蹤身份驗證進度。

3.beacon interval

字段

用來設定

beacon

信号之間相隔多少時間機關。

4. Capability Information

性能資訊

傳送

信号的時候,它被用來通告網絡具備何種性能。

5. Current AP Address

移動式工作站用此字段表明目前關聯的接入點的

位址,便于關聯與又一次關聯的進行。

6. Listen interval

工作站為節省電能,臨時關閉

的天線,休眠中的工作站會定期醒來聆聽往來消息,以推斷是否有幀緩存于接入點。

事實上就是以

Beacon interval

為機關所計算出的休眠時間。

7. Association ID

關聯标示符

工作站與接入點關聯時就會被賦予一個關聯辨別符來協助控制和管理。

8. Timestamp

時間戳

用來同步

中的工作站。

9. Reason Code

原因代碼

對方不适合增加網絡時,工作站會發送

(取消關聯)或

deauthentication

(解除身份驗證)幀作為響應。該字段用以表示産生該原因代碼的理由。

10. Status Code

表示某項操作成功或失敗。

資訊元素:

管理幀的可變長元件。

一般管理幀的資訊元素

Element ID

名稱

服務集标示符(SSID)

支援速率Supported Rates

2

跳頻參數集FH Parameter Set

直接序列參數集DS Parameter Set

無競争參數集CF Parameter Set

5

傳輸訓示映射Traffic Indication Map (TIM)

6

參數集

7 (802.11d)

Country

8 (802.11d)

Hopping Pattern Parameters

9 (802.11d)

Hopping Pattern Table

10 (802.11d)

Request

11-15

Reserved; unused

16

Challenge text

17-31

32 (802.11h)

功率限制Power Constraint

33 (802.11h)

Power Capability

34 (802.11h)

發送功率控制請求Transmit Power Control (TPC) Request

35 (802.11h)

發送功率控制報告TPC Report

36 (802.11h)

所支援的信道Supported Channels

37 (802.11h)

信道切換聲明Channel Switch Announcement

38 (802.11h)

測量請求Measurement Request

39 (802.11h)

測量報告Measurement Report

40 (802.11h)

靜默Quiet

41 (802.11h)

動态選頻(DFS

42 (802.11g)

ERP information

43-49

Reserved

48 (802.11i)

強健安全網絡Robust Security Network

50 (802.11g)

擴充支援速率Extended Supported Rates

32-255

221

Wi-Fi

保護訪問Wi-Fi Protected Access

管理幀類型

管理幀的主體包括的固定字段與資訊元素是用來運送資訊的。管理幀主要有下面幾種,負責鍊路層的各種維護功能。

1.   

Beacon

(信标)幀

主要用來聲明某個網絡的存在。定期傳送的信标可讓

station

得知網絡的存在,進而調整增加該網絡所必需的參數。

2. Probe Request

探查請求

移動工作站利用

Probe Request

探查請求幀來掃描區域内眼下有哪些

網絡。

包括

個字段

:可被設定為特定網絡的

或不論什麼網絡的

Support rates

:移動工作站所支援的速率。

3.Probe Response

假設

所探查的網絡與之相容,該網絡就會以

Probe Response

幀響應。送出最後一個

幀的工作站必須負責響應所收到的探查資訊。

幀中包括了

幀的全部參數,

可依據它調整增加網絡所須要的參數。

4. IBSS announcement traffic indication map (ATIM)

的通知傳輸僅僅是消息(

ATIM

)幀

5. Disassociation and Deauthentication

取消關聯、解除驗證

取消關聯、解除驗證幀

Association Request

關聯請求幀

7. Reassociation Request

又一次關聯

8. Association Response and Reassociation Response

關聯響應,又一次關聯響應

9. Authentication

身份驗證幀

Authentication Algorithm Number

:用于算法選擇

10. Action frame

幀傳送、關聯與身份驗證的狀态

狀态圖

State1

:未經認證且尚未關聯

State2

:已經認證但尚未關聯

State3

:已經認證且已經關聯

幀等級分類

 

控制幀

第一級幀

Request to Send (RTS)

位都設為

的全部幀

Clear to Send (CTS)

Acknowledgment (ACK)

CF-End

Authentication

CF-End+CF-Ack

Deauthentication

Announcement Traffic Indication Message (ATIM)

第二級幀

None

Association Request/Response

Reassociation Request/Response

Disassociation

第三級幀

PS-Poll

不論什麼幀,包括

madwifi

的結構,主要是有三層,

hal

是硬體層,然後是

ath

層,在之上的是

層,整個

源代碼中重要的就是

目錄(硬體),

目錄,

ath_rate

目錄

net80211

目錄(

協定相關),

tools

目錄(一些工具)

當驅動被載入的時候,它會取探測實體裝置是否存在,然後通過

ath_attach()

函數安裝此裝置。同一時候,驅動會自己主動建立一個虛拟的網絡接口,通過函數

ieee80211_create_vap( )

實作。這個虛拟網絡接口的初始狀态為

INIT

,在此狀态下硬體不會接收資料包。

當實際的

接口開始工作(比如通過

ifconfig ath0 up

指令激活),驅動會将對硬體進行适當的設定而且進入

SCAN

狀态。

狀态下,

會掃描全部它支援的通道。

掃描包含兩個方面,一個是主動掃描

,即

會發送适當的請求封包;一個是被動掃描

監聽臨近

beacons

不會資料傳輸報。

在全部的通道都掃描完畢以後,

選擇一個無線信号強度最低的通道然後進入

RUN

狀态(

ap_end( )

)。

運作一個存取節點的普通操作。它約每隔

100ms

向外廣播一個

消息(

ath_beacon_send( )

,

應答其他

發送的請求,應答終端發送來的認證消息和連接配接

/

重連接配接消息,而且資料傳輸包。

當接口被關閉的時候,

會發送取消認證消息到每個連接配接了的終端,然後釋放所它們所占有的資源并進入

須要注意控制消息的使用,如:

ACK

,它們是被驅動

HAL

(硬體抽象層)控制的。

結構體

ieee80211com

中定義了各種幀處理函數指針

資料接收

大多數的

CSMA/CA

機制被貫徹在

或者硬體中。當一個新的包到達時,開源的驅動部分是通過中斷來擷取通知的

ath_intr( )

包被

linux

tasklet

來處理(

ath_rx_tasklet( )

),這個包所在

skb

結構被找到而且

它的目标節點正确。

函數

ieee80211_input( )

接收各種不同類型的包,在這個函數中管理封包包被傳遞給

ieee80211_recv_mgmt( )

函數處理,資料包被做相關的處理後變成以太幀格式然後傳送給

核心

netif_rx( )

或者

假設工作在橋模式下

則通過

dev_queue_xmit( )

發送此資料包

資料的發送

Linux

核心通過

dev->hard_start_xmit

輪流調用虛拟接口的

ieee80211_hardstart()

函數和實體接口的

ath_hardstart

()

函數實作包的傳輸。

函數将以太格式的包封裝成

格式的包。

ath_tx_start

函數将須要加密的包進行加密處理

并将儲存此包的

映射到

DMA

緩沖

并依據包的優先級標明一個傳輸隊列

QoS control

ath_tx_txqaddbuf( )

函數将映射後的緩沖

buffer

插入到標明的傳輸隊列裡面并通知

開始傳輸。

管理幀由

層産生。它們通過

ieee80211_mgmt_output

()函數發送。

消息由

觸發。當發送

消息的時間到達

會制造一個中斷

然後調用函數

來發送。

消息直接被傳遞到

并發送。

成功發送完一個包後也會産生一個中斷來通知驅動。

ath_tx_tasklet()

會更新發送相關的資訊。假設有工作在監視模式

monitor mode

的虛拟port存在

這個包會在函數

ath_tx_capture()

中被傳遞給監視接口。

載入到核心的順序

insmod wlan.o

insmod ath_hal.o

insmod ath_rate_amrr.o

insmod ath_rate_onoe.o

insmod ath_rate_sample.o

insmod wlan_acl.o

insmod wlan_ccmp.o

insmod wlan_scan_ap.o

insmod wlan_scan_sta.o

insmod wlan_tkip.o

insmod wlan_wep.o

insmod wlan_xauth.o

insmod ath_pci.o