Noq: n0's QUIC Implementation in Rust

⭐⭐⭐⭐ (4星) | 2026-03-20 | Rust QUIC 网络 NAT

概述

n0 团队发布了全新的 QUIC 实现 noq ("number 0 QUIC"),这是 iroh v0.96+ 的传输层,支持多路径和 NAT 穿透。

核心亮点: 完整实现 QUIC Multipath 规范,NAT 穿透生产级实现,首个 robust 方案

技术细节

1. QUIC Multipath 规范实现

  • 多路径成为 QUIC 第一等公民概念
  • relay 路径和直接 UDP 路径都是 QUIC 路径
  • QUIC 维护每条路径的拥塞状态
  • 自动选择最佳路径,降低延迟

2. NAT 穿透

  • 生产级 robust NAT 穿透实现
  • 通过数十万设备实战测试
  • 在 QUIC 层表达打洞操作,而非底层
  • 拥塞控制器能感知穿透过程

3. QUIC Address Discovery (QAD)

  • 使用 QUIC 连接学习公网 IP
  • 替代传统 STUN
  • 加密数据包,不牺牲往返次数
  • 防止协议僵化,增强隐私

4. qlog 支持

  • 扩展 qlog 事件支持
  • 支持多路径数据包流可视化
  • 提供 qlog-viewer 原型工具

架构演进

从 Quinn 软分支到硬分支的历程:

  • 2024 年:因 iroh 需求与 Quinn 不匹配而 fork
  • 多路径、NAT 穿透开发导致迭代周期不匹配
  • 硬分支避免对 Quinn 用户的公平影响
  • 继续与 Quinn 团队在共同兴趣领域合作

生产就绪

  • 自 iroh v0.96 起在生产环境运行
  • 已服务数十万设备
  • 与 picoquic(参考实现)进行互操作测试

参考资源