One server is able to receive messages per 120ms 每120ms接收一次
One server is able to receive messages per 120ms 每120ms接收一次
Postby ossic » Mon Dec 05, 2016 10:03 pm
By experiment, I find that slave-point as server is able to receive messages per 120ms from
some clients, in TCP way.
It is almost like, the master-point cannot receive anything from other slave-point during 120ms before
it opens its receiving-pipe, some I imageine there is.
Why?
Thanks!
email: songyuefeng@qq.com
通过实验发现,esp8266好像有一个特性,就是,每120ms接收一次信息。
我测试的环境是,一个中心节点作为server,其它的节点作为client,多个client向中心节点
发送数据包,用的是TCP协议,数据包很小。
结论是,Wi-Fi并不是一直处于接收状态,而是每120ms接收一次,接收的时间似乎很短,这是为什么?
谢谢,各位的帮助!
some clients, in TCP way.
It is almost like, the master-point cannot receive anything from other slave-point during 120ms before
it opens its receiving-pipe, some I imageine there is.
Why?
Thanks!
email: songyuefeng@qq.com
通过实验发现,esp8266好像有一个特性,就是,每120ms接收一次信息。
我测试的环境是,一个中心节点作为server,其它的节点作为client,多个client向中心节点
发送数据包,用的是TCP协议,数据包很小。
结论是,Wi-Fi并不是一直处于接收状态,而是每120ms接收一次,接收的时间似乎很短,这是为什么?
谢谢,各位的帮助!
Re: One server is able to receive messages per 120ms 每120ms接收一次
Postby ossic » Tue Dec 13, 2016 4:08 pm
ESP_Xutao wrote:你好:
你的意思是你send出去的时间与send_callback的时间是相差120ms吗?
还不是,我自己写了一个说明书,包含实验结果,还有两个节点的代码,都可以发给你
我的邮箱是 songyuefeng@qq.com ,请给我留言,谢谢!
我做的实验本质上是通过改变发送间隔来观察延迟:子节点向中心节点发送数据(只有几kb,这个无关紧要),发送成功后,显示一来一回加起来的时间并打印到串口被我们记录,然后间隔一段固定时间interval,再向中心节点发送数据,循环往复。每个interval是一组实验。我做了interval=1ms,10ms,20ms,30ms,……,250ms。
注意:成功接收到接收端返回的ACK也就是触发send_callback的时候才显示延迟,并且发送下一组数据。
从得到的数据推断出,接收端在监听信道时,每休眠120ms然后唤醒自己几ms接收发送端发来的数据然后返回确认帧给发送端,然后又进入休眠
而我理解的Wi-Fi模块应该是,在接收时应该时刻保持唤醒,不应该每120ms接收一次,对不对?
这个实验数据在我的说明书里有写到。
谢谢你!
Re: One server is able to receive messages per 120ms 每120ms接收一次
Postby ossic » Thu Dec 15, 2016 3:30 pm
ESP_Xutao wrote:你好:
你的意思是你send出去的时间与send_callback的时间是相差120ms吗?
您好,我大概找到问题的原因了,但是不知道如何解决。
我发现,是 LWIP 的timer设置造成的,默认将TCP_FAST_INTERVAL 即TCP_TMR_INTERVAL设置为125ms,所以出现了
绝对时间上每隔125ms处理一次消息,比如返回确认帧。
但是,
我们如果想在自己的工程当中实现这个TCP_FAST_INTERVAL的设置是几乎不可能的,因为关于LWIP的配置文件放置在
工程下的 lib当中,名字叫" liblwip.a "中,这个文件看上去是已经编译好的而且不能修改,所以
请问,乐鑫能否提供一个单纯将 TCP_FAST_INTERVAL 设置为0的配置文件呢?
非常感谢!
Re: One server is able to receive messages per 120ms 每120ms接收一次
Postby wenqiangzxy » Fri Dec 06, 2019 2:15 pm
ossic wrote:ESP_Xutao wrote:你好:
你的意思是你send出去的时间与send_callback的时间是相差120ms吗?
您好,我大概找到问题的原因了,但是不知道如何解决。
我发现,是 LWIP 的timer设置造成的,默认将TCP_FAST_INTERVAL 即TCP_TMR_INTERVAL设置为125ms,所以出现了
绝对时间上每隔125ms处理一次消息,比如返回确认帧。
但是,
我们如果想在自己的工程当中实现这个TCP_FAST_INTERVAL的设置是几乎不可能的,因为关于LWIP的配置文件放置在
工程下的 lib当中,名字叫" liblwip.a "中,这个文件看上去是已经编译好的而且不能修改,所以
请问,乐鑫能否提供一个单纯将 TCP_FAST_INTERVAL 设置为0的配置文件呢?
非常感谢!
你好,我也出现了这个问题,就是接包的时候他是125ms左右接收一包数据,我加快传输数据的话就会丢包,请问你后来解决了吗?我改过那个参数改完之后一两次的接收是可以的,限制又不行了啦。可以指点一下吗?
谢谢!!!
Who is online
Users browsing this forum: No registered users and 180 guests
Login
Newbies Start Here
Are you new to ESP8266?
Unsure what to do?
Dunno where to start?
Start right here!
Latest SDK
Documentation
Complete listing of the official ESP8266 related documentation release by ESPRESSIF!
Must read here!
- All times are UTC+08:00
- Top
- Delete all board cookies
About Us
Espressif Systems is a fabless semiconductor company providing cutting-edge low power WiFi SoCs and wireless solutions for wireless communications and Internet of Things applications. We are the manufacturer of ESP8266EX.