Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Aug 2015 15:45:34 -0700
From:      Xin Li <delphij@delphij.net>
To:        Hooman Fazaeli <hoomanfazaeli@gmail.com>, "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>
Subject:   Re: tcp window scaling (rfc1323) problem
Message-ID:  <55BFEF0E.5080401@delphij.net>
In-Reply-To: <55BA36FF.9070405@gmail.com>
References:  <55BA36FF.9070405@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On 07/30/15 07:38, Hooman Fazaeli wrote:
> Hi,
> 
> We connect to the Internet through a TCP proxy running on FreeBSD 
> 8.3-RELEASE. Everything works except that instagram clients
> frequently fail to get/refresh some images and feeds. I have
> checked anything that may be the cause of problem and found that
> setting net.inet.tcp.rfc1323 to zero improves the situation.
> 
> Googling a bit, I found out that there are reports about window
> scaling impl. bug in older freebsds (i.e., 
> https://lists.freebsd.org/pipermail/freebsd-hackers/2007-January/01907
0.html).
>
> 
> 
> My question is that which version of freebsd is known to have the
> bug of window scaling fixed? Is there any known problem related to
> window scaling in newer (8+) freebsd versions?

It was fixed in ~2006 in the following revision:

r156125 | andre | 2006-02-28 15:05:59 -0800 (Tue, 28 Feb 2006) | 12 line
s

Rework TCP window scaling (RFC1323) to properly scale the send window
right from the beginning and partly clean up the differences in handling
between SYN_SENT and SYN_RCVD (syncache).

Further changes to this code to come.  This is a first incremental step
to a general overhaul and streamlining of the TCP code.

PR:		kern/15095
PR:		kern/92690 (partly)
Reviewed by:	qingli (and tested with ANVL)
Sponsored by:	TCP/IP Optimization Fundraise 2005

======

The last revision that touched this code is:

r159950 | andre | 2006-06-26 09:14:19 -0700 (Mon, 26 Jun 2006) | 17 line
s

Some cleanups and janitorial work to tcp_syncache:

 o don't assign remote/local host/port information manually between
provided
   struct in_conninfo and struct syncache, bcopy() it instead
 o rename sc_tsrecent to sc_tsreflect in struct syncache to better captu
re
   the purpose of this field
 o rename sc_request_r_scale to sc_requested_r_scale for ditto reasons
 o fix IPSEC error case printf's to report correct function name
 o in syncache_socket() only transpose enhanced tcp options parameters t
o
   struct tcpcb when the inpcb doesn't has TF_NOOPT set
 o in syncache_respond() reorder stack variables
 o in syncache_respond() remove bogus KASSERT()

No functional changes.

Sponsored by:	TCP/IP Optimization Fundraise 2005

So anything >= 7.0 (r172531) would have the fix and there should be no
regression on that.  Will it be possible that you provide some packet
capture (tcpdump -w with the host/port's) so our TCP developers would
be able to look into deeper?

Cheers,
- -- 
Xin LI <delphij@delphij.net>    https://www.delphij.net/
FreeBSD - The Power to Serve!           Live free or die
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.1.6 (FreeBSD)

iQIcBAEBCgAGBQJVv+8OAAoJEJW2GBstM+nsXFoP/iDJpF5BfMB5KD1z7K9uNK88
xkjQBOLZlzVJmtA5bSiu63ocgskVcRue0RMSBhAXEAfPi2pvwaATvddVfrqu8wbk
AvVCPZM5E2nmLOUwzpcf51P1DA7pxA6gOo0rff21E8G0NZv2ezmid5z8nDCtSIMy
fMiMoADTSBP+bXQcCSKXbgUYIrlGkEfmNUZfrci7RqTfm8vYNyZ3x3Ex/IWe6bvb
fAahEqgamQJUo2a6ScTWdvJo1yhggdAW7+bN/fXDEY1EFxaN5fVqbmSLQxZp/cmy
trNomz4rrR5U/ZLSmgyRXXuJ1LokbZecsni6RJOdB1dbieB1h9OMGaQWXz9UoS4p
JMqAR3K5nAIvcbn3fZPTjqUQs4keVYgvrPjONaxp8DzO6DwvU4lLL79yX7GW6HI1
pCFQY5PYY2Aszfn2I/WJPETNQqvn5qtKJ693Ykp9hJWk9w8/nU7ErpdTi/2Fy9Jp
FF3gasOTpEcya1i+LdBD+8CmFPFi6HT43BKF6EuFEPnKGkexqv2sHx8qQiZ16Q7J
rn8rditGmbdAeVC/HMVIUtTSGSpea06dHTo8MUZeRMH2rGD/VpNJR3qfmWOODLZj
z78rpUldVZkexI6Pm231CHD7aXPeijHi+srag+Af0WYpDD7jMOCMauhFk/a+QsMY
vECZTDpTPk0gmNyYB4in
=Anu5
-----END PGP SIGNATURE-----



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