FIN_WAIT_[1,2] and LAST_ACK
berhart at ErhartGroup.COM
Sun Apr 4 14:58:18 PDT 2004
I have lowered the MSL .. please note what I said in my original post. This
seems to have no effect on FIN_WAIT_[1,2] nor LAST_ACK.
At 03:54 PM 4/4/2004, you wrote:
>From: Brandon Erhart [mailto:berhart at ErhartGroup.COM]
> > Hello everyone,
> > I am writing a network application that mirrors a given
> > website (such as a
> > suped-up "wget"). I use a lot of FDs, and was getting
> > connect() errors when
> > I would run out of local_ip:local_port tuples. I lowered the
> > MSL so that
> > TIME_WAIT would timeout very quick (yes, I know, this is
> > "bad", but I'm
> > going for sheer speed here), and it alleviated the problem a bit.
> > However, I have run into a new problem. I am getting a good amount of
> > blocks stuck in FIN_WAIT_1, FIN_WAIT_2 or LAST_ACK that stick
> > around for a
> > long while. I have been unable to find must information on a
> > timeout for
> > these states. I came across a small patch that modified
> > tcp_timer.c in
> > /usr/src/sys/netinet. It changed line #484 (in FreeBSD 4.9-REL) from:
> > if (tp->t_state != TCPS_TIME_WAIT &&
> > to
> > if (tp->t_state < FIN_WAIT_2 &&
> > I also tried changing that to ".. <= FIN_WAIT_2 .."
> > However, I still end up with quite a few stuck in FIN_WAIT_1,
> > FIN_WAIT_2 or
> > LAST_ACK after the program exits (and whilst the program is
> > running of
> > course). They don't seem to timeout in the same interval that
> > TIME_WAIT does.
> > Any ideas? Did I modify the right piece of code? I was told
> > to post here as
> > you all would more than likely know!
>Perhaps you want to lower net.inet.tcp.msl sysctl?
More information about the freebsd-net