在线观看国产区-在线观看国产欧美-在线观看国产免费高清不卡-在线观看国产久青草-久久国产精品久久久久久-久久国产精品久久久

美章網 資料文庫 網絡設計論文:無線網平臺模具設計的改良范文

網絡設計論文:無線網平臺模具設計的改良范文

本站小編為你精心準備了網絡設計論文:無線網平臺模具設計的改良參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。

網絡設計論文:無線網平臺模具設計的改良

作者:鄭漢彬張勇單位:北京郵電大學電子工程學院

Linux下802.11驅動的結構

1802.11網卡分類

802.11無線網卡的軟硬件結構如圖2所示:圖2的最左側是天線和收發器,用來從空中接收信號或將信號發向空中。中間部分的基帶處理器(BasebandProcessor)是數字和模擬組件之間的接口,它負責處理負載的擴頻調制,檢測物理載波,并且當接收到的電波能量超過一定的閾值時,會加以解調。MAC負責完成協議規定的部分介質訪問控制功能,具體的功能隨不同的硬件實現而不同,其他的介質訪問功能由驅動模塊實現。QoS是服務質量功能的實現模塊。SecurityEngine實現硬件加解密功能。在不同的硬件實現中,QoS和SecurityEngine兩個模塊可能有也可能沒有,如果沒有,其對應的功能就由驅動模塊實現。圖3的左側和中間部分是硬件實現部分,它們通過不同的總線接口和主機相連,這個接口可以使USB,也可以是PCI或其他總線接口。最右側是主機的軟件部分,底部驅動模塊負責控制硬件,結合硬件的功能實現完整的MAC層功能。從硬件接收的幀在驅動模塊中進行處理后將被傳遞到上層協議棧,上層協議棧傳來的數據包將被驅動模塊封裝成幀后傳給硬件。

從上面的討論可以看出,802.11協議規定的功能可以由硬件實現,也可以交給驅動模塊去實現,根據MAC層管理實體(MLME)的管理功能是由軟件實現還是硬件實現,802.11網卡可分為三類:FullMAC:MLME由硬件實現的網卡,當前只有很少的網卡是FullMAC類型的,Intel的iwmc3200是其中的代表。SoftMAC:MLME由驅動軟件實現的網卡,由于這種網卡允許通過軟件對硬件進行更精細的調整,便于功能升級,所以現在大部分的網卡都是SoftMAC類型的,比如Ralink的RT2X00系列,Atheros的AR5xxx系列等。

HalfMAC:介于上面兩者之間,MLME的一部分由硬件實現,另一部分由軟件實現。然而,即使同樣是SoftMAC類型的網卡,不同廠家不同系列的網卡在軟硬件之間的功能分配仍然會存在不同,所以針對不同系列的網卡,仍然需要不同的驅動模塊。本文接下來討論的內容將主要集中在SoftMAC類型的網卡上。

2Linux下802.11協議棧結構

在Linux內核2.6.22及以后的版本下實現SoftMAC類型網卡的驅動比較簡單,因為2.6.22及以后版本的內核中包含了802.11協議棧框架,這個協議棧實現了802.11不同模式下的MLME的功能和其他相關功能。協議棧結構如圖3所示:由于802.11協議棧在2.6.22版本加入內核,所以當前多種方式開發的網卡驅動模塊并存于一個Linux內核里。一些舊的驅動程序(Olddriver)使用WirelessExtension(wext)作為用戶空間配置驅動的接口,這些舊的驅動程序可能自己實現MLME的功能(SoftMAC類型的網卡)也可能使用其驅動的網卡硬件提供的MLME的功能(FullMAC類型網卡)。

當前的802.11協議棧由兩部分構成:cfg80211和mac80211。cfg802.11負責管理網卡設備和網絡接口的關聯關系,并通過nl802.11接收用戶空間對網卡的配置,同時,為了向后兼容,也支持使用WirelessExtension(wext)進行配置。對于FullMAC類型的網卡,可直接通過cfg80211提供的框架來編寫驅動模塊。mac80211使用cfg80211提供的配置框架,為驅動開發者提供一個給SoftMAC/HalfMAC類型的網卡開發驅動模塊的框架。驅動需要的MLME的功能由mac80211提供。

