Mark Lakata wrote:
I think I've gotten closer to the problem. It seems that the size of
the segments that are queued up to be sent by tcp_output are larger
than the 'wnd' size (which is pcb->snd_wnd in this case), and thus
they don't get sent. I'm not sure how this could have happened.
Specifically, this while() loopnever gets entered(line 969 in
tcp_out.c) in tcp_output()
(seg is non NULL)
while (seg != NULL &&
ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len <= wnd) {
because seg->len is bigger than wnd.
Which version of lwIP are you using? (i.e. what does '?' stand for?) I'm
asking because from 1.4.0 to 1.4.1, there have been 2 or 3 bugs fixed in
this area, which should ensure that all segments we create fit into the
window (unless the remote side does not send window updates according to
the TCP spec).
If 1.4.1 does not fix this, what is your MSS size, what are the
connection's TX/RX window sizes and what OS or IP stack is your peer
running?
Simon
_______________________________________________
lwip-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/lwip-users