Wispr P2P 直连传输架构:为什么消息不经过服务器
什么是 P2P 直连
P2P(Peer-to-Peer)直连意味着:两台设备直接建立加密通道通讯,消息不经过任何中间服务器中转。
传统中心化架构(Signal/WhatsApp 路线)
设备 A → [加密消息] → 公司服务器 → [加密消息] → 设备 B
↑
服务器知道:谁在什么时候和谁通讯
但看不到:消息明文内容
Wispr P2P 直连架构
设备 A ←——— 加密通道 ———→ 设备 B
↑
服务器不承载任何消息数据
只协助建立连接(NAT 穿透)
NAT 穿透:P2P 直连的技术前提
现实中的设备大多在 NAT(网络地址转换)后面——比如你家里用路由器、公司内网、运营商 CGNAT。两台 NAT 后面的设备要直接互联,需要先解决 NAT 穿透(Traversal)。
Wispr VOBP 协议使用标准的 NAT 穿透技术(STUN / TURN):
- Wispr 服务器提供 STUN 服务——帮助双方找到自己在公网侧的临时 IP:Port
- 双方交换 STUN 结果,尝试直接连入对方
- 连入成功 → P2P 直连建立 ✅
- 连入失败 → 自动尝试中继(见下文)
中继回落
当 NAT 穿透失败时(严格的企业网、教育网、部分运营商),Wispr 会自动回落到 TURN relay——Wispr 自己维护的中继节点。
中继做什么:
- 只转发密文:中继收到的是加密后的消息内容,原样转发
- 不知道内容:中继无法解密(密钥只在两台设备上)
- 增加延迟:绕路了,所以延迟比 P2P 直连略高
中继不做什么:
- ❌ 不解密内容
- ❌ 不存储消息
- ❌ 不记录通讯双方的完整身份映射
为什么选 P2P
隐私原因:P2P 直连意味着消息不经过任何中心化节点——没有单点故障、没有中心化审计压力。
元数据原因:P2P 架构下,服务器几乎看不到你的通讯元数据——不知道"谁在和谁通讯"、"通讯多长时间"、"发了多少条消息"。
去中心化原因:理论上,就算 Wispr 公司被关停、服务器全部下线,只要 VOBP 协议还在,两台设备之间仍然能直接通讯——不需要任何中心化基础设施。
P2P 的代价
用户体验:P2P 直连在复杂网络环境下经常失败——企业网、校园网、部分运营商会对 P2P 端口做严格限制。Wispr 虽然有 relay 回落,但 relay 增加了延迟、也意味着消息经过了一个额外节点。
连接可靠性:P2P 连接可能因为网络波动而断开,需要自动重连机制。v1.3.3 版本优化了 P2P 连接握手逻辑,改善了弱网下的断线问题。
消息离线送达:P2P 架构下,对方不在线时消息无法送达——没有服务器帮你暂存。如果对方 3 小时不开机,你的消息就只能等他上线后重新发送。