后一页
前一页
回目录
回首页
第四章 电脑间的谈判


  人类的不同集团为了自身的利益要进行各种谈判。谈判之前,唇枪舌剑;
  谈判之中,剑拔弩张;谈判之后,握手言和。因为大家总要共同生存下去,所以最终的结果往往是各退一步,然后达成“协议”。
  电脑之间也要谈判。比如,美国陆军要实现电脑化管理,进行了招标,结果DEC公司中了标,陆军就买了大量DEC生产的电脑;随后,空军招标,结果IBM公司中标,空军使用的就是IBM电脑;海军当然也要招标,这次是Honewell中了标,海军就得用Honewell电脑。在60-70年代,还没有我们现在的PC(个人电脑)概念,大家用的都是大型机、中型机或者小型机等等。谁也不能说这些电脑有问题,他们在各自的系统里都运行得很好。可是有一天,国防部要想查看他们的系统,这才发现几个军种的电脑之间却不能很好地连接起来。
  尽管“所有电脑生来都是平等的”,但是这些电脑却不是生来就能相连的。
  究其原因,如果不是最初的设计者疏忽的话,更可能的还是生产者被各自狭隘的商业利益给束缚住了。
  在ARPANET产生之初,大部分电脑互相之间是不兼容的。在一台电脑上完成的工作,别想拿到另一台电脑上去用。要是想让硬件和软件都不一样的电脑联网,就更不可能。
  为了让这些“生来平等”的电脑之间能够分享成果,分享资源,就得在这些系统的标准之上,建立一种共同的大家都必须遵守的标准。这样才能让不同的电脑按照一定的规则进行谈判,并且在谈判之后能够“握手”言和。
  在确定今天互联网各个电脑之间的“谈判规则”的人当中,最重要的就是瑟夫。正是因为他的努力,才使我们今天各种不同的电脑之间能够互联。瑟夫本人也因此获得了“互联网之父”的称号。

  文滕·瑟夫和鲍伯·卡恩

  文滕·瑟夫(Vinton G.Cerf)小时候是个坚强而热情的孩子,高中加入了后备军官训练队。和许许多多爱出风头的小孩一样,瑟夫从小就喜欢标新立异,引起别人注意。在学校的时候,作为后备军官训练队的队员,他却经常不穿制服,而是穿着夹克,系一条领带,还提着一个不小的手提箱。这种装束虽然有时会受到某些人的白眼,但只要能换来女孩子们注意还是值得的。
  同时,瑟夫也是个极爱读书的人。在化学课上,他尽显自己的才华。然而对他来说,真正情有独衷的还是数学。
  那时,瑟夫的同学和朋友中有一个叫Steve Crocker的。当瑟夫还是中学生的时候,就被允许使用加州大学洛山矶分校的电脑。他和Steve经常在周末到那里去玩电脑。有一个星期天,他们照例来到电脑室,却发现门被上了锁。正当Steve打算回家的时候,瑟夫却让他蹲下,踩着他的肩膀从窗子爬了进去。从此,他们就再也不愁电脑室的门被锁上的问题了。
  瑟夫有一个好父亲。高中毕业后,父亲的公司给了他4年的奖学金到斯坦福大学去读书。既然最喜欢数学,他就选择了数学作为自己的专业。
  然而没过多久他就发现,最有魅力的还是电脑。
  “为电脑编程序是个非常激动人心的事。你建立一个自己的宇宙,而这个宇宙是由你来管理的。只要把程序编好,就可以让电脑做任何事情。这简直就象小孩堆沙子玩的沙箱,里面的每一粒沙子都在你的控制之下。”(《留住魔迹的地方》第139页)
  想当领袖的欲望可以在编写程序的过程中虚拟地实现,这绝对不止是瑟夫一个人爱上电脑的原因。
  1965年,瑟夫从斯坦福大学毕业,到洛山矶的一家IBM公司做系统工程师。而他的那位朋友Steve正在加州大学洛山矶分校读电脑专业的博士学位。当时,全美国没有几所大学有电脑方面的博士课程,最早提出“包交换”理论的Paul Baran就曾经在这里和Steve的论文导师Jerry Estrin一起工作过。
  由于天生听力不佳,瑟夫对人们通过听觉进行的交流有着独到的见解。他1966年结婚,而新娘的听力问题竟然比他更严重。据新娘介绍,在他们第一次午餐的时候,瑟夫谈起电脑就手舞足蹈,这种兴奋与后来一起看画展时找不到感觉恰好形成鲜明的对比。
  在洛山矶工作没多久,瑟夫就觉得自己的知识不够用,于是也到加州大学洛山矶分校攻读博士。当时,Estrin有一个DARPA的电脑研究课题,而这个课题同时也就成了瑟夫博士论文的题目。
  1968年秋天,DARPA在洛山矶分校成立了网络评测中心,原来Estrin的课题被转到了由Kleinrock领导的评测中心。这个中心每年的经费达20万美元,有40多个学生为中心工作。在这些学生中,理所当然地就有瑟夫。
  那时候,洛山矶分校的电脑系有一台Sigma 7电脑。尽管学校还有另外3台IBM 7094大型机,这些大型机比Sigma 7的功能强得多,但是指定研究生们用的就是Sigma 7。也许正因为此,有人把这台Sigma 7称作“小狗”。然而,这个速度慢,性能不那么可靠的“小狗”毕竟是给学生用的。正如后来瑟夫所说的那样,“无论如何,这是我们的小狗。”
  的确,后来(1969年秋),ARPANET的第一台电脑就是这条“小狗”。而大家的工作,就是在这台“小狗”和BBN公司提供的“接口信号处理机”之间,建立一种联系。
  瑟夫曾写过一篇著名的文章:“互联网是如何形成的”(http://www.u-aizu.ac.jp/~s102106/history/node2.html),对当时的情况作了非常生动的描写。
  在当时,学校里有一批年轻人对“网络评测计划感兴趣。除了瑟夫之外,还有两位年轻人也非常出色。一位是Michael Wingfield,是他在Sigma 7电脑上建立了第一个与IMP的接口。而David Crocker则是最早为ARPANET和互联网建立电子邮件标准的人。当然,也少不了在学校电脑中心工作的人参加,他的名字是:Robert Braden。
  此后不久,BBN公司的Bob Kahn(见右图)也来到加州大学洛杉机分校。是Kahn主持了后来对ARPANET的总体结构设计,为ARPANET的建成做出了巨大贡献。在那段难忘的时间里,通常是Kahn提出需要什么样的软件,而Vinton Cerf则通宵达旦地把那个软件给编出来。然后,他们又在一起测试这些软件,直到能够正常运行。
  这个Bob Kahn绝对是天才。他认准的事几乎没有不灵验的。比如,有的时候,大家认为某一种情况绝对不可能发生,而Bob Kahn偏认为一定会发生。结果还就是按Bob Kahn所说的那样发生了。时间一长,大家也就都信他的了。
  而Roberts则和Howard Frank一起在网络分析公司(Network AnalysisCorporation)设计和调试网络的拓扑结构和效率。
  就这样,由Kahn设计ARPANET的总体结构,由Roberts设计网络布局,由Kleinrock准备网络评测系统,ARPANET可以说是“万事具备,只欠东风”了。

  RFC:“征求意见稿”

  然而,事实上,开始的时候ARPANET的计划并不是一帆风顺的。有许多部门(比如AT&T)就认为这事根本就行不通。在搞电脑的这圈人中,也并不都接受这种计划。即使是提供资金的国防部高级研究计划处对此也没有成算。因此,他们一方面让实验公开进行而不予保密,另一方面还请了一批和这个计划没有任何功利关系的电脑方面权威来评估研究工作的进展。
  的确,参加研究的大多数都是一些还在读书的研究生,也许他们做梦也没有想到,正是他们的兴趣和爱好使他们加入了创造历史的行列。同时,由于他们都年轻,没有经验,也没有地位。因此,需要把自己的工作告诉别人,也需要听取别人的意见和建议。于是,他们发明了一种方式,把自己的想法和遇到的问题公开发表出来,引起大家讨论。1969年4月,当时还是研究生的Steve Crocker刊印出第一份著名的“征求意见稿”(RFC:Request ForComments),题目是“主机软件”。
  这份“征求意见稿”的意义极为重大,开了“互联网式的讨论”的先河。本来,互联网(尤其是开始的ARPANET)是军队的资金和学校的智慧相结合的产物。
  可是这种讨论既不是军队式的,也不是学院式的。美国大学的学术传统比较开放,通过刊印“征求意见稿”的方式把这种开放的传统带到了比较封闭的军队中来。
  所有人都可以看到“征求意见稿”,也都可以参加到讨论中去。而另一方面,美国大学的研究比较正统。有一套清规戒律。可是,由于这种刊印的方式不那么正式,内容也不那么正规,只是在“征求”,因此,也不完全象是学院式的讨论。
  而这种不那么正规的讨论也更加增添了开放的色彩。
  并且,这种方式还非常适合对问题的深入研究。每一份“征求意见稿”都会收到一些反馈回来的信息,如果反馈的意见足够多的话,又有可能产生新的“征求意见稿”。后来的许多与互联网有关的工作都继承了这样的方式。虽然第一份“征求意见稿”是印刷出来发给大家的,但是当ARPANET真正投入运行,人们可以方便地从网络上传输文件以后,这种方式更加受到大家的欢迎,也流传得更加广泛了。通过网络来传输“征求意见稿”,使得这种开放的讨论方式得到了更好的发挥。并且,由于这种开放性,也使互联网的影响更加扩大。
  这个刊印“征求意见稿”的传统一直坚持到现在,至今已发表了数千篇。几乎讨论过互联网中的所有问题和解决方案。我们通过这些文章就可以了解互联网技术的整个发展进程。而这些文章都可以从互联网上找到。我们甚至不必从互联网上把所有这些文章都取回来研究,哪怕是取回这些文章的目录,对方的服务器都会提出警告:取这个目录要花很长的时间,因为即使是目录也太长了!或许,我们不必做其它的研究,只要真正坐下来,好好读一读这些“征求意见稿”,就可以了解到美国人几十年来对互联网投入了多大的精力,做了多少工作。而且,要知道,其中的绝大多数文章都是在不计功利、不计报酬的情况下完成的。

  NCP:网络传输协议

  早在1965年,Larry Roberts和Thomas Merrill第一次将两种不同的电脑连接在一起之后,Merrill就把这时传送文件的方式称作“协议”(Protocol)。一个同事问他,为什么用“协议”这个词。他说,“我觉得这象是在搞外交。”
  正是在ARPANET的试运行过程中,才发现各个IMP连接的时候,需要考虑用各种电脑都认可的信号来打开通信管道,数据通过后还要关闭通道。否则这些IMP不会知道什么时候应该接收信号,什么时候结束。这也就是我们现在说的通信“协议”的概念。1970年12月,针对这一问题,由S.Crocker领导的网络工作小组(NWG)着手制定最初的主机对主机的通信协议。
  这个协议被称作“网络控制协议(NCP)。
  由于有了网络控制协议,ARPANET的运行就有了标准,网络的用户也就可以根据各自的需要,开发自己的应用软件了。
  从那时起,对互联网的研究一直遵循着理论与实践相结合的方式。既研究网络的基础原理,同时也开发对网络的应用。这个至关重要的传统一直保持到现在。
  也正因为这两方面的互相促进,使互联网既没有仅仅成为科学家实验室中的理论模型而不得推广,同时又使互联网的应用始终能够得到正确的理论指导。
  既然ARPANET工作良好,联入ARPANET的电脑也就日益多起来。也就是在这个时候,怎样让不同类型的电脑联结起来的问题就显得突出起来。换句话说,如何让这几十台结构不同的电脑按照共同的方式、共同的标准来联接,成了ARPANET的关键问题。实际上,这也是后来的互联网的关键问题。没有一个共同的标准,怎样才能“互联”?如果不能互联,哪来的互联网?
  可是,要建立这样一种共同的标准有多么不容易!要知道,这些电脑本来就被设计成不一样。我们甚至不必去理解各种大型机、小型机的运算原理,也不必去理解一个大型的网络是如何连接,只要看一看今天苹果电脑和IBM电脑之间的不兼容,看看不同软件之间的不兼容,看看甚至微软公司自己生产的同一种软件的各个版本之间的不兼容,就可以想象要把各种不同类型、不同型号的电脑和网络连在一起有多么困难。
  自从1972年10月份的国际电脑通信大会结束后,大家都在为如何设立这个“共同的标准”而开动脑筋。“信包交换”的理论为网络之间的联结方式提供了理论的基础,可是怎样让那些不同型号、甚至不同操作系统的电脑和网络按照同一个标准、同一种方式联结起来,让每一个电脑用户可以与网络上的任何电脑通信,并且还不必知道对方的电脑和操作系统是什么,更不用知道背后的技术原理,就不是一件容易的事。
  如前所述,1970年12月,S.Crocker在加州大学洛杉机分校领导的网络工作小组(NWG)曾经制定出“网络控制协议”(NCP)。他也正是一年多前写出第一个具有历史意义的“征求意见与建议(RFC)的人。开始,这个协议还是作为信包交换程序的一部分来设计的,可是他们很快就意识到关系重大,不如把这个协议独立出来为好。还给起了一个名字,叫做“网络之间”(Internetting)的程序。
  那个时候,天才的Kahn也为临时需要而开发过局部使用的“网络控制协议”。
  既然是局部使用,就不必考虑不同电脑、不同操作系统之间的兼容问题,因此也就简单的多。
  无论如何,“网络控制协议”不过是一台主机直接对另一台主机的通信协议,实质上是一个设备驱动程序。要想真正做到将许多不同的电脑、不同的操作系统连接起来,还有许多事情要做。首先得给每一台电脑分配一个唯一的名字,这样别的电脑才能把这台电脑给“认”出来。用专业一点的话说,就是要给网络上的每一台电脑定义一个“地址”。
  而且,Crocker和Kahn搞出来的“网络控制协议”也都没有纠错功能。要是在传输中出现了错误,他们的协议就规定网络停止传输数据。这次传输也就失败了。
  一开始的时候,那些“接口信号处理机”被用在同样的网络条件下,相互之间的连接也就相对稳定,因此没有必要涉及控制传输错误的问题,也很难想到这个问题。
  可是,随着联入ARPANET的电脑数量的增加,就需要有一种新的协议来管理网络之间的连接。“网络控制协议”(NCP)作为一个设备驱动程序来驱动“接口信件处理器”还可以;可是要想真正能够管理网络通信,还需要更加完善的协议。
  Kahn首先为设计这种新的网络通信协议,确定了四项基本原则(http://www.isoc.org/internet-history/):
  *“每一个独立的网络必须按自己的标准建立起来,当这个网络和互联网连接的时候,不需要在其内部做任何改动。
  *应该在最佳的状态下完成通信。如果一个信包没有到达目的地,最初发出信包的节点将很快再次发出该信包。
  *在网络之间进行互相连接的时候,将使用“黑匣子”。这里所谓的“黑匣子”后来被称为“网关”和“路由器”。将不保留通过网关的每一个信包的任何信息。
  由此,使网关变得简单,即使出现各种失误也避免在网关进行复杂的改编和恢复工作。
  *整个互联网不需要在操作的层面上有任何总体控制。”
  Kahn以前在BBN公司工作的时候就一直研究具有通信功能的操作系统原理,现在,这些研究正好用得上。BBN公司在1972年就把他的这些想法刊登在BBN公司的内部读物上,题目是:“操作系统的通信原理”(R.Kahn“Communications Principles for OperatingSystems”.InternalBBN memorandum,Jan.1972)。这些思想显然对最初互联网的总体设计和建设起了决定性的作用。
  但是,理论上认识到建立一种共同的协议的重要性是一回事,要真正建立具体的这样一个协议又是另一回事。首先,Kahn在自己研究的基础上,认识到只有深入理解各种操作系统的细节,才可能将建立起一个对各种操作系统普遍适用协议。这已经不是他一个人所能完成的了。从1973年的春天开始,Kahn请Vinton Cerf和他一起考虑这个协议的各个细节。

  TCP/IP:传输控制协议和互联网协议

  Vinton Cerf不仅参与过“网络通信协议”(NCP)的设计,而且对现有的各种操作系统的接口也非常了解。所以,Kahn把自己关于建立开放性网络的指导思想和Vint Cerf在NCP方面的经验结合起来,一起为ARPANET开发新的协议。
  而他们这次合作的结果,就是我们现在还一直在使用的“传输控制协议”(TCP)和“互联网协议”(IP)。
  从1972年11月开始,Vinton Cerf也获得了斯坦福大学电脑科学与电子工程的助教职位。这无疑是一个很好的机会。Vinton Cerf在那里组织了一系列的专题讨论。大家通过讨论,对建立一种新协议有了更加深刻的认识。当时参加这些专题讨论的学生后来有不少都成了专家。其中,Richard Karp写出了第一份TCP原代码;Jim Mathis也研究互联网的协议,后来为苹果电脑写出了专为苹果电脑用的传输控制协议:MacTCP;Derryl Rubin后来成了微软公司的副总裁;Ron Crane当时为Vinton Cerf管理斯坦福实验室的硬件,后来也到苹果电脑公司担任了一个重要职位。
  就这样,Vinton Cerf在斯坦福大学的实验室里完成了对TCP协议的初始设计工作。
  1973年9月,Vinton Cerf以主席的身份,在Sussex大学组织召开了“国际网络工作小组”(INWG)特别会议。在这次会议上,Vinton Cerf与Kahn提交了第一份关于TCP协议的草稿。这篇草稿以论文的形式于1974年5月在电气、电子工程研究院(IEEE)刊印出来,题目是:“分组网络互联的一个协议”(V.G.Cerf and R.E.Kahn,“A protocol forpacket network interconnection”IEEE Trans.Comm.Tech.,vol.COM-22,V 5,第627-641页,1974年5月)。同年12月,Vinton Cerf和Kahn关于第一份TCP协议的详细说明作为“互联网实验报告”正式发表。
  这时,ARPANET上已经连接了40个节点(NODES),一共45个网站。两年以前的1972年,在ARPANET上每天的数据流通量大约是1百万个信包,而这时已经达到每天二百九十万个信包。并且,还有一个节点通过卫星电路从加利弗尼亚州连到了夏威夷。挪威和英国也通过低速电缆连到了ARPANET上。
  在Winton Cerf和Kahn当时提交的报告中,还没有将“传输控制协议”(TCP)
  和“互联网协议”(IP)区分开来。所以他讨论的只是一个“传输控制协议”(TCP),而不是TCP/IP协议。该协议负责在互联网上传输和转发信包。Kahn开始的时候认为可以通过“传输控制协议”直接在ARPANET上传送信包。然而,这实际上只是一个“虚拟线路”模式(virtual circuit),而不是真正的“包交换”模式。这种模式在通常的远距离联入和传输文件的时候没有什么问题,但是在后来一些特殊的实验中证明,使用这种协议有时丢失信包的情况没有得到纠正。
  因此,他们认识到,应该建立两个不同的协议。一个是“传输控制协议”(TCP),另一个则是“互联网协议”(IP)。这也就是现在通常所说的:“TCP/IP协议”。
  实际上,这两个协议的任务是不同的。
  就象电影院散场的时候拥挤,而平常的时候则人少,网络中的通信量也会时大时小。通信量过大的时候,就会造成“溢出”,信号就无法传到目的地了。因此,在数据传输的过程中需要有一种共同的标准来检测网络传输中的差错。如果发现问题,就发出信号,要求重新传输,直到所有数据能够安全传输到目的地。
  这个协议就叫“传输控制协议”(TCP)。
  同时,就象寄信要有地址,打电话要有电话号码一样,网络中的每一台电脑也必须有自己的网络地址,否则别的电脑就找不到它。虽然在互联网之前,已经有各种网络出现,我们现在各个单位的内部也有不同标准、不同方式的局域网。
  要使所有电脑都能相连,就得有建立在各种局域网的地址标准之上的各个网络之间的联络标准。这就是所谓的互联网协议(IP)。
  互联网协议的任务是给互联网中的每一台电脑规定一个地址,这样,才可能在网络的众多电脑中对“这一个”电脑定位,其它电脑才可能对它进行访问。我们通常把由互联网协议规定的网络地址称为“IP地址”。
  如果说在互联网中多少还有一点管理,多少还有一点权威的话,也许这种管理就仅仅体现在对IP地址的管理上了。电脑不能象人那样,想起什么名字就起什么名字。在社会生活中,同名同姓至多引起一些笑话。而在网络中,如果不同的两台电脑有相同的地址,就无法给他们送信了。所以总要有一个机构给网络中的电脑起名──规定一个IP地址。
  当时的ARPANET还是一个相对来说比较小的美国国内的网络。本来只要用比较小的数字就可以定义了。值得庆幸的是,定义IP地址的人不仅“胸怀美国”,而且“放眼世界”,从一开始就把IP地址设计成32位的。前8位用来定义所在的网络,后24位则用来定义该主机在当地网络中的地址。
  当时,美国国防部一共签了三个合同来完成TCP/IP协议。一个合同给了斯坦福大学由Vinton Cerf领导的小组;另一个给了BBN公司由Ray Tomlinson领导的小组;还有一个则给了加州大学洛杉机分校PeterKirstein的小组。Vinton Cerf的小组捷足先登,首先制定出了经过详细定义的TCP/IP协议。经过不到一年的时间,这三个小组都独立地完成了对各自的TCP/IP协议的设计。
  1974年5月,ARPANET由美国国防高级研究计划处转交给国防通信处(DCA:DefenceCommunication Agency),也就是现在的国防信息系统处(DISA:Defence InformationSystem Agency),正式运行起来。
  DARPA从一开始就没有把ARPANET当作是唯一的目的,实际上,ARPANET只是长期计划中的一个部分。这个计划的开始是要建立三种不同的网络:一个是ARPANET,另一个是无线电信包网(Packet Radio),还有一个则是卫星信包网(Packet Satellite)。最后的任务是将这三个网络连接起来。
  当三个网络都已经相对成熟的时候,就可以进行网络之间的互联实验了。到1977年的7月,ARPANET上已经有了111台电脑,DARPA组织了第一次三个网络之间的互联。虽然这次实验已经超出了ARPANET,但仍然是由美国国防部提供资金。信包首先通过点对点的卫星网络跨越了大西洋到达挪威,又从挪威经过陆地电缆到达伦敦;然后再通过大西洋信包卫星网络(SATNET),经过SCPC系统,分别由Etam、西弗吉尼亚、Goonhilly DownsEngland、Tanum和瑞士的地面站传送再回到美国。全部路程要经过9万4千英里,比单纯在ARPANET上的800英里要长得多。
  令人不可思议的是,经过了9万4千英里的传输,竟然没有丢失一个数据位!
  要知道,在电脑上,每一个英文字母占一个字节(byte),而每一个字节通常是由7个数据位(bit,也就是“比特”)加上一个校验位构成的。这么远的距离能够如此可靠地传输数据,由此也证明了TCP/IP协议的成功。
  从1978年到1979年,军队系统对互联网技术表现出极大的兴趣。通过无线电信包系统和卫星信包系统完成的TCP/IP协议也日趋成熟。这需要进一步加强管理。
  于是,Vinton Cerf为国防高级研究计划处组建了“互联网设置管理处”(ICCB),帮助他们规划和执行TCP/IP协议的最新进展。这个机构由麻省理工学院的David Clark担任主席,其中有许多顶尖的研究专家,为TCP/IP的发展做出了贡献。
  后来,Barry Leiner又把这个机构改为互联网活动处(IAB),这也就是现在互联网协会的互联网计划处的前身。
  那时还不象现在。开始的时候,所谓电脑都是一些巨大的功能极强的计算机器。而设计TCP/IP协议的本来目的也是为比较大型的分时系统使用的。可是,在电脑网络发生一场革命的同时,电脑本身的革命也悄悄开始了。自从乔布斯在父亲的旧车库里制作出第一台电脑个人电脑以后,人们对“电脑”的理解在不断发生变化。随着“个人电脑”概念的深入人心,各种功能的电脑走进了办公室和家庭之中。这真是“旧时王谢堂前燕,飞入寻常百姓家。”
  因此,需要设计一种更加小型的、不那么复杂的“传输控制协议”来为个人电脑服务。麻省理工学院的David Clark带领他的研究小组首先论证了建立一种相对简单的“传输控制协议”的可能性。他们先为当时的一种个人工作站设计了“传输控制协议”,随后又为IBM的个人电脑设计“传输控制协议”。“麻雀虽小,五脏俱全”。经过时间的证明,这些协议虽然简单,但仍然能够很好地工作,并且能够与其它大型的“传输控制协议”很好地配合。
  “传输控制协议”不仅可以用于大型电脑和网络系统,而且也完全适用于个人电脑。这对广大的个人电脑用户来说,无疑是一个喜讯。因为,从此以后,个人工作站、个人电脑不再受到歧视,也可以象大型电脑一样加入到互联网中。这是我们大家现在从家里就可以通过电话线联入互联网的理论基础。
  随着80年代个人电脑开始大量进入家庭,互联网的用户迅速增长起来,TCP/IP协议也开始面临一系列新的问题。一个是如何使一般用户使用互联网地址(IP)
  的问题;一个是应用软件,尤其是主机软件的问题;还有一个就是如何从开始的“网络控制协议”(NCP)转换到“传输控制协议”和“互联网协议”(TCP/IP)
  的问题。
  首先是定义地址的方式问题。正如前面谈到过的,各种电脑是通过TCP/IP协议联入互联网的。“互联网协议”的标准格式由4个部分组成,每个部分至多有3个数字。因此,每部分的总数不可能超过256个。比如,中国邮电部的CHINANET在北京拨号入网服务器的IP地址就是:202.96.0.133。这种地址分成不同的等级。
  B级地址由IP地址的前两个部分组成,规定了当前使用网络的管理机构,用B级地址一共可以定义64万个地址。而C级地址则由IP地址的后两个部分组成,是当前所使用的电脑在这个网络中的地址。其中,IP地址的第三部分规定了当前使用的网络的地址,而最后一部分则规定了当前使用的电脑的地址。
  域名当专家们津津乐道这些IP地址的时候,普通人却对此很难有什么感觉。大家记电话号码已经很不容易,要想记住许多这种数字式的IP地址几乎是不可能的事。
  即使对于专家来说,用数字来定义IP地址也不是一个应用上的好主意。
  我们日常使用的是语言,而语言是由具有含义的单字组成的。因此,除了机器能懂的数字以外,我们还需要有另一种定义地址的方式。这种方式不应该是数字式的,而应该由具有含义、容易记忆的字母组成。并且,这种字母的方式应该和数字的方式完全等值,并且可以互换。每一个数字式的IP地址都有一个相应的字母式的地址;反过来,通过一个字母式的地址也可以查到相应的数字式的IP地址。也许对与专家来说,互联网上每台电脑的名字是一串数字,但是,对于一般人来说,则应该是相对容易记忆的字符。
  我们应该感谢USC/ISI的Paul Mockapetris,是他发明了这样的一种转换系统,使我们可以在不知不觉中使用自己熟悉的语言,让电脑自己把这种语言转换成电脑能懂的数字式的IP地址。这个系统被称作是“域名系统”(DNS:Domin Name System)。
  域名系统一般也是由不同的部分组成,而且不一定只是四个部分。每部分同样由“."(读做“dot”)隔开。比如,Chinanet的域名地址就是:ns.bta.net.cn,这是和202.96.0.133完全等值的。“牛津大学中国问题研究中心”的域名地址则是:cmcs.ox.ac.uk。这个地址也可以写成:centre-mordern-chinese-studies.oxford.ac.uk。
  由此可以很容易地看出,这些字母是有含义的。最后一位通常表示这个地址所归属的国家或机构。
  表示各种机构的地址名称通常有:

  org................组织
  mil................军队
  com............商业机构
  gov............政府部门
  edu............教育部门
  表示国家或地区的地址名称就很多了,比如:
  cn.................中国
  uk.................英国
  hk.................香港

  长痛不如短痛

  正是由于TCP/IP协议的出色表现,1980年,军队决定将TCP/IP协议作为军队推荐的协议来使用。不过,“上有政策,下有对策”,有人“推荐”是一回事,用不用则是另一回事。让人们改变过去的习惯去适应一种新的技术往往是困难的,仍然有一些单位继续使用NCP协议。
  幸好,国防部的官员也懂得“长痛不如短痛”的道理,既然TCP/IP协议与NCP协议相比有着明显的优越性,就应该果断地用TCP/IP来替换NCP,拖的时间越长,问题也就越多。军队就应该有雷厉风行的作风。为此,在1982年的时候,军队终于做出决定:整个ARPANET上使用的系统都必须从网络控制协议(NCP)转换到TCP/IP协议上来。这个决定同时也是向人们表示将ARPANET的协议从NCP转换到TCP/IP的选择已经成为定局。
  即使作出了这样的决定,要让大家同时都使用TCP/IP,仍然不是一件容易的事。这需要小心、谨慎、仔细地完成转变工作。经过精心的策划,选择了双管齐下的方针。他们开了两组通道:一组通道继续使用NCP协议,另一组通道则使用TCP/IP协议。这样就有可能让ARPANET暂时关闭某一个通道而只允许使用另一个通道。既起到了警告的作用,又不至于突然强行中断而影响工作。年中的时候,ARPANET将所有NCP协议的通道关闭了一整天。使用TCP/IP协议的单位当然没有问题,而继续使用NCP的单位则遭了殃,一下子收到了大量用户埋怨的信件。
  对于那些顽固不化的机构,暂停NCP被证明是一个好方法。当年秋天,ARPANET的NCP通道又被停了两天。这样,再有顽固的人,也很难坚持下去了。谁能受得了这种用用停停的局面呢?谁知道什么时候该连续停三天了呢?那些顽固坚持NCP的人,终于让自己的习惯服从了科学的选择。
  1983年的1月1日,被称为是互联网发展过程的一个“记念日”(flag-day)。
  因为,从这一天起,ARPANET永久性地停止使用“网络控制协议”,从此以后,在互联网上的所有主机之间有着共同的协议,这些主机的连接必须遵守同样的规则,这个协议或者说规则就是TCP/IP。
  我们在前面说过,互联网的理想,就是实现对所有电脑、对所有操作系统的“开放性”,使所有电脑都可以在互联网上共享资源。而这种理想的实现,在很大程度上应该归功于TCP/IP协议。正是由于有了这两个协议,才使互联网得到了如此巨大的发展,也正是这两个协议,使互联网上的通信得到了保证。
  1997年,美国授予当时发明和定义TCP/IP协议的Vinton G.Cerf和Robert E.Kahn“国家技术金奖”(http://www.sciam.com/0697issue/0697medal.html),无疑是对互联网的发展和作为互联网基础的TCP/IP协议的最佳褒奖。
  有了可靠的通信手段,当然是为了使用。然而,出乎美国国防高级研究计划处意料之外、同样也出乎设计互联网的那些电脑专家意料之外的是:在ARPANET上使用最为普遍,也最为有效的竟然是可以给私人之间通信的“E-mail”。


后一页
前一页
回目录
回首页