Linux下802.11驅動模塊的總體設計流程

Linux內核代碼由許多子系統模塊組成,并且各個子系統之間可能會有依賴關系。各個子系統模塊實現相應功能的通用操作流程,并提供定義好的結構體和函數指針,而與硬件或具體算法相關的數據信息和操作由開發者提供。內核開發者只需要按照子系統的要求實現相關函數,填寫并向子系統注冊相關結構體就可以實現具體的功能。例如要開發USB設備驅動程序,開發者需要根據具體的設備信息填寫描述驅動程序信息的structusb_driver結構體和描述驅動程序所支持的設備信息的structusb_device_id結構體,并實現structusb_driver結構體中規定的回調函數。至于這些函數如何實現,則由具體的設備和開發者設計的算法決定。

一個802.11網卡驅動的設計,需要Linux內核中多個子系統模塊的支持,例如,一個使用USB總線的SoftMAC類型802.11網卡驅動模塊與Linux內核中各子系統的依賴關系如圖4所示:在圖4中,箭頭由依賴模塊指向被依賴模塊。網卡驅動模塊需要依賴usb子系統提供的功能來驅動總線和網卡通信,同時,為了完成802.11協議規定的功能,驅動模塊需要使用相關的結構體向mac80211子系統注冊自己,并實現mac80211規定的回調函數。mac80211依靠cfg80211子系統與用戶空間通信,使用戶空間能夠對網卡進行配置。綜上所述,802.11網卡驅動的設計過程就是按照各子系統的規定,填寫并注冊結構體,設計子系統規定的函數的過程,設計流程如圖5所示

數據包信號強度信息的提取與向協議棧上層的傳遞

1設計思路

為了滿足一些分布式網絡平臺對于接收數據包的信號強度信息的需求,需要在接收每個數據包時,從硬件中提取能夠指示接收這個包時的信號強度的數值,并與接收到的包對應存儲,傳遞到協議棧的上層。802.11協議中,在物理介質相關層(PMD)及以上各層使用接收信號強度指示(RSSI)來衡量接收到的當前物理幀的信號強度。對應到圖2的軟硬件結構中,就是由基帶處理器(BasebandProcessor)測量并生成。RSSI的取值范圍為0至RSSIMax,802.11協議規定RSSIMax的值小于等于255。

802.11協議規定的RSSI是一個相對值,它僅僅用來指示信號強度的相對大小,而其與dBm值之間的對應關系由網卡芯片廠商自己定義。RSSI值在網卡和驅動內部用來指示接收到的信號強度的大小,網卡和驅動借此來完成判斷某個信道是否空閑,判斷是否該切換接入點,控制傳輸功率等操作。由于RSSI值僅僅用在網卡和驅動內部,所以即使各個廠商的定義方法不同,只要驅動程序正確,并不影響兼容性。RSSI值是在網卡和驅動內部使用的,不傳到上層協議棧。

為了使分布式網絡平臺的上層協議能夠得到接收包的信號強度信息,需要在驅動模塊里針對每一個接收到的數據包,提取RSSI值,并根據特定的網卡芯片將RSSI值轉換成dBm值,與數據包對應存儲,一并傳遞到協議棧上層。數據包在協議棧中的傳輸路徑如圖6所示一般而言,網卡芯片廠商都會選擇將RSSI值與接收到的幀一并通過USB總線傳遞給主機,而負責驅動模塊和USB子系統之間數據傳遞的是structurb結構體,所以驅動模塊可以從接收數據幀的structurb結構體中得到RSSI值,具體的操作過程會因不同的網卡芯片而不同。

