esp-idf v2.1.2偶尔出现回应包相应延迟
Posted: 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
详细的情况如下:
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