在讨论OSI参考模型之前,让我们思考一个问题:对于一个非常复杂的问题我们一般是如何解决的呢?答案是分层哈。例如图书馆里有一万本书,我们要从里面找一本,是直接在这1万本书当中一本一本地查找吗?那效率肯定是非常低的哈。如果把这一万本书先按照类别分类放于不同的书架上,然后为每一个类别建立索引,再将不同类别的书按照出版社或出版时间分成更小的类别,如此一来是不是能极大提高搜索效率呢?答案是肯定的哈!又比如我们的国家、公司都是按照分层这种思想来实现管理的。同样的道理,分层这种思想在我们计算机和网络中随处可见。例如我们的操作系统对文件系统的管理、windows系统中域的管理都是基于此思想的具体实现。因此计算机网络中引入了一个非常重要的分层方法,那就是OSI/RM网际互联模型。 OSI模型的创建是为了帮助供应商根据协议来构建可互操作的网络设备和软件,以便不同供应商的网络设备能够互相协同工作。它是面向网络构建的最基本的层次结构模型,该模型采用分层的方法来实现数据和网络信息从一台计算机的应用程序,经过网络介质,传送到另一台计算机应用程序。 下面我们就具体来讨论下OSI/RM。 一、OSI/RM基础: OSI/RM:开放式系统互联参考模型,说明了信息在网络中是如何传输的,以及各层在网络中的功能和他们的概念框架。 在OSI参考模型中,计算机之间的信息传送问题被分为7个较小而且更容易管理的问题,每个小问题都由模型中的一个层来解决。模型中的每一层都解决一个不同的问题。整个OSI/RM模型共分7层,从下往上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。如下图所示: 1、通信子网和资源子网: OSI/RM中不仅包括了广域网中不同局域网间通信的功能层次(上面五层),也给出了局域网内部通信所必需的两个层次(最下面两层)。另外, OSI/RM低四层定义了如何进行端到端的数据传输,也就是定义了如何通过网卡、物理电缆、交换机和路由器进行数据传输,因此1~4层被称为通信子网;而高三层定义了终端系统的应用程序和用户如何彼此通信,也即定义了如何重建从发送方到目的方的应用程序数据流,故5~7层被称为资源子网。
2、OSI/RM的7层网络结构: 每一层的功能和对应的网络应用可以用如下所示的表格来总结:
3、OSI参考模型的对等通信原理: 网络上所有的通信都是从源端传送到目的端的,发送端的数据是从上层向下层传输的,而接收端的数据则是从下层向上层传输的,这就是OSI的基本通信流程。 虽然整个通信过程必须经过一个自上而下(发送方),或自下而上(接收方)的数据传输过程,但通信必须在双方对等层次进行。这样一来,对用户来说这种数据通信看起来就好像是同另外那台计算机相关联的同等层次直接进行的,而对同一主机内的相邻层次之间的通信是透明的,两台计算机的通信看起来就像在通信的双方对应层之间就建立了一种逻辑的、虚拟的通信,如下图所示: 需要注意的是,在OSI网络模型中,除了最底层之外,没有其他层能够把信息直接传递到另外一台计算机上与之对应的层上去。在OSI的对等通信原理中所讲的“对等”只是一个最终结果,并非实际的通信过程。主机与主机之间不可能实现数据链路层以上层次之间的实际直接通信。在每一层软件都会根据一套相应的协议来实现网络功能。 4、数据的封装和解封: 举一个例子:我们平时都收发过电子邮件哈,那大家知道收发邮件时数据是如何传输的吗? 在邮件发送过程中,邮件数据最开始是从电子邮件软件通过应用层进行数据封装,然后一级级往下传输,每一层都会附加上一个报头、报尾信息(就相当于每一层在数据包前面附加的小格)。而在接收端,则每一层都会分解出原来附加的报头、报尾信息,直到最后还原出发送端发出的数据包。 下面是具体的通信步骤:
当远程设备顺序接收到一串比特时,它会把它们传送给数据链路层以组装为帧。当数据链路层收到该帧时,它会执行以下工作:
数据的通信流程可以用下图来描述:
5、OSI参考模型与TCP/IP协议栈的对比: TCP/IP协议体系结构共划分为四层,从高到低分别是:应用层(Apllication Layer)、传输层(Transport Layer)、网际互连层(Internet Layer,也有称“互联网层”)和网络访问层(Network Access Layer,也有称“网络接入层”,也有称“网络接口”层,或者“主机-网络层”的)。 OSI参考模型与TCP/IP协议栈的对比主要体现在以下两点: (1)在分层结构上,OSI参考模型与TCP/IP协议都采用了分层结构,都是基于独立的协议栈的概念。 (2)OSI参考模型只给出了计算机网络的一些原则性的说明,并不是一个具体的网络。而TCP/IP协议最早在计算机系统中实现,在Linux、windows平台中都有稳定的实现。所以可以把TCP/IP协议看成是OSI参考模型的具体实现。 TCP/IP协议与OSI的关系可以用下图来说明:
二、OSI参考模型与排错: OSI参考模型中底层为上层提供服务,因此排错也应该从底层到高层依次排错。 举一个例子: 有一天你到女朋友家去玩,突然你女朋友说她的电脑打不开网页了,该如何排错呢? (1)物理层检查:首先检查网线是否与网卡连接好了,网卡是否正常工作。 打开电脑的网络连接,如果出现了红叉,则说明网线没有连接好,属于物理层故障。如下图所示: 如果没有出现红叉,也不一定连接正常,双击打开“本地连接 状态”对话框,查看“发送”和“收到”的数据包,其中任何一个为0都不能正常通信,如下图所示: 如果有一个为0,可以检查网卡和网线的接触是否有问题,用压线钳重新压一下水晶头试试。 如果重新做了网线的水晶头,“发送”或“收到”的数据包仍然为0,则可以试试先卸载网卡驱动,再重新加载驱动,一般来讲就能解决网卡驱动引起的网络故障。 (2)数据链路层排错: ping网关,如果时断时通,有可能是网络堵塞,也有可能是MAC地址冲突; (3)网络层排错: 首先看看IP地址是否配置正确,是否与其他IP地址有冲突,如果IP地址和网关配置错误也同样不能上网,如下图所示: (4)表示层故障: 如果ping任何一个远程网络(如ping www.sina.com)能通,那就说明网络连接已经没有任何问题了,IE浏览器也能打开看到网页了,但此时发现网页中全是乱码,这就是表示层的故障了哈。如下图所示: 在IE中查看编码发现,默认选择的是日语(你女朋友在日资企业工作哈,汗一个?),把它改回中文就可以了哈。 (5)应用层故障: 查看IE设置,如果IE安全级别设置的高,有些网页的功能则不能正常运行。如果设置了一个错误的代理服务器或安装了错误的IE插件也会造成网页打不开的现象。 三、Cisco组网三层模型: Cisco的层次模型可以用来帮助设计、实现和维护可扩展、可靠、性能价格比高的层次化的互联网络,Cisco定义了3个层次,每一层都有特定的功能:
这种三层的组网模型也体现了分层的思想哈! 好了,这次博文的内容基本就是这些,欢迎各位拍砖!
|
|