999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Linux的802.11 協議與驅動研究

2013-08-01 07:14:42
微型電腦應用 2013年4期
關鍵詞:設備

沈 華

0 引言

Linux 上無線組件由于各個WLAN 廠家芯片設計不同,有些廠家不愿意提供芯片的驅動或者只提供部分驅動源代碼,導致linux 各個版本含有很多不同版本的驅動程序。且有很多驅動是由志愿者提供的。為了提供統一的配置管理,Linux 提供了很多的工具,實用程序。

1 兩種linux 無線子系統

1)舊的無線子系統Wireless extensions (wext)

是由HP 公司Jean Tourrilhes 當年為了使得無線設備能夠應用在linux 上開發的,在前些年很多WLAN 公司也都基于此開發了很多驅動程序,比如WLAN 芯片公司Atheros開發的madwifi 即是基于此系統開發的,不過當前該系統開發進度緩慢且由新的mac80211 系統所替代,所以本文不做探討。

2)新的無線子系統:新的無線子系統是由Cfg80211模塊、nl80211 模塊以及Mac80211 模塊等組成。

Cfg80211:無線配置API——新的配置API。主要替代舊的無線子系統wireless extensions,Cfg80211 目前仍然在開發中。cfg80211 是為802.11 設備在Linux的配置API。它是用戶空間和驅動程序之間的橋梁,并提供一些與802.11 相關的實用功能。 cfg80211 必須直接或間接通過mac80211,可用于所有現代無線驅動程序在Linux,讓他們提供一個一致的API,通過nl80211的。為了向后兼容,cfg80211 還提供無線擴展到用戶空間,但需要完全隱藏他們。 此外,cfg80211 還包含代碼,以幫助實施監管的頻譜的使用限制。在cfg80211 模塊中需要:

1)實際的BSSID 哈希,而不是把東西放入一個列表

2)提供BSS 列表功能,使mac80211 不需要跟蹤

3)允許在每個硬件提供的大小的掃描結果“私人”區域

4)妥善處理網格

5)提供了硬件的方式來限制掃描的SSID 號碼

Cfg80211 定義在include/net/cfg80211.h 中;通過priv 指針來實現注冊/注銷;明確定義的命令,每一個的范圍都非常有限。它的操作有:所有常規操作例如掃描等以及列出所有接口信息。

Mac80211:是為SoftMAC(一個用于描述無線網尗的類型的一個術語)無線設備的基礎無線框架,是用來編寫SoftMAC 無線驅動的Linux API,如圖1所示:

圖1 協議棧框架

支持802.11 abgn,802.11d;整合正在擬制的802.11s 標準;支持定制特設頻率

支持多種無線模式:

接入點模式:AP的模式,AP 可接交換機或路由器,進行無線信號發送和接收。

站點模式

Monitor 模式:AP 設為一個專用的無線監控器,能監控周圍的無線干擾、欺詐AP 等信息,隨時提交給控制器做相應動作。AP 設為monitor 之后,將不能發射無線信號為客戶端提供接入服務了。

Ad-hoc 模式:結構是一種省去了無線AP 而搭建起的對等網絡結構,只要安裝了無線網卡的計算機彼此之間即可實現無線互聯;其原理是網絡中的一臺電腦主機建立點對點連接相當于虛擬AP,而其它電腦就可以直接通過這個點對點連接進行網絡互聯與共享。

無線分布式WDS 模式(無線分布式系統)

Mesh 模式:無線網格網絡技術,它是一個無線多跳網絡,是由ad hoc 網絡發展而來,是解決“最后一公里”問題的關鍵技術之一。

支持Qos

在mac80211 中,我們需要通過掃描要求的硬件卸載、掃描處理多個SSID、正確處理主動/被動狀態以及使用BSS列表羅列出全部需要提供的cfg80211 協議。

新的無線子系統MAC80211的思想之一就是分離無線射頻收發器與驅動接口,射頻收發器是作為wiphy 結構出現在系統里,而驅動接口被稱為devices。這種思想的優點是使得可以實現虛擬無線設備,每一個虛擬設備都可以單獨配置,所有進來的802.11 包都轉發到wiphy 接口,然后再分發到虛擬設備上,每一個設備都可以訪問wiphy 并且發送幀出去。

nl80211:802.11 網絡鏈路接口,處理用戶空間至內核空間通信傳輸。Nl80211的現狀是:

1)基于genetlink、

2)用戶空間的ABI 在include/linux/nl80211.h

3)代碼在net/wireless/nl80211.c

在nl80211 中,大多數操作是一個單一的參數的命令并且一些MLME的屬性組合在一起以允許在一個fullMAC 配置卡中。

1 系統架構與實現

無線子系統架構,如圖2所示:

圖2 MAC80211 架構

Cfg80211 子系統

位于用戶空間與 MAC80211 協議驅動之間,通過nl80211 接口來進行協議轉發以及配置無線設備。主要功能有:設備注冊、站點管理、密鑰管理、Mesh 管理、虛擬接口管理、鏈路掃描

