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
fn generate_cid(&mut self) -> ConnectionId
生成新的 CID
连接 ID 不得包含任何可被外部观察者(即未与颁发方协作的一方)用来将其与同一连接的其他连接 ID 进行关联的信息。 连接 ID 必须具有高熵,例如由加密数据或密码学级别的随机数据生成。
源代码fn cid_lifetime(&self) -> Option<Duration>
fn cid_lifetime(&self) -> Option<Duration>
返回所生成连接 ID 的生命周期
连接 ID 在经过返回的 Duration(如有)后将退役。假定该值是恒定的。
提供方法§
源代码fn validate(&self, _cid: &ConnectionId) -> Result<(), InvalidCid>
fn validate(&self, _cid: &ConnectionId) -> Result<(), InvalidCid>
快速判断 cid 是否可能由该生成器生成
允许存在误报,但会增加处理无效包的成本。