Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Sep 2002 15:21:37 -0700 (PDT)
From:      Matt Dillon <dillon@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/netinet tcp_input.c
Message-ID:  <200209172221.g8HMLbg3005351@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
dillon      2002/09/17 15:21:37 PDT

  Modified files:
    sys/netinet          tcp_input.c 
  Log:
  Guido reported an interesting bug where an FTP connection between a
  Windows 2000 box and a FreeBSD box could stall.  The problem turned out
  to be a timestamp reply bug in the W2K TCP stack.  FreeBSD sends a
  timestamp with the SYN, W2K returns a timestamp of 0 in the SYN+ACK
  causing FreeBSD to calculate an insane SRTT and RTT, resulting in
  a maximal retransmit timeout (60 seconds).  If there is any packet
  loss on the connection for the first six or so packets the retransmit
  case may be hit (the window will still be too small for fast-retransmit),
  causing a 60+ second pause.  The W2K box gives up and closes the
  connection.
  
  This commit works around the W2K bug.
  
  15:04:59.374588 FREEBSD.20 > W2K.1036: S 1420807004:1420807004(0) win 65535 <mss 1460,nop,wscale 2,nop,nop,timestamp 188297344 0> (DF) [tos 0x8]
  15:04:59.377558 W2K.1036 > FREEBSD.20: S 4134611565:4134611565(0) ack 1420807005 win 17520 <mss 1460,nop,wscale 0,nop,nop,timestamp 0 0> (DF)
  
  Bug reported by: Guido van Rooij <guido@gvr.org>
  
  Revision  Changes    Path
  1.174     +23 -5     src/sys/netinet/tcp_input.c

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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