參數設置

設備注冊包括帶寬,信道,比特率,HT 能力以及支持的接口模式。

站點管理包括增加,刪除,修改站點以及打印站點的log信息。這些都是作為AP的實現的功能。

Mesh 管理包含Mesh 參數設置與獲取,Mesh 路徑的處理等。

虛擬接口管理提供了創建,刪除以及改變類型和監測標志。也能夠跟蹤網絡無線接口。

掃描功能允許用戶發起掃描和報告。

鏈路掃描包括發起掃描請求,接受被動掃描。

MAC802.11 子系統

初始化與注銷:

初始化涉及到的數據結構主要有:

在使用802.11 設備前,必須先調用ieee80211_alloc_hw分配一個硬件設備資源,然后通過函數ieee80211_register_hw 向系統注冊硬件設備信息并對設備進行初始化設置。

接收和發送處理:

發送通路和接收通路的的數據流程如下圖所示。發送數據是高層包將邏輯鏈路層的的包轉換為IEEE802.11 幀格式,初始化所有需要的buffer 以及幀頭,發送鏈路選擇密鑰,發送速率,插入順序號,選擇加密算法,分片機制,計算發送時間以及產生發送控制信息。

接收通路是在硬件驅動接收到數據后產生中斷,將數據發送到MAC80211,并且指示硬件接收狀態信息。MAC80211檢測包得類型,接收狀態并且準備接收數據包處理。接收數據包處理解密,解包,并且根據不同包得類型進行處理,是數據包將會轉換為IEEE802.3 送給上層協議,如圖3所示:

圖3 發送和接收數據流程

3 MLME 實現

MLME 是MAC 層管理實體,MLME 管理實體的物理層(PHY)MAC 狀態機。在MAC80211 子系統里,通過軟件實現了MAC 層的管理實體即SoftMAC。MLME 是通過上層接口調用相關請求和收到的響應來進入不同的狀態的:常見的包有:探測請求/響應、認證請求/響應、關聯請求/響應、去認證/去關聯。出了設備的幾種主要狀態以及在不同狀態下允許的幀的類別。如圖4所示:

圖4 802.11 狀態圖

而在典型的站點模式下,設備狀態轉換,如圖5所示:

圖5 Station State

對于接入點模式,則非常簡單只有初始化,掃描以及運行狀態。這里不列。

在將來,cfg80211/nl80211 將提供訪問的MAC的用戶空間MLME;cfg80211/nl80211 還需要提供MLME 訪問的MAC 卡。

Linux 無線網卡驅動的移植

Linux 無線網卡驅動程序涉及到Linux 網絡設備驅動程序和接口驅動程序,本文以USB 無線網卡驅動程序設計為例,主要涉及到Linux USB 設備驅動程序和Linux 網絡設備驅動程序的設計。

Linux USB 設備驅動程序與其它Linux 設備驅動程序類似,分為設備的注冊和注銷、設備的打開和關閉以及設備的控制。

在Linux 中用usb_driver 描述USB 設備驅動,USB 設備的注冊和注銷用usb_register 和usb_deregister 函數來完成。USB 設備的探測需要完成usb_driver 中的probe 函數,而斷開連接需要實現disconnect 函數。對USB 設備的數據讀寫操作與普通的Linux 字符設備不完全一樣,因為USB設備中數據通信是通過端點來進行的,所以對USB 設備讀寫操作通過URB(USB 設備請求塊)的結構體來傳遞數據。

Linux 網絡設備驅動移植從上到下可分為4 個層次。主要分為網絡協議接口層、網絡設備接口層、設備驅動功能層以及網絡設備與網絡設備媒介層。網絡設備驅動結構,如圖6所示:

圖6 網絡設備驅動結構

網絡協議接口層向上一層網絡提供統一的數據包接口,使得上層無論哪種協議都可以通過dev_queue_xmit 函數來發送。并通過函數netif_rx 函數來接收。而設備驅動程序主要跟設備驅動功能層有關。通過dev_start_xmit 執行發送數據的操作,并通過中斷觸發接收數據的操作。

網絡設備驅動程序的編寫也涉及到注冊、初始化、設備打開與關閉、發送和接收數據操作。而這些操作主要通過填充n

et_device 數據結構完成函數調用的。

Linux網絡驅動通過register_netdev 和unregister_netdev完成設備驅動程序的注冊與注銷。

驅動程序的注冊:

Int register_netdev(struct net_device *dev);

驅動程序的注銷:

Void unregister_netdev(struct net_device *dev);

注冊和注銷分別在加載驅動程序和卸載驅動程序時調用。

打開網絡設備:

Void netif_start_queue(struct net_device *dev);

關閉網絡設備:

Void netif_stop_queue(struct net_device *dev);

而內核在發送數據包時會調用hard_start_transmit 函數,而網絡設備驅動中接收數據是通過中斷引發中斷處理函數,將數據填充到緩沖區中并調用netif_rx 函數將數據傳送給上層程序。

