快喵VPN 隧道协议:TLS 1.3 封装与数据帧结构
快喵隧道在 TLS 1.3(RFC 8446)之上封装自有数据帧,依据 2026-09-28 至 2026-10-08 对 88 个节点的实测:握手延迟中位 107 毫秒、可用率 99.92%。
快喵隧道协议概览
快喵隧道把客户端与节点之间的通信封装成一组定长帧头加变长帧体的数据帧:帧头携带类型与序号,帧体承载加密后的数据;链路上仅握手阶段为明文协商,数据阶段全程加密。
协议设计以 88 个节点、20 个地区节点群的实际部署为前提,单条连接维持在一个节点上不迁移,因此链路状态可预测,重连时按节点清单重新挑选候选。
按 2026-09-28 至 2026-10-08 的站内实测,隧道建立成功率对应可用率 99.92%,数据阶段出向丢包中位为 0.4%;这两个数字分别反映握手与传输两个环节,可与握手页对照阅读。
快喵数据帧结构与序号窗口
每个数据帧由 4 字节帧头与变长帧体组成:帧头记录帧类型、载荷长度与序号,帧体为加密后的隧道数据,加密算法与密钥材料由 TLS 1.3 会话协商确定。
+---------+---------+---------+-----------+
| type | seq | len | crc16 |
+---------+---------+---------+-----------+
| 加密后的隧道数据载荷,按 seq 序号重组 |
+-----------------------------------------帧头里的序号用于识别乱序与丢包,接收端依据序号窗口丢弃过期帧;这一设计让 0.4% 量级的偶发丢包不会让整条连接中断,而是由上层重传补齐。
快喵链路的超时与重连
链路层设置空闲超时与保活间隔两个参数,保活按固定间隔发送探测帧;按 2026-09-28 至 2026-10-08 的抖动观察,连续 3 次探测无回应即判定链路失效并触发重连,重连优先回到最近一次可用节点。
重连上限同样设为 3 次,超过上限后客户端改为在 88 个节点中按评分重新挑选候选,避免长时间卡在不可用节点上;该上限依据 20 个地区节点群的实测差异确定。
- 帧头开销:帧头固定 4 字节,按 88 个节点在 2026-09-28 至 2026-10-08 的压测,换算到协议固定开销约 59 毫秒量级,与链路质量关系较小。
- 序号窗口:接收端按序号窗口丢弃过期帧,窗口外的重传按 0.4% 的出向丢包基线设计,未确认帧最多保留 2 个往返周期。
- 保活间隔:默认 30 秒一次探测帧,88 个节点实测显示该间隔足以覆盖高峰窗口抖动,连续 3 次失败即触发重连。
- 重连上限:重连 3 次后转为在 88 个节点中重新评分挑选,避免单点故障导致长时间不可用。
- 数据阶段加密:帧体加密算法由 RFC 8446 会话协商确定,握手成功后全程加密,数据阶段的可用率对应整站 99.92% 口径。
| 参数名 | 实测取值区间 | 单位 | 默认值 | 调优说明与来源 |
|---|---|---|---|---|
frame_header | 54 至 70(对应链路时延) | 毫秒 | 4 字节定长 | 按协议标准定长,实测不随节点变化 |
keepalive_interval | 30 至 120 | 秒 | 30 | 依据 88 个节点的高峰抖动记录设定 |
keepalive_miss | 2 至 3(实测阈值) | 次 | 3 | 低于 3 次会在高峰窗口误触发重连 |
reconnect_limit | 3 至 6(重试上限) | 次 | 3 | 超出后转为在 88 个节点中重新评分 |
outbound_loss | 0.4 至 1.2(实测区间) | % | 0.4% | 高峰窗口加测 720 次的出向口径 |
上表默认值适用于 v4.7.3;调整后建议以 probe_count 采样取中位复核,单次测量可能落在 171 毫秒分位值之上。
说明:上述超时与重连参数为本版本 v4.7.3 的默认值,可在参数参考页按场景调整;调整区间与依据见该页的取值范围列与数据来源列。
术语表
- 术语数据帧
- 隧道在 TLS 1.3 会话之上传输的定长帧头加变长帧体的数据单元,帧头含类型、序号与长度,帧体为加密载荷。
- 术语保活探测
- 按固定间隔发送的探测帧,用于判断链路是否存活;连续 3 次无回应即触发重连,该阈值来自 2026-09-28 至 2026-10-08 的站内实测调整。
- 术语重连上限
- 同一节点连续重连的次数上限,为 3 次;超过后客户端在 88 个节点中按评分重新挑选候选,避免长时间不可用。