WinSock网络编程经络
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 历史

TCP/IP协议的发展历史是与Internet紧密相连的,当我们提到TCP/IP的时候,不得不提Internet。Internet为TCP/IP协议提供了应用的舞台,对TCP/IP的不断研究也促进了Internet的快速发展。

现在的Internet已经成了最大的网间网,包含了世界所有连接到网络上的计算机。它改变了人们的生活方式,能够使人们及时地交流、快速地进行信息共享,由此进入了前所未有的信息化社会,它是人类发展史上一个伟大的里程碑。

· 网络的诞生

1957年苏联发射了第一颗人造地球卫星Sputnik,在航天方面走在了美国的前面,这对于美国人是一次沉重的打击,他们品尝了落后的苦涩滋味。为了继续保持在军事、科技上的领先地位,美国成立了许多部门进行新的科研活动,向政府提供有军事价值和意义的研究成果,其中之一就是美国国防部(DoD)成立了高级研究计划署(ARPA)。

ARPA向美国的大学、公司提供科研经费,进行计算机网络的研究。当时的通信系统是电话和无线电,采用的是集中式管理,一旦控制中心被摧毁,整个系统都无法正常工作。为了保证美国受到核打击后依然具有一定的反击能力,必须设计出一种分散的通信系统,当部分被破坏后,其他站点仍能继续保持联系。因此,新网络的设计思想是:网络能够在受到严重破坏,导致部分线路中断或站点不能工作的情况下,其他的计算机仍能通过剩余的线路进行通信。

1969年,美国国防部建立了世界上第一个基于分组交换的试验性网络,命名为ARPANET。这个网络把美国的加利福尼亚大学洛杉矶分校(UCLA)、斯坦福大学研究院(SRI)、加利福尼亚大学(UCSB)和犹他州州立大学(University of Utah)四所大学的计算机通过BBN公司生产的接口消息处理器连接起来,这就是最早的Internet雏形,也成为现代计算机网络诞生的标志。表2.2是接入结点的功能及主机使用的操作系统。

表2.2 最初的ARPANET网络设备

当网络的硬件设备能够工作后,最紧迫的任务就是编写符合规范的软件,以实现不同计算机间的通信。

1969年12月,网络工作组(NWG)就赶制出一份Telnet(代表TELecommunication NETwork.)协议RFC 15,用于远程上网,但非常简单,功能有限。Telnet把一台计算机模拟成另一台远程计算机的虚拟终端来使用远程服务器上的资源。

1971年,BBN公司的Ray Tomlinson发明了通过分布式网络发送消息的email程序,最初的程序包括两部分:同一机器内部的email程序(SENDMSG)和一个实验性的文件传输程序(CPYNET)。1972年,他为ARPANET修改了email程序,在FTP程序中增加了MAIL和MLFL两个命令(RFC 385),为email提供标准的网络传输能力,使这个程序变得非常热门。1972年7月,Lawrence Roberts写出了第一个email管理程序(RD),可以按主题和日期对邮件排序,用户可以有选择地阅读、保存文件、删除邮件等。

1971年6月,在RFC 172中定义了文件传输协议,主要是在ARPANET网络上的两台主机间传输文件,用于文件共享,鼓励用户间接地使用计算机,不需要了解文件系统和主机的差别。1973年2月,正式发布了文件传输协议规范RFC 454。

由此可以看到,Telnet、email和FTP是Internet上最早出现的应用程序,特别是email仍然是目前Internet上最主要的应用。

· TCP/IP标准的形成

1972年10月24日,Bob Kahn在华盛顿组织了国际计算机通信会议(ICCC),旨在解决计算机通信领域一系列广泛的问题以及对社会(教育、医疗、科研、商业、政府等)产生的深刻影响。Bob Kahn在会上演示了由40台计算机和终端接口处理器组成的ARPANET网络,演示的主题有:获取数据库、实时数据访问、交互式操作、模拟系统等,让参会者亲自体验到计算机通信网络的实用价值。大会认为许多联网技术需要进一步完善,决定成立国际网络工作组(INWG),负责建立计算机间能够互相通信的网络协议,它不依赖于底层硬件和网络结构,Vinton Cerf担任第一届主席。

Vinton Cerf和Bob Kahn合作设计了被广泛使用的TCP/IP协议及互联网的基础体系结构。TCP/IP协议打破了不同网络之间难以互联的障碍,将网络从原来只服务于军事机构转变成向全世界开放的传输媒体,引发了一场前所未有的革命。因为在互联网领域上开创性的工作和权威性的领导地位,他们一起被称为“互联网之父”,并于2004获得了图灵奖。

Vinton Cerf做网络拥塞的研究工作时,在加利福尼亚大学洛杉矶分校(UCLA)遇到了Bob Kahn,当时Bob Kahn正在从事ARPANET网络互联的研究,提出了网络架构及新的网络协议的想法,请Cerf一起考虑协议的细节并用软件实现,Cerf常常熬夜来实现这些想法,然后一起做测试。

