协议原理

WireGuard 握手拆解:它为什么更快

← 返回博客

把建链过程拆开看,会发现快不是玄学,而是几处明确的设计取舍。

一次往返完成建链

传统方案要经过协商、认证、再确认等多个阶段,WireGuard 基于 Noise 框架把密钥交换压缩到一次往返。网络越差,这个差距越明显。

代码量小意味着什么

实现只有数千行,攻击面小、审计成本低,转发路径上的分支也更少。这不是营销话术,是可验证的工程事实。

协议切换与延迟对比界面

内核态转发

数据包不必在内核态与用户态之间反复拷贝,减少了上下文切换与内存复制的开销。高带宽场景下这个差别会被明显放大。

无连接的设计

它不维护长期会话状态,对端离线时也能直接发送。切换网络、从休眠恢复时几乎无感,这解释了移动端表现为什么更稳。

代价是什么

为了精简,它把地址分配、路由下发这类策略交给了外部实现。灵活性下降,换来的是确定性与性能。

什么时候不该选它

  • 需要穿透严格防火墙时
  • 需要由 TCP 承载时
  • 存在深度检测的环境