原型的杂货铺首页

 
TCP/IP与OSI之思想试比较

 
发表新主题   回复主题    原型的杂货铺首页 -> 软件技术
阅读上一个主题 :: 阅读下一个主题  
作者 正文
Archetype
论坛管理员


加入时间: 2003/02/11
文章: 64
来自: 北京
原币: 107

离线
文章时间: 2003-2-11 周二, 下午10:22    标题: TCP/IP与OSI之思想试比较 引用回复

TCP/IP与OSI之思想试比较

文章版本号0.2(奇数结尾表示草稿)代号:努力

关键词:TCP/IP,OSI,模型,协议,思想

一、前言:

计算机是一门实用化的科学,各种各样的思想在这里碰撞火花。翻着计算机科学的历史,体味众位先行者智慧的精妙,指点其中得失,实在不能不说是乐事一件。

让我们把目光投向与我们关系越来越密切的网络,聊聊TCP/IP与OSI二者的斗争吧。

二、发展历史:

“以史为鉴,可知得失。”

2.1 TCP/IP

“TCP/IP”的历史要追溯到70年代中期,当时ARPA(Advanced Research Project Agency,即DARPA--Defense Advanced Research Project Agency的前身)为了实现异种网之间的互联(interconection)与互通(intercommunication),大力资助网间网技术的研究开发,于1977到1979年间推出目前形式的TCP/IP体系结构和协议规范。DARPA资助网间网研究开发,事出有因。1969年,ARPA建立了著名的ARPANET。ARPANET是最早出现的计算机网络之一,现代计算机网络的许多概念和方法便来自ARPANET。随后ARPA不断鼓励在ARPANET上进行分组交换技术的研究开发。在60、70年代,DARPA是众所周知的、主要的分组交换技术的资助者,DARPA不仅资助了在由租用线互联的ARPANET上的分组交换技术研究,而且资助了无线网和卫星网上的分组交换技术的研究。正是由于硬件网络技术的分化以及与不同硬件技术打交道的经验,才促使DARPA研究网络互联问题并导致了TCP/IP的出现与发展。

到了1979年,越来越多的研究开发人员投入TCP/IP的研究开发之中,于是DARPA组织“Internet控制与配置委员会(Internet Control and Configuration Board,ICCB)以协调各方面的工作。

1980年前后,DARPA开始将ARPANET上的所有机器转向TCP/IP协议,并以ARPANET为主干建立Internet(又叫互连网间网,connected Internet)。

1983年1月,ARPANET向TCP/IP的转换全部结束,美国国防部长办公室(Office of the Secretary of Defense)命令连入远程网(long-haul network)的所有计算机都必须采用TCP/IP。同时,美国国防通信局(Defense Communication Agency,DCA)将ARPANET分为独立的两部分,一部分仍叫ARPANET,用于进一步的研究工作;另一部分稍大一些,成为著名的MILNET,用于军方的非机密通信。

为推广TCP/IP协议,DARPA以低价出售TCP/IP的实现,并通过资助BBN(Bolt Beranek and Newman,Inc.)实现用于其UNIX的TCP/IP协议,还通过资助伯克利加州大学将TCP/IP协议融入BSD UNIX,促成TCP/IP与当时多数大学中流行的BSD UNIX(Berkeley Software Distribution UNIX)的结合。1983年,伯克利推出内含TCP/IP的第一个BSD UNIX,该协议软件可谓生逢其时,因为当时许多大学的院系正缺乏一种他们迫切需要的联网手段,以建造各自的局域网。

BSD UNIX在网络方面的成功有以下原因。首先,除提供标准的TCP/IP应用程序外,它还支持一组网络服务工具程序(utilities)。这些工具的调用格式与UNIX命令调用格式相似,深受UNIX用户欢迎。第二,BSD UNIX提供一种供应用程序访问通信协议的操作系统调用:socket。socket是一种进程间通信机制,是UNIX输入/输出机制的推广。socket的出现使程序员可以很方便地访问TCP/IP协议,或多或少地推动了TCP/IP的研究开发工作。

