一種具有多跳功能的無(wú)線(xiàn)VoIP終端設計
3.1 無(wú)線(xiàn)模塊驅動(dòng)編譯
所有的Atheros芯片無(wú)線(xiàn)網(wǎng)卡基本都可以使用madwifi驅動(dòng),驅動(dòng)程序源碼madwifi-0.9.4.tar.gz可以從http://madwifi.org/上下載。在進(jìn)行無(wú)線(xiàn)模塊驅動(dòng)開(kāi)發(fā)時(shí),首先要配置并編譯Linux內核,使其支持MiniPCI網(wǎng)卡,然后針對終端環(huán)境修改madwifi-0.9.4目錄下的Makefile,再使用make命令進(jìn)行編譯,生成適用于MIPS的驅動(dòng)程序模塊,并使用insmod命令將模塊在終端的Linux中進(jìn)行加載。加載成功后,用Linux下的無(wú)線(xiàn)局域網(wǎng)工具命令iwconfig對無(wú)線(xiàn)網(wǎng)卡進(jìn)行配置,注意配置時(shí)要將無(wú)線(xiàn)網(wǎng)卡的工作模式設定成為Ad Hoc模式。
./wlanconfig ath0 destroy
./wlanconfig ath0 create wlandev wifi0 wlanmode adhoc
3.2 AODV路由協(xié)議的實(shí)現
Linux操作系統的內核并不直接支持按需路由,因此要實(shí)現AODV路由協(xié)議需要對操作系統進(jìn)行相應的擴充和修改。
Linux操作系統的路由體系結構按功能可分為轉發(fā)功能模塊和路由功能模塊,可以在轉發(fā)功能模塊保持不變的情況下,通過(guò)修改路由功能模塊,實(shí)現不同的路由協(xié)議。轉發(fā)功能在Linux內核中實(shí)現,根據需要發(fā)送的數據分組目的地址;查找路由表,按照最長(cháng)前綴匹配原則尋找與目的地址匹配的表項,如果找到匹配項,則將數據分組發(fā)送到相應的網(wǎng)絡(luò )接口;否則就丟棄該分組。路由功能模塊作為后臺進(jìn)程在用戶(hù)空間運行,主要負責與其他網(wǎng)絡(luò )節點(diǎn)進(jìn)行信息交流,采用適當的路由算法建立路由,更新和維護內核路由表。
目前發(fā)布的針對AODV協(xié)議的實(shí)現方案中多數協(xié)議的實(shí)現都采用了Netfilter功能框架。Netfilter是Linux核心中的一個(gè)通用架構,用于實(shí)現數據包過(guò)濾、狀態(tài)保持、NAT以及安全等多種網(wǎng)絡(luò )功能。Netfilter結構提供了一系列的“列表”(tables),每個(gè)列表由若干個(gè)“鏈”(chains)組成,而每條鏈中又可以有一條或數條規則(rules)進(jìn)行規范,規則的定義采用“如果數據包頭符合這樣的條件,就這樣處理該數據包”。當一個(gè)數據包到達一個(gè)鏈時(shí),系統就會(huì )從第一條規則開(kāi)始查看是否符合該規則所定義的條件。如果滿(mǎn)足,系統將根據該條規則所定義的方法處理該數據包;否則,繼續檢查下一條規則。如果該數據包不符合該鏈中任何一條規則的定義,系統就會(huì )根據該鏈的缺省策略處理該報文。
Linux在內核2.4版本以上的系統中提供了五個(gè)hook注冊點(diǎn),這些hook點(diǎn)處在數據分組流經(jīng)協(xié)議棧的幾個(gè)關(guān)鍵位置,用戶(hù)可以在這些位置注冊自己定義的操作函數,流經(jīng)hook點(diǎn)的數據分組將執行函數的操作。如圖3所示,Netfilter便由處于Linux協(xié)議棧中的五個(gè)hook函數組成。

在A(yíng)ODV協(xié)議的實(shí)現過(guò)程中,Netfilter的配置是協(xié)議正常運行的前提,需要在內核中注冊hook函數,但并不是所有的Linux系統都默認啟用Netfilter,因此需要在內核配置選項中進(jìn)行配置并編譯進(jìn)內核。進(jìn)入Linux內核源代碼安裝目錄,輸入make manuconfig命令進(jìn)入內核配置主菜單,通過(guò)空格鍵選擇:
Networking options-->[*]Network packet filtering(replaces ipchains)
IP:Netfilter Configuration-->*>Userspaee queueing via NETLINK
4 結語(yǔ)
結合IEEE 802.11無(wú)線(xiàn)技術(shù)和VoIP技術(shù)的優(yōu)勢,采用了高性能的微處理器ADM5120和功能穩定強大的嵌入式Linux操作系統作為軟件平臺,構建了一個(gè)基于IEEE 802.11b/g技術(shù)的無(wú)線(xiàn)VoIP便攜式終端。通過(guò)在終端的系統上加載AODV路由協(xié)議實(shí)現了多跳的功能。經(jīng)過(guò)三臺終端的聯(lián)合測試,多跳通話(huà)可以保證良好的語(yǔ)音效果。
本文引用地址:http://dyxdggzs.com/article/157568.htm
評論