基于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存在自动变化的情况。
评论