On window scaling option in TCP header, RFC 1323 says the following :-
This option [ window scaling ] may be sent in an initial <SYN> segment
( i.e. , a segment with the SYN bit ON and ACK bit OFF ).
It may also be sent in <SYN,ACK> segment, but only if a Window Scale
option was received in the initial <SYN> segment.
Now in FTP protocol , the FTP client does a passive open for data
connection, sends the data port to server using PORT command and FPT
server does the active open to this port.
Since the FTP server is sending the <SYN> segment and if it does not
set the window scaling option [even though the kernel supports it],
then I think the FTP client can in no way use the window scaling option.
A possible solution to it might be :
TCP implementation must set ( zero/non zero depending on use ) the
window scale option in <SYN> packet if the kernel supports it.
In this way , the end receiving the <SYN> packet has the option
of either using the window scale option.