neqo icon indicating copy to clipboard operation
neqo copied to clipboard

Max idle timeout is perhaps too short

Open msoxzw opened this issue 3 years ago • 2 comments

The maximum idle timeout in neqo used by Firefox is 30 seonds, eclipsed by 600 seconds in quiche used by Chrome.

Considering remote servers, https://www.cloudflare.com/ is 180 seconds, and https://www.google.com/ is 240 seconds.

I reckon that neqo probably has not implemented the QUIC handshake timeout, and as a result 30 seconds idle timeout is picked and chosen.

msoxzw avatar Jan 30 '23 23:01 msoxzw

Yes, our timeouts are a little shorter than you will see elsewhere. We have a single timeout for the connection, regardless of its state; handshakes need to fit inside that time. Idle timeouts also drive our keep-alive behaviour in cases where we want to keep a connection open (we do this if the HTTP client has an outstanding request).

The value is configurable, we just haven't seen much reason to reassess the 30s value. @msoxzw do you have a reason that this should be longer?

martinthomson avatar Jan 31 '23 00:01 martinthomson

Longer idle timeout tends to avoid unnecessary expensive handshakes. If QUIC handshake timeout is used like Google quiche, ngtcp2, etc. , an outstanding request could be closed in a much shorter time, e.g. 10 seconds.

msoxzw avatar Jan 31 '23 00:01 msoxzw