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

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

14 min · 6745 words
Blog Cover

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

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

13 min · 6313 words

TCP重传为何能让API延迟翻倍:从RTO计算到长尾延迟的技术真相

一次API请求,平均延迟50毫秒,P99却飙到了800毫秒。排查应用代码、数据库查询、缓存命中,一切正常。最后发现问题出在TCP层——一次重传超时。 ...

9 min · 4366 words

TCP丢包检测为何如此复杂:从超时重传到RACK的四十年技术博弈

1986年10月,美国劳伦斯伯克利实验室(LBL)到加州大学伯克利分校之间的网络连接发生了一件怪事。这两个地理上相距仅400码、中间只隔两个IMP跳站的站点,数据吞吐量从正常的32 Kbps骤降到40 bps——下降了近1000倍。这不是网络故障,而是人类历史上第一次记录到的"拥塞崩溃"(Congestion Collapse)。 ...

11 min · 5261 words