Skip to main content

Module random

Module random 

Source
Expand description

统一随机源(全 workspace 唯一入口)

两类随机性严格分离:

  • random_u64 / try_random_u64:CSPRNG(操作系统熵源),用于安全敏感场景 (TCP ISN、QUIC SCID、PATH_CHALLENGE、会话标识),禁止用伪随机替代
  • pseudo_random_u64 / Splitmix64:线程本地 splitmix64 伪随机(种子一次性 取自 CSPRNG),用于性能敏感但无安全要求的场景(负载均衡 P2C、退避 jitter)

设计约束:

  • 热路径零系统调用:伪随机走线程本地状态,仅首次播种触达 OS 熵源
  • fail-closed:CSPRNG 失败时 try_random_u64 返回 None,由调用方决策; random_u64 的应急回退仍混入纳秒时间戳与原子计数(绝不退化为固定种子)

Structs§

Splitmix64
Splitmix64 伪随机生成器(值语义,零堆分配)

Functions§

pseudo_random_bounded
线程本地伪随机,输出 [0, bound)(bound 为 0 时返回 0)
pseudo_random_u64
线程本地伪随机(热路径零系统调用、零同步开销)
random_u64
从 OS 熵源获取密码学安全随机数
try_fill_random
填充密码学安全随机字节
try_random_u64
从 OS 熵源读取 8 字节(CSPRNG)