Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Apr 2004 23:33:39 -0700 (PDT)
From:      Mike Silbersack <silby@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/netinet tcp_subr.c tcp_var.h
Message-ID:  <200404200633.i3K6XdXn067858@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
silby       2004/04/19 23:33:39 PDT

  FreeBSD src repository

  Modified files:
    sys/netinet          tcp_subr.c tcp_var.h 
  Log:
  Enhance our RFC1948 implementation to perform better in some pathlogical
  TIME_WAIT recycling cases I was able to generate with http testing tools.
  
  In short, as the old algorithm relied on ticks to create the time offset
  component of an ISN, two connections with the exact same host, port pair
  that were generated between timer ticks would have the exact same sequence
  number.  As a result, the second connection would fail to pass the TIME_WAIT
  check on the server side, and the SYN would never be acknowledged.
  
  I've "fixed" this by adding random positive increments to the time component
  between clock ticks so that ISNs will *always* be increasing, no matter how
  quickly the port is recycled.
  
  Except in such contrived benchmarking situations, this problem should never
  come up in normal usage...  until networks get faster.
  
  No MFC planned, 4.x is missing other optimizations that are needed to even
  create the situation in which such quick port recycling will occur.
  
  Revision  Changes    Path
  1.188     +53 -2     src/sys/netinet/tcp_subr.c
  1.103     +1 -0      src/sys/netinet/tcp_var.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200404200633.i3K6XdXn067858>