出于对计算机网络之于科学研究重要意义的远见卓识,以及对TCP/IP技术的信心,(美)国家科学基金会NSF(National Scientific Foundation)于1985年开始涉足TCP/IP的研究与开发,并逐渐成为其中一个重要角色。NSF首先围绕其6个超级计算中心建立了基于TCP/IP的访问网(access netword),并于1986年资助建立远程主干网NSFNET。NSFNET联通NSF的全部超级计算中心并于ARPANET相联。1986年,NSF资助了许多地区网(regional network)的建设,使全美主要的研究机构联入NSFNET。NSF资助的所有网络均采用TCP/IP协议,而且是Internet的一部分。目前NSFNET已代替ARPANET,成为Internet的新的主干。

到今天,TCP/IP技术以及Internet网间网已经为广大计算机工作者、计算机厂商和计算机用户所接受,成为许多人工作环境的一部分。据统计,到1990年,Internet已包括遍布欧美的5千个活动网络,超过30万台计算机。作为一种事实上的并日益进化的工业标准,TCP/IP技术方兴未艾。

总结TCP/IP技术的发展,我们得出一些有益的结论。TCP/IP的成功可以归结为以下原因:

首先,TCP/IP是最早出现的网络协议之一,是最早出现的互联网协议,它的成功得益于顺应了社会的需求。

其次,DARPA为推广TCP/IP,采用开放策略,以低价出售TCP/IP使用权,鼓励厂商开发TCP/IP产品。

第三,TCP/IP与流行操作系统UNIX的结合是其成功的一大源泉。可以肯定,假如TCP/IP首先写入别的操作系统中,那么TCP/IP不会有今日的成功。

第四,TCP/IP技术来自于实践,并在实践中得到不断的改进与完善。”

(以上文字摘自《TCP/IP网络原理与技术》,清华大学出版社,1993,周明天 汪文勇编著)

2.2 OSI

“自从IBM发表SNA(Systems Network Architecture)以后,各计算机厂家相继发表了自己的网络体系结构,但它们都是针对本公司产品的,与其他公司的网络体系结构没有互换性。

然而,计算机应用的日益普及,用网络把以某种网络体系结构为基础开发的系统与以另一种网络体系结构为基础开发的系统相互连接起来,相互利用各种功能已成为必然的趋势。人们期待着在各公司的不同种类的计算机之间能进行异机种之间的通信。

1979年CCITT和ISO(International Organization for Standardization:国际标准化机构)为了使异机种间的通信成为可能,认识到有必要使网络体系结构标准化,并开始了标准化工作。这个标准的网络体系结构称为开放系统互联(OSI:Open Systems Interconnection),“只要遵循OSI标准,什么系统都可以通信”,即所谓的“OPEN”,所以在名称中加上了“开放”。也就是说,OSI是一个将不同机种的计算机世界联合起来,使它们之间可以相互通信的概念。

1977年3月在澳大利亚的悉尼召开的TC97(TC:Technical Commitee,ISO技术专门委员会)大会上,设立了SC16(SC:Sub-commitee,OSI技术专门委员会的分会)委员会,负责OSI的标准化工作,并于1978年2月在美国的华盛顿召开了第一次SC16大会。

另一方面,CCITT在1978年4月的SGⅦ(SG:Study Group,在CCITT的研究委员会中,SGⅦ负责数据通信网)会议上(瑞士的日内瓦)着手开展了对OSI的研究,经过几次非正式的会议,在1981年4月的SGⅦ会议(日本的京都)上,OSI成为正式的研究课题。

这次SGⅦ京都会议,对于OSI的标准化以及以后,对于OSI的标准化以及以后改善协调关系都是一次重要的会议,出席CCITT会议的ISO代表与CCITT之间确认了今后由两个组织共同来促进标准化的进程。从那以后,两组织的报告会议交替召开。这次CCITT的研究成果成了下次ISO会议的出发点,或者ISO会议的研究成果成了下次CCITT会议的出发点,进而由两个组织共同召开会议,这都是这次京都会议的成果。

ISO和CCITT使用自顶向下法开始OSI标准化工作。首先大致确定作为标准化的对象范围,然后再将其中的内容一步一步细分。因此,初期的研究内容,是把计算机和终端相互间进行各种业务所必要的通信功能,分成若干层并进行整理,定义各层的功能。这就是通常所说的OSI参考模型,OSI参考模型有7层,ISO和CCITT分别在1983和1984年,发表了国际标准及建议。

在议定了OSI参考模型的框架,明确了各层的作用和功能后,重点就转移到了对各层的详细功能的讨论。……”

