跳到主要内容

ConnectionIdGenerator

搜索

trait ConnectionIdGenerator 

源代码
pub trait ConnectionIdGenerator: Send + Sync {
    // Required methods
    fn generate_cid(&mut self) -> ConnectionId;
    fn cid_len(&self) -> usize;
    fn cid_lifetime(&self) -> Option<Duration>;

    // Provided method
    fn validate(&self, _cid: &ConnectionId) -> Result<(), InvalidCid> { ... }
}
展开描述

为入站连接生成连接 ID

必需方法§

源代码

fn generate_cid(&mut self) -> ConnectionId

生成新的 CID

连接 ID 不得包含任何可被外部观察者(即未与颁发方协作的一方)用来将其与同一连接的其他连接 ID 进行关联的信息。 连接 ID 必须具有高熵,例如由加密数据或密码学级别的随机数据生成。

源代码

fn cid_len(&self) -> usize

返回由该生成器创建的连接的 CID 长度

源代码

fn cid_lifetime(&self) -> Option<Duration>

返回所生成连接 ID 的生命周期

连接 ID 在经过返回的 Duration(如有)后将退役。假定该值是恒定的。

提供方法§

源代码

fn validate(&self, _cid: &ConnectionId) -> Result<(), InvalidCid>

快速判断 cid 是否可能由该生成器生成

允许存在误报,但会增加处理无效包的成本。

实现者§