网易首页 > 网易号 > 正文 申请入驻

n0团队重写QUIC协议:1个Rust库让网络连接"狡兔三窟"

0
分享至

2024年初,n0团队做了一个让同行侧目的决定——把用了两年的Quinn(一种QUIC协议实现)fork(分叉/复制代码库)出去。当时他们说得客气:会紧跟上游,贡献代码,保持diff(代码差异)最小化。一年半后,这个"临时方案"变成了彻底的重写。昨天,他们发布了noq——一个从零打造的QUIC实现,支持多路径传输和NAT穿透。用团队自己的话说,这是"诚实的前进路径"。

诚实在哪?他们终于承认:iroh(n0开发的P2P网络工具)在做的事,和通用QUIC库能提供的,根本是两个物种。就像用家用轿车底盘改装甲车——能跑,但每加一个钢板都要重新焊车架。noq的诞生,本质是iroh团队停止假装自己是普通用户。

多路径不是"锦上添花",是iroh的生存方式

理解noq必须先理解iroh的使用场景。这是一个让设备直接互联的工具,不经过服务器中转。但"直接"在互联网上是个技术难题:你的笔记本在公司WiFi,手机在4G,两台设备都有内网IP——它们互相看不见。

iroh的解法是一套组合拳:relay(中继)服务器保底,同时尝试打洞建立直连。问题是,这套逻辑原来全堆在QUIC外面。Quinn以为自己只和一个IP地址通信,iroh偷偷把数据包从relay、IPv4直连、IPv6直连三条路来回倒腾。团队自嘲这是"iroh自己的小NAT(网络地址转换)套在Quinn外面"。

多路径QUIC(Multipath QUIC)把这个"外挂"收编进协议层。relay是一条QUIC路径,直连UDP是另一条,QUIC自己维护每条路的拥塞状态,自己决定走哪条。原来要靠重置拥塞控制器硬凑的延迟优化,现在成了协议内建能力。n0团队说,这是"正确且系统化"的处理方式。

但这里有个微妙立场:noq的多路径实现是通用的,不限于iroh。团队表态"如果你需要更多API,告诉我们"。翻译一下:我们知道这东西对别人也有用,但现阶段优先满足自己的需求。开源社区的常见剧本——先自用,再泛化。

NAT穿透:一个"我们首创"的声明

noq的另一个卖点是NAT穿透。团队的原话很直接:"据我们所知,我们是第一个在QUIC实现中做到这点的。"这个"据我们所知"留有余地,但底气来自具体技术路线——他们实现了QUIC NAT穿透草案的"自己的解释版本"。

NAT穿透不是新话题。WebRTC用了十几年,各种打洞技术(STUN、TURN、ICE)早就写进RFC。但QUIC作为较新的传输协议,标准层面的NAT穿透支持还在草案阶段。noq的做法是把这套逻辑和QUIC深度整合,而不是像iroh以前那样在协议外搭脚手架。

技术细节值得玩味:草案还在迭代,n0团队选择了"自己的解释"。这意味着他们可能在某些实现决策上超前于标准,也可能和标准最终走向不完全一致。对iroh用户来说,这不算风险——整个工具链都是n0自己维护的。但对想拿noq做其他项目的开发者,这是个需要留意的点。

从fork到硬分叉:协作的边界在哪

回到2024年的那个决定。n0团队最初的设想是"好邻居":我们改我们的,尽量回馈上游,保持代码同步。现实很快教育了他们。

问题出在迭代节奏。iroh往多路径、NAT穿透、relay-as-a-path(把中继当作一种路径)这些方向猛冲,每个改动都要动QUIC的核心结构。Quinn作为通用库,有自己的稳定性承诺和审阅流程。n0的"constant changes"(持续改动)对Quinn维护者成了"unreasonable review burden"(不合理的审阅负担)。

团队的原话是:"想把更深层的结构性改动试一遍,把这些改动的后果强加给所有Quinn用户,是不公平的。"这句话的潜台词很清晰:我们知道自己在做实验性的事,不能要求别人为我们的实验买单。

