网络协议传奇(二):横空出世TCP
日期:2024-06-01 22:50:39   来源:常见问题

  本节内容将郑重进入网络协议内容。但是在网络协议种类已达几千种之多的今天,显然我们没办法逐个详细追溯它们的发生发展,所以本节内容以当今应用最广的网络协议族TCP/IP为例,借以管窥网络协议技术史之一斑。

  《圣经旧约创世记》里的“巴别塔”讲述的是语言多样性消解人类生产力的故事,而网络从诞生到后来的逐渐完备,实际上的意思就是持续消除“巴别塔”问题的过程。

  阿帕网的创立者们面对的一个现实情况是:不同企业推出的不相同的型号的计算机都有着一套独特的控制语言和文件组织方式,而这些结构性差异使任何两台不相同的型号的机器都无法展开合作,也就是现在所说的互联互通。如果要形成计算机网络,怎么样才可以把不相同的型号的电脑连在一起呢?最初,他们通过一个由BBN研制、被命名为接口信号处理机(IMP)的设备解决了这样的一个问题IMP被安装于大型主机与网络之间起到中介作用,其任务有两个:接受远程网络传来的信息并转换为本地主机使用的格式;负责线路调度工作。这样一来,计算机系统间的不兼容问题得以规避。1969年11月21日,具有4个节点的阿帕网搭建完毕并正式投入运行。

  但是,新的问题接踵而至。当时的阿帕网由分布在美国西海岸不一样的区域的四台大型机构成,四大主机通过专门的IMP和专门的通信线路相互连接。阿帕网运行后才发现各个IMP连接的时候,需要仔细考虑用各种各样不同型号计算机都认可的信号来打开通信管道,数据通过后还要关闭通道,否则这些IMP不会了解什么时候应该接收信号,何时该结束,这就是我们所说的“通信协议”的概念。

  1970年12月,一种叫做“网络控制协议”(Network Control Protocol,NCP)的协议被用于阿帕网,该协议由史蒂夫克拉克(S.Crocker)领导的网络工作组(NWG)完成。但随着阿帕网用户的增多,NCP逐渐暴露出一些缺陷,如:不能互连不同的操作系统,未给网络中的每台电脑设置唯一的地址、缺乏纠错功能等,导致数据在传输过程中如果出现错误,网络就可能停止运行。这样一些问题使得网络的实用性大打折扣。

  TCP/IP协议由供职于DARPA的鲍伯卡恩(Bob Kahn)和斯坦福大学副教授温顿瑟夫(Vinton G.Cerf)联手完成,1974年12月,他们的第一份TCP协议详细说明正式发表。TCP/IP是最早出现的网络协议之一,也是最早出现的互联网协议。

  事实上,TCP/IP协议解决的是另一个“巴别塔”问题。前面我们遇到的是不相同的型号计算机因控制语言和文件组织方式的不同而无法连接合作,现在面对的则是不同局域网络之间因有不一样的网络结构和数据传输规则而造成的连接通信障碍。如果将这些局域网络连接起来,各网络之间就要通过相应的规则来传输数据。TCP/IP协议很好地解决了这个大问题,它的里程碑意义在于建立了网际间的开放互连模型,统一了网际间的交流语言,进而为真正互联网(Internet)的诞生打下了技术基础。

  TCP/IP协议首先着眼于给每台电脑都分配一个唯一的确定的地址,就像住宅的门牌号一样,有了它快递员才能把包裹准确投递到位这就是IP。而TCP则负责监督传输过程,一出现一些明显的异常问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地这套思想也直接引发了路由器的出现。思科应该感谢一下这两位技术先驱,因为它就是从路由器起家,继而一度成为了网络基础设施的代名词。而其后的历史也证明,TCP/IP协议和路由器的发明和使用,大大加速了互联网的普及。

  当时为了鼓励采用新协议,美国国防部高级研究计划署给斯坦福大学、BBN公司和伦敦大学学院各一份合同,以开发不同硬件平台上TCP/IP协议的运行版本,包括IBM、DEC和HP系统等。结果由温顿瑟夫领衔的斯坦福大学团队捷足先登,首先制定出了通过详细定义的TCP/IP协议标准,并在大约一年时间里,实施了三个可以互操作的独立TCP(TCP/IP协议的前两个版本以TCP命名,从第三个版本开始以TCP/IP命名)。

  1977年11月22日,一辆载有一个无线传输器的厢式货车沿着旧金山南部某处的一条公路行驶,它发出了一个数据包信号,这个信号将在无线网络和阿帕网之间传输,同时它还将在一个卫星网络上传输,这个网络将阿帕网与欧洲连接到了一起。这个信号从加利福尼亚州跳跃到波士顿,然后又传输到挪威和英国,接着回到西弗吉尼亚的一个小镇,最后回到了加利福尼亚州。这次试验使得TCP/IP协议首次在三个独立的计算机网络之间完成了信号传输,行程9.4万英里,没有丢失一个比特! TCP/IP协议的技术能力得以证明。“那是真正的互联网活动。”瑟夫在后来的回忆中说道。

  为了推广TCP/IP协议,美国国防部高级研究计划署以低价出售TCP/IP的方法,并资助BBN公司和加州大学伯克利分校,以推动将BBN公司开发的TCP/IP加入BSD UNIX操作系统。BSD(Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,BSD UNIX当时在多数大学中流行,它由加州大学伯克利分校开发和发布。计划署的目的很简单,就是要让TCP/IP借势进入主流。

  比尔乔伊(Bill Joy,曾担任Sun的首席科学家)当年在伯克利求学时主持开发了最早版本的BSD。1980年初,当美国国防部高级研究规划署向BBN公司和伯克利提出上述需求时,还是研究生的比尔乔伊断然拒绝把BBN TCP/IP加入BSD,因为在他看来BBN的TCP/IP写得并不好。结果是比尔乔伊另起炉灶,很快就写出了高性能的伯克利版TCP/IP,它能够让TCP/IP更高效地融入Unix系统和内核。在后来的一次会议上两方相遇,BBN的人问:你怎么写出来的?比尔乔伊答:简单,你读协议,然后编程就行了。曾经承建了阿帕网的BBN竟然输给了一个研究生,这的确令人难堪。不过,事实上,TCP/IP与流行操作系统Unix的结合是其成功的一大源泉,这也是美国国防部做出的另一个高明之举。

  1983年,伯克利推出内含TCP/IP的第一个BDS UNIX,项目组用一种新的编程接口重写了TCP/IP,这个编程接口就是随着Berkeley UNIX4.2BSD一起发布的著名套接字(socket),他们还编写了许多应用程序、工具以及管理程序,以便展示通过套接字使用网络有多么的容易。

  机缘巧合的是,当时许多大学刚刚得到了第二台或者第三台DEC公司的VAX计算机以及连接它们的局域网,但是他们却没有联网软件。当4.2BSD横空出世,TCP/IP、套接字编程接口以及许多网络工具等整个软件包被立即采纳。而且,通过TCP/IP把局域网连接到阿帕网很容易,许多局域网也的确这样做了。由此,TCP/IP逐步升级为主流网络协议。

  接下来,大一统时刻终于到来!根据美国国防部长办公室的“命令”,1983年1月1日联入远程网的所有计算机都一定要采用TCP/IP,NCP将被不再使用。如同带队者喊出“齐步走”的口令,1983年1月1日的这一天,所有的主机都要同时转换,否则它们就必须通过临时机制进行通信。当然,此项安排早在前几年就已经进行了精心策划,所以这次转换的过程十分顺利。至此,这个以阿帕网为主干网的网际互联网被人们称呼为Internet,而TCP/IP协议也正式开启了它的传奇之旅。

  时间进入到1986年,互联网的另一个重要推手出场了,它依然是一家美国政府机构美国国家科学基金会NSF(National Science Foundation)。那一年,NSF建立了6大超级计算机中心,为了使全国的科学家、工程师能够共享这些超级计算机设施,NSF建立了自己的基于TCP/IP协议族的计算机网络NSFNET。其间的种种细节自不必说,到了1990年6月,NSFNET彻底取代了阿帕网转而成为Internet的主干网。

  到了上世纪90年代,美国政府意识到仅靠政府资助,难以适应互联网应用的发展需求,所以开始鼓励商业部门介入。1992年,美国IBM、MCI、MERIT三家公司联合组建了一个高级网络服务企业(ANS),建立了覆盖全美的T3(44.746M)主干网ANSNET,并成为继NSFNET之后的又一条Internet主干网。随后,美国国防部高级研究计划署和美国国家科学基金会撤销对阿帕网、NSFNET的资助,因特网由此开始步入商用。

  这俨然是一场规模空前的接力赛,纵观互联网发生发展的前20年,美国政府不仅选对了赛道,还押对了选手。其间的种种决策和变革,都实质性地推动了互联网的发展。对于初期的互联网而言,美国政府机构无疑是充当了孵化器的角色,其间有实质性的资金支持,也有精准的推广普及策略,还有强制性的“命令”行为,更有适时地引入商业资源,最后又适时地功成身退。在成长期呵护备至,在长大之后果断放手,进退取舍之间自有气象。其间美国政府的面目角色也多有不同,它是保姆、金主、推销员、合作伙伴,甚至是“独裁者”,可谓刚柔并济,多管齐下,但目的只有一个引导互联网向正确的方向发展。我们还可以设想一下,如果当初政府角色缺位,互联网将会怎样?

  自从IBM将并不赚钱的x86服务器业务转手给联想之后,从此IBM便开始了硬件转型的新里程碑。伴随此事继续发酵的还有PowerSystemLinux落户北京,从此IBM硬件开放之路的步伐越迈越大。最鼓舞人心的要数OpenPower联盟推出的Power8芯片全面开放这一消息,大家纷纷猜测蓝色巨人真的能放下身段?下面我带领大家一起见证Power8芯片的巨变。

  随着云计算进入到更多的企业当中,业务开始寻求减缓潜在风险的方式。企业逐渐精通检验提供商的业务流程,并测定他们的健壮性到底如何,但是有多个方面数据显示,他们仍旧担心云安全和可靠性问题。最近公司开始采用云保险保护自身免受损失。尽管这些保险策略还是刚出现的,但是为在市场上取得圆满成功还是清理了一些障碍。