Having TCP client on CentOS 7 and TCP listener on Windows 2012 R2, I observed through wireshark, sysinternals procmon and ss -bitmonz command, that the tcp client wscale is 7 (scale factor 128) while the tcp listener wscale is 8 (scale factor 256):
skmem:(r0,rb367360,t0,tb46080,f110,w49042,o0,bl0) ts sack cubic wscale:8,7 rto:251 rtt:50.27/20.789 ato:49 mss:1388 cwnd:10 ssthresh:8 send 2.2Mbps lastsnd:43 lastrcv:43 lastack:43 pacing_rate 4.4Mbps unacked:10 rcv_space:29200
based on the above, TCP communication seems not tuned/aligned between the client and server (listener), please study and point out what tweaks need to be performed in order to make the client and server agrees on the window scale, btw if i used winscp to transfer data, the wscale is 7,7 (no mismatch). Currently the TCP on both OSs pure default, no tweaks made, and I perfer to tweak CentOS 7 and keep Windows 2012 R2 as default since the server accepting connections from 80 clients and its production.
Please share references that provide TCP tuning where the client is CentOS 7 and the server is Windows 2012 R2.