硬分叉(hard fork)因此成了"对各方都更诚实"的选择。n0在Quinn的多路径issue线程里公开解释了思路,强调这不是对Quinn的否定——"Quinn仍然是一个很棒的实现"。但利益重叠处可以协作,分歧处各自走自己的路。

这种处理方式在开源圈不算常见。更多团队会选择:A)默默维护fork,不再提上游;B)试图说服上游接受自己的方向;C)直接另起炉灶,不提渊源。n0选了中间道路:公开承认关系变化,保留协作可能,同时彻底解除耦合。

Rust生态的QUIC版图:noq挤进了一个拥挤赛道

noq进入的是一个已经有多个玩家的领域。Quinn本身是最成熟的Rust QUIC实现之一,被Mozilla、Cloudflare等用过。quiche是Cloudflare自己的实现,C语言核心但提供Rust绑定。s2n-quic是AWS开源的,主打TLS集成和性能调优。还有tokio-quic、neqo等更垂直的项目。

n0团队的差异化很清晰:多路径和NAT穿透的深度整合。这不是"我们也支持"的功能列表勾选,而是架构层面的重新设计。其他实现可以把多路径当作扩展模块,noq把它当作核心假设——因为iroh需要这个。

代价是通用性的折损。noq的文档直接说"实现还很年轻",API可能不够用。对比Quinn的成熟度,noq更像一个"能用且好用,但别期待面面俱到"的工具。这对iroh用户不是问题,对潜在采用者是个评估点。

一个细节:noq的命名。"number 0 QUIC",缩写noq,发音接近"knock"(敲门)。同时n0是团队/公司的名字,noq也是"n0's QUIC"的自然缩写。命名上的小心思,暗示了项目定位——它首先是n0的工具,其次才是通用库。

iroh的"基础设施下沉"策略

把noq从iroh里拆出来发布,本身是产品策略的信号。iroh从v0.96开始就在用noq,但团队选择现在才公开宣布,说明他们认为这个实现已经足够独立,值得单独维护。

这种"基础设施下沉"是P2P/去中心化项目的常见路径。协议层做得越扎实,应用层就能越轻。iroh可以专注于开发者体验、API设计、生态工具,把传输层的脏活累活交给noq。反过来,noq作为独立项目,有机会吸引iroh之外的用例,摊薄维护成本。

但这里有个张力:noq的优先级由iroh的需求决定。团队说得很明白,"如果你需要更多API,告诉我们"——暗示现有API是为iroh量身定做的。这和真正中立的通用库有微妙区别。开发者需要评估:我的用例和iroh有多像?

一个类比:noq有点像V8(Chrome的JavaScript引擎)之于Chrome。V8是通用的,但设计决策深度受Chrome需求影响。用V8做Node.js可行,但某些优化是为网页渲染量身定做的。noq可能处于类似位置。

标准与实现的赛跑:草案阶段的博弈

noq的技术选择暴露了一个行业动态:QUIC标准还在快速演化。多路径扩展(RFC 9000系列的补充)尚未最终定稿,NAT穿透更是草案阶段。n0团队选择"自己的解释",实质是在标准完全冻结前抢占实践优势。

这种策略的风险和收益都很明确。收益是:当标准最终确定时,有实际部署经验的实现更有话语权。风险是:如果标准走向和预期不同,重构成本高昂。团队显然押注前者——iroh的生产环境就是最好的测试场。

对比之下,Quinn的保守更有道理。作为通用库,它不能轻易承诺一个可能变动的标准。n0的激进也有道理:iroh需要这些功能现在就能用,等不及标准尘埃落定。两种选择都是理性的,只是约束条件不同。

一个值得观察的指标:noq会在多大程度上跟踪标准更新?团队承诺"协作",但协作的具体形式未定。如果多路径RFC最终版本和noq的实现有出入,n0会选择兼容重构,还是维护自己的方言?这个问题没有现成答案。

