IT 论文精读 · PAPER 65

A Protocol for Packet Network Intercommunication(TCP/IP 的源头)

Vinton G. Cerf & Robert E. Kahn · IEEE Transactions on Communications · 1974 年 5 月

EN →

这篇论文干了什么?

1974 年,Vint Cerf 和 Bob Kahn 写了一篇论文,回答一个当时谁都答不好的问题:几张互不相通的网络,怎么才能拼成一张网?他们给出的办法后来有了个你一定听过的名字:TCP/IP。今天你手机发的每条消息、打开的每个网页,走的还是这篇论文定的规矩。互联网之所以叫「互联」网,源头就在这里。

先说说旧世界的痛

1970 年代初,能用的网络已经不止一张:军方研究用的 ARPANET、用无线电收发的分组无线网、跨大西洋的卫星网……每一张在自己内部都跑得挺好,但彼此之间一个字也传不过去。

像铁路:几个国家各修各的,轨距、票制、信号规则都不一样,火车开到边境就只能停下。网络之间差得更远:一个包能装多大不一样,丢了包管不管不一样,连门牌号写法都各是一套。

那个点子

最自然的想法是「统一标准」,可这条路走不通——每张网都有自己的主人和设备,谁也没权力让别人推倒重来。

Cerf 与 Kahn 的点子正好反过来:谁都不用改。只在两张网的交界处放一个「中转站」(他们叫它网关),再规定一种大家都认的「内层信封」。

要寄的东西先装进这个内层信封,上面写着全网通用的地址;进了哪张网,这张网就按自己的规矩在外面再套一个本地信封。到了边界,网关拆掉本地信封、按下一张网的规矩换个新的——内层信封从头到尾没被打开过。每张网照旧说自己的方言,边界上有人翻译就行。

那「送到」这件事谁来保证?

这里还有个更反直觉的决定:中间的网络和网关,一律不负责把东西送到。它们只「尽力而为」:能送就送,忙不过来就丢,顺序乱了也不管,网关甚至不记得任何一次通信进行到哪儿——只瞄一眼地址就往下扔。责任全压在两头。

做法像寄一摞明信片:发信人给每张编号;收信人回一句「我到第几号为止都齐了」;发信人超时没等到这句回音,就把没被确认的重寄一遍。收信人还会捎上「我最多还能放下 N 张,别寄太快」——这就是限速。

为什么这么设计?中间不记事,网关就能做得简单又快,坏掉一个换一个也不影响进行中的通信;而「东西齐没齐」,本来也只有收发两头最清楚。

带来了什么

这张「网络的网络」从此能无限往外长:新造一张网不必征得谁同意、不必改动任何既有设备,边上接个网关、认那个内层信封就行。今天的 Wi-Fi、4G、光纤、卫星宽带全是后来才有的网络,却都能直接插进 1974 年画好的这张图。

诚实说一句代价:这套设计把信任全交给两端,论文里没有任何防冒名顶替、防偷看的机制——今天大量安全麻烦的根子,就在「当年那批人彼此都认识、没想过防谁」。

一句话记住

别妄想统一所有网络,而是在边界放网关做翻译、给数据套一个谁都认的内层信封;中间只尽力而为、不记账,靠两端编号 + 确认 + 重发把「可靠」补齐——于是任何一张新网都能随时接进来。这就是互联网。

想看网关与封装的结构图、地址格式和它留下的那些坑? → 切到精读版