2024-10-20 07:37 PM - last edited on 2024-10-23 01:48 PM by SofLit
Good morning.
I'm running an STM32F767Zi on a custom board, LwIP 2.1.2, no OS. The device acts as a HTTP server. I've got an issue where I get GET requests and [FIN, ACK] packets retransmitted by the web browser.
192.168.5.106 - Client
192.168.5.196 - Server
The issue seems to be intermittent and appears only when a portion of the webpage content is requested (status.xml) once per second. When the entire webpage content is first loaded I don't get any packets retransmitted.
The pattern is:
Looks like the first GET request is not processed until the retransmitted packet arrives.
What I've done so far:
Also:
I don't know what I'm missing, I would appreciate if somebody could point me in the right direction. I spent days on troubleshooting and trying to find what the issue is, but run out of ideas...
EDIT:
I noticed that the problem goes away when I disable LCACHE by resetting IC bit in SCB_CCR. Also, GET message processing time increases from 8-9 ms to 16-17ms.
EDIT2:
I made another observation. I flooded the device with ICMP requests simultaneously from 8 terminals. If an ICMP packet arrives after a GET request, I get the correct response from the HTTP server and the GET packet doesn't get retransmitted.
2024-11-28 08:37 AM
Hello @pelgrimo ,
this seems to be related to you application which handles the http server and if it happens only when GET requests status.xml. if I was to debug this I would try and focus on that part to see if the retransmission is caused by and inappropriate response or if the first transmit was corrupted for some reason related to LWIP buffer handling and packet segmentation for example.
Regards
Hichem