找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4340

积分

0

好友

573

主题
发表于 2 小时前 | 查看: 3| 回复: 0

提起C语言之父,大家都知道那是贝尔实验室的丹尼斯·里奇(Dennis Ritchie),他同时也是Unix之父(另一位是肯·汤普森)。C++之父也是贝尔实验室的比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup)。Java之父是Sun公司的詹姆斯·高斯林(James Gosling)。Linux之父则是芬兰学生林纳斯·托瓦兹(Linus Torvalds)……

这些技术和系统都有明确的创造者,但如果你问互联网之父是谁,估计不少人得停下来想一想了。

互联网是人类有史以来最伟大的发明之一,正深刻改变着我们的生活。但互联网的建成远非一两人之力,它是一系列关键人物与核心技术思想共同推动的成果。

1. 分布式网络

实际上,互联网的孕育要追溯到当年的美苏争霸。

1957年10月,苏联发射了人类历史上第一颗人造卫星,这引起了美国的恐慌。美国人意识到,在全球争霸中他们已经开始落后了。

受此刺激,时任美国总统艾森豪威尔提议成立国防“高级研究计划署”(Advanced Research Projects Agency,简称ARPA)。美国在二战后财力雄厚,为ARPA划拨了520万美元的筹备金和高达两亿美元的项目总预算,这在当时是天文数字。

其中的一部分资金,约100万美元,被投入到了ARPA的网络建设中。准确地说,这只是一个小型的实验网络,毕竟这是一件前人根本没干过的事。这项任务的带头人就是劳伦斯·罗伯茨(Lawrence Roberts)

ARPA项目负责人劳伦斯·罗伯茨
劳伦斯·罗伯茨(Lawrence Roberts)

ARPA NET一开始就确立了现代互联网的一项重要原则:分布式网络。劳伦斯·罗伯茨认为,中心节点是靠不住的。如果建立一个中心节点来连接所有计算机,随着网络规模扩大,这个中心会因流量过载而崩溃。

未来的网络节点应该是平等的,这样网络就能任意扩张,并且随着节点增多,其能力也会越来越强。

还有一种说法认为,这是为了应对苏联的军事威胁。如果只有一个集中的军事指挥中心,一旦被核武器摧毁,全国指挥将瘫痪。因此有必要设计一个分散的指挥系统——它由一个个分散的指挥点组成,部分被摧毁后其余仍能工作,并通过某种通讯网取得联系。

无论初衷如何,分布式网络的思想是伟大的,它直接奠定了现代网络的基础。

2. 分组交换

ARPA NET是一个使用分组交换的网络,这也是现代互联网的一项支撑技术。数据在网络上并非整体传输,而是被切割成一块块碎片(分组),在网络中自由选择最快捷的路径。到达目的地后,再自动组合还原成原始数据。

除了分组交换,还有另一种通过网络链路移动数据的方式:电路交换。电路交换的特点是在两个系统通信前,网络中的各个节点需要为该次通话分配资源,建立一个实质性的连接。这个连接要预留资源和传输速率,更重要的是,所有数据分组都会走同一条路径。这个连接只能被本次通信使用,如果通信暂停(比如打电话时的沉默),连接资源就被浪费了。

而在分组交换网络中,并不会为每次通信在每个节点建立固定连接。因此,每个分组走的路径可能不同,传输链路可以被所有用户逐分组地共享。

创造分组交换原理的人是伦纳德·克兰罗克(Leonard Kleinrock)

伦纳德·克兰罗克与IMP原型机
伦纳德·克兰罗克(Leonard Kleinrock)和“小精灵”(IMP),也就是日后路由器的前身

3. 互联网创世纪

1969年10月,互联网的前身ARPA NET终于建成,当时只有四个节点:洛杉矶加州大学洛杉矶分校(UCLA)、加州大学圣巴巴拉分校、斯坦福大学、犹他州大学这四所大学的4台大型计算机。选择这四个节点的因素之一,是考虑到不同类型主机联网的兼容性。

第一次试验颇具戏剧性。克兰罗克在UCLA,通过网络向斯坦福发送第一条消息。很明显,这些天才们并未意识到这是个历史性时刻,也没准备什么豪言壮语,消息平淡无奇,只是“LOGIN”这5个字母。

这不像阿姆斯特朗登月时说出的那句充满媒体效应的话:“这是我的一小步,却是人类的一大步。”

操作时,每发一个字母,克兰罗克就通过电话问:“收到了吗?”确认收到后再发第二个字母。

实际上,“L”和“O”被成功发送到了斯坦福。但当发第3个字母“G”时,网络崩溃了——互联网的前身就是这么脆弱。

巧合的是,“Lo”在英语中的意思是“瞧!看!”(表示惊讶或引起注意),也算是一条有趣的消息。

4. TCP/IP

最初的ARPA NET运行的是IMP(接口消息处理机)和NCP(网络控制程序)。注意:这时候“协议”一词还没有出现。

