How does "TcpInitialRTT" or "InitialRto" affect TCP connection timeouts?
This setting specifies the connection timeout, the TCP retransmission timer. It controls how fast your TCP connections will timeout in case the other side stops responding.
It was originally in this registry location (but was later hard-coded and it didn't have any effect):
It is the same as "InitialRto", and can be modified using netsh / PowerShell as follows:
netsh interface tcp set global initialRto=3000
The default value is 3 seconds (3000 milliseconds), which actually causes TCP connections to timeout after 21 seconds as follows. There are three SYN Retransmissions by default, each delayed by twice the time of the previous one. So, with our 3 seconds InitialRto timeout:
total connection timeout = 3 + 6 + 12 = 21 seconds
This total can be reduced/increased by modifying either initialRto, or the number of Max SYN Retransmissions.
The default setting works for most general scenarios, it can sometimes be lowered with stable connections without much packet loss/retransmissions. Keep in mind this setting only controls how fast your TCP connections will timeout in case the connection needs to retransmit packets, if the other side stops responding.