[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lwip-users] Slow release time of closed TCP PCBs
From: |
Kieran Mansley |
Subject: |
Re: [lwip-users] Slow release time of closed TCP PCBs |
Date: |
Thu, 18 Jun 2009 10:29:25 +0100 |
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