[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-members] TCP ACK bug
From: |
Paul Sheer |
Subject: |
[lwip-members] TCP ACK bug |
Date: |
Fri, 11 Apr 2003 00:25:09 +0200 |
Hi
I have found a situation where LwIP gets stuck. My tree is waaaay
out of sink, so i have no idea if it has long since been fixed.
There is a rare situation when you download in one direction
from a remote non-LwIP stack on a very unreliable link, where
packets can get reordered, that you get lwip stuck on
"tcp_receive: duplicate seqno"...
the problem happens when an ack from lwip has been lost,
but out-of-ordering makes the remote think its further
behind than it really is, and retransmits a packet that
ends up at the line "tcp_receive: duplicate seqno" and
is processed no further.
simply adding:
else{
/* the whole segment is < rcv_nxt */
/* must be a duplicate of a packet that has already been correctly
handled */
+ tcp_ack(pcb);
DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: duplicate seqno %ld\n", seqno));
}
fixes this.
-paul
- [lwip-members] TCP ACK bug,
Paul Sheer <=