介绍一下OSI七层模型


Posted in 面试题 onJuly 03, 2012
OSI是一个开放式系统互联参考模型,他是一个定义的非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。下面我简单的介绍一下这7层及其功能。
OSI的7层从上到下分别是
7 应用层
6 表示层
5 会话层
4 传输层
3 网络层
2 数据链路层
1 物理层
网络设备间的通信
其中高层,既7、6、5、4层定义了应用程序的功能,下面3层,既3、2、1层主要面向通过网络的端到端的数据流。下面我给大家介绍一下这7层的功能:
(1)物理层:OSI的物理层规范是有关传输介质的特性标准,这些规范通常也参考了其他组织制定的标准。连接头、针、针的使用、电流、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。
(2)数据链路层:他定义了在单个链路上如何传输数据。这些协议与被讨论的介质有关。示例:ATM,FDDI等。
(3)网络层:这层对端到端的包传输进行定义,他定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
互操作性
(4)传输层:这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。
(5)会话层:他定义了如何开始、控制和结束一个会话。示例:RPC,SQL等。
(6)表示层:这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASII格式,发送方将把文本从发送方的字符集转换成标准的ASII后发送数据。在接收方将标准的ASII转换成接收方计算机的字符集。示例:加密,ASII等。
(7)应用层:与其他计算机进行通讯的一个应用,它是 对应 应用程序的 通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示例:telnet,HTTP,FTP,WWW,NFS,SMTP等。
OSI 参考模型将整个网络通信的功能划分为七个层次,见图1。它们由低到高分别是物理层(PH)、链路层(DL)、网络层(N)、传输层(T)、会议层(S)、表示层(P)、应用层(A)。每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持。
第四层到第七层主要负责互操作性,而一层到三层则用于创造两个网络设备间的物理连接.
1.物理层
物理层是OSI的第一层,它虽然处于最底层,却是整个开放系统的基础。物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。
2.数据链路层
数据链路可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输媒体及其连接.
每次通信都要经过建立通信联络和拆除通信联络两过程.这种建立起来的数据收发关系
就叫作数据链路.
而在物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,为了弥补物理层上的不足,为上层提供无差错的数据传输,就要能对数据进行检错和纠错.数据链路的建立,拆除,对数据的检错,纠错是数据链路层的基本任务。
3.网络层
路由选择和中继.
3.1.1
3.1.2激活,终止网络连接.
3.1.3在一条数据链路上复用多条网络连接,多采取分时复用技术 .
3.1.4差错检测与恢复.
3.1.5排序,流量控制.
3.1.6服务选择.
3.1.7网络管理.
4.传输层
5.会话层
会话层提供的服务可使应用建立和维持会话,并能使会话获得同步。会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件极为重要。
6.表示层
表示层的作用之一是为异种机通信提供一种公共语言,以便能进行互操作。这种类型的服务之所以需要,是因为不同的计算机体系结构使用的数据表示法不同。例如,IBM主机使用EBCDIC编码,而大部分PC机使用的是ASCII码。在这种情况下,便需要表示层来完成这种转换。
7.应用层
讨论:OSI七层模型是一个理论模型,实际应用则千变万化,因此更多把它作为分析、评判各种网络技术的依据;对大多数应用来说,只将它的协议族(即协议堆栈)与七层模型作大致的对应,看看实际用到的特定协议是属于七层中某个子层,还是包括了上下多层的功能。
这样分层的好处有:
1.使人们容易探讨和理解协议的许多细节。
2.在各层间标准化接口,允许不同的产品只提供各层功能的一部分,(如路由器在一到三层),或者只提供协议功能的一部分。(如Win95中的Microsoft TCP/IP)
3. 创建更好集成的环境。
4. 减少复杂性,允许更容易编程改变或快速评估。
5. 用各层的headers和trailers排错。
6.较低的层为较高的层提供服务。
7. 把复杂的网络划分成为更容易管理的层。

Tags in this post...

面试题 相关文章推荐
如何用Lucene索引数据库
Feb 23 面试题
怎样创建、运行java程序
Aug 01 面试题
类如何去实现接口
Dec 19 面试题
C,C++的几个面试题小集
Jul 13 面试题
static函数与普通函数有什么区别
Dec 25 面试题
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
Feb 15 面试题
将一个文本文件的内容按倒序打印出来
Jan 05 面试题
能否解释一下XSS cookie盗窃是什么意思
Jun 02 面试题
C#如何允许一个类被继承但是避免这个类的方法被重载?
Feb 24 面试题
linux系统都有哪些运行级别
Apr 15 面试题
易程科技软件测试笔试
Mar 24 面试题
敏捷开发的主要原则都有哪些
Apr 26 面试题
OSPF有什么优点?为什么OSPF比RIP收敛快?
Feb 13 #面试题
上海雨人软件技术开发有限公司测试题
Jul 14 #面试题
网络技术支持面试题
Apr 22 #面试题
简单说下OSPF的操作过程
Aug 13 #面试题
天网面试题
Apr 07 #面试题
木马的传播途径主要有哪些
Apr 08 #面试题
世界经理人咨询有限公司面试
Sep 23 #面试题
You might like
php下使用iconv需要注意的问题
2010/11/20 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
php pki加密技术(openssl)详解
2013/07/01 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
Python标准库os.path包、glob包使用实例
2014/11/25 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
详解django中Template语言
2020/02/22 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
python 模块导入问题汇总
2021/02/01 Python
20行代码教你用python给证件照换底色的方法示例
2021/02/05 Python
实习生个人的自我评价
2013/12/08 职场文书
大二自我鉴定
2014/01/31 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
我的中国梦演讲稿300字
2014/08/19 职场文书
致800米运动员广播稿(10篇)
2014/10/17 职场文书
行风评议整改报告
2014/11/06 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
会计专业求职信范文
2015/03/19 职场文书
病房管理制度范本
2015/08/06 职场文书
MySQL 慢查询日志深入理解
2021/04/22 MySQL
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android