• Eric Roman's avatar
    Add a feature to bound the time spent on TCP connect attempts. · c1c427aa
    Eric Roman authored
    By default, there is no timeout on individual TCP connect attempts (handshakes) other than that enforced by the host OS's network stack.
    
    This change introduces the "TimeoutTcpConnectAttempt" feature, which when enabled will cause slow attempts to fail sooner with ERR_TIMED_OUT.
    
    The time permitted for an individual attempt is a function of three feature parameters, and the estimated network speed:
    
      clamp(Param("TimeoutTcpConnectAttemptMin"),
            Param("TimeoutTcpConnectAttemptMax"),
            estimated_rtt * Param("kTimeoutTcpConnectAttemptRTTMultiplier"))
    
    In other words, the timeout will be between "TimeoutTcpConnectAttemptMin" and "TimeoutTcpConnectAttemptMax", depending on how fast we think the network is.
    
    Bug: 1123197
    Change-Id: Ibfcf8b26b5b424bf9d12f5604294d7a99950f10f
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2436349
    Commit-Queue: Eric Roman <eroman@chromium.org>
    Reviewed-by: default avatarTarun Bansal <tbansal@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#812782}
    c1c427aa
features.cc 7.98 KB