前几天,一个叫 Vint Cerf 的老头从 Google 退休了。
83 岁,在 Google 待了 20 年。
大部分人没听过这个名字。但你今天能打开这篇文章,跟他有直接关系。
1973 年,Cerf 和 Bob Kahn 一起设计了 TCP/IP。就是现在你手机、电脑、所有联网设备底层都在跑的那套协议。没有它,互联网不存在。
这个人有几个挺有意思的细节。
70 年代在斯坦福的时候,同学们都留长发穿牛仔裤搞反文化运动。Cerf 反着来,每天穿三件套西装上课。别人用长发叛逆,他用西装叛逆。
![]()
他有严重的听力障碍,妻子也是聋人。有人说,这大概是他对「让不同系统说上话」这件事格外执着的原因之一。
TCP/IP 干的就是这个事,让两台本来互相听不懂的电脑,能互相通信。
但 Cerf 设计这套协议的时候,漏掉了一样东西。
1986 年,这个漏洞差点把整个互联网杀死。
1986 年 10 月,美国加州,从 Lawrence Berkeley 实验室到加州大学伯克利分校之间的网络突然出了问题。
这两个地方隔多远呢?400 米。中间只有两跳路由。
正常情况下,这条线的传输速度是 32Kbps。那个年代这已经算快了。
但那个月,速度掉到了 40bps。
注意,不是 40Kbps,是 40bps。
降了将近 1000 倍。
一封几分钟就能发完的邮件,要传一整天。当时很多人开始说,互联网根本没法扩展,这条路走不通了。
但问题不是硬件坏了,也不是有人搞破坏。
是所有电脑都在同时喊话。
TCP 有一个机制,数据包发出去以后,如果没收到对面的确认,就重发一次。这个设计很合理,对吧?消息没送到就再发一次,很负责任。
但当网络堵了的时候,路由器开始丢包。
丢包触发重传。重传让网络更堵。更堵导致更多丢包。更多丢包又触发更多重传。
一个往下转的死循环。
![]()
TCP 拥塞崩溃的死循环
Van Jacobson,当时在 Lawrence Berkeley 实验室的一个网络研究员,后来这样形容这件事,
「就像往着火的地方浇汽油。」
每台电脑都在做「正确」的事,消息没到就重发,这不是 TCP 该做的吗?
但每台电脑各自的「正确」,加在一起变成了集体的灾难。
Cerf 在 1973 年设计 TCP 的时候,协议只管「消息到没到」,不管「现在网络堵不堵」。这个漏洞在用户少的时候根本不会暴露。10 个人同时说话,400 米的路够宽。
但用户一多,路不够用了,所有人的重传就会互相踩踏。
Jacobson 花了两年搞清楚这件事,然后给出了一个反直觉的修复方案。
他叫它 slow start,慢启动。
每个 TCP 连接刚建立的时候,不要一上来就全速发数据。先发一个包。对面确认收到了,发两个。再确认,发四个。一步步试探,直到接近网络的承受上限。
一旦发现丢包了,立刻把速度砍一半,重新慢慢来。
![]()
TCP slow start 慢启动曲线
要让网络变快,你得先让每台电脑学会慢下来。
1988 年,Jacobson 把这套算法写进了 BSD 内核。几百行代码。
互联网活过来了。
你今天用的每一个联网设备,底层 TCP 跑的还是这套逻辑。连接刚开始先慢,确认没问题再加速,发现拥堵就减速。将近 40 年了,没变过。
回到 Cerf。
他退休的时候有一场告别演讲,说了一句话,大意是,
「AI Agent 之间不应该用自然语言互相对话,那就像玩传话游戏,信息一定会走样。你们需要标准化协议。」
53 年前,他设计了让机器说上话的协议。
但他从 1986 年那场事故里学到的教训,到今天还是同一个,
光能说话不够。还得知道什么时候该安静下来,一个一个慢慢说。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.