html
我常常对互联网视为理所当然。多年来,它经历了许多形式,但底层技术大体上保持不变。然而,甚至我们所知的互联网的基础并非一直都是理所当然。因此,我最近了解到1970年代、80年代和90年代的协议战争。
协议战争在蒂姆·伯纳斯-李爵士的新书《这是为每个人的》中提到,而伯纳斯-李爵士常被称为万维网的发明者,所以我应该认真听他的话。伯纳斯-李本质上将HTML(我们每天看到的可视网页代码)与已经在运行的传输控制协议(TCP)和域名系统(DNS)结合起来。
这两个已经运行的系统和协议中的前者TCP是在80年代末和90年代初万维网创建之前受到质疑的。
我知道TCP是与IP(互联网协议)共存的协议——TCP/IP——它们共同构成了今天支撑我们互联网的协议组。这些协议本质上是一组规则,规定了系统如何在网络和互联网之间进行通信,也就是解释了数据应该如何组织和传输。TCP处理系统之间的虚拟握手和数据格式(主机间的通信),而IP则负责传送数据包(网络间的通信)。
在网络中,TCP/IP通常与相应的OSI模型一起教授。两者都可以看作堆栈中的不同层,每一层执行不同的功能。这两个堆栈中的层——一个用于TCP/IP,一个用于OSI——相互对应,虽然TCP/IP是实际使用的协议,但OSI模型通常用于帮助我们理解网络和互联网传输中的情况。
这就是今天网络中通常教授的内容:OSI模型被教授为理解TCP/IP传输中发生的事情的另一种方式。
所以我有点惊讶,原来TCP/IP和OSI在70年代和80年代之间展开了激烈的竞争,各自争夺成为互联网的标准。这是事后诸葛亮的说法。
然而,在TCP/IP和OSI进行竞争之前,TCP/IP还在与其他协议竞争。例如,罗伯特·卡恩和文特·瑟夫创建的协议在70年代与法国Cyclades网络的底层协议进行了较量。这个网络帮助开创了分组交换技术(即以分组的形式传输数据),但没有在网络中构建可靠性检查,例如错误处理——而TCP做到了。TCP/IP还抵御了其他协议的挑战,如IBM的系统网络架构和DEC的DECnet。在技术的早期阶段,每个人都有自己不同的做事方式——互联网的某些部分通过本地网络出现——而且很少有人愿意在发展中的协议战争中失去对一切的控制权。
在这样的竞争中,TCP有很多优势。就我所知,它最大的资产有两个方面:首先,它采用了一种先尝试后修复的方法,使其能够立即使用;其次,它是由(当时的)美国国防部(DoD)形成的,当然是这样。我想这就是人们所说的互联网起源于军事应用的意思。
当时美国国防部的高级研究计划局(DARPA)没有“防御”的概念,只被称为ARPA。ARPA致力于ARPANET的开发,这成为了第一个分组交换网络之一。一群与ARPANET项目相关的重要人物组成了国际网络工作组(INWG),他们提出了TCP,并通过学习其他协议(例如Cyclades所使用的协议),在70年代逐渐发展成了完整的TCP/IP协议栈。
这些协议在整个过程中被广泛使用,许多参与其中的人在不同的机构工作,比如大学。例如,文特·瑟夫(Vint Cerf)是INWG的主席,还在斯坦福大学任教。事实上,斯坦福大学帮助测试了与ARPANET的网络通信。蒂姆·伯纳斯-李(Tim Berners-Lee)在他的书中提到,他早期很想去斯坦福大学,但承认在那段早期他甚至不知道这是一个选择,并且承认他不记得当时是否对硅谷有多少概念。
在同一段大致的时间内,欧洲国际标准化组织(ISO)——你可能知道它是制定欧洲键盘布局标准的组织——正在开发开放系统互联(OSI)模型。这试图实现类似于TCP/IP的功能,并得到了国际电报电话咨询委员会(CCITT)等一些电话公司的支持。
然而,电话公司的参与无法与国防部和学术界在TCP/IP开发中的贡献相提并论。TCP/IP在开发的同时就被实施和测试,而OSI则是在经过彻底和系统的开发后才被实施。
本·塞戈尔(Ben Segal),是将TCP/IP引入CERN的人之一,当时蒂姆·伯纳斯-李(Tim Berners-Lee)也在这里工作,他说关于OSI:“ISO的标准制定风格是自上而下的,由专家委员会定期召开会议推动。ISO标准是印刷版的,且售价昂贵。互联网标准是自下而上开发的,并且可以在线免费获取。”
“TCP/IP便宜且简单,但实际上是颠覆性的。”
TCP/IP成为了一项开放标准,到1981年其第一个完全成熟且可用的标准以IPv4的形式发布,并在1983年正式被采用,OSI的普及程度远远不及TCP/IP。后者已经被世界各地的各种机构使用(到那时,英国及其他欧洲国家的机构已经接入了ARPANET)。CERN在1988年承认了ISO/OSI的失败。
因此,战争的胜利者是TCP/IP,成为了支撑我们今天使用的互联网通信的标准。剩下的就是将其连接到HTTP,以便我们能够使用所有华丽的网页。伯纳斯-李在1990年在CERN创建了第一个网站。该网站告诉读者如何使用万维网并指导他们如何建立自己的网站。
哦,然后 TCP/IP 决定借用 OSI 中的一层,并将其混合到自己的协议栈中。这就是为什么 TCP/IP 中的第五层通常被称为第七层:因为它是 OSI 模型中的第七层,而 OSI 模型仍然被用来帮助理论上理解 TCP/IP。
热门跟贴