(以上文字摘自《OSI协议和计算机网》,电子工业出版社,1995年,何永明 陈的虎编著,有改动)

三、参考模型比较:

“要想知道一个东西的好坏,最好的办法就是把它和另一个东西放在一起比一比。”

3.1 模型比较:

在比较这两个模型之前,我们必须看到:事实上,OSI模型和TCP/IP模型相似之处也是很多的。在各自发展的道路上,相互吸收、相互借鉴早已屡见不鲜。甚至在某个时候,曾经出现过试图将TCP/IP协议组融入OSI协议中的努力,虽然由于种种原因,这种努力最后失败了。从附图我们可以看到,OSI模型与TCP/IP模型各层的功能都是大体相似的。而且,在两个模型中,传输层及传输层以上的层都为希望通信的进程提供端到端的、与网络无关的传输服务。

当然,本文还是主要讨论两个模型的不同之处。应当承认,如果想要完整地讨论这个问题,其内容恐怕足够写成一本书出版了。事实上,目前也确实已经有了一本进行这样完整比较的书,也即《PISCITELLO,D.M.,and CHAPIN,A.L.:Open Systems Networking:TCP/IP and OSI,Reading,MA:Addison-Wesley,1993.》。因此,在此我们主要讨论两个参考模型差别的一些要点。

OSI模型的一个公认的重大贡献即在于明确区分了服务、接口和协议三个重要概念。模型的每一层都应当为它上面的层提供一些服务,这些服务定义了该层应该做些什么,而不管上面的层如何访问它或该层如何工作。某一层的接口则告诉上面的进程如何访问它,并定义需要什么参数以及预期结果是什么样的,同样,它也和该层如何工作无关。至于某一层中使用的对等协议则是该层的内部事务,它可以使用任何协议,只要能完成工作(比如提供承诺的服务),也可以改变使用的协议而不会影响到它上面的层。

TCP/IP参考模型则并未明确区分服务、接口和协议三者,只是后来人们逐渐改进它,以使其尽量接近于OSI模型。

因此,OSI模型给人的感觉似乎更为规整一些,模型中的协议具有较好的隐蔽性,在技术发生变化时能够相对比较容易地替换掉。事实上,最初把协议分层的主要目的之一就是能够完成这样的替换。而且,OSI模型非常通用,并未偏向于任何特定的协议。利用OSI模型,可以比较容易地表示其他模型,并融入相关协议。

TCP/IP模型则不同,它给人的感觉是更多地从实用角度进行思考。它的模型实际上就是对已有协议的描述。因而,相对应的协议和模型之间配合、效率都十分出色,但是相应的,使用TCP/IP模型描述其他协议栈就不是那么有效了。

到此,我们可以简单地总结一下两个模型的差别。十分明显的,两个模型的层数即为它们的一个明显差别。^^而另一个差别则是面向连接和无连接的通信。OSI模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信。TCP/IP模型则在网络层仅有一种通信模式(无连接),但在传输层同时支持两种模式。

3.2 从缺点看起:

事实上,任何模型或者是协议,都不可能是十全十美的。一方面需要在实际应用中不断深化对问题的理解和认识,另一方面,无法避免的常常在实际应用中不得不作出一些折衷和让步。因此,批评的声音从来就没有停止过。不过,从模型的缺点入手,也正是更好地认识它的一个突破口。

让我们先来看看OSI模型及协议吧。不得不说,它多多少少给人一种生不逢时的感觉。当OSI协议出现的时候,事实上TCP/IP协议已经借助于学院市场迈出了商业化应用的脚步,结果互联网技术的研究阶段和大规模商业投资阶段并没有出现明显的界限。本期望能成为互联网互联标准的OSI协议只能被夹在了中间,陷于尴尬的左右为难的境地。很少有公司愿意将自己的业务重新转换到OSI上面,以至于我们几乎可以说,OSI协议都没能被真正地很好实现过。事实上,OSI协议和模型本身也存在不少缺陷:它由通信领域的人主持制定,致使一些决定和设计并不很符合计算机领域的工作习惯,比如说OSI原语的设计;而且不得不说,OSI协议及模型实在有些过于繁杂和冗长,它的分层方式有时候也并不是那样让人觉得理所当然,诸如会话层和表示层的功能设定就有些让人难以理解。结果,实现OSI协议变成了一件困难的事情。自然而然,OSI协议的最初实现也就顺理成章地成为一个又大又笨又慢的可怜虫,人们开始将OSI和“低效率”联系在一起,虽然随着时间的推移,产品有了改进,但人们的印象是难以抹去的。相反,TCP/IP则是先出现的事实上的协议,之后才逐渐组织成为一个模型,并且它迅速跟80年代的流行玩意——Unix结合到了一起。最终,TCP/IP协议及模型几乎完全占领了互联网,而OSI系列则近乎一败涂地。

