OSI七层模型
一、基本概念
OSI是Open System Interconnect的缩写,意为开放式系统互联。其个层次的划分遵循下列原则:
- 同一层中的各网络节点都有相同的层次结构,具有同样的功能。
- 同一节点内相邻层之间通过接口进行通信。
- 七层结构中的每-层使用下一 层提供的服务,诅向其上层提供服务。
- 不同节点的同等层按照协议实现对等层之间的通信。
二、层次说明
第一层:物理层
在OSI参考模型中,物理层是参考模型的最低层,也是OSI模型的第一层。物理层的主要功能是: 利用传输了质为数据链路层提供物理连接,实现比特流的透明传输。物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异,使其上面的数据链路层不必考虑网络的具体传输介质是什么。
第二层:数据链路层
数据链路层(Data Link Layer)是OSI模型的第二层,负责建立和管理节点间的链路。在计算机网络中由于各种干扰的存在,导致物理链路是不可靠的。因此这一层的主要功能是:在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。
第三层:网络层
网络层(Network Layer)是OSI模型的第三层,它是OSI参考模型中最复杂的一层,也是通信子网的最高一层,它在下两层的基础上向资源子网提供服务。其主要功能是:在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,控制数据链路层与传输层间的信息转发,建立、维持和终止网络的连接,将数据设法从源端经过若干个中间节点传送到目的端(点到点) ,从而向传输层提供最基本的端到端的数据传输服务。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。数据链路层和网络层的区别为:数据链路层的目的是解决同一网络内节点之间的通信,而网络层主要解决不同子网间的通信。
第四层:传输层
OSI下3层的任务是数据通信,上3层的任务 是数据处理。而传输层(Transport Layer)是OSI模型的第4层。该层提供建立、维护和拆除传输连接的功能,起到承上启下的作用。该层的主要功能是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输,同时向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。
第五层:会话层
会话层是OSI模型的第5层,用户应用程序和网络之间的接口,该层的主要功能是:组织和协调两个会话进程之间的通信,并对数据交换进行管理。 当建立会话时,用户必须提供他们想要连接的远程地址。而这些地址与MAC地址或网络层的逻辑地址不同,它们是为用户专门设计的,更便于用户记 忆。域名就是一种网络上使用的远程地址。会话层的具体功能如下:
- 会话管理:允许用户在两个实体设备之间建立、维持和终止会话,并支持它们之间的数据交换。
- 会话流量控制: 提供会话流量控制和交叉会话功能。
- 寻址:使用远程地址建立会话连接。
- 出错控制:从逻辑上讲会话层主要负责数据交换的建立、保持和终止,但实际的工作却是接收来自传输层的数据,负责纠正错误。
第六层:表示层
表示层是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。该层的主要功能是:处理用户信息的表示问题,如编码、数据格式转换和加密解密等。表示层的具体功能如下:
- 数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异。
- 数据的编码:处理字符集和数字的转换。
- 压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与恢复。
- 数据的加密和解密:可以提高网络的安全性。
第七层:应用层
应用层是OSI参考模型的最高层,它是计算机用户,以及各种应用程序和网络之间的接口,该层的主要功能是:直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层I作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。此外该层还负责协调各个应用程序间的工作。应用层的具体功能如下:
- 用户接口:应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互式联系。
- 实现各种服务:该层具有的各种应用程序可以完成和实现用户请求的各种服务。
TCP/IP四层模型
一、基本概念
TCP/IP协议定义了计算进行网络通信的过程一套处理标准,该标准定义了计算机在网络中如何发送数据、数据格式如何定义、发出消息后在网络中如何寻址找到目标计算机,最后目标计算机又如何检验收到消息的正确性、对数据拆解最后得到消息内容。因为实现TCP/IP协议功能包括数据的发送、与硬件的交互、 消息路由规则、格式定义、错误验证,每个功能有对应的协议规范,所以我们把这些协议统称TCP/IP协议族。TCP/IP是一个四层的体系结构,它包含应用层、传输层、网际层和网络接口层。
二、TCP/IP四层模型与OSI七层模型
为什么有OSI七层模型、四层模型,实他们的区分标准在于OSI七层模型是理论上的分层方式,而四层模型是实践过程中的分层模型。OSI七层模型ISO (国际标准化组织)提出的一套理论性的网络标准化协议,可以把它看成一本教科书,它在制定之前是没有经过实践的,而为什么我们实践的过程中又没有遵循OSI的标准来分层呢,因为我们在实践的过程中发现有些功能不必要分得那么细,而TCP四层模型就是我们实践过程中发现比较合理的分层,虽然我们实际过程中都没有按OSI分为七层,但是OSI对我们实践过程分层有着指导性的意义。
三、层次功能及协议
第一层:网络访问层
(1)功能描述
网络访问层主要是管理物理网络准备所需要的数据,包括
- 与计算机网络适配器连接。
- 根据合适的方式调整数据传输(不同的传输1个质和网络格式不同)
- 把数据转化为电子流或脉冲的形式在传输介质上传输。
- 对发送的数据添加错误检查信息对接收的数据进行数据检验。
(2)相关协议 ARP和RARP(Reverse Address Resolve Protocol)即逆地址解析协议,该协议实现了IP地址和物理地址(MAC地址)之间的转换。
第二层:网际层
(1)功能描述
网际层主要是解决数据由一个计算机的IP如何路由到目标计算机的过程规范,我们的计算机消息发送出去后,经过了哪些处理才能正确的找到目标计算机,中包含了IP、ARP、RARP、ICMP等协议。
(2)相关协议
-
IP协议 IP协议(Internet Protocol)是网络层最核心的协议,它根据数据包的目的IP地址来决定如何投递该数据包。若数据包不可直接发送给目标主机,那么IP协议就为它寻找一个合适的下一 跳路由器, 并将数据包交付给该路由器去转发,如此循环直至到达目标主机或者发送失败而丢弃该数据包。
-
ICMP协议
ICMP协议(Internet Control Message Protocol,因特网控制报文协议)是IP协议的补充,用于检测网络的连接状态,如ping应用程序就是ICMP协议的使用。ICMP包发送是不可靠的,所以不能依靠接收ICMP包解决网络问题; ICMP与TCP/UDP不同, 它们是传输层协议,虽然都具有类型域和代码域,但是前者和后者不同,ping用到的ICMP协议,不是端口。ICMP协议使用的是IP协议而非使用下层协议提供的的服务,所以严格来讲它并非网络层协议,而是网络层程序。
第三层:传输层
(1)功能描述
传输层主要提供以下几个功能:
- 提供应用程序接口,为网络应用程序提供网络访问的途径。
- 提供可以从多个应用程序接收消息的功能(多路复用),同时也提供可以把消息分发给应用程序的功能(多路分解)。
- 对数据进行错误检测、流量控制。
(2)相关协议
- TCP协议
TCP协议(Transmission Control Protocol,传输控制协议)为应用程序提供可靠的、面向连接的、基于流的服务,具有超时重传、数据确认等方式来确保数据包被正确发送到目的端。因此TCP服务是可靠的,使用TCP协议通讯的双方必须先建立起TCP连接,并在系统内核中为该连接维持一些必要的数据结构, 比如连接的状态,读写缓冲区,多个定时器等。当通讯结束时双方必须关闭连接以释放这些内核数据。 基于流发送意思是数据是没有长度限制,它可源源不断地从通讯的一端流入另一端。
- UDP协议
UDP协议(User Datagram Protocol,户数据报协议)与TCP协议相反,它为应用程序提供的是不可靠的、无连接的基于数据报的服务。
无连接:通讯双方不保持一个长久的联系, 因此应用程序每次发送数据都要明确指定接收方的地址。
基于数据报的服务:这是相对于数据流而言的,每个UDP数据报都有一个长度, 接收端必须以该长度为最小单位将其内容一次性读出,否则数据将被截断。
UDP不具有发送时是被重发功能,所以UDP协议在内核实现中无需为应用程序的数据保存副本,当UDP数据报被成功发送之后,UDP内核缓)冲区中该数据报就被丢弃了。
第四层:应用层
(1)功能描述
TCP/IP的应用层对应于OSI的应用层、会话层、网络层,它们分别功能如下
- 应用层:为用户的应用提供服务并支持网络访问。
- 会话层:负责管理网络中计算之间的通信,提供传输层不具备的连接相关功能。
- 表示层:负责转化数据格式,并处理数据加密和数据压缩。
(2)相关协议
例如:ping、DNS、OSPF、telnet、ftp等