tcp/ip connect timeouts ermitteln



  • 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
    

Log in to reply