比如一個具體的Ralink USB 無線網卡的驅動程序,流程,如圖7所示:

圖7 無線網卡驅動程序流程圖

首先加載模塊,USB 無線網卡進行設備的探測。如果探測到設備,進行網絡設備所需資源的初始化以及相關的配置,然后打開設備,判斷是否有數據的發送和接收。當不再需要該設備時,可以卸載設備驅動程序。

4 結論

主要介紹了Linux 下一種新的無線子系統MAC80211的架構、各功能組件的作用與目的,然后探討了具體實現機制。包括設備的初始化,注冊過程,收發數據包處理,以及MLME 協議層處理。通過對Linux 無線子系統MAC80211基本原理的分析,從而加深了讀者對802.11 無線通信協議的理解,并且,在文章的后面,本文結合理論實際,給出了一種實際應用中Linux 無線網卡驅動程序的設計和移植方法。

[1]Vipin M Analysis of Open Source Drivers for [J]IEEE802.11 WLANs ICWCSC 2010

[2]Johannes Martin Berg mac80211 overview [OL]Intel 2009

[3]Weihua Zhao.[J]Madwifi Summary 2007

[4]魏永明,耿岳,鐘書毅 譯.Linux 設備驅動程序 第三版 [M]中國電力出版社 2005年

[5]羅訓,趙利 譯.下一代無線局域網,[M]北京人民郵電出版社 2010年

[6]班藤,顧小峰等 一種基于IEEE802.11 [R]標準的SOFTMAC 實現方法

[7]羅訓,趙利 譯,《下一代無線局域網》,[M]北京人民郵電出版社 2010年

[8](美)加斯特 著 《80211 無線網絡權威指南》,[M]天津東南大學出版社 2006年4 月

[9]李全 基于Linux的USB 網絡設備驅動程序的研究,[M]武漢華中科技大學 2010年11 月

猜你喜歡
設備
諧響應分析在設備減振中的應用
調試新設備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發射設備中平衡輸入與不平衡輸入的轉換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設備
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
HTC斥資千萬美元入股虛擬現實設備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設備篇
如何在設備采購中節省成本
主站蜘蛛池模板: 国产精品美女在线| 毛片免费试看| 国产一级精品毛片基地| 国产18页| 色婷婷亚洲综合五月| 色综合久久久久8天国| 亚洲h视频在线| av尤物免费在线观看| 国产伦精品一区二区三区视频优播 | 精品99在线观看| 国内熟女少妇一线天| 欧美日韩导航| 亚洲一区二区日韩欧美gif| 亚洲,国产,日韩,综合一区| 777国产精品永久免费观看| 国产在线视频福利资源站| 国产产在线精品亚洲aavv| 色老二精品视频在线观看| 真人免费一级毛片一区二区| 日韩区欧美国产区在线观看| 久久成人18免费| 亚洲综合激情另类专区| 一本大道香蕉久中文在线播放 | 女高中生自慰污污网站| 欧美三级自拍| 成人a免费α片在线视频网站| 91亚洲视频下载| 欧美日韩动态图| 欧美色99| 久久久噜噜噜久久中文字幕色伊伊| 四虎成人精品在永久免费| 国产在线欧美| 手机永久AV在线播放| 99久久精品国产麻豆婷婷| 久久天天躁狠狠躁夜夜躁| 国产成人精品一区二区三区| 国产欧美亚洲精品第3页在线| 人人91人人澡人人妻人人爽| 美女潮喷出白浆在线观看视频| 2021国产乱人伦在线播放| 日韩在线第三页| 69国产精品视频免费| 真实国产精品vr专区| 欧亚日韩Av| 欧美精品成人一区二区视频一| 国产真实二区一区在线亚洲| 青青久视频| 精品少妇人妻无码久久| 国产精品一区二区久久精品无码| 午夜毛片免费看| 一级在线毛片| 色吊丝av中文字幕| 欧美亚洲国产日韩电影在线| 青青草国产在线视频| a级毛片网| 丁香六月激情婷婷| 91精品免费高清在线| 波多野结衣亚洲一区| 国产最新无码专区在线| 在线免费a视频| 国产激情在线视频| 一级香蕉人体视频| 丰满的熟女一区二区三区l| 亚洲不卡无码av中文字幕| 国产日本欧美在线观看| 亚洲天堂.com| 91在线国内在线播放老师| 在线观看视频一区二区| 热久久这里是精品6免费观看| 国产美女免费| 国产精品久久久久婷婷五月| 婷婷综合色| 欧洲日本亚洲中文字幕| 喷潮白浆直流在线播放| 成人午夜久久| 久久综合丝袜长腿丝袜| 久草网视频在线| 免费无码在线观看| 国产97公开成人免费视频| 精品撒尿视频一区二区三区| 日本高清在线看免费观看| 国产一区二区色淫影院|