When there is no retransmittable packet on the wire and there are open streams, the connection may send retransmittable PINGs to detect path degrading with aggressive timeout.

This change ensures that if there is no stream data received, the timeout will: 1. send first "X" pings with very aggressive timeout, i.e., initial_retransmittable_on_wire_timeout.
2. then send pings with less aggressive timeout using exponentially back-off until it exceeds the default ping timeout.

This prevents excessive PINGs being sent when upper layer forgets to cancel open streams. Protected by FLAGS_quic_max_aggressive_retransmittable_on_wire_ping_count, which also sets the limit of aggressive pings, "X".

gfe-relnote: n/a, client change only.
PiperOrigin-RevId: 275943283
Change-Id: I90f9346d76b2dbde7c57d226d6a7e4ad293a8175
5 files changed
tree: 5181639af8fffa5de9029fd115db5202ea8f1b61
  1. common/
  2. epoll_server/
  3. http2/
  4. quic/
  5. spdy/
  6. CONTRIBUTING.md
  7. LICENSE
  8. README.md
README.md

QUICHE

QUICHE (QUIC, Http/2, Etc) is Google‘s implementation of QUIC and related protocols. It powers Chromium as well as Google’s QUIC servers and some other projects.