Vinton Cerf最初是在斯坦福大学的试验室中进行TCP协议的设计工作,1973年完成了TCP第一个草稿,两人对协议的细节仔细推敲,并把新的规范提交给同年9月在Sussex大学举办的国际网络工作组(INWG)会议。1974年5月,Cerf与Kahn在IEEE Transaction期刊上共同发表了论文A Protocol for Packet Network Intercommunication,介绍了在不同分组交换网络间支持资源共享的协议TCP,1974年12月出版了第一份TCP协议的正式规范RFC 675,之后经过四次修订成为我们今天还在使用的TCP/IP标准协议。TCP论文的发表在互联网发展史上具有革命性的意义,它使计算机能够跨越不同的网络方便地通信,任何人都可以组建不同规模的网络并接入Internet。

最初的设计中只有一个协议TCP,没有区分TCP和IP。1977年7月对新的TCP协议实现在有三个互相连接的Internet网络上做了测试,结果协议工作很好,没有丢失任何数据。之后又在分组交换网络上进行了传送语音的实验,为了保持声音的连续性,不得不对声音进行严重的压缩,并在系统中申请大量的缓冲区,来保存重传数据的重组,结果得到了一个非常不合理的系统,TCP无法满足这种需要。从事语音工作的Danny Cohen建议寻找一个新的方法来传输分组,不要求可靠性,重传一个语音分组并不是特别有用,它会导致语音的延时。这个合理的建议导致考虑把TCP分裂为两个协议:TCP和IP,并创建了UDP,作为用户容易使用IP的有效方式,那也说明了为什么今天的语音传输都使用UDP的原因。

1977年3月Vinton Cerf完成了TCP第二版的修改SPECIFICATION OF INTERNET TRANSMISSION CONTROL PROGRAM。1977年8月,Jon Postel这位最重要的RFC编辑者及TCP/IP协议的设计者发表了对TCP协议的评论Comments on Internet Protocol and TCP,成为TCP/IP协议发展中一个重要的转折点。这篇评论的开头写道:

“在我们设计的互联网协议中把所有的功能都放在一个协议中,这违反了分层原则。特别是我们试图使用TCP来做两件事:既作为主机层的端到端协议,又作为互联网打包和路由协议。这两件事应该以分层和模块化的方式提供。我建议提供一个新的互联网协议,并且TCP严格作为主机层端到端的协议使用。我也认为如果TCP只是以这种干净的方式使用,它会略微地被简化。”

——Jon Postel, IEN2, 1977.8

Postel建议把Internet的逐跳功能作为一个单独的协议,称为互联网协议(IP),定义了IP首部字段的格式及功能,并且对之前的TCP做了修改,使它只作为一个主机层的协议。Postel的评论定义了TCP/IP的分层体系结构,把TCP拆分成两个不同的协议:TCP和IP。在1980年1月正式发布了TCP和IP的RFC规范,RFC 760(Internet Protocol)和RFC 761(Transmission Control Protocol),现代网络中使用的TCP/IP标准被称为IPv4,发布于1981年,其RFC编号分别是:RFC 791和RFC 793。

1982年,DCA和ARPA把TCP和IP作为ARPANET的网络协议簇,通常称为TCP/IP,并把TCP/IP作为美国国防部的标准。第一次定义了Internet,是一个互相连接的网络,尤其是指那些使用TCP/IP的网络,而Internet是通过TCP/IP互相连接的internet。美国国防部决定把ARPANET上运行的所有系统都从NCP过渡到TCP/IP,每个主机需要从1982年1月1日开始实现TCP/IP协议,并且在1983年1月1日完成所有的切换工作。在过渡的这段时间,ARPANET提供中转服务器,负责在支持NCP的主机和支持TCP/IP的主机间做转换工作,提供转换的主要服务是:Telnet、FTP和Mail,以保证从旧系统向新系统的平滑过渡。另外,国防部也采取了一个聪明的强迫措施去鼓励用户切换到新的系统,那就是通过拒绝发送给特定通道号的分组定期地关闭NCP连接,使人们相信从NCP转移到TCP这件事是严肃认真的。1982年中期关闭NCP网络一天,同年秋天关闭NCP网络两天,到1983年1月1日永久关闭NCP。

这次转换是互联网发展中最为重要的事件,它具有里程碑的意义,标志Internet正式诞生,并确立了TCP/IP在互联网发展中不可动摇的地位,通过TCP/IP,网络可以伸展到任何地方,数据非常容易地从一个网络传送到另一个网络。

· 互联网的发展

出于安全性的考虑,1983年ARPANET分裂为ARPANET和MILNET两个网络,后者与前一年成立的国防数据网(DDN)合并,主要用于军事。

Internet主干网NSENET

1986年美国国家科学基金会(NSF)基于TCP/IP协议簇建立了计算机网络NSFNET,有5个超级计算机中心,为用户提供强大的计算能力。

