实时通信技术选型:从长轮询到WebTransport的二十年演进

2011年,当一个聊天应用需要显示对方"正在输入"的状态时,开发者不得不让客户端每隔几秒向服务器发一次请求——问一句"有新消息吗?",服务器回答"没有",然后重复。这种愚蠢的对话在HTTP的世界里持续了整整十五年。 ...

15 min · 7429 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
Blog Cover

WebRTC实时音视频通信的技术本质:从NAT穿透到DTLS-SRTP的完整协议栈解析

2011年5月,Google开源了一个名为WebRTC的项目,将实时音视频通信带入了浏览器。四年后,这个技术支撑起了全球数十亿次视频通话。然而,当你点击"开始通话"的那一刻,浏览器背后究竟发生了什么?为什么两个位于不同私有网络的设备能够建立直接的音视频连接?UDP的无连接特性如何被改造成可靠的实时通信基础设施? ...

13 min · 6313 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

HTTP协议入门:从请求响应到状态码的完整技术指南

当你打开浏览器,在地址栏输入一个网址并按下回车,几秒钟后网页就呈现在眼前。这个过程看似简单,背后却是HTTP协议在工作。无论是浏览网页、使用手机App,还是调用后台API,HTTP协议都在默默支撑着互联网的数据传输。理解HTTP,是理解Web世界的起点。 ...

12 min · 5681 words

加密隧道如何穿越公共网络:从PPTP到WireGuard的三十年协议演进

凌晨两点,一位远程办公的工程师正在咖啡厅里访问公司的内网服务器。他的笔记本电脑通过公共WiFi发送的每一个数据包,都要经过这家咖啡厅的路由器、ISP的网络、数十个中间节点,最终到达公司数据中心的VPN网关。这条跨越数千公里的数字通道,穿越了无数个不受信任的网络节点,却保证了数据在传输过程中不被窃听或篡改。 ...

17 min · 8050 words