IMP/NCP成功连接了ARPA NET的少数几个节点,但要想扩大网络规模,尤其是面对不同类型和规格的计算机时,就显得力不从心了。让全世界的计算机和网络能够彼此通信,而不管它们使用何种硬件和软件,这确实是个艰巨的任务。

这个任务在1973年被罗伯特·卡恩(Robert Kahn)温顿·瑟夫(Vint Cerf) 率先用TCP/IP完成了。他们用IP协议为每个连上互联网的电脑分配一个地址,就像我们家里的门牌号;然后用TCP协议实现了在一个不可靠的网络里进行可靠传输。通俗讲,就是发现数据丢失后,能够重新传送。

TCP/IP发明时,个人电脑、工作站、智能手机尚未出现,以太网、DSL、WiFi和其他接入网技术也还未诞生。他们俩肯定也没预见到后来的Web、社交网站和流媒体视频。

但40多年过去了,TCP/IP仍然支配着当今的互联网,其扩展性和适用性令人叹服。我们不得不佩服罗伯特·卡恩和温顿·瑟夫深邃的洞察力,以及这协议背后的伟大思想。

2004年,罗伯特·卡恩和温顿·瑟夫因“联网方面的开创性工作(包括TCP/IP的设计和实现)”获得了ACM图灵奖,称他们为“互联网之父”当之无愧。

温顿·瑟夫、罗伯特·卡恩与布什
温顿·瑟夫(Vint Cerf)、罗伯特·卡恩(Robert Kahn)

为什么TCP/IP会如此成功呢?

TCP协议被称为面向连接的协议,但实际上连接的状态完全保留在通信的两端(端系统),而不是中间的网络元素(例如路由器和交换机)。中间的网络元素根本不会像虚电路那样维持TCP连接状态;事实上,中间路由器对TCP连接完全视而不见,它们只看到IP数据报。

这样做带来了巨大的弹性,对网络层施加了最小的要求。例如,你想发明Web,只需要将一台新服务器接入网络,定义一个新的应用层协议(如HTTP),然后客户端的电脑就可以访问这台服务器了,根本无需考虑网络中的路由器和交换机。

如果采用电路交换,那就麻烦了。由于中间节点需要维护连接状态,你想新增一个应用层服务,不仅端系统需要改动,中间网络也需要改动,这非常不利。

5. WWW

至此,互联网的基础设施已完成,上面也运行着像Email、Telnet这样的应用。但它仍然是专业科技人士的“玩具”,与普通人相距甚远。

1984年,蒂姆·伯纳斯·李(Tim Berners-Lee) 来到欧洲著名的原子核研究会(CERN)。在这里,他将实现人类历史上的又一大发明。

之前的互联网关注的是如何通过网络把计算机连接起来,但蒂姆·伯纳斯·李在CERN开始了一项新研究:如何把电脑里的信息连接起来

这是一个巨大的需求。在CERN工作的科学家有一万多人,他们使用着各种电脑和软件。在一台电脑上你用这个系统登录,换一台电脑就得登录另一套系统。在不同电脑之间交换信息异常困难,最先进的方式可能就是用Email了。

蒂姆·伯纳斯·李建议采用超文本技术(Hypertext)把CERN内部的各个实验室连接起来。在系统建成后,甚至可能扩展到全世界!

1989年,蒂姆成功开发出世界上第一个Web服务器和第一个浏览器。虽然这个Web服务器简陋得只能说是CERN的电话号码簿,只能让用户查询每个研究人员的电话号码,但它实实在在是个伟大的发明。同年12月,蒂姆为他的发明正式定名为World Wide Web,即WWW

1994年,马克·安德森(Marc Andreessen)发明了更加易用的网景浏览器,彻底点燃了普通人对互联网的热情。

万维网发明者蒂姆·伯纳斯·李
蒂姆·伯纳斯·李(Tim Berners-Lee)

更伟大的是,蒂姆·伯纳斯·李没有为他的发明申请专利。他说:“如果我当时申请了专利,现在WWW也只是众多封闭系统中的一个而已,不同的系统永远也无法相容。而我的愿望是每个人都能在WWW上分享信息,这是一项意义重大的活动,因此我不能向人们要钱。”

我们都要感谢蒂姆·伯纳斯·李。没有他,就没有普通人可用的互联网。

互联网的诞生并非一人之功,而是分布式网络思想、分组交换技术、TCP/IP协议栈以及万维网理念等层层演进、多位先驱共同努力的结果。这正是一个伟大技术生态的迷人之处。如果你想了解更多关于计算机系统、网络原理的深度内容,欢迎访问 云栈社区 进行探索和交流。




上一篇:2026年图灵奖得主托尼·霍尔逝世,欧洲编程语言三巨头时代落幕
下一篇:1958年夏:德州仪器工程师基尔比如何发明首个集成电路
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-15 13:32 , Processed in 0.577795 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表