1. OSI 七层模型概述 ★★★★★
OSI 概念
- OSI mode(Open Systems Interconnection mode) 全称为开放式通信系统互连参考模型,是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架
- OSI 将计算机网络体系结构划分为七层,每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI 的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现的无关
OSI 七层模型每个层含义
物理层(Physical layer)
- 作为 OSI 参考模型中最低的一层,物理层的作用是实现计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异,使其上面的数据链路层不必考虑网络的具体传输介质是什么
- 该层的主要任务是确定与传输媒体的接口的一些特性(机械特性、电气特性、功能特性、过程特性)
数据链路层(Data link layer)
- 数据链路层通常也叫做链路层,在物理层和网络层之间。两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层协议
- 在两个相邻节点之间传送数据时,数据链路层将网络层交下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息。通过控制信息我们可以知道一个帧的起止比特位置
- 此外,也能使接收端检测出所收到的帧有无差错,如果发现差错,数据链路层能够简单地丢弃掉这个帧,以避免继续占用网络资源
网络层(Network layer)
- 两台计算机之间传送数据时其通信链路往往不止一条,所传输的信息甚至可能经过很多通信子网。网络层的主要任务就是选择合适的网间路由和交换节点,确保数据按时成功传送
- 在发送数据时,网络层把传输层产生的报文或用户数据报封装成分组和包向下传输到数据链路层。在网络层使用的协议是无连接的网际协议(Internet Protocol)和许多路由协议,因此我们通常把该层简称为 IP 层
传输层(Transport layer)
- 传输层的主要任务是为两台主机进程之间的通信提供服务。应用程序利用该服务传送应用层报文。该服务并不针对某一特定的应用,多种应用可以使用同一个运输层服务
- 由于一台主机可同时运行多个线程,因此传输层有复用和分用的功能。所谓复用就是指多个应用层进程可同时使用下面运输层的服务;分用和复用相反,是传输层把收到的信息分别交付上面应用层中的相应进程
会话层(Session layer)
- 会话层就是负责建立、管理和终止表示层实体之间的通信会话
- 该层提供了数据交换的定界和同步功能,包括了建立检查点和恢复方案的方法
表示层(Presentation layer)
- 表示层的作用是使通信的应用程序能够解释交换数据的含义,其位于 OSI 参考模型的第六层,向上为应用层提供服务、向下接收来自会话层的服务
- 该层提供的服务主要包括数据压缩、数据解密以及数据描述。这使得应用程序不必担心在各台计算机中表示和存储的内部格式差异
应用层(Application layer)
- 应用层位于 OSI 参考模型的第七层,其作用是通过应用程序间的交互来完成特定的网络应用
- 该层协议定义了应用进程之间的交互规则,通过不同的应用层协议为不同的网络应用提供服务。例如域名系统 DNS、支持万维网应用的 HTTP 协议、电子邮件系统采用的 SMTP 协议等。在应用层交互的数据单元我们称之为报文
OSI 七层模型、TCP/IP 五层模型、TCP/IP 四层模型对比示意图
2. TCP/IP 四层参考模型 ★★★★★
TCP/IP 四层模型概述
- OSI 七层模型在提出的出发点是基于标准化的考虑,而没有考虑到具体的市场需求,使得该模型结构复杂、部分功能冗余,因此完全实现 OSI 参考模型的系统不多
- 而 TCP/IP 参考模型直接面向市场需求,实现起来也比较容易,因此一经推出便得到广泛应用。基于 TCP/IP 的参考模型将协议分成四个层次,分别是:网络接入层、网际互联层、传输层和应用层
TCP/IP 四层模型每层含义
网络接入层
- 网络接入层的功能对应于 OSI 参考模型中的物理层和数据链路层,它负责监视数据在主机和网络之间的交换
- 事实上,TCP/IP 并未真正描述这一层的实现,而由参与互联的各网络使用自己的物理层和数据链路层协议,然后与 TCP/IP 的网络接入层进行连接,因此具体的实现方法将随着网络类型的不同而有所差异
网际互联层
- 网际互联层对应 OSI 参考模型的网络层,主要负责相同或不同网络中计算机之间的通信。在网际互联层,IP 协议提供的是一个不可靠、无连接的数据报传递服务
- 该协议实现两个基本功能:寻址和分段。根据数据报报头中的目的地址将数据传送到目的地址,在这个过程中 IP 负责选择传送路线。除了 IP 协议外,该层另外两个主要协议是互联网组管理协议 (IGMP)和互联网控制报文协议(ICMP)
传输层
- 该层对应于 OSI 参考模型的传输层,为上层实体提供源端到对端主机的通信功能。传输层定义了两个主要协议:传输控制协议(TCP)和用户数据报协议(UDP)
- 其中面向连接的 TCP 协议保证了数据的传输可靠性;面向无连接的 UDP 协议能够实现数据包简单、快速地传输
应用层
- TCP/IP 模型将 OSI 参考模型中的会话层、表示层和应用的功能合并到一个应用层实现
- 不同的应用层协议为不同的应用提供服务,例如:FTP、Telnet、DNS、SMTP 等
3. TCP/IP 五层参考模型 ★★★
- 五层体系的协议结构是综合了 OSI 和 TCP/IP 优点的一种协议,包括物理层、数据链路层、网络层、传输层和应用层。其中应用层对应 OSI 的上三层,下四层和 OSI 相同
- 五层协议的体系结构只是为介绍网络原理而设计的,实际应用还是 TCP/IP 四层体系结构
4. OSI 模型和 TCP/IP 模型比较 ★★★★
相同点
- OSI 参考模型与 TCP/IP 参考模型都采用了层次结构
- 都能够提供面向连接和无连接两种通信服务机制
不同点
- OSI 采用的七层模型;TCP/IP 是四层结构
- TCP/IP 参考模型没有对网络接口层进行细分,只是一些概念性的描述;OSI 参考模型对服务和协议做了明确的区分
- OSI 先有模型后有协议规范,适合于描述各种网络;TCP/IP 是先有协议然后建立模型,不适用于非 TCP/IP 网络
- TCP/IP 一开始就提出面向连接和无连接服务;OSI 一开始只强调面向连接服务,直到很晚才开始制定无连接的服务标准
- OSI 参考模型虽然被看好,但将网络划分为七层,实现起来比较困难;相反,TCP/IP 参考模型虽然有许多不尽如人意的地方,但作为一种简化的分层结构还是比较成功的
-
5. OSI 和 TCP/IP 协议之间的对应关系 ★★★★
OSI 七层网络模型 | TCP/IP 四层概念模型 | 对应的网络协议 |
---|---|---|
应用层 | 应用层 | HTTP, TFTP, FTP, NFS, WAIS, SMTP, Telnet, DNS, SNMP |
表示层 | 应用层 | TIFF, GIF, JPEG, PICT |
会话层 | 应用层 | RPC, SQL, NFS, NetBIOS, names, AppleTalk |
传输层 | 传输层 | TCP, UDP |
网络层 | 网络层 | IP, ICMP, ARP, RARP, RIP, IPX |
数据链路层 | 数据链路层 | FDDI, Frame Relay, HDLC, SLIP, PPP |
物理层 | 数据链路层 | EIA/TIA-232, EIA/TIA-499, V.35, 802.3 |
6. 为什么 TCP/IP 去除了会话层和表示层 ★★
- OSI 参考模型在提出时,理想是丰满的、现实是骨感的。实际上,由于会话层、表示层、应用层都是在应用程序内部实现的,最终产出的是一个应用数据包,而应用程序之间是几乎无法实现代码的抽象共享的,这也就造成 OSI 设想中的应用程序维度的分层是无法实现的
- 例如,我们几乎不会认为数据的压缩、加密算法算是一种协议,而会话的概念则更为抽象,难以用协议来进行描述,所以在后来的 TCP/IP 协议框架的设计中,便将表示层和会话层与应用层整合在一起,让整个过程更为清晰明了
7. 数据如何在各层之间传输(数据的封装过程) ★★★
- 在发送主机端,一个应用层报文被传送到运输层。在最简单的情况下,运输层收取到报文并附加上附加信息,该首部将被接收端的运输层使用。应用层报文和运输层首部信息一道构成了运输层报文段。附加的信息可能包括:允许接收端运输层向上向适当的应用程序交付报文的信息以及差错检测位信息。该信息让接收端能够判断报文中的比特是否在途中已被改变
- 运输层则向网络层传递该报文段,网络层增加了如源和目的端系统地址等网络层首部信息,生成了网络层数据报。该数据报接下来被传递给链路层,在数据链路层数据包添加发送端 MAC 地址和接收端 MAC 地址后被封装成数据帧,在物理层数据帧被封装成比特流,之后通过传输介质传送到对端