OSI参考模型与TCP/IP参考模型

2019 年 9 月 29 日 计算机与网络安全

一次性付费进群,长期免费索取教程,没有付费教程。

微信群回复公众号:微信群QQ群460500587

 教程列表  见微信公众号底部菜单 |   本文底部有推荐书籍 

微信公众号:计算机与网络安全

ID:Computer-network


1、两种模型的比较


OSI参考模型TCP/IP参考模型有很多相似之处,都是基于独立的协议栈的概念(按照层次结构思想对计算机网络模块化的研究,形成了一组从上到下单向依赖关系的栈式结构),而且层的功能也大体相似。除了这些基本的相似之外,两个模型也有很多差别。


OSI模型有3个主要概念:服务、接口和协议。


每一层都为上一层提供一些服务。服务定义该层做什么,而不管上面的层如何访问或该层如何工作。某一层的接口告诉其上面的进程如何访问接口,接口定义了需要什么参数以及预期结果是什么。同样,接口也和该层如何工作无关。某一层中使用的协议是该层的内部事务,可以使用任何协议,只要能完成工作(如提供规定的服务)即可,并且某一层协议的改变不会影响到其他层。


这些思想和现代的面向对象的编程技术非常吻合。一个对象(如同一个层)有一组方法(操作),该对象外部的进程可以使用这些方法。这些方法的语义定义了该对象提供的服务。方法的参数和结果就是该对象的接口。对象内部的代码即是协议,并且在该对象外部是不可见的。


TCP/IP参考模型最初没有明确区分服务、接口和协议。后来,人们试图将其改变以便接近于OSI。因此,OSI参考模型中的协议比TCP/IP参考模型的协议具有更好的隐藏性(在技术发生变化时能相对比较容易地替换掉)。而最初把协议分层的主要目的之一就是希望能做这样的替换。


OSI参考模型产生在协议发明之前。这意味着该模型没有偏向于任何特定的协议,因此非常通用;不利的方面是设计者在协议方面没有太多的经验,因此不知道该把哪些功能放在哪一层好。TCP/IP则恰好相反,首先出现的是协议,模型实际上是对已有协议的描述。因此,不仅不会出现协议不能匹配模型的情况,而且配合得还相当好。


两个模型间明显的差别是层的数量:OSI模型有7层,而TCP/IP参考模型只有4层。两者都有互连(网络)层、传输层和应用层,但其他层并不相同。另一个差别是面向连接的和无连接的通信。OSI参考模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信。而TCP/IP参考模型在网络层仅有无连接通信方式,但在传输层支持两种方式,这就给了用户选择的机会。


2、OSI参考模型的缺点


无论是OSI参考模型和协议,还是TCP/IP参考模型和协议,都不是十全十美的,都存在一定的缺陷。下面介绍OSI参考模型的缺点。


(1)模型和协议都存在缺陷。实践证明,OSI参考模型的会话层和表示层对于大多数应用程序来说都没有用。


(2)某些功能重复出现。OSI参考模型的某些功能(如寻址、流量控制和出错控制)在各层重复出现。为了提高效率,出错控制应该在高层完成,因此在低层不断重复是低效的、完全不必要的。

(3)结构和协议复杂。由于OSI参考模型的结构和协议太复杂,因此最初的实现又大又笨拙,而且很慢。不久以后,人们就把“OSI”和“低质量”联系起来了。虽然随着时间的推移,产品有了很大改进,但之前的印象还残留在人们的记忆里。


3、TCP/IP参考模型的缺点


TCP/IP参考模型的第一次实现是作为Berkeley UNIX的一部分流行开来的。TCP/IP的成功已为其赢得大量投资和用户,其地位日益巩固,但是TCP/IP参考模型也有自己的问题。


(1)TCP/IP参考模型没有明显地区分服务、接口和协议的概念。因此,对于使用新技术来设计新网络,TCP/IP参考模型不是一个很好的模板。


(2)由于TCP/IP参考模型是对已有协议的描述,因此是完全不通用的,并且不适合描述除TCP/IP参考模型之外的其他任何协议。


