ARTICLE / DEEP READING

资讯中心

将值得长期关注的观点与事实整理成更清晰的阅读内容。

12次往返压到3次,XMPP用了7年文章展示图片
READ
IN DEPTH

FEATURED ARTICLE

12次往返压到3次,XMPP用了7年

本文由pg麻将胡了整理发布:

不到7年前,我写过一篇《慢数据》。

那篇里聊的是XMPP在极慢链路上曾经怎样、以及在哪些情况下还能被优化。

这篇是后续——隔了7年才动笔,我觉得挺应景。

先说基线。

标准XMPP建立连接大约需要 12次往返 ,而如今几乎没人在用这套基线流程了。

about image

社区做了大量工作,设计出了把往返压到3次的方案,但至少是在重连场景下——而且只有设计,没有实现。

要实现它,需要很多人为两个关键扩展写代码: SASL2 (规范见XEP-0388)和 ISR (规范见XEP-0397)。

结果是一个被采纳了,另一个没有。

社区接过了SASL2——按上一篇的说法,这应该让我们落到5次往返——但没有采纳任何1-RTT认证机制,而是更愿意用SCRAM更好的安全性,其中包含通道绑定(Channel Binding)。

通道绑定是一种确保SASL认证的两端与TLS会话的两端相互匹配的技术。

考虑到CA偶尔会被攻破,也出现过国家级别攻击者针对特定XMPP服务器的情况,社区更愿意依赖这类机制,这完全可以理解。

于是我们走到了这一步: 6次往返 。

不算差,但社区没有停在这里。

先是发明了“Bind2”(XEP-0386),把最后那部分资源绑定折叠进SASL2,弄乱了我的配色方案,但省下了末尾的一次往返。

接着是FAST(XEP-0484)。

FAST是一套签发短期令牌的系统,令牌可以安全地用于单次往返的认证机制。

它在建立阶段不增加往返,但把重新认证压缩到 一次往返 。

最后是IAP(XEP-0509),它让我们能够完全安全地跳过第一次往返。

现在就是 3次往返 ,和当年ISR达到的水平一样好——但它更通用,因为ISR依赖会话恢复,而FAST只是令牌的使用。

再往下就没法只靠一次应用层往返来改进了:这一步不仅要让客户端向服务器完成认证,也要让服务器向客户端完成认证,所以在它完成之前,我们不能开始发送消息。

零RTT 不过,我们可以看看前面那些往返。

TLSv1.

3有一个巧妙但复杂的功能叫“早期数据”(Early Data),通常称为0RTT,原则上它能让我们把剩下的那一次应用层往返塞进TLS交换里,再省一次往返。

这很复杂,而且对认证安全有连带影响,所以仍处在“研究”阶段。

慢,但是QUIC 社区目前有两个不同的实验在进行,都是关于在QUIC上跑XMPP。

就会话建立而言,两者是一样的。

QUIC把连接建立和TLSv1.

3握手合并在一起,意味着这里也能省下一次往返。

这同样可以和早期数据结合——也就是说,我们能让一个会话在仅仅一次往返后就准备好使用——当然,前提是能安全地跑通。

我本想画张图,但说实话,到这一步只剩一堆重叠箭头,纯属噪音。

还是慢 会话建立当然只是全貌的一部分。

上一篇结尾我提到,一张250k的JPEG不管你怎么努力,它还是250k的JPEG。

而且即便会话建立完成,XMPP还得处理丢包和乱序,这两样在高延迟下都格外难受。

但一旦建立起来,XMPP对高延迟的容忍度相当高,带宽占用也很小。

丢包和乱序的问题,可以靠多流QUIC大幅缓解。

明年,XMPP就25岁了,仍被多个开源项目和公司广泛实现,尤其在“把消息送达”至关重要的时候被大量使用。

感兴趣的话,XSF那边的讨论依然很热闹。

特别

更多体坛动态,关注pg麻将胡了。

SHARE THE IDEA

觉得有用?分享给朋友

让更多人看到这篇内容。

返回资讯列表

YOU MAY ALSO LIKE

推荐阅读

TRENDING STORIES

热点新闻

上海105:92北控!3个没想到:2国手对飙+残阵仍赢球,体现1优势

上海105:92北控!3个没想到:2国手对飙+残阵仍赢球,体现1优势

10月19日消息,今天晚上CBA比赛继续进行,上海队客场迎战北京北控。今天上海队这边核心外援拉塞尔因伤缺席,只能排出双外阵容应战。比赛开始后,双方进攻效率都不错,不过比较出彩的不是外援,而是两名国内球员张镇麟和廖三宁对飙,双方首节战平,半场上海51:50北控队,1分优势领先。到了下半场,场上风云突变,上海这边找到了自己的节奏,攻防两端开始发力,单节打了北控一个31:22。末节比赛,上海进攻依旧犀利

短池游泳锦标赛于子迪报名7个项目,小孩姐全方位发展或增加主项

短池游泳锦标赛于子迪报名7个项目,小孩姐全方位发展或增加主项

2026年短池游泳全国锦标赛10月23日到28日将在水立方进行,这也是今年北京短池游泳世锦赛之前最重要的热身和选拔。刚刚度过14周岁生日的亚运会最有价值运动员于子迪报了7个项目,全方位发展的意图极为明显。 保定女孩于子迪在日本爱知名古屋亚运会夺得女子200米混合泳、400米混合泳、200米蝶泳三块金牌,打破一项亚洲纪录,两项亚运会纪录。特别是女子200米混合泳2分06秒10是今年世界第一好成绩,世

卡里克疑似告别曼联!媒体人热议:他必须下课,红魔真是糟透了

卡里克疑似告别曼联!媒体人热议:他必须下课,红魔真是糟透了

在曼联主场0比3负于伯恩茅斯之后,卡里克绕场一周,疑似告别曼联。曼联的低迷表现,引发了媒体人的热议。 在上半场,海文、约罗接连出现失误,导致曼联5分钟之内连丢两球。上半场结束之后,著名记者亚当-贝特认为,“对卡里克来说,这简直是一场噩梦。曼联踢得太糟糕了,进攻端毫无建树,后卫线也显得犹豫不决。夏天签入的三名中场球员都经历了一些糟糕的时刻,而后卫们要么太老,要么经验太少。” 传奇后卫卡拉格认为,“伯

从破影史纪录到票房仅15.6万,我感慨:功夫皇帝这块招牌算砸了

从破影史纪录到票房仅15.6万,我感慨:功夫皇帝这块招牌算砸了

一定程度来说经典电影重映是最能体现号召力的! 这两年内地电影市场确实有点惨淡,但在我看来是国产电影质量的问题,观众还是愿意为了好作品买单的,最能证明这一点的就是不少经典电影重映,票房完全是超预期的。 比如《泰坦尼克号》重映,票房竟然高达9.46亿。差点就拿下了当年票房冠军。 还有《千与千寻》《阿凡达》《哈利波特与魔法石》票房也相当不错。有趣的是号称情怀无敌的经典国产片重映,票房反而不高,表现最好的

姆巴佩被全面封杀,但没人告诉你他到底说了什么,我也支持不告诉

姆巴佩被全面封杀,但没人告诉你他到底说了什么,我也支持不告诉

【歪歌社团·山东呼保义|第 45485 篇文章】 10月26日夜里,姆巴佩在国家德比里梅开二度,打进皇马生涯第100球,客场绝杀巴萨,可他在随后的采访里发表了对华不当言论,导致中国球迷纷纷脱粉,蒙牛、东鹏、妙可蓝多等各种商业代言纷纷解约。 紧接着咱们国内的媒体铺天盖地地报道这件事,央视也全面叫停涉西甲和姆巴佩的赛事播出。除了“懂球帝”明确表示,原话因为涉及伤害中国和中国人民,所以坚决不翻译。其他媒