Page 1 of 2

两个ESP8266 之间用TCP传输数据 间接性出现拥堵问题

Posted: Sat Nov 14, 2015 9:15 am
by danshi126
SDK:RTOS V1.3/RTOS V1.1

esp8266速率:802.11n

应用场景:模块A做 AP模式,模块B做STA模式,模块B每15.6ms发送1000Byte数据到模块A(走TCP),折合传输码率为512kbps

问题现象:传输时(走TCP方式)过几分钟(有时过十分钟)就会出现模块A接收到不模块B的数据,过一会儿模块A又接收到模块B的数据了,且接收到很多像是刚刚没接收到的数据一下全过来了;感觉是网络出现拥堵,但模块A做AP模式是设了密码且除了模块B外没有其它设备接入;

然后考虑TCP是三次握手,于是改用UDP传输;发现UDP就经常出现丢包,现象一样也是过几分钟有时过十来分钟模块B连续一两秒内的数据全接收不到(丢了很多个包); 按理来说模块A与模块B组成局域网且网络较宽松不应该出现丢包现象才对


以上现象应该怎么去分析并解决呢?

Re: 两个ESP8266 之间用TCP传输数据 间接性出现拥堵问题

Posted: Mon Nov 16, 2015 11:55 am
by ESP_Faye
您好,

能否使用 omnipeek 或者 wireshark 抓包,提供抓包数据以供分析?

感谢您对 ESP8266 的关注!

Re: 两个ESP8266 之间用TCP传输数据 间接性出现拥堵问题

Posted: Fri Nov 20, 2015 3:44 pm
by danshi126
Hi Faye,

数据包见附件

Re: 两个ESP8266 之间用TCP传输数据 间接性出现拥堵问题

Posted: Sat Nov 21, 2015 12:10 pm
by danshi126
上面那个附件抓包可能有误,请参考这个附件的包,这个包抓到很多回拥堵现象

QQ图片20151121120840.jpg


gjhgjhg.png

Re: 两个ESP8266 之间用TCP传输数据 间接性出现拥堵问题

Posted: Mon Nov 23, 2015 1:12 pm
by zsf518
这里的版主动不动就要别人贴证据出来。难道你们自己都没有测试过TCP/UDP的吞吐率?
反正感觉ESP8266的吞吐率十分不理想。

Re: 两个ESP8266 之间用TCP传输数据 间接性出现拥堵问题

Posted: Mon Nov 23, 2015 5:19 pm
by ESP_Faye
您好,

无线网络的信道是争用机制的,在开放环境下,我司测试的吞吐率大约在 2Mbps 左右,而在屏蔽箱中测试,速率为 TX 10Mbps,RX 20Mbps。

例如,您使用模块 A B 做局域网测试,但模块 A (softAP) 所在信道仍然会有其他 AP 也是同一信道,共用网络资源,可能造成拥堵问题。并不是模块 A B 建一个小型局域网,就能营造干净的网络环境。如果您没有屏蔽箱,建议可将信道设置为您实际环境中 AP 所在数量少的信道号,进行测试。

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

感谢您对 ESP8266 的关注!

Re: 两个ESP8266 之间用TCP传输数据 间接性出现拥堵问题

Posted: Tue Nov 24, 2015 4:13 pm
by danshi126
您好,faye

实际应用中2.4G热点都是很多的,同一个信道有一两个热点都太正常了;


你所说的能保证实时性的ESP-NOW是什么?有相关文档吗

Re: 两个ESP8266 之间用TCP传输数据 间接性出现拥堵问题

Posted: Wed Nov 25, 2015 8:55 am
by danshi126
你好 faye,

ESP-NOW是针对Smart-Light做的,请问ESP-NOW最大传输速率是多少呢?

Re: 两个ESP8266 之间用TCP传输数据 间接性出现拥堵问题

Posted: Thu Nov 26, 2015 7:10 pm
by ESP_Faye
您好,

ESP-NOW 默认速率是 6Mbps。
您可以通过 rate control 的相关接口设置修改,但请注意,rate control 设置 ESP8266 的发包速率,并不是单独设置 ESP-NOW,也会影响其他包。
软件接口说明请参考文档 “2C-ESP8266__SDK__Programming Guide”

Re: 两个ESP8266 之间用TCP传输数据 间接性出现拥堵问题

Posted: Tue Dec 15, 2015 9:21 am
by danshi126
您好,

我测了ESP-NOW功能,两个ESP8266模块一个做ESP_NOW_ROLE_CONTROLLER角色(工作于STA模式),另一个做ESP_NOW_ROLE_SLAVE角色(工作于SoftAP模式),两个模块之间没有建立连接;ESP-NOW成功添加设备后,使用ESP-NOW发送数据,很容易丢包;每包数据为15Bytes,500ms发一包数据都会出现丢包现象;