计算机网络OSI7层模型

OSI 七层模型的分层职责、数据单位与常见协议整理

#status / growing #type / concept #tech / network

[!info] related notes

计算机网络OSI7层模型

OSI(开放系统互连)七层模型是计算机网络中最经典的理论模型。虽然我们在实际开发中真正使用的是 TCP/IP 四层模型,但 OSI 模型将复杂的网络通信过程划分为了职责明确的七层,是理解网络原理的最佳框架。


协议对应的层级

应用层 HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP、等等

表示层 XDR、ASN、SMB、AFP、NCP、等等

会话层 ASAP、SSH、RPC、NetBIOS、ASP、Winsock、BSD Sockets、等等

传输层 TCP、UDP、TLS、RTP、SCTP、SPX、ATP、IL、等等

网络层 IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、X、等等

数据链路层 以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP、等等

物理层 例如铜缆、网线、光缆、无线电等等

解释

为了方便理解,我们从底层(硬件)向高层(软件)逐一拆解,并配合**“网购寄快递”**的通俗比喻来加深记忆:

第 1 层:物理层(Physical Layer)

  • 核心职责:负责比特流(0 和 1)在物理介质上的传输。它规定了电平、速度、物理引脚等物理特性。
  • 数据单位:比特(Bit)
  • 代表设备:网线、光纤、集线器(Hub)、中继器。
  • 📦 快递比喻:运送快递的公路、铁路、飞机等物理基础设施。
  • 核心职责:在同一个局域网(相邻节点)内,通过物理地址(MAC 地址)进行无差错的数据传输。它会将物理层的比特流打包成“帧”,并进行错误检测。
  • 数据单位:帧(Frame)
  • 代表设备:交换机(Switch)、网卡。
  • 📦 快递比喻:快递从一个集散中心用货车运到下一个集散中心的点对点运输过程。MAC 地址就像是货车的车牌号。

第 3 层:网络层(Network Layer)

  • 核心职责:负责跨网络的路由选择。它通过逻辑地址(IP 地址)决定数据包从源端到目的端的最佳路径。
  • 数据单位:数据包(Packet)
  • 核心协议:IP、ICMP(Ping命令用的就是这个)、ARP。
  • 代表设备:路由器(Router)。
  • 📦 快递比喻:快递包裹上的发件人地址和收件人地址(IP 地址),以及物流系统规划的最优运输路线

第 4 层:传输层(Transport Layer)

  • 核心职责:负责端到端(进程到进程)的通信。它通过“端口号”来区分数据应该交给电脑里的哪个软件,并决定传输的可靠性。
  • 数据单位:数据段(Segment)
  • 核心协议
    • TCP:可靠传输(保证送达,像寄挂号信/顺丰,需要签收)。
    • UDP:不可靠传输(只管发,丢了不管,像平邮,但速度快)。
  • 📦 快递比喻:包裹上写的收件人电话号码(端口号,决定给具体哪个人),以及你选择的是保价快递还是普通快递(TCP 或 UDP)。

第 5 层:会话层(Session Layer)

  • 核心职责:负责在网络中的两节点之间建立、维持和终止通信会话。它可以支持全双工或半双工通信,并提供断点续传的同步点。
  • 📦 快递比喻:你和快递员打电话预约上门取件,建立沟通的过程。

第 6 层:表示层(Presentation Layer)

  • 核心职责:负责数据的翻译、加密和压缩。确保一个系统应用层发出的信息,能被另一个系统的应用层读取。
  • 具体功能:字符编码转换(如 ASCII 转换)、图片/视频格式处理(JPEG、MPEG)、数据加密解密(TLS/SSL 的一部分工作)。
  • 📦 快递比喻:为了防止别人偷看信件内容,你把信件翻译成了暗号(加密),或者为了节省邮费,你把物品用真空袋压缩了一下。

第 7 层:应用层(Application Layer)

  • 核心职责:最靠近用户的一层,直接为用户的应用程序提供网络服务和接口。
  • 数据单位:报文(Message)
  • 核心协议:HTTP/HTTPS(网页浏览)、FTP(文件传输)、SMTP/POP3(发/收邮件)、DNS(域名解析)、SSH。
  • 📦 快递比喻:你想寄送的具体物品或信件内容本身,以及你填写的寄件单。

用家庭服务器的例子来解释

设备: n100、 网线、路由器、交换机、光猫、笔记本、光纤

第 1 层:物理层(Physical Layer)

💻 你的硬件映射:网线(双绞线)、光猫入户的光纤、N100 上的 RJ45 物理网口。

  • 实际发生了什么:这一层根本不知道什么是 IP,也不知道什么是网页。它只在乎一件事:信号转换与传输
  • 具体场景:当外面运营商的“光信号”顺着光纤跑进你家的光猫,光猫的光电转换模块(物理层设备)将其转换为“电信号”,然后通过网线的铜芯,以高低电平(0和1)的形式,传输到你的 N100 物理网口上。

