OSI七层模型
简单介绍
七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。
物理层: 将数据转换为可通过物理介质传送的电子信号 相当于邮局中的搬运工人。
数据链路层: 决定访问网络介质的方式。在此层将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址,相当于邮局中的装拆箱工人。
网络层: 使用权数据路由经过大型网络 相当于邮局中的排序工人。
传输层: 提供终端到终端的可靠连接 相当于公司中跑邮局的送信职员。
会话层: 允许用户使用简单易记的名称建立连接 相当于公司中收寄信、写信封与拆信封的秘书。
表示层: 协商数据交换格式 相当公司中简报老板、替老板写信的助理。
应用层: 用户的应用程序和网络之间的接口。
具体分类
- 物理层
物理层(physical layer)是OSI参考模型的最低层,也是OSI模型的第一层。物理层的任务是透明地传送比特流。现有计算机网络中的物理设备和传输媒体种类繁多,通信手段也有多种,物理层的作用正是要尽可能地屏蔽这些差异,使物理层上面的数据链路层感觉不到这些差异。该层的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。
物理层主要功能:为数据端设备提供传送数据通路、传输数据。
1.为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒体连接而成。一次完整的数据传输,包括激活物理连接,传送数据,终止物理连接。所谓激活,就是不管有多少物理媒体参与,都要在通信的两个数据终端设备间连接起来,形成一条通路。
2.传输数据,物理层要形成适合数据传输需要的实体,为数据传送服务。一是要保证数据能在其上正确通过,二是要提供足够的带宽(带宽是指每秒钟内能通过的比特(BIT)数),以减少信道上的拥塞。传输数据的方式能满足点到点,一点到多点,串行或并行,半双工或全双工,同步或异步传输的需要。
3. 完成物理层的一些管理工作。
物理层的主要设备:中继器、集线器。
物理层解决的问题:两个硬件之间怎么通信。具体就是一台发些比特流,然后另一台能收到。
主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。
2.数据链路层
数据链路层(data link layer)是OSI模型的第二层。它的主要任务是负责在两个相邻结点之间的线路上无差错地传输以帧为单位的数据,即将一条有可能出差错的实际链路转变成让网络层向下看去好像是一条不出差错的链路。数据链路层将数据分解成帧,然后按顺序传输帧,每一帧包括数据和必要的控制信息(包括同步信息、地址信息、差错控制信息和流量控制信息等)。该层协议的代表包括SDLC、HDLC、PPP、STP、帧中继等。
数据链路层的最基本的功能是向该层用户提供透明的和可靠的数据传送基本服务。透明性是指该层上传输的数据的内容、格式及编码没有限制,也没有必要解释信息结构的意义;可靠的传输使用户免去对丢失信息、干扰信息及顺序不正确等的担心。在物理层中这些情况都可能发生,在数据链路层中必须用纠错码来检错与纠错。数据链路层是对物理层传输原始比特流的功能的加强,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一无差错的线路
数据链路层主要设备:二层交换机、网桥
数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。
数据链路层:通过电线能发数据流后,想要通过无线电波或其它介质来传输。且保证传输过去的比特流是正确的,要有纠错功能。
定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。
3.网络层
网络层(network layer)是OSI模型的第三层。它是OSI参考模型中最复杂的一层,也是通信子网的最高层,它在下两层的基础上向资源子网提供服务。网络层的主要任务是为网络上的不同主机提供通信。它通过路由选择算法,为分组通过通信子网选择最适当的路径,以实现网络的互连功能。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、流量控制、拥塞控制等将信息从一台网络设备传送到另一台网络设备。网络层负责在网络中传送的数据单元是分组或包。该层协议的代表包括IP、IPX、RIP、OSPF等。
网络层必须具有以下功能:
分组与分组交换:把从传输层接收到的数据报文封装成分组(Packet,也称为“包”)再向下传送到数据链路层。
路由:通过路由选择算法为分组通过通信子网选择最适当的路径。
网络连接复用:为分组在通信子网中节点之间的传输创建逻辑链路,在一条数据链路上复用多条网络连接(多采取时分复用技术)。
差错检测与恢复:一般用分组中的头部校验和进行差错校验,使用确认和重传机制来进行差错恢复。
服务选择:网络层可为传输层提供数据报和虚电路两种服务,但 Internet的网络层仅为传输层提供数据报一种服务。
网络管理:管理网络中的数据通信过程,将数据设法从源端经过若干个中间节点传送到目的端,为传输层提供最基本的端到端的数据传送服务。
流量控制:通过流量整形技术来实现流量控制,以防止通信量过大造成通信子网的性能下降。
拥塞控制:当网络的数据流量超过额定容量时,将会引发网络拥塞,致使网络的吞吐能力急剧下降。因此需要采用适当的控制措施来进行疏导。
网络互连:把一个网络与另一个网络互相连接起来,在用户之间实现跨网络的通信。
分片与重组:如果要发送的分组超过了协议数据单元允许的长度,则源节点的网络层就要对该分组进行分片,分片到达目的主机之后,有目的节点的网络层再重新组装成原分组。
网络层主要设备:路由器
网络层协议的代表包括:IP、IPX、RIP、OSPF等。
网络层解决的问题:有多台计算机,怎么找到要发的那台?或者,A要给F发信息,中间要经过B,C,D,E,但是中间还有好多节点如K.J.Z.Y。怎么选择最佳路径?这就是路由要做的事。于是,发明了网络层。即路由器,交换机那些具有寻址功能的设备所实现的功能。这一层定义的是IP地址,通过IP地址寻址。所以产生了IP协议。
4.运输层
运输层(transport layer)是OSI模型的第四层。一般来说,OSI下三层的主要任务是数据通信,上三层的任务是数据处理。因此,该层是通信子网和资源子网的接口和桥梁,起到了承上启下的作用。该层提供会话层和网络层之间的传输服务,这种服务从会话层获得数据,并在必要时对数据进行分割然后将数据传递到网络层,并确保数据能正确无误地传送到网络层。因此,运输层负责提供主机中两个进程之间数据的可靠传送。运输层的目的是向用户透明地传送报文,它向高层屏蔽了下层数据通信的细节。运输层的数据传输单元是报文段(segment),简称报文。该层协议的代表包括TCP、UDP、SPX等。
传输层提供了主机应用程序进程之间的端到端的服务,基本功能如下:
(1) 分割与重组数据
(2) 按端口号寻址
(3) 连接管理
(4) 差错控制和流量控制,纠错的功能
传输层要向会话层提供通信服务的可靠性,避免报文的出错、丢失、延迟时间紊乱、重复、乱序等差错。
传输层协议的代表包括:TCP、UDP、SPX等。
运输层解决的问题:已经能正确的发比特流数据到另一台计算机了,但是在发大量数据时候,可能需要好长时间,例如一个视频格式的,网络会中断好多次(事实上,即使有了物理层和数据链路层,网络还是经常中断,只是中断的时间是毫秒级别的)。为了保证传输大量文件时的准确性,要对发出去的数据进行封装。就像发快递一样,一个个地发。
5.会话层
会话层(session layer)是OSI模型的第五层。这一层又称会晤层或对话层,其主要任务是负责维护两个实体之间的会话连接确保点到点的传输不被中断,并进行会话管理和数据交换管理,即组织和协调两个会话进程之间的通信,并对数据交换进行管理。
⑴为会话实体间建立连接
为给两个对等会话服务用户建立一个会话连接,应该做如下几项工作.
① 将会话地址映射为运输地址.
② 选择需要的运输服务质量参数(QOS).
③ 对会话参数进行协商.
④ 识别各个会话连接.
⑤ 传送有限的透明用户数据.
⑵数据传输阶段
这个阶段是在两个会话用户之间实现有组织的,同步的数据传输.用户数据单元为SSDU,而协议数据单元为SPDU.会话用户之间的数据传送过程是将SSDU转变成SPDU进行的.
⑶连接释放
连接释放是通过”有序释放”,“废弃”,”有限量透明用户数据传送”等功能单元来释放会话连接的。
会话层标准为了使会话连接建立阶段能进行功能协商,也为了便于其它国际标准参考和引用,定义了12种功能单元。各个系统可根据自身情况和需要,以核心功能服务单元为基础,选配其他功能单元组成合理的会话服务子集。
会话层解决的问题:在保证给正确的计算机,发送正确的封装过后的信息后提升用户级别的体验,建立一个自动收发包,自动寻址的功能。会话层的作用就是建立和管理应用程序之间的通信。
6.表示层
表示层(presentation layer)是OSI模型的第六层。它的主要功能是协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异,,以使一个主机应用层的数据可以被另一个主机的应用层理解,如数据的加密、解密、编码、格式转换等。
表示层解决的问题:当用Linux给window发包,两个系统语法不一致,就像安装包一样,exe是不能在linux下用的,shell在window下也是不能直接运行的。于是需要表示层(presentation),帮我们解决不同系统之间的通信语法问题。
7.应用层
应用层(application layer)是OSI模型的最高层,它是用户应用程序和网络之间的接口,完成用户希望在网络上完成的各种工作。它在其他六层工作的基础上,负责完成网络应用程序与网络操作系统之间的联系。应用层为用户提供的常见服务有文件服务、目录服务、文件传输服务(FTP)、远程登录服务(Telnet)、电子邮件服务(E-Mail)、打印服务、安全服务、网络管理服务、数据库服务等。
应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。
总结
通过 OSI 层,信息可以从一台计算机的软件应用程序传输到另一台的应用程序上。例如,计算机 A 上的应用程序要将信息发送到计算机 B 的应用程序,则计算机 A 中的应用程序需要将信息先发送到其应用层(第七层),然后此层将信息发送到表示层(第六层),表示层将数据转送到会话层(第五层),如此继续,直至物理层(第一层)。在物理层,数据被放置在物理网络媒介中并被发送至计算机 B 。计算机 B 的物理层接收来自物理媒介的数据,然后将信息向上发送至数据链路层(第二层),数据链路层再转送给网络层,依次继续直到信息到达计算机 B 的应用层。最后,计算机 B 的应用层再将信息传送给应用程序接收端,从而完成通信过程。
OSI 的七层运用各种各样的控制信息来和其他计算机系统的对应层进行通信。这些控制信息包含特殊的请求和说明,它们在对应的 OSI 层间进行交换。每一层数据的头和尾是两个携带控制信息的基本形式。对于从上一层传送下来的数据,附加在前面的控制信息称为头,附加在后面的控制信息称为尾。然而,在对来自上一层数据增加协议头和协议尾,对一个 OSI 层来说并不是必需的。
当数据在各层间传送时,每一层都可以在数据上增加头和尾,而这些数据已经包含了上一层增加的头和尾。协议头包含了有关层与层间的通信信息。头、尾以及数据是相关联的概念,它们取决于分析信息单元的协议层。例如,传输层头包含了只有传输层可以看到的信息,传输层下面的其他层只将此头作为数据的一部分传递。对于网络层,一个信息单元由第三层的头和数据组成。对于数据链路层,经网络层向下传递的所有信息即第三层头和数据都被看作是数据。换句话说,在给定的某一 OSI 层,信息单元的数据部分包含来自于所有上层的头和尾以及数据,这称之为封装。
例如,如果计算机 A 要将应用程序中的某数据发送至计算机 B ,数据首先传送至应用层。 计算机 A 的应用层通过在数据上添加协议头来和计算机 B 的应用层通信。所形成的信息单元包含协议头、数据、可能还有协议尾,被发送至表示层,表示层再添加为计算机 B 的表示层所理解的控制信息的协议头。信息单元的大小随着每一层协议头和协议尾的添加而增加,这些协议头和协议尾包含了计算机 B 的对应层要使用的控制信息。在物理层,整个信息单元通过网络介质传输。
计算机 B 中的物理层收到信息单元并将其传送至数据链路层;然后 B 中的数据链路层读取计算机 A 的数据链路层添加的协议头中的控制信息;然后去除协议头和协议尾,剩余部分被传送至网络层。每一层执行相同的动作:从对应层读取协议头和协议尾,并去除,再将剩余信息发送至上一层。应用层执行完这些动作后,数据就被传送至计算机 B 中的应用程序,这些数据和计算机 A 的应用程序所发送的完全相同 。
一个 OSI 层与另一层之间的通信是利用第二层提供的服务完成的。相邻层提供的服务帮助一 OSI 层与另一计算机系统的对应层进行通信。一个 OSI 模型的特定层通常是与另外三个 OSI 层联系:与之直接相邻的上一层和下一层,还有目标联网计算机系统的对应层。例如,计算机 A 的数据链路层应与其网络层,物理层以及计算机 B 的数据链路层进行通信。