开源治理的微观样本

noq的诞生过程,可以当作开源协作边界的一个案例研究。核心矛盾是:当下游需求足够特殊、迭代足够快时,"好邻居"策略的极限在哪?

n0团队的反思很诚实:他们最初低估了"结构性改动"的波及范围。以为可以保持小diff,结果diff越来越大;以为可以回馈上游,结果审阅负担成了单向压力。这种认知迭代本身就有价值——它说明了为什么某些fork不可避免。

更少见的是他们的处理方式:公开解释、保留尊重、明确切割。没有"Quinn太慢/太保守"的抱怨,没有"我们才是未来"的宣言。团队甚至特意在Quinn的issue线程里说明思路,给社区一个交代。这种克制在情绪化的开源讨论中显得稀缺。

当然,克制也可能有策略考量。Quinn生态仍然是Rust QUIC的重要力量,彻底撕破脸对noq没好处。保留协作可能,未来标准对齐、代码共享都有空间。但即使从纯功利角度,这种处理方式也比常见的"静默fork+事后互怼"更高效。

对开发者的实际意义

如果你在用iroh,noq的发布是个好消息。传输层和上层终于用同一种语言思考多路径问题,不再需要"iroh的小NAT"这种 workaround(变通方案)。团队提到v0.96以来的实际运行,说明稳定性有过生产验证。

如果你在评估Rust QUIC库,noq进入了一个特定细分:需要多路径+NAT穿透,且能接受较新、较专一的实现。对比Quinn的成熟全面、quiche的性能调优、s2n-quic的AWS生态,noq的卖点是场景深度而非功能广度。

一个实用建议:关注noq的API演进节奏。团队说"实现还很年轻",暗示接口可能变动。如果稳定性是首要考量,Quinn仍然是更保守的选择。如果多路径是刚需,且愿意和项目共同成长,noq值得试用。

最后,noq的文档风格值得一提。发布帖技术细节充足,没有过度承诺,主动承认局限。这种"我们知道自己在做什么,也知道没做什么"的坦诚,在基础设施项目的早期阶段相对少见。它降低了开发者的评估成本——你不用猜哪些功能是"理论上支持",哪些是"生产就绪"。

团队在最后留了句话:如果你需要更多API,告诉我们。潜台词是:我们优先服务自己的需求,但愿意听听别人的。这种姿态,和一年半前那个"尽量保持小diff"的承诺相比,诚实多了——也现实多了。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
Kimi正脸照流出,生图下脸歪嘴斜牙齿外凸,网友:不像林志颖了

Kimi正脸照流出,生图下脸歪嘴斜牙齿外凸,网友:不像林志颖了

不似少年游
2026-04-13 16:57:07
建国前夕,解放军清除中南海淤泥16万吨,水底都挖出了什么

建国前夕,解放军清除中南海淤泥16万吨,水底都挖出了什么

掠影后有感
2026-04-12 10:08:51
巴基斯坦下单了?120亿美元购买歼35、空警500和红旗19

巴基斯坦下单了?120亿美元购买歼35、空警500和红旗19

三叔的装备空间
2026-04-14 11:15:25
宋祖儿和刘宇宁阮经天的瓜!

宋祖儿和刘宇宁阮经天的瓜!

八卦疯叔
2026-04-14 11:29:28
常规赛六大奖项预测!SGA包揽两项,DPOY最无悬念!

常规赛六大奖项预测!SGA包揽两项,DPOY最无悬念!

篮球实录
2026-04-14 01:02:27
继德国之后,英国也开始贴出“中文标语”?中国游客:不能够接受

继德国之后,英国也开始贴出“中文标语”?中国游客:不能够接受

潮鹿逐梦
2026-04-02 12:31:48
撕毁合同倒向日本,拒赔中国361亿违约金,这个国家如今怎么样了

撕毁合同倒向日本,拒赔中国361亿违约金,这个国家如今怎么样了

