什么是OSI
OSI(open syatem Interconnection),是一个开放性的通行系统互联模型,是一个协议规范。他把网络协议(http、TCP、UDP……)从逻辑上划分了7层,其中每一层都有相关、相对应的物理设备。
OSI七层模型
OSI七层模型是一种框架性的设计方法,建立七层模型的主要目的是为了解决网络互联时遇到的兼容性问题,其最主要的目的就是为了帮助不同类型的主机实现数据传输。
其最大的优点是将服务、接口和协议三个代表很好的区分开来。其中服务说明了某一层为上一层提供了什么功能;接口说明了上一层如何使用下一层的服务; 而协议涉及如何实现本层的服务。这样一来,各层之间具有很强的独立性,互联网络中各实体采用什么样的协议是没有限制的,只要向上层提供相同的服务并且不改变接口就可以了。
下面这张图按照从下到上的顺序,展示出OSI分层模型对应从最底层到最上层的设计:
image.png关于OSI的七层结构也是面试经常会问到的,死记硬背的话是很容易忘的,重点还是靠理解。
1. 物理层
image.png
在OSI参考模型中,物理层是参考模型的最底层,也是OSI模型的第一层。物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输(bit流),实现了相邻节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使得上一层数据链路层不需要考虑网络传输的具体介质是什么。“透明传送比特流”表示经过实际电路传送后的比特流没有什么变化,对传递的比特流好像是看不见的、透明的。
2. 数据链路层
image.png
数据链路层是OSI模型的第二层,负责建立和管理节点间的链路。该层的主要功能是:通过各种通信协议,将有差错的物理通道变成无差错的,能可靠传送数据帧的数据链路。在计算机网络中由于各种干扰的存在,物理链路其实是不可靠的。因此,这一层的主要功能是在物理层提供比特流的基础上,通过差错控制、流量控制将不可靠的物理线路变为无差错的数据线路,即提供可靠的通过物理介质传输数据的方法。
该层又常被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。MAC子层主要是为了解决共享网络中多用户对信道竞争的问题,完成网络介质的访问控制;LLC主要作用是简历和维护网络连接,执行差错校验、流量控制和链路控制。
数据链路层的具体工作是负责接收物理从传递上来的比特流形式的数据,并封装成帧,传递到上一层。同样也将上一层网络层传递下来的数据帧,拆装成位流形式的数据传递到下一物理层;并且还负责处理接收端发回的确认帧数据的信息,以便提供可靠的数据传输。
3. 网络层
image.png
网络层是OSI的第三层,也是最复杂的一层,也是通信子网的最高一层。它在下两层的基础上向上资源子网提供服务。主要任务是:通过路由选择算法,为报文和分组通过通信子网选择最适当的路径。该层控制数据链路层和传输层之间的信息转发,建立、维持和终止网络的连接。
具体来说,数据链路层的数据在这一层被转化为数据包,然后通过路由选择、分段组合、顺序、进/出路由等控制,将信息从一个网路设备传输到另一个网络设备。一般的数据链路层是为解决同一网络内节点之间的通信,而网络层主要解决不同子网之间的通信。例如在广域网内节点间要进行通信,必然要经过路由选择问题(即两个节点之间可能有多条路径)。
在实现网络层功能时,需要解决几个问题,如下:
寻址:数据链路层中使用的物理地址(比如MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一个子网中的设备都会分配到一个唯一的地址。由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(IP地址)。
交换:规定不同的信息交换方式。常见的交换技术有:线路交换技术和存储转发技术,其中存储转发技术又包含了报文交换技术和分组交换技术。
路由算法:当源节点和目的节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息通过合适的路径从发送端传输到接收端。
连接服务:与数据链路层流量控制不同的是,网路层控制的是网络相邻节点间的流量,而数据链路的流量控制控制的是发送端节点到接收端节点间的流量。其目的在于防止阻塞,进行差错检测。
4.传输层
image.png
OSI的下三层主要任务是数据通信,上三层的主要任务是数据处理。而传输层是OSI模型的第4层,因此该层是通信子网以及资源子网的接口和桥梁。该层的主要任务是:向用户提供可靠的端到端的差错控制和流量控制,保证报文的正确传输。传输层的作用是对高层屏蔽下层的通信细节,即向用户透明的传送报文。
该层创建的协议有:TCP/IP中的TCP协议、Novell网络中的spx协议和微软的NetBIOS/NetBEUI协议。
传输层提供会话层和网络层之间的传输服务,这种服务在会话层获得数据,并在必要的时候对数据进行分割。然后,传输层将数据传输到网络层,并保证数据能够正确无误的传送到网络层。
因此,传输层保证两个节点之间数据的可靠传送。当两个节点的关系确定之后,传输层则负责监督工作,在总结一下,传输层的主要功能如下:
传输连接管理:提供建立、维护和拆除连接的功能。传输层在网络层的基础上为高层提供了“面向连接”和“面向无连接”的两种服务;
处理传输差错:提供可靠的“面向连接”和不太可靠的“面向无连接”的数据传输服务、插叙控制和流量控制。
5.会话层
image.png
会话层是OSI模型的第五层,是用户应用程序与网络之间的接口,主要任务是:向两个实体的表示层建立和使用连接的方法。将不同实体之间的表示层进行连接称为会话。因此会话层的主要任务便是组织和协调两个会话进程之间的通信,并对数据交换进行管理。
用户可以按照全双工、半双工、单工的方式建立会话。当建立会话时,用户必须提供他们想要连接的远程地址。而这些地址与MAC(介质访问控制子层)地址和网络层的地址不同,他们是为用户专门设计的,更便于用户记忆。域名(DN)就是一种网络上使用的远程地址。例如 www.relaxheart.cn 这就是一个域名。会话层具体功能如下:
会话管理:允许用户在两个实体设备之间建立、维持和终止会话,并支持它们之间的数据交换。例如提供单方向会话或双向同时会话,并管理会话中的发送顺序,以及会话所占用时间的长短。
会话流量控制:提供会话流量控制和交叉会话功能。
寻址:使用远程地址建立会话连接。
出错控制:从逻辑上讲会话层主要负责数据交换的建立、保持和终止,但实际的工作却是接收来自传输层的数据,并负责纠正错误。会话控制和远程过程调用均属于这一层的功能。但应注意,此层检查的错误不是通信介质的错误,而是磁盘空间、打印机缺纸等类型的高级错误。
6. 表示层
image.png
表示层是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等。表示层的具体功能如下:
数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异。
数据的编码:处理字符集和数字的转换。例如由于用户程序中的数据类型(整型或实型、有符号或无符号等)、用户标识等都可以有不同的表示方式,因此,在设备之间需要具有在不同字符集或格式之间转换的功能。
压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与恢复。
数据的加密和解密:可以提高网络的安全性。
7.应用层
image.png
应用层(Application Layer)是OSI参考模型的最高层,它是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。此外,该层还负责协调各个应用程序间的工作。 应用层为用户提供的服务和协议有:文件服务、目录服务、文件传输服务(FTP)、远程登录服务(Telnet)、电子邮件服务(E-mail)、打印服务、安全服务、网络管理服务、数据库服务等。上述的各种网络服务由该层的不同应用协议和程序完成,不同的网络操作系统之间在功能、界面、实现技术、对硬件的支持、安全可靠性以及具有的各种应用程序接口等各个方面的差异是很大的。应用层的主要功能如下: 用户接口:应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互式联系。 实现各种服务:该层具有的各种应用程序可以完成和实现用户请求的各种服务。
总结
在7层模型中,每一层都提供一个特殊的网络功能。
从网络功能的角度观察:
下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主;第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;
而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。简言之,下4层主要完成通信子网的功能,上3层主要完成资源子网的功能。
个人网站:relaxheart网
网友评论