One server is able to receive messages per 120ms 每120ms接收一次

ossic
Posts: 3
Joined: Sat Nov 19, 2016 10:21 pm

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接收一次,接收的时间似乎很短,这是为什么?
谢谢,各位的帮助!

ESP_Xutao
Posts: 134
Joined: Tue Sep 27, 2016 5:42 pm

Re: One server is able to receive messages per 120ms 每120ms接收一次

Postby ESP_Xutao » Mon Dec 12, 2016 5:40 pm

你好:
你的意思是你send出去的时间与send_callback的时间是相差120ms吗?

ossic
Posts: 3
Joined: Sat Nov 19, 2016 10:21 pm

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接收一次,对不对?
这个实验数据在我的说明书里有写到。

谢谢你!

ossic
Posts: 3
Joined: Sat Nov 19, 2016 10:21 pm

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的配置文件呢?

非常感谢!

wenqiangzxy
Posts: 9
Joined: Tue Oct 08, 2019 11:11 am

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 8 guests