cvs commit: src/sys/netinet tcp_timer.c

Matthew Dillon dillon at
Sun Mar 30 13:39:44 PDT 2008

dillon      2008/03/30 13:39:01 PDT

DragonFly src repository

  Modified files:
    sys/netinet          tcp_timer.c 
  It's frankly long past time that we turn net.inet.tcp.always_keepalive
  on by default.
  The default test internal is 2 hours of idle (left unchanged).  I am not
  going to make it shorter but I will note that while you might not have wanted
  to have the feature enabled 15 years ago (because many people were using
  demand-dial), these days you actually almost universally want the feature
  enabled for a multitude of reasons:
  (1) Because you will often be running over a NAT and can lose the NAT
      entry if the connection stays idle with no traffic at all for too
      long a period of time.
  (2) Because you will often be running over stateful filters which can also
      get confused and lose the table entry if they see no traffic for too
      long a period of time.
  (3) Because having this turned on guarantees that stuck tcp connections,
      especially those generated through batch operations, will eventually
      get unstuck.  A TCP connection can become stuck if it is waiting on
      data and the remote end has closed the connection, but the RST got lost.
      Without this feature such connections can remain stuck literally
  In some cases you might even need a far shorter interval but that is another
  issue not addressed by this commit.
  Revision  Changes    Path
  1.17      +1 -1      src/sys/netinet/tcp_timer.c

More information about the Commits mailing list