|
From: | address@hidden |
Subject: | Re: [lwip-users] ACK Seq number problem with FIN ACK |
Date: | Sun, 11 Nov 2007 12:44:12 +0100 |
User-agent: | Thunderbird 2.0.0.6 (Windows/20070728) |
Jonathan Larmour schrieb:
Paul Andrews wrote:What happens is lwip will connect to a server, exchange some data then the server will send a FIN ACK. However, when lwip ACKs this, the seq number is not incremented. After this, it's a whole lot of FIN ACKs going back and forth and we can never re-connect. It doesn't happen every time, but usually after a while it will trigger.
Seems what I saw was a little different. I'll describe it with a "packet trace" (seqno/ackno in brackets): lwip www.gmx.de:80 -------------------------------- SYN (0/x) -> <- SYN+ACK (0/1) // now, lwIP sends 100 bytes of data the server doesn't understand DATA (1/1) -> // and closes the connection FIN+ACK (101/1) -> // here comes the difference: on my local network, ackno is 102! // however, www.gmx.de doesn't seem to have received the FIN+ACK packet... <- ACK (1/101) // HTTP 501 error response (202 bytes) <- DATA (1/101) <- FIN+ACK (203/101) // lwIP has received everything ACK (102/204) -> // then, after 2.8 seconds, the TCP timer retransmits FIN+ACK FIN+ACK (101/204) // and so on (FIN+ACK) until the pcb is finally closed. So this is a little different than what Paul wrote: the internet server never seems to receive the FIN+ACK.Can anyone explain this? Maybe the retransmitted FINs should have their seqno
updated? Simon
[Prev in Thread] | Current Thread | [Next in Thread] |