Ad Hoc模式下,节点TCP传输或者UDP传输之后无法ping通问题解决

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网络配置方法的问题)

原文地址:https://www.cnblogs.com/jpzhu/p/11983889.html