文章摘要
Iroh团队宣布推出自主开发的QUIC实现noq("number 0 QUIC"),支持多路径和NAT穿透。该技术自iroh v0.96起就作为传输层使用,但不仅限于此。团队最初分叉了Quinn项目,后因需要深度整合网络功能而开发了独立的noq实现。
文章总结
noq正式发布:n0团队推出支持多路径和NAT穿透的QUIC实现
2026年3月19日,n0团队宣布推出noq("number 0 QUIC")——一款具有多路径和NAT穿透支持的通用QUIC实现。该传输层自iroh v0.96版本起就已投入使用,但其应用场景远不限于iroh。
从软分叉到硬分叉
n0团队最初于2024年分叉了Quinn项目,原因是iroh需要在QUIC外围处理大量工作:在直连和中继路径间切换、管理NAT穿透、维护拥塞状态等。随着开发深入,两个项目的迭代周期逐渐脱节。考虑到持续修改会给Quinn维护者带来不合理的审查负担,团队决定进行硬分叉,同时保持与Quinn的合作关系。
noq的核心特性
QUIC多路径支持
完整实现了QUIC多路径规范,使中继路径和直连UDP路径都成为QUIC的一等公民。QUIC可以感知所有路径,维护每条路径的拥塞状态,并智能选择最优路径。NAT穿透实现
基于QUIC NAT穿透草案开发了生产级实现。通过将穿透操作提升至QUIC层,使拥塞控制器能够感知该过程,提高了可靠性。地址发现(QAD)
自iroh v0.32起就采用的QUIC地址发现技术,相比STUN协议在保持往返次数的同时实现了数据包加密。增强的QLog支持
扩展了qlog日志功能,新增对多路径事件的记录,并开发了可视化工具原型。WeakConnectionHandle
新增不维持连接存活的弱引用句柄类型,便于构建连接管理器等应用。
生产环境验证
noq已作为iroh v0.96的组成部分投入生产环境,并在数十万台设备上经受了实战检验。团队还与picoquic等参考实现进行了互操作性测试。
未来规划
团队将持续改进NAT穿透功能,探索多路径带来的性能优化可能,并保持与QUIC工作组及Quinn团队的协作。开发者可通过Discord或GitHub参与交流。
注:iroh是一个开源的"即连即用"网络库,已在生产环境中大规模部署。
评论总结
以下是评论内容的总结:
对Iroh团队及分叉决定的正面评价
- 赞赏Iroh团队礼貌且尊重地讨论分叉决定 (评论1: "It's lovely to see the polite and respectful back and forth...")
- 认为Iroh产品定位精准,适合个人应用开发时代 (评论4: "iroh seems like a very well positioned product...")
对技术实现的兴趣与疑问
- 对QUIC多路径RFC与实现同步出现表示惊讶 (评论2: "Didn't it come out literally yesterday?...jarring to see them back to back")
- 询问QUIC数据包中继的具体实现方式 (评论7: "how does noq/iroh relays QUIC packets between peers?...")
对Iroh的实用性和未来发展期待
- 用户分享使用n0相关CLI工具的良好体验 (评论3: "Love the folks from n0...regularly use their sendme cli")
- 表达对Iroh技术探索的兴奋 (评论5: "The iroh team keeps cooking...excited to have a weekend to just sit down and tinker")
功能扩展建议
- 询问是否计划增加TypeScript支持 (评论6: "cool project. any plans to add typescript support?")
潜在应用场景构想
- 提出构建"应用级中继"的设想 (评论4: "looking...at providing an 'app relay'...OSS, self-hostable...zero config way")
关键引用保留: 1. "It's lovely to see the polite and respectful back and forth" / "很高兴看到这样礼貌且尊重的来回讨论" 2. "iroh seems like a very well positioned product" / "Iroh似乎是定位非常准确的产品" 3. "how does noq/iroh relays QUIC packets" / "noq/iroh如何中继QUIC数据包" 4. "The iroh team keeps cooking" / "Iroh团队持续发力"