OSI与TCP/IP模型之比较
摘要:OSI参考模型和Internet模型(或称TCP/IP模型)作为计算网络发展过程影响力大的两大模型,它们共同之处是:都采用了层次结构的概念,从分析两者的异同入手,找出OSI的消亡和Internet模型(TCP/IP)的发展原因。
关键词:OSI参考模型,TCP/IP参考模型
引言
OSI参考模型与TCP/IP模型的共同之处是:他们都采用了层次结构的概念,在传输层定义了相似的功能,但是二者在层次划分与使用的协议上是有很大差别的,也正是这种差别对两个模型的发展产生的两个截然不同的局面,OSI参考模型走向消亡而TCP/IP模型得到了发展,原因何在呢?本文从对OSI参考模型与TCP/IP模型的异同入手,从两者在现在网络领域的使用情况来分析两个模型的前景。
OSI参考模型和TCP/IP参考模型简介
计算机网络中已经形成的网络体系主要有两个:OSI参考模型和TCP/IP参考模型。OSI开放系统互联参考模型(open system interconnection reference model)由国际标准化组织(ISO)制定。
OSI参考模型分为7层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
TCP/IP参考模型是因特网(Internet)的基础。TCP/IP是一组协议的总称,TCP和IP是其中最主要的两个协议,TCP/IP体系还包含其他协议。和OSI的7层协议比较,TCP/IP参考模型中没有会话层和表示层。互联网协议IP(Internet Protocol)是网络层最主要的协议。传输控制协议TCP(Transmission Control Protocol)和用户数据包协议UDP(User Datagram Protocol)是传输层的最主要的协议。TCP是提供可靠服务、面向连接的协议;UDP是不可靠、无连接的协议。
OSI参考模型和TCP/IP参考模型比较
OSI参考模型和TCP/IP参考模型之共同点
1) 都是基于独立的协议栈的概念;
2) 它们的功能大体相似,在两个模型中,传输层及以上的各层都是为了通信的进程提供点到点、与网络无关的传输服务;
3) OSI参考模型与TCP/IP参考模型传输层以上的层都以应用为主导。
OSI参考模型与TCP/IP参考模型的主要差别
1) TCP/IP一开始就考虑到多种异构网的互联问题,并将网际协议IP作为TCP/IP的重要组成部门。但ISO最初只考虑到使用一种标准的公用数据网将各种不同的系统互联在一起。
2) TCP/IP一开始就对面向连接各无连接并重,而OSI在开始时只强调面向连接服务。
3) TCP/IP有较好的网络管理功能,而OSI到后来才开始这个问题,在这方面两者有所不同。
OSI参考模型和TCP/IP参考模型评价
对OSI参考模型的评价
无论是OSI参考模型与协议,还是TCP/IP参考模型与协议都是不完美的。造成OSI参考模型不能流行的主要原因是之一是其自身的缺陷。会话层在大多数应用中很少用到,表示层几乎是空的。在数据链路层与网络层之间有很多的子层插入,每个子层有不同的功能。OSI模型将“服务”与“协议”的定义结合起来,使得参考模型变得格外复杂,将它的实现起是困难的。同时,寻址、流控与差错控制在每一层里都重复出现,必然降低系统效率。虚拟终端协议最初安排在表示层,现在安排在应用层。关于数据安全性,加密与网络管理等方面的问题也在参考模型的设计初期被忽略了。参考模型的设计更多是被通信思想所支配,很多选择不适合于计算机与软件的工作方式。很多“原语“在软件的很多高级语言中实现起来很容易,但严格按照层次模型编程的软件效率很低。
TCP/IP模型的评价
TCP/IP参考模型与协议也有它自身的缺陷
1) 它在服务、接口与协议的区别上不清楚。一个好的软件工程应该将功能与实现方法区分开来,TCP/IP恰恰没有很好的做到这点,这就使得TCP/IP参考模型对于使用新技术的指导意义不够。
2) TCP/IP的主机-网络层本身并不是实际的一层,它定义了网络层与数据链路层的接口。物理层与数据链路层的划分是必要和合理的,一个好的参考模型应该将它们区分开来,而TCP/IP参考模型却没有做到这点。
TCP/IP与OSI参考模型不同的命运
OSI参考模型一开始是由ISO来制定,但后来的许多标准都是ISO与原来的CCITT联合制定,更多的是从通信思想考虑模型的设计,很多选择不适合于计算机与软件的工作方式。但是TCP/IP协议从70年代诞生以后,成功得赢得大量的用户和投资。TCP/IP协议的成功促进了Internet的发展,Internet的发展又进一步扩大了TCP/IP协议的影响。TCP/IP不仅在学术界争取了一大批用户,同时也越来越受到计算机产业的青睐。IBM、DEC等大公司纷纷宣布支持TCP/IP协议,局域网操作系统NetWare、LAN Manager争相将TCP/IP纳入自己的体系结构,数据库Oracle支持TCP/IP协议,UNIX、POSIX操作系统也一如既往地支持TCP/IP协议。相比之下,OSI参考模型与协议显得有些势单力薄。人们普遍希望网络标准化,但OSI迟迟没有成熟的产品推出,妨碍了第三方厂家开发相应的硬件各软件,从而影响了OSI产品的市场占有率与今后的发展。
结论
OSI参考模型与TCP/IP参考模型都不完美,但TCP/IP参考模型发展是因为在ISO制定OSI参考模型过程中总是着眼于一次制定达到完美,所以的制定过程中考虑的方面比较多,但去忽略了IP这一协议的重要性,但当ISO认识到时只好在网络层划出一个子层来完成类似的功能,在无连接服务一开始也不在考虑之列,还有就是网络管理功能的过度复杂等,造成了OSI迟迟没有成熟的产品推出的成因,进而影响了厂商对它的支持,而这时的TCP/IP通过实践得到到不断的完善,也得到了大厂商的支持,所以TCP/IP参考模型得到了发展。
参考文献
鲍居武、曹军,计算机网络基础及典型案例:北京理工大学出版社,2000
谢希仁等,计算机网络:大连理工大学出版社,2006
Comer,D.E,用TCP/IP进行网际互连第I卷:原理、协议和体系结构:电子工业出版社,1998 作者:小钱 \
原文链接:http://market.c114.net/154/a189387.html
OSI与TCP/IP模型之比较的更多相关文章
- OSI与TCP/IP模型
1 OSI参考模型 谈到网络不能不谈OSI参考模型,虽然OSI参考模型的实际应用意义不是很大,但其的确对于理解网络协议内部的运作很有帮助,也为我们学习网络协议提供了一个很好的参考.在现实网络世界里,T ...
- OSI、TCP/IP
计算机网络分层的目的:支持异构网络系统的互联互通 7层OSI参考模型是法定标准(国际标准化组织ISO提出) 4层TCP/IP参考模型是事实标准 OSI参考模型 应用层.表示层.会话层.传输层.网络层. ...
- TCP/IP模型及OSI七层参考模型各层的功能和主要协议
注:网络体系结构是分层的体系结构,学术派标准OSI参考模型有七层,而工业标准TCP/IP模型有四层.后者成为了事实上的标准,在介绍时通常分为5层来叙述但应注意TCP/IP模型实际上只有四层. 1.TC ...
- OSI七层协议与TCP/IP模型
OSI为Open System Interconnection的缩写,意为开放式系统互联,国际标准化组织(ISO,International Organization for Standardizat ...
- 网络 OSI参考模型与TCP/IP模型
ISO是国际标准化组织.OSI,开放互联系统.IOS,思科交换机和路由器的操作系统. TCP/IP模型是OSI模型的简化.所有的互联网协议都是基于OSI模型开发的. 分层:便于管理,每层只管理下层,总 ...
- OSI参考模型和TCP/IP模型基本知识
OSI七层模型 为了解决网络之间的兼容性问题,实现网络设备间的相互通信,ISO于1984年提出的OSI参考模型(开放系统互连参考模型).但是由于种种原因,并没有一种完全忠实于OSI参考模型的协议族流行 ...
- 【转】挟天子以令诸侯博客关于TCP/IP模型与OSI模型的区别
挟天子以令诸侯 博客园 首页 新随笔 联系 订阅 管理 随笔 - 21 文章 - 0 评论 - 9 TCP/IP四层模型与OSI参考模型 TCP/IP四层模型: 1.链路层(数据链路层/网络接 ...
- OSI模型与TCP/IP模型基础
一.OSI七层模型 OSI(Open System Interconnection),OSI是一个开放性的通行系统互连参考模型,是一个协议规范.OSI七层模型是一种框架性的设计方法 ,建立七层模型的主 ...
- OSI网络七层模型、TCP/IP 模型(四)
OSI 是 Open System Interconnection 的缩写,译为“开放式系统互联”. OSI 模型把网络通信的工作分为 7 层,从下到上分别是物理层.数据链路层.网络层.传输层.会话层 ...
随机推荐
- 炼数成金hadoop视频干货03
视频地址:http://pan.baidu.com/s/1dDEgKwD 着重介绍了HDFS 运行了示例程序wordcount,自己也试了一遍(用的伪分布式) 1.建立数据(和讲师的操作有些不一样,不 ...
- Linux命令行技巧
Linux命令行技巧 命令 描述 • apropos whatis 显示和word相关的命令. 参见线程安全 • man -t man | ps2pdf - > man.pdf 生成一个PDF格 ...
- js与asp.net后台交互
1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数? 问题1 ...
- Url几个常用的函数
parse_url() 本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分. 本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分.不完整的 URL ...
- c# 与 PHP中 SHA1加密结果不同解决方法
那天在调试API的时候,发现用c#写的SHA1加密出来的结果和PHP中sha1()出来的不一样,找了半天的原因后来才弄出来 在调试微信接口的时候大多的帮助文档都是提供的是PHP的方法,所以在.net中 ...
- C# 条形码识别
目录: 一.识别库 二.从一张图片中提取多个条形码 三.注意事项 从博客园学了很多,本着分享的目的,希望后来者遇到类似问题时,不必重复造轮子,早点下班回家^-^. 一.识别库 目前主流的识别库主要有Z ...
- 在CentOS6.4中安装配置LAMP环境的详细步骤
本文详细介绍了CentOS6.4系统中安装LAMP服务并对其进行配置的过程,即安装Apache+PHP+Mysql,参照了网上大神的设置,其他Linux发行系统可以参考~ 在本文中部分命令操作需要ro ...
- 使用CSS实现一个简单的幻灯片效果
方法一: 简单的CSS代码实现幻灯片效果 方法二: 使用CSS3 Animation来制作幻灯片 方法一: 简单的CSS代码实现幻灯片效果 话不多说,直接上代码 <!DOCTYPE html&g ...
- linq检索带命名空间的xml
XElement el = XElement.Load(fil); XNamespace ns = "http://schemas.microsoft.com/ado/2009/11/edm ...
- Java Concurrency - invokeAny & invokeAll
Running multiple tasks and processing the first result A common problem in concurrent programming is ...