基于ARM的Ad Hoc網絡平臺的實現
為簡單起見,本測試使用兩個筆記本和一個ARM平臺組建成Ad Hoc網絡,如圖4所示,A節點IP為10.0.1.1,B節點IP為10.0.1.2,C節點IP為10.0.1.3(經測試將ARM平臺做通信端,A或C做中繼,網絡同樣可以正常運行)。

圖4 測試拓撲示意圖
為了簡單地實現C節點不在A節點一跳范圍內,可以使用iptables實現過濾。
在A節點執行:
iptables –A INPUT –p ALL –m mac –mac-source C.mac –j DROP
在C節點執行:
iptables –A INPUT –p ALL –m mac –mac-source A.mac –j DROP
以上的C.mac、A.mac是C和A的實際mac地址,這樣A節點拒絕C發給它的數據包,C節點也拒絕A發給它的數據包,保證二者一跳不可達。
在C節點ping -R 10.0.1.1,鏈路不通,說明過濾成功,B沒有進行數據包轉發。
在各節點上運行AODV后,在C節點ping -R 10.0.1.1,結果如圖5所示。

圖5 測試結果
可見,B正確地進行了數據包轉發,AODV協議正常運行,ARM平臺成功運行。
在A節點執行lftp 10.0.1.3,并下載普通文件。這樣數據包由中間的ARM平臺B轉發,下載完成后,查看C節點的日志文件/var/log/vsftpd.log,發現上傳和下載的速率基本相同,有將近700kBps的速率,達到5.4Mbps的速率。粗略估算聚合物電池供電能使ARM平臺穩定運行8小時。
通過以上測試,搭建一個Ad Hoc網絡的ARM平臺的目標已經達到。通過對有多個ARM平臺的Ad Hoc網絡進行測試,發現當某節點感知無線信號很弱時,無線網卡的essid存在自動變化的情況。
評論