Re: FIN_WAIT_[1,2] and LAST_ACK

From: Andre Oppermann (andre_at_freebsd.org)
Date: 04/06/04

  • Next message: Andre Oppermann: "Re: FIN_WAIT_[1,2] and LAST_ACK"
    Date: Tue, 06 Apr 2004 00:02:52 +0200
    To: Brandon Erhart <berhart@ErhartGroup.COM>
    
    

    Brandon Erhart wrote:
    >
    > 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.

    You should enlarge the local port space especially on 4.9:

     sysctl -w net.inet.ip.portrange.hifirst=10000
     sysctl -w net.inet.ip.portrange.hilast=65535

    Normal is 49152 which give you only 16383 ports to choose from. And
    with the number of connections you have you're running of them because
    of the TIME_WAIT states.

    -- 
    Andre
    > 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!
    > 
    > I am stumped.
    > 
    > Thank you all in advance,
    > 
    > Brandon
    > 
    > _______________________________________________
    > freebsd-net@freebsd.org mailing list
    > http://lists.freebsd.org/mailman/listinfo/freebsd-net
    > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
    _______________________________________________
    freebsd-net@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-net
    To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
    

  • Next message: Andre Oppermann: "Re: FIN_WAIT_[1,2] and LAST_ACK"

    Relevant Pages

    • Re: FIN_WAIT_[1,2] and LAST_ACK
      ... Brandon Erhart wrote: ... > which state the connection is currently in. ... If they stick around forever, ... > To unsubscribe, ...
      (freebsd-net)
    • Re: FIN_WAIT_[1,2] and LAST_ACK
      ... Brandon Erhart wrote: ... What must I modify to achieve this? ... ...and you'll break your TCP/IP stack in the fashion you've asked for. ... To unsubscribe, ...
      (freebsd-net)