On Thu, 2009-06-18 at 11:00 +0200, Lou Cypher wrote:
> > What you are seeing is that the PCBs are remaining in a wait-state for
> > some time. This is to prevent packets from the old (closed) connection
> > being possibly accept on a new connection. The port stays known to the
> > stack and it can send RST packets when new packets for that port are
> > received. However, while these PCBs are not yet freed, they are *not* in
> > an active state any more, thus tcp_slowtmr is correct.
> 
> Everything is clear, does make sense to me.
> How long can be "some time"? :)

2 * TCP_MSL

See tcp_slowtmr() where it handles the "TIME-WAIT" pcbs

For the default TCP_MSL, that would be 2 minutes.


> > I guess you'll have to set MEMP_NUM_TCP_PCB higher so that the timeout
> > does not keep all PCBs open...
> 
> Well, provided I can't lower that time above, looks like the only way out 
> (...)

You can lower the time (in that it is configurable) but I would
recommend reading up on the TCP TIME WAIT state and understand what is
for before you do so.  It may be that in the environment your code
operates the 2 minutes is too conservative, but only you can judge that.

Kieran



_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to