在Linux內核中,負責在協議棧各層之間傳遞數據包的結構體是structsk_buff。驅動模塊在得到數據幀和對應的RSSI值后,將RSSI值轉換成dBm值,與數據幀一并存入structsk_buff中,向協議棧的上層傳遞。這樣分布式無線網絡平臺的相關協議在得到接收到的數據包的同時就可以得到接收這個包時的信號強度dBm值。具體結構如圖7所示:

2應用:使用RSSI改進AODV路由協議性能

分布式無線網絡平臺可以根據自己的需要來使用數據包對應的信號強度信息。下面以筆者曾經使用過的瑞士烏普薩拉大學開發的AODV協議來說明信號強度信息的使用。AODV路由協議會維護當前的鄰居列表,并在需要傳輸數據時從鄰居中選擇一個作為下一跳節點。標準的AODV協議會選擇最先響應路由請求信息的鄰居節點作為下一跳節點,但這種方式在以802.11無線網絡中卻有可能造成選擇的下一跳節點不理想的情況。這是因為802.11中節點是公平的競爭無線網絡信道,這就會造成可能鏈路質量不高的鄰居節點最先占用了信道,從而成為一個不理想的下一跳節點。這樣的下一跳節點不僅使數據傳輸速率不高,而且容易使傳輸失敗。如果利用接收包的信號強度信息,只維護信號強度足夠好的鄰居節點,那么在路由請求時獲得的鏈路質量就會比較高,網絡會更加穩定,數據傳輸速率也有顯著提高。具體的設計結構如圖8所示:AODV內核在過濾維護鄰居列表的控制信息的時候,會過濾掉信號強度過低的控制信息,這樣act_nb_list中都是鏈路質量足夠好的鄰居。AODV路由守護進程在路由請求過程中會參照鄰居列表的信息選取下一跳節點。

3測試結果

經過實際網絡實驗平臺的測試,更改后的AODV在路由特別是多跳路由穩定性方面要提高很多,多跳路由的數據傳輸速率也有顯著提高。具體測試環境如下表:

結論

本文系統的闡述了Linux下802.11協議棧的結構和當前主流的網卡芯片的軟硬件結構,并簡要介紹了Linux下802.11網卡驅動的設計流程。針對分布式無線網絡平臺對信號強度信息的需求,本文詳細介紹了如何改進驅動模塊,并給出了在AODV路由協議中的應用實例。隨著分布式無線網絡平臺的發展,802.11協議必然會得到更廣泛的應用,而隨著應用的深入,對802.11驅動模塊的改進要求也會越來越多,這樣一來,對802.11協議棧的深入了解以及驅動模塊的設計能力會越來越重要。

主站蜘蛛池模板: 亚洲精品视频久久 | 亚洲精品国产高清嫩草影院 | 羞羞网站在线看 | a级在线观看视频 | 亚洲视频欧洲视频 | 国产在线播放一区 | 一区二区三区毛片免费 | 亚洲欧美综合网 | 在线视频一二三区 | 成人欧美一区二区三区黑人3p | 中文精品久久久久国产网址 | 狠狠综合久久久久尤物丿 | 久久久精品久久 | 日笔视频 | 亚洲男人网 | 福利精品在线 | 中文字幕久久亚洲一区 | h视频网站在线观看 | 激情网页 | 被窝电影久久九九电影网 | 亚洲无线视频 | 欧美午夜视频一区二区三区 | 午夜在线观看福利 | 亚洲天堂久久精品成人 | 五月花社区婷婷综合 | 波多野结衣视频播放 | 伊人久久精品无码二区麻豆 | 伊人精品网| 精品在线免费观看视频 | 欧美日韩国产在线观看 | 迪米电影网 | 黄色影片免费在线观看 | 欧美日韩一区二区在线观看视频 | 亚洲十欧美十日韩十国产 | 成人在线一区二区 | 国产成人精品免费 | 小草影视在线观看 | 丁香五香天堂网卡 | 波多野结衣在观看播放 | 亚洲综合久久久久久中文字幕 | 在线观看视频资源 |