Reduce CPU impact of QUIC stateless reset packet generation

In b/180640485 we saw that QUIC stateless reset packet generation is causing noticeable CPU impact on our servers.

The randomness in IETF QUIC stateless reset packets only exists to prevent middleboxes from comparing the entire packet to a known value. Therefore it has no cryptographic use, and does not need a secure cryptographic pseudo-random number generator. This CL introduces the notion of insecure randomness, which uses the non-secure and fast PRNG xoshiro256++. In a release build, this function was empirically shown to perform 150x faster than its secure counterpart.

Protected by FLAGS_quic_reloadable_flag_quic_stateless_reset_faster_randomness.

PiperOrigin-RevId: 358886449
Change-Id: I31ba3e19f802f3012a497ac7220430ba0d93fb9d
12 files changed
tree: add1b920882f740248bb4992c69cb1ff530044a8
  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. QUICHE is only supported on little-endian platforms.

Code can be viewed in CodeSearch in Quiche and is imported into Chromium.