跳转至

协议与数据面草案

本章为研究用草案提纲,非正式标准。具体消息名、字段与错误码应在实现仓库的 spec/ 或独立 RFC 式文档中维护,并与本站版本号交叉引用。

设计原则

  1. 显式状态机:每个会话状态有清晰进入/退出条件。
  2. 可扩展 TLV:预留扩展同时保持旧实现前向兼容。
  3. 错误可行动:错误码携带「建议重试 / 切换中继 / 检查时钟」等提示位(可选)。
  4. 安全默认:未协商成功的加密套件不得发送用户数据。

会话状态(抽象)

状态 描述
Idle 无会话
Gathering 收集中候选
Checking 连通性检查进行中
Securing 密钥协商(若与检查并行,可标注子状态)
Data 数据面可用
Degraded 降级使用中继或低质量路径
Closing 优雅关闭
Failed 不可恢复失败

消息族(占位)

方向 备注
HELLO / CAPABILITY 双向 特性位、版本
CANDIDATE 双向 候选交换
CHECK / CHECK_ACK 双向 连通性检查
KEY_MATERIAL 双向 依身份模型而定
DATA 双向 帧格式与分片
HEARTBEAT 双向 保活与 RTT 样本
ERROR 任意 机器可读 + 可选诊断文本

数据面帧(抽象)

建议字段:version · session_id · path_id · payload · MAC/AEAD
具体长度与 endian 由实现规范定义。

兼容性与版本协商

  • 主版本:不兼容变更。
  • 次版本:向后兼容扩展。
  • 拒绝不可识别的关键扩展时应返回明确错误并记录遥测(若允许)。

与本站其他章节的关系


相关打洞与会话建立 · 前瞻与研究路线