?
under Windows ermittel ich die max. TCP/Connect Timeoutzeit auf Basis von Default/Registry-Werten
ergibt bei mir einen Connect Timeout von 21Sek
gibt es solche Werte und die Rechenregel auch für Linux?
z.B. /proc/sys/net/ipv4/tcp_syn_retries - aber welche von den ganzen
Werte entsprechen - oder können für so eine Aussage herangezogen werden?
static void Main(string[] args)
{
const string keyName = @"HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters";
var TcpMaxDataRetransmissions = (int)Registry.GetValue(keyName, "TcpMaxDataRetransmissions", 0x5); // https://technet.microsoft.com/en-us/library/cc938210.aspx, default: 0x5
var TcpMaxConnectRetransmissions = (int)Registry.GetValue(keyName, "TcpMaxConnectRetransmissions", 2); // https://technet.microsoft.com/en-us/library/cc938209.aspx, default: 2
var InitialRttData = (int)Registry.GetValue(keyName, "InitialRttData", 0x3); // https://technet.microsoft.com/en-us/library/cc938207.aspx, default: 0x3
Console.WriteLine("aus " + keyName + " oder feste Default-Werte");
Console.WriteLine(" TcpMaxDataRetransmissions = {0}", TcpMaxDataRetransmissions);
Console.WriteLine(" TcpMaxConnectRetransmissions = {0}", TcpMaxConnectRetransmissions);
Console.WriteLine(" InitialRttData = {0} sec", InitialRttData);
Console.WriteLine("");
Console.WriteLine("max. Connect Timeout");
int delay = InitialRttData;
int max_timeout = InitialRttData;
Console.WriteLine(" Initial: timeout: {0} sec, abs_timeout: {1} sec", delay, max_timeout);
for (int i = 0; i < TcpMaxConnectRetransmissions; ++i)
{
delay *= 2;
max_timeout += delay;
Console.WriteLine(" Retry: {0} timeout: {1} sec, abs_timeout: {2} sec", i + 1, delay, max_timeout);
}
}
aus HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters oder feste Default-Werte
TcpMaxDataRetransmissions = 5
TcpMaxConnectRetransmissions = 2
InitialRttData = 3 sec
max. Connect Timeout
Initial: timeout: 3 sec, abs_timeout: 3 sec
Retry: 1 timeout: 6 sec, abs_timeout: 9 sec
Retry: 2 timeout: 12 sec, abs_timeout: 21 sec