pub const CONNECTION_UNANSWERED_MULTIPLIER: u32 = 8;Expand description
How many times over a connection may spend unanswered_packet_budget before
its sessions are closed instead of muted.
The per-session budget is the RFC 9298 §7 mitigation and it is the right unit for one conversation: a handshake that legitimately needs several packets before the first reply must not break, and the default of 64 is generous for exactly that reason. What it does not bound is how many conversations a connection may start, so this multiplier is what turns the mitigation into a bound.
Eight, because a client with several targets that are slow or unreachable at once is ordinary (a resolver that is down, a peer-to-peer application probing a stale address list), and one that has spent eight full session budgets without a single target ever answering is not doing that any more. The product is what a connection can reflect at silent targets in its whole life: 512 packets at the defaults, against an unbounded number before this existed. A client that wants another allowance pays for another handshake, which is the price this server charges everywhere else.
Not a configuration key. unanswered_packet_budget already carries the
meaning “how much this proxy will send into silence”, an operator who
changes it moves both halves together, and zero switches both off. A second
key would be a second thing to get wrong for a bound that is a multiple of
the first (D86 counts the configuration surface as a cost).