涵豆说娱
2026-04-08 20:05:39
嫁大自己18岁的凌峰,八十年代号称青岛美女贺顺顺,如今过得咋样

嫁大自己18岁的凌峰,八十年代号称青岛美女贺顺顺,如今过得咋样

揽星河的笔记
2026-04-10 18:42:07
东北追击战:白崇禧距全歼林彪只差一道命令,历史差点被改写!

东北追击战:白崇禧距全歼林彪只差一道命令,历史差点被改写!

心灵短笛
2026-04-13 17:43:28
合租四年的女生要辞职相亲,我开玩笑说嫁我,她的反应意外了

合租四年的女生要辞职相亲,我开玩笑说嫁我,她的反应意外了

雾岛夜话
2026-04-11 12:24:27
反向预言!12年前索尼惊人广告被挖出:从此不需要手机

反向预言!12年前索尼惊人广告被挖出:从此不需要手机

游民星空
2026-04-13 13:07:09
苹果把这价格藏了3天,用户发现后集体懵了:M5 Air 6500到手

苹果把这价格藏了3天,用户发现后集体懵了:M5 Air 6500到手

薛定谔的BUG
2026-04-13 16:35:09
桑叶是个宝,6大功效请收好

桑叶是个宝,6大功效请收好

环京快爆
2026-04-07 08:15:55
不到一周张雪机车再战WSBK!张雪:可能会输 提前泼一盆冷水

不到一周张雪机车再战WSBK!张雪:可能会输 提前泼一盆冷水

快科技
2026-04-13 11:12:10
周杰伦新MV神秘老外帅到抢镜 惊爆真实身份「是昆凌的叔叔」!

周杰伦新MV神秘老外帅到抢镜 惊爆真实身份「是昆凌的叔叔」!

ETtoday星光云
2026-04-13 17:04:11
布耶27+9卡尔森26+10 太阳客场大胜雷霆

布耶27+9卡尔森26+10 太阳客场大胜雷霆

北青网-北京青年报
2026-04-13 20:48:02
宝马炮轰比亚迪背后真相:如果闪充不伤电池,就不需要固态电池了

宝马炮轰比亚迪背后真相:如果闪充不伤电池,就不需要固态电池了

王新喜
2026-04-13 10:45:56
亨得利:赵心童不会因为输球而受伤,他打破克鲁斯堡魔咒有优势!

亨得利:赵心童不会因为输球而受伤,他打破克鲁斯堡魔咒有优势!

世界体坛观察家
2026-04-14 08:51:32
风尘女子要怎么分辨出来?行家人都能看出来

风尘女子要怎么分辨出来?行家人都能看出来

霹雳炮
2026-04-03 21:31:48
2026正式落地!3元一升汽油来了,车主有福了

2026正式落地!3元一升汽油来了,车主有福了

沙雕小琳琳
2026-04-14 12:38:34
2026-04-14 13:16:49
固件更新中
固件更新中
有态度网友ytd
1782文章数 16关注度
往期回顾 全部

科技要闻

离职同事"炼化"成AI?这届公司不需要活人了

头条要闻

41岁演员文章在上海开面馆 代排队价格被炒到500元

头条要闻

41岁演员文章在上海开面馆 代排队价格被炒到500元

体育要闻

他做对了所有事,却被整个职业网坛放逐了八年

娱乐要闻

宋祖儿刘宇宁恋情大反转 正主火速辟谣

财经要闻

许家印受审当庭表示认罪悔罪

汽车要闻

长城欧拉5限定版纯电版上市 限量99台售价13.38万元

态度原创

教育
游戏
亲子
健康
公开课

教育要闻

“父亲的心已经死了!”10后女孩职高报到,父亲用沉默诠释了心死

黑旗RE细节曝光!不仅仅是画面翻新那么简单

亲子要闻

中日混血萌娃丨优奈的发型太酷啦!

干细胞抗衰4大误区,90%的人都中招

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版