当前网络模型存在三种划分方式:
- 开放式系统互联模型(
Open System Interconnection Model
,简称OSI模型
) - TCP/IP四层模型
- 五层模型
1.OSI七层模型
OSI定义了网络互连的七层框架(物理层
、数据链路层
、网络层
、传输层
、会话层
、表示层
、应用层
),即ISO开放互连系统参考模型。
1.1 应用层(Application Layer)
应用层位于OSI模型
的最顶层,是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。
应用层功能如下:
- 网络虚拟终端
- FTAM-File 传输的访问与管理
- 邮件服务
- 目录服务
1.2 表示层(Presentation Layer)
表示层也称转换层(translation layer)。表示层负责数据格式的转换
,将应用处理的信息转换为适合网络传输的格式,或者将来自下一层的数据转换为上层能处理的格式。
表示层功能如下:
- 转换。例如,将 ASCII 转换为 EBCDIC。
- 加密、解密。加密时将数据转换为另一种样式,加密后的数据被称为密文,解密后的数据被称为明文。加密、解密时需要使用对应的 key。
- 压缩:压缩可以减少需传送的数据量。
1.3 会话层(Session Layer)
会话层负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理。
会话层功能如下:
- 建立、维护、终止会话。
- 同步:会话层允许进程向数据中添加同步点,用于定位错误,避免数据丢失。
- 对话控制:会话层允许两个系统以半双工或全双工方式互相通信。
1.4 传输层(Transport Layer)
传输层起着可靠传输
的作用。只在通信双方节点上进行处理,而无需在路由器上处理。
传输层提供以下功能:
- 分段和重组(segmentation and reassembly):传输层从会话层接收的数据被分割成更小数据单元的段,每个段都有一个传输层头部。传输层在目标端重组数据。
- 服务点寻址(service point addressing):将数据传给正确的进程服务,传输层头部包含了服务点地址或者端口地址。
传输层有两个性质不同的协议:
-
TCP(Transmission Control Protocol,传输控制协议),面向链接,是字节流
- 数据按顺序到达。
- 数据最小错误。
- 重复数据被丢弃。
- 丢失、缺失的数据会重发。
- 流量拥塞控制。
-
UDP(User Data Protocol,用户数据报协议),无链接,不可靠。
- 使用弱校验和算法(weak checksum algorithm)检查错误。
- 用于对准时性要求高,可靠性要求低的流媒体(音频、视频、Voice over IP 等),或者建立可靠链接消耗太大的简单查询,如 DNS 解析。
传输层的数据称为段,传输层由操作系统管理,是OSI模型的核心
1.5 网络层(Network Layer)
将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某一个地址。因此这一层主要负责寻址和路由选择。
网络层功能:
- 寻址(logical addressing):为唯一地标识互联网上的每个设备,网络层定义了一种寻址方案。发送者和接收者的
IP地址
由网络层放置到网络层头部
中。 - 路由选择(routing):网络层协议决定从源到目的地选取哪条线路。
1.6 数据链路层(Data Link Layer)
负责物理层面上互连的、节点之间的通信传输。例如与1个以太网相连的2个节点之间的通信。 将0、1序列划分为具有意义的数据帧传送给对端(数据帧的生成与接收)。
该层的主要功能是确保在物理层上从一个节点到另一个节点正确传输数据。当数据包到达时,数据链路层使用 MAC 地址传输给目标主机
。
数据链路层被划分为两个子层:
- 逻辑链路控制(Logical Link Control)
- 媒体访问控制(Media Access Control)
从网络层接收的数据包(packet)根据网卡(Network Interface Card,缩写为NIC)的帧大小进一步分割。数据链路层在发送方、接收方的 header 中封装了 MAC 地址
。
通过地址解析协议(Address Resolution Protocol,缩写为ARP
),可以获取拥有指定 IP 地址目标主机的 MAC 地址
。
数据链路层功能:
- 封装成帧(framing):它为发送方提供了一种对接收方有意义的一组比特,其通过将特殊的位模式附加到帧的开头和结尾来实现。
- 物理寻址(physical addressing):创建帧后,数据链路层为每一帧的 header 添加发送方、接收方的 MAC 地址。
- 错误控制(error control):数据链路层的错误控制机制会检测、重发丢失或损坏的帧。
- 流控制 (flow control):双方的速率必须保持恒定,否则数据可能会被损坏。流控制协调在收到确认之前可发送的数据量。
- 访问控制(access control):多个设备共享一个通信通道时,MAC 子层用于确定给定时间哪个设备可以控制该通道。
数据链路层中的数据包称为帧。
1.7 物理层(Physical Layer)
负责0、1比特流(0、1序列)与电压的高低、光的闪灭之间的互换。
网络层、数据链路层和物理层也称为底层或硬件层。
2.TCP/IP四层模型
OSI 模型是一个参考/逻辑模型,它旨在通过将通信过程分为更小、更简单的组件来描述通信系统的功能。TCP/IP 是Transmission Control Protocol/Internet Protocol
协议的缩写,包含以下四层:
- 应用层(Application Layer)
- 传输层(Transport Layer/Host-to-Host)
- 网络层(Internet Layer)
- 网络接口层(Network Interface)
2.1 应用层
TCP/IP模型中的应用层对应 OSI 模型中的 应用层
、表示层
、会话层
三层。负责节点到节点的通信,并控制用户界面。
应用层协议有:HTTP
、HTTPS
、FTP
、TFTP
、Telnet
、SSH
、SMTP
、SNMP
、DNS
等。
2.2 传输层
TCP/IP 模型中的 传输层 对应 OSI 模型中的传输层,负责端到端数据传输和错误控制。传输层 主要协议有面向连接的 TCP协议
、无连接的 UDP协议
。
2.3 网络层
TCP/IP模型中的网络层与 OSI 模型中的网络层对应,定义了数据逻辑传输的协议。网络层主要协议有:
- 互联网协议(Internet Protocol,缩写为 IP):根据数据包 header,将其从发送方传递到接收方。IP 有 IPv4 和 IPv6 两个版本。
- 互联网控制消息协议(Internet Control Message Protocol,缩写为 ICMP):用于 IP 中发送控制消息,用于定位通信中各种问题。
- 地址解析协议(Address Resolution Protocol,缩写为 ARP):用于获取拥有指定 IP 地址目标主机的 MAC 地址。
2.4 网络接口层
TCP/IP 模型中的网络接口层对应 OSI model 中的数据链路层
和物理层
。网络接口层进行硬件寻址、物理传输数据。
网络接口层的传输单位是帧(frame) IP 层的传输单位是包(packet) TCP 层的传输单位是段(segment) HTTP 的传输单位则是消息或报文(message)。 但这些名词并没有什么本质的区分,可以统称为数据包。
3. 五层模型
虽然 OSI 模型由国际标准组织制定,但其实现过于复杂、制定周期过长,在其整套标准推出之前,TCP/IP 模型已经在全球范围内被广泛使用,因此,TCP/IP 模型才是事实上的标准。
TCP/IP 模型定义了应用层、传输层、网际层、网络接口层共四层,但并没有给出接口层的具体实现。因此,通常将网络接口层替换为 OSI 七层模型中的数据链路层和物理层,这就是五层网络模型: