WiFi漫游切换为何会卡顿:从802.11k/v/r协议看二十年技术突围

当你拿着手机从客厅走到卧室,视频通话突然卡住;当你在办公室移动开会,Zoom画面冻结在三秒前;当你躺在床上刷视频,明明信号满格却加载不出内容——这些场景背后,都是同一个技术问题:WiFi漫游切换。 ...

16 min · 7877 words

互联网的那些魔法数字:为什么HTTP是80端口,以太网是1500字节

翻开任何一本计算机网络教材,你会看到它们:80、443、1500、65535、127.0.0.1、1970年1月1日。这些数字像某种古老的咒语,被一代代工程师背诵、使用,却很少有人追问它们的来历。 ...

23 min · 11513 words

为什么CPU的字节序至今无法统一:从鸡蛋争议到网络标准

1980年,互联网工程备忘录IEN 137发表了一篇题为《On Holy Wars and a Plea for Peace》的论文。作者Danny Cohen用《格列佛游记》中的鸡蛋争议,比喻计算机界关于字节序的争论。四十多年过去了,这场"圣战"不仅没有结束,反而因为新硬件、新协议的出现变得更加复杂。 ...

14 min · 6657 words

TCP选择性确认如何解决累积确认无法处理的多包丢失困境

1981年,Jon Postel在RFC 793中定义了TCP的核心机制,其中累积确认(Cumulative Acknowledgment)的设计在当时看来简洁而优雅:接收方只需报告"我已经收到序列号N之前的所有数据"。这种设计在单包丢失场景下工作良好,但当网络中出现多个数据包丢失时,它暴露出了根本性的信息缺失问题——发送方根本不知道哪些数据已经成功到达,哪些需要重传。 ...

14 min · 6745 words

HTTP/3的流量控制为何比TCP更精细:从滑动窗口到双层限额机制的技术演进

2016年,Cloudflare在部署HTTP/2时遇到了一个奇怪的问题:某个高优先级的大文件传输会阻塞所有其他请求,尽管HTTP/2已经实现了多路复用。问题的根源在于TCP的流量控制机制——所有流共享同一个滑动窗口,一个流的丢包会让整个连接停摆。 ...

12 min · 5713 words

Base64编码的技术本质:从字符串到网络请求的完整实现链路

1987年,RFC 989定义了一种名为"Privacy-Enhanced Mail"的标准,其中包含了一个看似简单的需求:如何在不支持二进制数据的邮件系统中传输加密内容?这个问题的答案,诞生了今天被广泛使用的Base64编码。 ...

13 min · 6123 words

当WebSocket遇上QUIC:WebTransport如何重塑浏览器实时通信的四十年技术演进

2024年,WebTransport API在Chrome 97、Firefox 114、Edge 97中正式发布。这个基于HTTP/3的浏览器API,承诺为实时通信带来「接近原生」的性能体验。W3C WebTransport工作组正在推进规范向Candidate Recommendation阶段演进,目标在2025年完成标准化。但问题的根源要追溯得更远——四十年来,TCP协议的设计选择一直在制约着浏览器端的实时通信能力。 ...

14 min · 6966 words