💻 你的硬件映射:交换机(Switch)、N100 里的网卡(MAC 地址)。

  • 实际发生了什么:电平信号(0和1)变成了有意义的数据块,称为“帧(Frame)”。这一层靠MAC 地址(网卡的物理身份证)来认人。
  • 具体场景:假设你的 N100 接了一个交换机,交换机上又接了你的电脑和电视。当 N100 想把一部电影发给电脑时,它会在数据帧上写上电脑网卡的 MAC 地址。交换机就是一个纯粹的“二层设备”,它内部有一张 MAC 地址表,看到这个帧,就精准地把它推送到连接电脑的那个物理网口上。

第 3 层:网络层(Network Layer)

💻 你的硬件映射:路由器、N100(如果刷了 OpenWrt/iKuai 作为软路由)。

  • 实际发生了什么:MAC 地址只能在同一个局域网(你家)里找人。如果要把数据发给远在北京的服务器,就需要用到逻辑地址——IP 地址。这一层负责跨网段的“寻址和路由”。
  • 具体场景:你的电脑想访问 GitHub。数据包来到你的 N100 软路由(三层设备)。N100 拆开一看,目标 IP 是外网的,于是它通过 NAT(网络地址转换)技术,把你局域网的内网 IP(192.168.x.x)伪装成光猫拨号获取的公网 IP,然后查阅自己的“路由表”,把数据包扔给运营商的网关,规划出一条去往 GitHub 的最优路线。

第 4 层:传输层(Transport Layer)

💻 你的硬件映射:N100 系统中的端口转发(Port Forwarding)、防火墙规则。

  • 实际发生了什么:数据包成功到达了目标机器,但这台机器上运行着几百个程序,数据该给谁?这就是**端口(Port)**的作用。同时这一层要决定是建立稳定的 TCP 连接,还是不管死活的 UDP 传输。
  • 具体场景:你的 N100 上可能同时跑着好几个服务。你在外网访问 你的IP:8096N100 的内核(传输层)看到端口是 8096,就知道这个 TCP 数据流是给 Jellyfin(影音库)的;如果看到端口是 22,就知道是给 SSH 终端的。如果你在 N100 上打游戏加速器,这里用的往往就是延迟更低的 UDP 协议。

第 5 层:会话层(Session Layer)

💻 你的硬件映射:N100 的底层操作系统(如 PVE、Debian 或 OpenWrt 的连接管理机制)。

  • 实际发生了什么:负责建立、管理和断开通信的“会话”。
  • 具体场景:光猫配置为桥接,用你的 N100 软路由进行 PPPoE 宽带拨号。这个拨号并维持你与运营商宽带服务器在线状态的过程,就是一个典型的会话管理。只要这个会话不断,你家里就有网。

第 6 层:表示层(Presentation Layer)

💻 你的硬件映射:N100 上运行的 Nginx/Traefik(反向代理处理 HTTPS)、影音转码工具。

  • 实际发生了什么:数据的加密、解密、压缩和格式转换。
  • 具体场景:你在 N100 上部署了你的 DailyUse 全栈后端,为了安全,你配置了 SSL 证书。当你的手机连进来时,表示层负责把数据用 TLS 加密成密文传输,防止别人在路由器抓包偷看。另外,如果你用 N100 看电影,N100 将视频源文件转码(比如 H 转成 H)让浏览器能播放,这也是表示层的工作。

第 7 层:应用层(Application Layer)

💻 你的硬件映射:N100 里跑的各种 Docker 容器(应用服务本身)。

  • 实际发生了什么:网络协议的最终消费者,直接和用户交互。
  • 具体场景:你在 N100 的 Docker 里跑了一个你写的 Node.js 后端应用,或者部署了一个个人博客。当你打开浏览器输入网址,浏览器发起 HTTP 请求;或者你在 N100 里装了 AdGuard Home,手机发起的 DNS 解析请求。这些 HTTP、DNS 协议,就是最高层的应用层。

总结与实战意义

在实际开发和面试中,**前三层(物理层、数据链路层、表示层、会话层)**更多是系统底层和硬件层面的工作,通常被折叠或合并。

作为软件开发者(尤其是前端、后端、全栈),绝大多数工作和排错都集中在以下三层:

  1. 应用层(Layer 7):研究 HTTP 请求头、跨域 CORS、Cookie、WebSocket。
  2. 传输层(Layer 4):理解 TCP 的三次握手/四次挥手、解决高并发下的端口阻塞。
  3. 网络层(Layer 3):理解 IP 地址分配、抓包排查网络不通的问题。
创建于 2026/3/12 更新于 2026/5/27