尝试多个ESP8266EX同时接收UDP广播包,为何总吞吐量效果不理想?!!

vbhome
Posts: 3
Joined: Fri Nov 20, 2015 10:41 am

尝试多个ESP8266EX同时接收UDP广播包,为何总吞吐量效果不理想?!!

Postby vbhome » Fri Nov 20, 2015 11:01 am

首先,说一下我的拓扑,我手上有一个笔记本电脑通过普通的有线以太网连接到一个家用带无线功能的路由器TP-LINK 886N的LAN口中,路由器的Wifi工作在信道1,802.11bgn混合模式上,且已通过WirelessNetView查看周围的干扰较小,信号一直处于比较空闲的状态下。
然后有三个ESP8266的模组,通过802.11n的方式连接至家用路由器,并正常通过DHCP分得自己的IP地址。

三个ESP8266模组通过SDK编程进行UDP监听,且工作在Station模式下。

然后笔记本电脑编写一个上位机程序,对上述提到的三个ESP8266模组所在的WiFi网络进行广播发包,广播地址是192.168.1.255,并且在ESP8266模组上运行的程序中,只简单的统计接收到的广播包而不进行回复(为了避免占用正在全速广播的AP信道从而造成拥堵)。

然而根据我所查阅到的802.11的MAC层的资料显示,工作在Station模式下的工作站ESP8266模组,在MAC层处理上,是不会回应广播包的,换话句说,正常情况下如果ESP8266在收到信号道上的单播包时,是会回应一个ACK帧的,而如果收到的是广播包,就不回应了

也就是说,正常情况下,只要在MAC层以上(UDP和TCP这里),当AP在发广播包的时候,假设周围环境对信道干扰较小(我这边就是这样),那么,ESP8266是不会因为发送数据而抢占信道的。

这个时候,我的上位机软件通过AP每秒钟广播500个大小为1452字节(按照MTU值设定的)的包,也就是500*1452约等于708K字节的有效数据的话,三个ESP8266都可以正常接收到这些包才对,因为是广播嘛!
然而在实际上测试发现,这三个ESP8266是共同抢占和共享这个带宽的,也就是说,这三个ESP8266通过串口观察发现,他们三个动态的接收速率,加起来的总速率就等于只有一个ESP8266在工作的时候的速率,因此我推测它们是在共享这个带宽的,这点只是我推测,并不肯定。

如果我的推测是对的,那么我再推测造成这点的原因是因为在AP广播的过程中,三个ESP8266都试着去抢占信道,从而造成没法正常的只是做一个默默接收的美男子模块,然而这点是和802.11 MAC层所规定的有冲突

所以我的问题是,为什么会这样呢?我的推断错了吗?如果断了,请问是错在了哪里呢?请高手指点一下?感激不尽!

danshi126
Posts: 35
Joined: Sat Mar 21, 2015 8:40 am

Re: 尝试多个ESP8266EX同时接收UDP广播包,为何总吞吐量效果不理想?!!

Postby danshi126 » Sat Nov 21, 2015 8:48 am

期待解决。。。


我也遇到类似吞吐率不好的问题,两个8266。一个做AP,一个做STA进行TCP数据发送,每秒发送64个包大小为1000Byte的数据,有时候数据经常性拥堵,实时性效果不好,改用UDP就会出现丢包,有时突然连续丢几秒钟的包

ESP_Faye
Posts: 1646
Joined: Mon Oct 27, 2014 11:08 am

Re: 尝试多个ESP8266EX同时接收UDP广播包,为何总吞吐量效果不理想?!!

Postby ESP_Faye » Tue Nov 24, 2015 9:31 am

Hi vbhome,

我们根据您的描述进行了测试,但是很抱歉没有复现您的问题。
我们测试用 2 个 ESP8266 接收广播包, 2 个 ESP8266 同时 1s 内收 32 包左右。开关其中一个,对另一个没有影响。
能否提供您的测试程序?我们将进行查证。

Hi danshi126,

TCP 不能保证实时性,TCP 只保证可靠性。实时性取决于空气中的干扰。 如果您希望保证实时性,建议采用 ESP-NOW。

danshi126
Posts: 35
Joined: Sat Mar 21, 2015 8:40 am

Re: 尝试多个ESP8266EX同时接收UDP广播包,为何总吞吐量效果不理想?!!

Postby danshi126 » Wed Nov 25, 2015 9:12 am

Hi faye,

ESP-NOW单向最大传输速率是多少?

Who is online

Users browsing this forum: No registered users and 139 guests