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

tobewinner
Posts: 30
Joined: Thu Dec 10, 2015 5:27 am

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

Postby tobewinner » Thu May 31, 2018 3:34 am

我们使用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

tobewinner
Posts: 30
Joined: Thu Dec 10, 2015 5:27 am

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

Postby tobewinner » Thu May 31, 2018 3:59 am

下边分别是esp32上的log时间截图和wireshark运行截图
延迟截图.png
延迟截图.png (5.76 KiB) Viewed 8135 times
wireshark.png
wireshark.png (287.61 KiB) Viewed 8135 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 8135 times
Attachments
tcp retransmission.png
tcp retransmission.png (876.1 KiB) Viewed 8135 times

chongshao
Posts: 1
Joined: Tue Dec 07, 2021 9:27 am

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

Postby chongshao » Tue Dec 07, 2021 9:30 am

我也遇到了类似的问题,请问你解决没有?

ESP_Sprite
Posts: 9769
Joined: Thu Nov 26, 2015 4:08 am

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

Postby ESP_Sprite » Wed Dec 08, 2021 12:54 am

Moved to the Chinese side of the forum.

Who is online

Users browsing this forum: No registered users and 37 guests