计算机网络基础(OSI体系结构)
OSI(Open Systems Interconnection) 即开放式系统互联,是国际标准化组织(ISO)制定的一个七层网络通信模型。它的核心目标是标准化不同厂商、不同类型设备之间的通信流程,将复杂的网络通信功能拆解为分层的、独立的模块,每层只负责特定的功能,层与层之间通过标准化的接口交互。
OSI 七层模型(从下到上)
OSI 模型的层级遵循 “下三层负责数据传输,上四层负责数据处理” 的原则,每层都有明确的功能、协议和数据单元。
OSI是一个七层协议的体系结构:从下往上依次是物理层、数据链路层、网络层、运输层、会话 层、表示层、应用层。
各层核心功能详解
- 第一层:物理层,在OSI参考模型中,物理层是参考模型的最低层,也是OSI模型的第一层。物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异,使其上面的数据链路层不必考虑网络的具体传输介质是什么。
- 第二层:数据链路层,数据链路层(Data Link Layer)是OSI模型的第二层,负责建立和管理节点间的链路。在计算机网络中由于各种干扰的存在,导致物理链路是不可靠的。因此这一层的主要功能是:在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。
- 第三层:网络层,网络层(Network Layer)是OSI模型的第三层,它是OSI参考模型中最复杂的一层,也是通信子网的最高一层,它在下两层的基础上向资源子网提供服务。其主要功能是:在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接,将数据设法从源端经过若干个中间节点传送到目的端(点到点),从而向传输层提供最基本的端到端的数据传输服务。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。数据链路层和网络层的区别为:数据链路层的目的是解决同一网络内节点之间的通信,而网络层主要解决不同子网间的通信。
- 第四层:传输层,OSI下3层的任务是数据通信,上3层的任务是数据处理。而传输层(Transport Layer)是OSI模型的第4层。该层提供建立、维护和拆除传输连接的功能,起到承上启下的作用。该层的主要功能是:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输,同时向高层屏蔽下层数据通信的细节,即向用户透明地传送报文。
- 第五层:会话层,会话层是OSI模型的第5层,是用户应用程序和网络之间的接口,该层的主要功能是:组织和协调两个会话进程之间的通信 ,并对数据交换进行管理。当建立会话时,用户必须提供他们想要连接的远程地址。而这些地址与MAC地址或网络层的逻辑地址不同,它们是为用户专门设计的,更便于用户记忆。域名就是一种网络上使用的远程地址。会话层的具体功能如下:
- 会话管理:允许用户在两个实体设备之间建立、维持和终止会话,并支持它们之间的数据交换。
- 会话流量控制:提供会话流量控制和交叉会话功能。
- 寻址:使用远程地址建立会话连接。
- 出错控制:从逻辑上讲会话层主要负责数据交换的建立、保持和终止,但实际的工作却是接收来自传输层的数据,并负责纠正错误。
- 第六层:表示层,表示层是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。该层的主要功能是:处理用户信息的表示问题,如编码、数据格式转换和加密解密等。表示层的具体功能如下:
- 数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异。
- 数据的编码:处理字符集和数字的转换。
- 压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与恢复。
- 数据的加密和解密:可以提高网络的安全性。
- 第七层:应用层,应用层是OSI参考模型的最高层,它是计算机用户,以及各种应用程序和网络之间的接口,该层的主要功能是:直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。此外该层还负责协调各个应用程序间的工作。应用层的具体功能如下:
- 用户接口:应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互式联系。
- 实现各种服务:该层具有的各种应用程序可以完成和实现用户请求的各种服务。
物理层(Physical Layer)
- 核心作用:处理物理介质(网线、光纤、无线电波等)上的比特流传输,只关心 “0” 和 “1” 的电信号 / 光信号 / 无线信号的发送和接收。
- 关键定义:接口标准(如 RJ45 水晶头)、传输速率(如 1000Mbps)、信号编码方式(如曼彻斯特编码)、拓扑结构(如星型、总线型)。
- 无差错处理:不负责纠错,只负责信号的传输。
物理层主要解决在各种传输媒体上传输比特0和1的问题,进而给数据链路层提供透明传输比特流的服务,由于传输媒体的种类太多(例如同轴电缆、光纤、无线电波等),物理连接方式也有很多例如点对点连接、广播连接等,因此物理层协议种类也比较多。但是物理层为了解决在各种传输媒体上传输比特0和1的问题,无论是那种物理层协议都需要满足主以下四个任务:
数据链路层(Data Link Layer)
- 核心作用:将物理层的比特流封装成帧,在相邻两个节点之间可靠传输,解决物理层的差错问题。
- 核心功能:
- MAC 地址寻址:通过网卡的物理地址(48 位二进制)识别同一局域网内的设备。
- 帧同步:用帧头和帧尾标记帧的边界。
- 差错检测:通过 CRC(循环冗余校验)检测帧是否损坏。
- 介质访问控制:解决多设备共享介质的冲突问题(如以太网的 CSMA/CD 协议)。
网络层(Network Layer)
- 核心作用:实现跨网络的分组传输,解决 “从源主机到目的主机” 的路由选择问题。
- 核心功能:
- IP 地址寻址:给主机分配逻辑地址(如 IPv4 的 32 位地址),区分不同网络。
- 路由选择:通过路由协议(如 OSPF、BGP)选择最优路径,将分组转发到下一跳路由器。
- 分组转发:将上层的报文段封装成分组,根据路由表转发。
传输层(Transport Layer)
- 核心作用:提供端到端的通信服务,负责应用程序之间的数据传输(区分不同的应用进程)。
- 核心功能:
- 端口寻址:通过端口号(如 HTTP 的 80 端口、HTTPS 的 443 端口)识别不同的应用程序。
- 流量控制:避免发送方速率过快导致接收方缓冲区溢出(如 TCP 的滑动窗口机制)。
- 差错恢复:TCP 提供可靠传输(重传丢失的报文段),UDP 提供不可靠传输(无重传)。
- 拥塞控制:避免网络过载(如 TCP 的慢启动、拥塞避免机制)。
会话层(Session Layer)
- 核心作用:建立、管理和终止表示层实体之间的通信会话,相当于 “通信的中间人”。
- 核心功能:
- 会话建立:协商通信的方式(如半双工、全双工)。
- 会话管理:记录会话的状态,支持断点续传(如下载文件时暂停后继续)。
- 会话终止:通信结束后释放资源。
表示层(Presentation Layer)
- 核心作用:处理数据的表示形式,确保发送方和接收方能理解彼此的数据格式。
- 核心功能:
- 格式转换:将应用层的数据转换为标准格式(如将主机字节序转换为网络字节序)。
- 加密解密:对数据进行加密(如 SSL/TLS),保障传输安全。
- 压缩解压缩:压缩数据以减少传输带宽(如 ZIP 压缩)。
应用层(Application Layer)
- 核心作用:直接为应用程序提供网络服务,是用户与网络的接口。
- 典型应用:
- 网页浏览(HTTP/HTTPS)、文件传输(FTP)、邮件发送(SMTP)、域名解析(DNS)、远程登录(Telnet/SSH)。
- 特点:不同的应用程序对应不同的应用层协议,协议定义了数据交互的格式和规则。
OSI 模型的通信流程(封装与解封装)
当一台主机向另一台主机发送数据时,会经历自上而下的封装;接收方则会经历自下而上的解封装。
- 封装过程:应用层数据 → 表示层添加格式 / 加密信息 → 会话层添加会话控制信息 → 传输层添加端口号(封装成 Segment/Datagram) → 网络层添加 IP 地址(封装成 Packet) → 数据链路层添加 MAC 地址(封装成 Frame) → 物理层转换为比特流传输。
- 解封装过程:物理层接收比特流 → 数据链路层剥离 MAC 信息(还原 Packet) → 网络层剥离 IP 信息(还原 Segment/Datagram) → 传输层剥离端口信息(还原数据) → 会话层 / 表示层处理控制信息 → 应用层获取最终数据。
OSI 模型的意义与局限性
意义
- 标准化:为不同厂商的网络设备提供统一的设计标准,实现设备互通。
- 模块化:分层设计降低了网络开发的复杂度,每层可以独立升级(如更换物理介质不影响上层协议)。
- 教学价值:是理解网络通信原理的经典模型,帮助初学者梳理网络功能的逻辑关系。
局限性
- 理论化过重:OSI 是理论模型,实际网络中广泛使用的是 TCP/IP 五层(或四层)模型(将会话层、表示层合并到应用层)。
- 实现复杂:七层结构在实际部署中过于繁琐,很多协议同时跨越多个层级。
- 出现时机晚:TCP/IP 协议族在 OSI 模型制定前就已广泛应用,导致 OSI 模型的实际落地较少。
