1.所采用的的Ad Hoc架构配置
PC端编写/etc/network/interfaces文件搭建起自组网,开发板节点连接鼠标和显示屏手动连接到该自组网(也可用命令连接,但iwconfig命令显示no wrieless extension)
架构如下:1为PC,2、3为开发板节点
两开发板节点手动连接到该自组网后,即处于Ad Hoc模式
(该语句有待商榷,因为针对测试来讲出现了问题。理论上是处理Ad Hoc模式的,因为PC端关闭网络后,开发板节点不受影响,仍存在网络并且可以ping通)
PC端设置:
sudo vi /etc/network/interfaces
auto wlan0
iface wlan0 inet static
address 192.168.5.10
netmask 255.255.255.0
wireless-channel 1
wireless-essid My_Ad_Hoc
wireless-mode ad-hoc
sudo /etc/init.d/networking restart
开发板节点配置:
1.连接到该自组网
2.设置->网络连接
3.配置该网络信息,把DHCP修改为手动IP
4.保存重启
2.ping通测试
两开发板节点是可以ping通的,且在PC端tcpdump命令抓包,并没有收到包
(无法确定包没有经过PC端,因为包可能在MAC层就转发了,没有上升到上层)
4.TCP和UDP传输测试
方法一:采用iperf或者iperf3命令进行灌包测试(iperf与iperf3命令详解与示例)
方法二:手动编写socket程序进行发包
多次传输测试后,或者一次传输后,两节点无法ping通,要么发送节点收不到应答包,要么接收节点收不到请求包
(原因不得知,可能是因为网卡工作模式又回到的默认的STA模式,不再是Ad Hoc模式。若有知情人员可私信或评论。)
5.解决方案
不再采用上述Ad Hoc模式的配置方案,而采用如下配置方案:Ad Hoc配置
之后在进行TCP和UCP测试,就可以ping通了
(由此来看,是Ad Hoc网络配置方法的问题)