<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>拥塞控制 on 小盒子的技术分享</title><link>https://xiaobox.github.io/tags/%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6/</link><description>Recent content in 拥塞控制 on 小盒子的技术分享</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Mon, 13 Jul 2026 11:10:29 +0000</lastBuildDate><atom:link href="https://xiaobox.github.io/tags/%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6/index.xml" rel="self" type="application/rss+xml"/><item><title>TCP 的发明者退休了，但他当年漏掉了一样东西</title><link>https://xiaobox.github.io/p/2026-07-13-tcp-de-fa-ming-zhe-tui-xiu-le-dan-ta-dang-nian-lou-diao-le-y/</link><pubDate>Mon, 13 Jul 2026 11:10:29 +0000</pubDate><guid>https://xiaobox.github.io/p/2026-07-13-tcp-de-fa-ming-zhe-tui-xiu-le-dan-ta-dang-nian-lou-diao-le-y/</guid><description>&lt;p&gt;&lt;img alt="TCP 拥塞崩溃封面，LBL 与 UC Berkeley 之间打结的网络线" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/tcp-cover.jpg"&gt;&lt;/p&gt;
&lt;p&gt;前几天，一个叫 Vint Cerf 的老头从 Google 退休了。&lt;/p&gt;
&lt;p&gt;83 岁，在 Google 待了 20 年。&lt;/p&gt;
&lt;p&gt;大部分人没听过这个名字。但你今天能打开这篇文章，跟他有直接关系。&lt;/p&gt;
&lt;p&gt;1973 年，Cerf 和 Bob Kahn 一起设计了 TCP/IP。就是现在你手机、电脑、所有联网设备底层都在跑的那套协议。没有它，互联网不存在。&lt;/p&gt;
&lt;p&gt;这个人有几个挺有意思的细节。&lt;/p&gt;
&lt;p&gt;70 年代在斯坦福的时候，同学们都留长发穿牛仔裤搞反文化运动。Cerf 反着来，每天穿三件套西装上课。别人用长发叛逆，他用西装叛逆。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/20260713190304677.png"&gt;&lt;/p&gt;
&lt;p&gt;他有严重的听力障碍，妻子也是聋人。有人说，这大概是他对「让不同系统说上话」这件事格外执着的原因之一。&lt;/p&gt;
&lt;p&gt;TCP/IP 干的就是这个事，让两台本来互相听不懂的电脑，能互相通信。&lt;/p&gt;
&lt;p&gt;但 Cerf 设计这套协议的时候，漏掉了一样东西。&lt;/p&gt;
&lt;p&gt;1986 年，这个漏洞差点把整个互联网杀死。&lt;/p&gt;
&lt;p&gt;1986 年 10 月，美国加州，从 Lawrence Berkeley 实验室到加州大学伯克利分校之间的网络突然出了问题。&lt;/p&gt;
&lt;p&gt;这两个地方隔多远呢？400 米。中间只有两跳路由。&lt;/p&gt;
&lt;p&gt;正常情况下，这条线的传输速度是 32Kbps。那个年代这已经算快了。&lt;/p&gt;
&lt;p&gt;但那个月，速度掉到了 40bps。&lt;/p&gt;
&lt;p&gt;注意，不是 40Kbps，是 40bps。&lt;/p&gt;
&lt;p&gt;降了将近 1000 倍。&lt;/p&gt;
&lt;p&gt;一封几分钟就能发完的邮件，要传一整天。当时很多人开始说，互联网根本没法扩展，这条路走不通了。&lt;/p&gt;
&lt;p&gt;但问题不是硬件坏了，也不是有人搞破坏。&lt;/p&gt;
&lt;p&gt;是所有电脑都在同时喊话。&lt;/p&gt;
&lt;p&gt;TCP 有一个机制，数据包发出去以后，如果没收到对面的确认，就重发一次。这个设计很合理，对吧？消息没送到就再发一次，很负责任。&lt;/p&gt;
&lt;p&gt;但当网络堵了的时候，路由器开始丢包。&lt;/p&gt;
&lt;p&gt;丢包触发重传。重传让网络更堵。更堵导致更多丢包。更多丢包又触发更多重传。&lt;/p&gt;
&lt;p&gt;一个往下转的死循环。&lt;/p&gt;
&lt;p&gt;&lt;img alt="TCP 拥塞崩溃的死循环" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/tcp-congestion-collapse.png"&gt;&lt;/p&gt;
&lt;p&gt;Van Jacobson，当时在 Lawrence Berkeley 实验室的一个网络研究员，后来这样形容这件事，&lt;/p&gt;
&lt;p&gt;「就像往着火的地方浇汽油。」&lt;/p&gt;
&lt;p&gt;每台电脑都在做「正确」的事，消息没到就重发，这不是 TCP 该做的吗？&lt;/p&gt;
&lt;p&gt;但每台电脑各自的「正确」，加在一起变成了集体的灾难。&lt;/p&gt;
&lt;p&gt;Cerf 在 1973 年设计 TCP 的时候，协议只管「消息到没到」，不管「现在网络堵不堵」。这个漏洞在用户少的时候根本不会暴露。10 个人同时说话，400 米的路够宽。&lt;/p&gt;
&lt;p&gt;但用户一多，路不够用了，所有人的重传就会互相踩踏。&lt;/p&gt;
&lt;p&gt;Jacobson 花了两年搞清楚这件事，然后给出了一个反直觉的修复方案。&lt;/p&gt;
&lt;p&gt;他叫它 slow start，慢启动。&lt;/p&gt;
&lt;p&gt;每个 TCP 连接刚建立的时候，不要一上来就全速发数据。先发一个包。对面确认收到了，发两个。再确认，发四个。一步步试探，直到接近网络的承受上限。&lt;/p&gt;
&lt;p&gt;一旦发现丢包了，立刻把速度砍一半，重新慢慢来。&lt;/p&gt;
&lt;p&gt;&lt;img alt="TCP slow start 慢启动曲线" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://xiaobox-public-images.oss-cn-beijing.aliyuncs.com/images/tcp-slow-start.png"&gt;&lt;/p&gt;
&lt;p&gt;要让网络变快，你得先让每台电脑学会慢下来。&lt;/p&gt;
&lt;p&gt;1988 年，Jacobson 把这套算法写进了 BSD 内核。几百行代码。&lt;/p&gt;
&lt;p&gt;互联网活过来了。&lt;/p&gt;
&lt;p&gt;你今天用的每一个联网设备，底层 TCP 跑的还是这套逻辑。连接刚开始先慢，确认没问题再加速，发现拥堵就减速。将近 40 年了，没变过。&lt;/p&gt;
&lt;p&gt;回到 Cerf。&lt;/p&gt;
&lt;p&gt;他退休的时候有一场告别演讲，说了一句话，大意是，&lt;/p&gt;
&lt;p&gt;「AI Agent 之间不应该用自然语言互相对话，那就像玩传话游戏，信息一定会走样。你们需要标准化协议。」&lt;/p&gt;
&lt;p&gt;53 年前，他设计了让机器说上话的协议。&lt;/p&gt;
&lt;p&gt;但他从 1986 年那场事故里学到的教训，到今天还是同一个，&lt;/p&gt;
&lt;p&gt;光能说话不够。还得知道什么时候该安静下来，一个一个慢慢说。&lt;/p&gt;</description></item></channel></rss>