(3)主机—网络层在分层协议中根本不是通常意义下的层,只是一个接口,处于网络层和数据链路层之间。这里把接口和层的关系模糊了。


(4)TCP/IP参考模型不区分(甚至不提及)物理层和数据链路层,但这两层的功能完全不同。物理层主要负责透明地传送二进制比特流,并定义网络硬件的特性;而数据链路层的工作是在两个相邻节点间的线路上无差错地传送以帧为单位的数据。一个好的网络模型应该将物理和数据链路层作为分离的两层,TCP/IP参考模型却没有这么做。


4、网络参考模型的建议


从前面的分析来看,OSI的7层协议体系结构既复杂又不实用,但其概念清楚;TCP/IP的协议得到了全世界的承认,但是并没有一个完整的体系结构。因此,在学习计算机网络的体系结构时,可以采用一种折中的办法,即把OSI参考模型的会话层与表示层去掉,从而形成一种原理体系结构,只有5层,如图1所示。

图1  网络参考模型的一种建议


目前,OSI标准已被我国采用为计算机网络体系结构的发展方向。我国已明确了在计算机网络的发展中要等效或等同采用OSI国际标准作为我国国家标准的方针。但是,考虑到目前以及近期内大量的计算机产品仍然是非OSI标准,而越来越广泛使用的UNIX系统产品中的网络协议都是以TCP/IP为核心,为确保近期的使用、紧跟国际技术发展的潮流以及将来能以最小代价逐步过渡和升级,我国计算机科学研究者同时也在研究OSI协议与TCP/IP的转换技术,以期在TCP/IP的网络环境中实现OSI协议。


微信公众号:计算机与网络安全

ID:Computer-network


【推荐书籍】

登录查看更多
0

相关内容

【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
机器学习速查手册,135页pdf
专知会员服务
338+阅读 · 2020年3月15日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
179+阅读 · 2020年1月1日
【数字孪生】数字孪生标准体系探究
产业智能官
47+阅读 · 2019年11月27日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
机器学习相关汇总
计算机与网络安全
3+阅读 · 2019年5月1日
介绍WAF以及过滤机制
黑白之道
22+阅读 · 2019年2月5日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
Python3.7中一种懒加载的方式
Python程序员
3+阅读 · 2018年4月27日
长文 | LSTM和循环神经网络基础教程(PDF下载)
机器学习算法与Python学习
14+阅读 · 2018年2月28日
机器学习(26)之K-Means实战与调优详解
机器学习算法与Python学习
4+阅读 · 2017年11月19日
Knowledge Distillation from Internal Representations
Arxiv
4+阅读 · 2019年10月8日
Arxiv
8+阅读 · 2018年1月25日
Arxiv
8+阅读 · 2018年1月19日
Arxiv
5+阅读 · 2017年7月23日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
机器学习速查手册,135页pdf
专知会员服务
338+阅读 · 2020年3月15日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
179+阅读 · 2020年1月1日
相关资讯
【数字孪生】数字孪生标准体系探究
产业智能官
47+阅读 · 2019年11月27日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
机器学习相关汇总
计算机与网络安全
3+阅读 · 2019年5月1日
介绍WAF以及过滤机制
黑白之道
22+阅读 · 2019年2月5日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
Python3.7中一种懒加载的方式
Python程序员
3+阅读 · 2018年4月27日
长文 | LSTM和循环神经网络基础教程(PDF下载)
机器学习算法与Python学习
14+阅读 · 2018年2月28日
机器学习(26)之K-Means实战与调优详解
机器学习算法与Python学习
4+阅读 · 2017年11月19日
相关论文
Knowledge Distillation from Internal Representations
Arxiv
4+阅读 · 2019年10月8日
Arxiv
8+阅读 · 2018年1月25日
Arxiv
8+阅读 · 2018年1月19日
Arxiv
5+阅读 · 2017年7月23日
Top
微信扫码咨询专知VIP会员