一、OSI 七层模型概览
记忆口诀:物数网传会表应
二、逐层详解 + 实例
第 1 层:物理层
功能:负责把数据以比特(0/1)的形式通过物理介质(网线、光纤、无线电波)传输。定义电压、线缆引脚、传输速率等。
关键设备:网线、光纤、集线器、中继器、无线电磁波。
案例:
当你在笔记本电脑上插入网线,网线上的金属触点通过高低电压变化来代表比特 0 和 1。如果你的网线质量差或过长,信号会衰减,物理层能检测到但无法纠正——它只负责把比特从一端“搬”到另一端。
第 2 层:数据链路层
功能:在物理层的基础上,把比特组合成帧,实现同一局域网内两个相邻节点之间的可靠传输。它使用 MAC 地址 来标识设备,并提供差错检测(如 CRC)。
关键设备:交换机、网桥、网卡。
案例:
你家里有一个路由器(带交换机功能)和两台电脑。电脑 A 想给电脑 B 发文件。数据链路层会把网络层传下来的 IP 包封装成以太网帧,帧头写上电脑 B 的 MAC 地址。交换机根据 MAC 地址表把帧转发到对应的端口,电脑 B 接收。如果帧在传输中损坏,数据链路层的 CRC 校验会发现并丢弃该帧,由上层协议(如 TCP)负责重传。
第 3 层:网络层
功能:负责跨网络的端到端寻址和路由选择。它使用 IP 地址 标识主机,并决定数据包从源到目的经过哪些路由器。
关键设备:路由器、三层交换机。
核心协议:IP(IPv4/IPv6)、ICMP、ARP(部分划在链路层)。
案例:
你在北京访问纽约的网站服务器。你的数据包必须先经过你家的路由器 → 运营商网络 → 多个骨干路由器 → 到达纽约。网络层为每个数据包加上源 IP(你的公网 IP)和目的 IP(服务器 IP),并根据路由表一跳一跳转发。就像导航系统为你的快递规划从北京到纽约的路线。
第 4 层:传输层
功能:提供进程间(端口到端口)的通信。负责分段、流量控制、差错恢复。主要两个协议:
TCP:面向连接、可靠、有序。
UDP:无连接、不可靠、快速。
案例:
你使用浏览器打开一个网页(HTTP,使用 TCP)。传输层把 HTTP 请求分成多个 TCP 段,给每个段编号。服务器收到后确认(ACK),如果某个段丢失,服务器会要求客户端重传。同时,TCP 会根据网络状况动态调整发送速度,避免拥塞。而你看直播时用的是 UDP,虽然偶尔会花屏,但延迟低,不会因为丢包而卡顿重传。
第 5 层:会话层
功能:建立、维护和终止应用程序之间的会话。管理会话的同步点,以便在通信中断后可以从同步点恢复。
关键协议:NetBIOS、RPC、PPTP(部分功能)。
案例:
你从 FTP 服务器下载一个 1GB 的大文件。下载到 80% 时网络突然断开。如果 FTP 使用了会话层的同步点功能,恢复连接后可以从 80% 处继续下载,而不必重头开始。就像看视频网站断网后重新连上,能继续从刚才的时间点播放一样——这其实就是会话层在背后管理“续传”。
第 6 层:表示层
功能:负责数据格式转换(例如 EBCDIC ↔ ASCII)、数据加密/解密、压缩/解压。让不同系统的应用程序能理解对方的数据。
案例:
你使用浏览器访问一个 HTTPS 网站。表示层(在这里是 SSL/TLS 协议)负责把 HTTP 请求加密成乱码,对方收到后解密还原成 HTTP。同样,当你查看一张 JPEG 图片时,表示层把二进制数据解码成你可以看到的图像。如果你在 PC 上写一段文字,发送给一台老式 IBM 主机(使用 EBCDIC 编码),表示层会自动转换编码。
第 7 层:应用层
功能:直接为应用程序(如浏览器、邮件客户端)提供网络服务。它不是指应用本身,而是应用用来通信的协议。
常见协议:HTTP(网页)、SMTP/POP3(邮件)、FTP(文件传输)、DNS(域名解析)、SSH(安全远程登录)。
案例:
你在浏览器中输入 www.baidu.com,按回车。浏览器使用 HTTP 协议 构造一个 GET 请求,这个请求被向下传递给表示层加密(HTTPS),再一路向下最终到达百度服务器。服务器返回 HTTP 响应,浏览器渲染出页面。这里你直接感知到的就是应用层——它决定了浏览器如何问“我要这个页面”,服务器如何回答“给你”。
三、综合案例:你在浏览器访问一个网站(七层协同)
应用层:浏览器构造 HTTP GET 请求。
表示层:如果是 HTTPS,就加密 HTTP 数据;可能还会压缩。
会话层:建立与服务器的会话,可能在数据流中加入检查点。
传输层:把数据切成 TCP 段,加上源端口(随机)和目的端口(80/443),交给网络层。
网络层:加上 IP 头部(源 IP、目的 IP),形成 IP 包,通过路由表决定下一跳。
数据链路层:把 IP 包封装成帧,加上 MAC 地址,通过交换机转发到路由器或目标主机。
物理层:将帧转换成比特流,通过网线/光纤传输。
接收端从物理层开始,逐层向上解封装,最终浏览器获得 HTTP 响应并展示页面。
四、为什么学习 OSI 模型?
标准化:不同厂商的设备可以互操作(只要遵循标准)。
模块化:每一层独立,修改某一层不影响其他层(例如把以太网换成 Wi‑Fi,上层无需改动)。
故障排查:网络出问题时,可以逐层检查——是物理层没插好线?还是网络层 IP 配错?还是应用层协议不支持?