TCP/IP模型及协议更多地受到了实用主义的感染,因此,在成功之余,它具有如下的缺点也实在是不足为奇。首先,TCP/IP模型并未明显地区分服务、接口和协议的概念,这从软件工程的角度来看无疑是相当糟糕的;再者,TCP/IP模型并不是一个通用的模型,它无法用于描述其他协议栈,比如用它来描述SNA就几乎是一件不可能的事情;第三,它的主机网络层并非通常意义上的层,而仅仅是一个位于网络层和数据链路层之间的接口;第四,它没有明确区分物理层和数据链路层;第五同时也是最后一点,IP和TCP以外的附属协议并未经过足够仔细的设计和实现,但是却存在众多的相关应用扎下了根,比如TELNET协议。

正因为两个模型都存在各自的缺点。所以往往在讨论计算机网络理论的时候,使用OSI或者经过修改的OSI模型。在实际工程实现的时候,则更多地考虑TCP/IP模型和协议组。

四、总结及未来展望:

在计算机科学发展的历史上,一直就存在着实用化和理论上更为先进这两个声音的不断争执。而每每都是那个取得比较合适的折衷并且能真正符合实际需要的那一方才能胜出。也正是因为这样,TCP/IP才成为了互联网上无冕之王。但是,计算机科学的脚步,同样也是不断前进的,从来没有哪个产品敢于吹嘘自己可以永恒存在,而只能寄希望于由它进化而来的子孙能够更好地生存。TCP/IP也同样如此,地址空间的希缺、新应用的提出,给生存已久的TCP/IP造成了越来越大的压力,它的后继者IPv6也因此渐渐开始浮上台面。我们注意到,IPv6其实仍然是基于现有情况而对IPv4的一个改良,话句话说也就是一个折衷。看来,“面向实际需要、解决实际问题”将永远是计算机科学最基本的铁律。

附录:参考书目

1,《计算机网络(第三版)》,清华大学出版社,1998年,Andrew S.Tanenbaum 著,熊桂喜 王小虎 译。

2,《计算机互联网技术及其演进》,北京邮电大学出版社,1999年,马严 等编著。

3,《OSI协议和计算机网》,电子工业出版社,1995年,何永明 陈的虎 编著。

4,《最新网络百科全书》,电子工业出版社,1998年,[美]Tom Sheldon 著,网络百科翻译组 译。

5,《网络精髓--实用与理论》,机械工业出版社,2000年,[美]Michael J.Martin 著,归元计算机工作室 译。

6,《MCSE:TCP/IP 14天自学教程》,机械工业出版社,1998年,[美]James F.Causey 等 著,冯涛 任屹霞 冯文澜 等 译。

7,《TCP/IP网络原理与技术》,清华大学出版社,1993年,周明天 汪文勇 编著。
_________________
老夫聊发少年狂,左牵黄,右擎苍。
锦帽貂裘,千骑卷平冈。
欲报倾城随太守,亲射虎,看孙郎。

酒酣胸胆尚开张,鬓微霜,又何妨!
持节云中,何日遣冯唐?
会挽雕弓如满月,西北望,射天狼。

欢迎光临http://archetype.126.com
返回顶端
阅读会员资料 发送站内短信 发送电子邮件 浏览发表者的主页
显示文章:   
发表新主题   回复主题    原型的杂货铺首页 -> 软件技术 所有的时间均为 北京时间
1页,共1

 
论坛转跳:  
不能在本论坛发表新主题
不能在本论坛回复主题
不能在本论坛编辑自己的文章
不能在本论坛删除自己的文章
不能在本论坛发表投票
不能在这个论坛添加附件
可以在这个论坛下载文件


Powered by phpBB 2.0.3 © 2001, 2002 phpBB Group
中文phpBB开发小组提供技术支持