1987年NSF与Merit网络公司签订了合作协议,由Merit网络公司负责管理NSFNET的主干网,Merit网络公司又与IBM和MCI公司签订协议,三家共同参与和管理NSFNET网络。

NSFNET不像之前的ARPANET只能由科研人员和政府机构使用,而是面向全社会开放。在NSF的鼓励和资助下,掀起了接入Internet的高潮,许多大学、研究机构纷纷把自己的网络连接到NSFNET。ARPANET逐渐被NSFNET所替代,到1990年6月ARPANET停止提供网络服务,退出了历史舞台,NSFNET取代了ARPANET,成了Internet的重要主干网。

NSFNET对Internet的发展起到了巨大的推动作用,随着接入网络数量的增加,通信量迅猛增长,渐渐地,NSFNET已经不能满足要求,需要增加更多的带宽和采用新的网络技术才能适应不断发展的需要。

1990年9月,Merit、IBM和MCI三家公司组建了一个非营利组织:高级网络科学公司(ANS),目的是建立全美范围的T3级骨干网(ANSNET),以44.736Mb/s速率传输数据。到1991年年底,NSFNET的所有站点都连接到了T3级主干网。

1991年后,Internet开始进入商业化发展阶段,其中WWW的出现,使人们可以更加方便、容易地获取信息,开始了Internet发展的新时期。

Web的出现

WWW是Tim Berners-Lee发明创造的,1984年,他返回到世界上最大的粒子物理实验室欧洲原子核研究院(CERN)工作。在CERN,当研究人员想要共享信息时,他们必须按照CERN计算机系统的格式组织和格式化他们的文档,但是研究人员位于世界各地,并且使用不同种类的计算机和软件,许多研究人员不愿意花费额外的努力调整他们的工作使其与CERN系统兼容。于是,Tim Berners-Lee设想了一种通过网络共享信息的方法,就是建立一个全球的信息空间,信息可以保存在任何地方的计算机上,任何人都可以通过相关的链接来访问这些信息。

“这将是很容易的,如果每一个问我问题的人只是访问我的数据库;它也将是更好的,如果我能够知道这些家伙正在做什么,并且帮助他们跳到一个类似的信息数据库。”

——Tim Berners-Lee

1989年3月,Tim Berners-Lee向CERN提交了开发信息管理系统的建议书Information System:A Proposal,建议使用超文本技术把CERN实验室的网络连接起来,结果没有被批准。但他没有气馁,继续完善他的建议,1990年5月终于得到了批准,得到了一笔经费,购买了一台NeXT计算机,用于试验和开发,并把他的发明正式命名为World Wide Web。在同事的帮助下,Tim Berners-Lee开发了Web技术的三大基石:编码文档的语言(HTML)、获取文档的协议(HTTP)和文档定位方案(URL)。

1990年年底,Tim Berners-Lee根据他的技术开发了第一个Web服务器CERN HTTPd(HyperText Transfer Protocol daemon),服务器保存了HTML页面,并允许其他人访问,第一个Web服务器的名字是“info.cern.ch”;同时他也开发了第一个Web浏览器,称为World Wide Web,用于取得和浏览超文本文档。

1991年,Tim Berners-Lee把他的浏览器和服务器放在了Internet上,第一个Web页是“http//info.cern.ch/hypertext/WWWTheProject.html”,并且在新闻组“alt.hypertext”上发布了一个通知,立即引起了轰动,并迅速地推广。Tim Berners-Lee也终于实现了他的建立全球信息空间的梦想。

第一台Web服务器的主页(http://info.cern.ch/)上这样写道:

1990年是世界历史上重要的一年,2月,曼德拉被监禁27年后释放了;4月,发现号航天飞机把哈勃太空望远境送入轨道;10月,德国统一了。

然后,1990年年底,发生了一场革命,彻底改变了我们今天的生活。

基于超文本协议——在一个文字中嵌入另一段文字的链接的系统,当你阅读这些页面的时候,你可以随时用它们选择一段文字链接。使人们可以更加方便、容易地获取信息,互联网开始向社会大众普及,开始了Internet发展的新时期。

使用超文本的方式把不同计算机中的信息有机地结合在一起,用户可以方便地从一台计算机转到另一台计算机,或者从一个文档跳到另一个文档。改变了人们获取信息的方式,大大简化了使用网络的操作步骤。服务器使用WWW技术可以发布图文并茂的多媒体信息,如文本、图像、声音、视频等,为Internet穿上了一件漂亮的外衣,赋予了它强大的生命力,WWW的出现是Internet发展史上的分水岭。

1993年,伊利诺伊大学美国国家超级计算机应用中心的学生马克·安德里森(Mark Andreesen)等人开发出了真正的浏览器“Mosaic”。该软件后来被Netscape Navigator公司推向市场。此后Internet开始得以爆炸性普及。