Page 1 of 1

esp-idf v2.1.2偶尔出现回应包相应延迟

Posted: Thu May 31, 2018 3:34 am
by tobewinner
我们使用ESP32的一个设备,最近测试中发现一个问题,偶尔会出现PC端TCP已经回应了数据,但ESP32端不能立刻收到,需要延迟一段时间才能收到,有时会延迟2-3秒,对设备的反应时间有较大的影响。
详细的情况如下:
1,ESP32 -- WiFi AP -- switch -- PC
2,ESP32的sdk为esp-idf v2.1.2,作为客户端建立了一个TCP连接,连接着PC的一个服务器程序(使用的mbedtls);
3,ESP32的设备在外部触发时,会给PC发送一包数据并等待PC的回应。
4,现在的问题是,偶尔会出现ESP32得到的回应特别慢(正常情况延迟40-100ms,但异常时可能会延迟1-4s)
5,为了进一步确定问题,我们做了抓包,进行分析:在PC端运行WireShark进行抓包,问题出现时得到的现象如下:
情况1:
a PC端是立刻进行回复了,耗时小于40ms
b ESP32端,延迟1s左右收到回应包(通过select监测socket是否可读,并在可读时打印时间点,发现距离发送耗时1s)
清空2:
a PC端是立刻进行回复了,耗时小于40ms
b ESP32端,延迟1s多收到回应包(通过select监测socket是否可读,并在可读时打印时间点,发现距离发送耗时1s),同时wireshark中出现多次TCP retransmission

TCP 数据丢包或retransmission的问题,我发现论坛中也有不少对应的帖子,好像没有很好地解决:
http://bbs.esp32.com/viewtopic.php?f=2& ... 04b#p16612
http://bbs.esp32.com/viewtopic.php?f=19 ... 17e#p25393

Re: esp-idf v2.1.2偶尔出现回应包相应延迟

Posted: Thu May 31, 2018 3:59 am
by tobewinner
下边分别是esp32上的log时间截图和wireshark运行截图
延迟截图.png
延迟截图.png (5.76 KiB) Viewed 8100 times
wireshark.png
wireshark.png (287.61 KiB) Viewed 8100 times
可以看到wireshark上3121是esp32发给PC的数据包,3122是PC回应的且随着TCP ACK负载着数据,耗时只有不到30ms,但设备上响应(select可读耗时1.8s)的时间挺长
会是什么原因呢?

另外如下图,是另外一次抓到的情况,也是PC的回应随着TCP ACK负载着数据,此时esp32也是响应时间1秒多
wireshark.png
wireshark.png (287.61 KiB) Viewed 8100 times

Re: esp-idf v2.1.2偶尔出现回应包相应延迟

Posted: Tue Dec 07, 2021 9:30 am
by chongshao
我也遇到了类似的问题,请问你解决没有?

Re: esp-idf v2.1.2偶尔出现回应包相应延迟

Posted: Wed Dec 08, 2021 12:54 am
by ESP_Sprite
Moved to the Chinese side of the forum.