<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 一種具有多跳功能的無(wú)線(xiàn)VoIP終端設計

一種具有多跳功能的無(wú)線(xiàn)VoIP終端設計

作者: 時(shí)間:2010-03-16 來(lái)源:網(wǎng)絡(luò ) 收藏


3.1 模塊驅動(dòng)編譯

所有的Atheros芯片網(wǎng)卡基本都可以使用madwifi驅動(dòng),驅動(dòng)程序源碼madwifi-0.9.4.tar.gz可以從http://madwifi.org/上下載。在進(jì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ù)和技術(shù)的優(yōu)勢,采用了高性能的微處理器ADM5120和功能穩定強大的嵌入式Linux操作系統作為軟件平臺,構建了一個(gè)基于IEEE 802.11b/g技術(shù)的無(wú)線(xiàn)便攜式。通過(guò)在終端的系統上加載AODV路由協(xié)議實(shí)現了多跳的功能。經(jīng)過(guò)三臺終端的聯(lián)合測試,多跳通話(huà)可以保證良好的語(yǔ)音效果。

本文引用地址:http://dyxdggzs.com/article/157568.htm

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>