I use a very simple HTTP server with the Lwip 1.1.1 + last CVS updates, with a multithread OS, using the BSD API Layer.
During my tests, I got lot of RST between my Lwip platform, and my navigator (IE6/Windows XP SP2).
I join the capture file (I try to reduce the capture to a very simple case). Using some printf in lwip code, I got from tcp_in.c :
tcp_input: pcb->state != CLOSED (tcp_process(...), line 464)
TCP_EVENT_ERR(pcb->errf, pcb->callback_arg, ERR_RST) (tcp_input(...), line 275)
I can reduce these problems using CACHE instructions in HTTP/HTML, but it's not a very good solution, and I would like to know waht is the problem.
I don't understand why IE resets the connection. If someone got an idea, it will really help me...
Thank you !!!
Chef de projet informatique
Microsoft Certified Professional
Tél. : +33 (0)4-67-87-61-10
Fax. : +33 (0)4-67-70-85-44
Email : [hidden email] Web Site : http://www.hymatom.fr ====================================
On Tue, 2006-12-05 at 11:06 +0100, Frédéric BERNON wrote:
> I don't understand why IE resets the connection. If someone got an idea, it will really help me...
You don't say which end is running the server and which is the client.
I'll assume that lwIP is the webserver (and so is on 192.168.1.246) and
the PC is the client (on 192.168.1.85).
>From this it looks like the PC opens a connection fine, sends an HTTP
request, and then immediately sends a RST. This is very odd. It is not
in response (or lack or response) to something sent by lwIP as it
happens so soon after the HTTP request is sent, and the capture shows
two other connections working fine. I can't see anything here that lwIP
is doing wrong. The PC was obviously happy with the connection
establishment as it sent the HTTP request. Windows does sometimes use a
RST rather than a FIN to close connections, but it can't be that in this
case as it is sending the RST before it has received the reply to its
I think it must be something at the PC end, either the test you are
running or the OS, deciding that the connection is no longer needed.
E.g. if you used a web browser and clicked on the "stop" button, it
might do this. Or if the test you were running died the OS might abort
all its connections in this way.