最近在复习计网,故总结本文,如有错误,请评论区指出
先明确一个核心前提:OSI模型是理论框架 ,核心作用是将复杂的网络通信拆分为7个独立层次,每层只负责单一职责,下层为上层提供服务,上层依赖下层的支撑,以此降低网络通信的复杂度,实现不同设备、不同系统的互通。
补充:OSI模型常和TCP/IP模型对比,但核心还是OSI的七层分工+协议关联,本文重点讲OSI,结尾附带和TCP/IP的对应关系
文章目录
-
- OSI七层模型
-
- [物理层(Physical Layer)------ 网络通信的"物理载体"](#物理层(Physical Layer)—— 网络通信的“物理载体”)
- [数据链路层(Data Link Layer)------ 相邻设备的"通信桥梁"](#数据链路层(Data Link Layer)—— 相邻设备的“通信桥梁”)
- [网络层(Network Layer)------ 跨网络通信的"导航系统"](#网络层(Network Layer)—— 跨网络通信的“导航系统”)
- [传输层(Transport Layer)------ 端到端通信的"可靠保障"](#传输层(Transport Layer)—— 端到端通信的“可靠保障”)
- [会话层(Session Layer)------ 通信会话的"管理者"](#会话层(Session Layer)—— 通信会话的“管理者”)
- [表示层(Presentation Layer)------ 数据的"翻译官"](#表示层(Presentation Layer)—— 数据的“翻译官”)
- [应用层(Application Layer)------ 后端开发的"直接接触层"](#应用层(Application Layer)—— 后端开发的“直接接触层”)
- OSI与TCP/IP模型的对应关系
OSI七层模型
口诀:物联网叔会使用 (物链网输会示用) (物理层→数据链路层→网络层→传输层→会话层→表示层→应用层)
重点关注「传输层、网络层、应用层」
OSI七层模型图:

数据流向:

物理层(Physical Layer)------ 网络通信的"物理载体"
核心 :不涉及软件和协议,只负责物理信号的传输,是所有网络通信的基础。
核心作用:将上层传递的比特流(0和1)转换成物理信号(电信号、光信号、无线电信号),通过物理介质(网线、光纤、WiFi)传输,同时接收对方的物理信号,转换回比特流传递给上层。
协议相关:无核心协议(物理层没有严格意义上的"协议",只有接口标准)。
常见接口标准:RJ45(网线接口)、光纤接口、WiFi无线标准(802.11系列,本质是物理层+数据链路层标准)
面经:
- 物理层的作用是什么?
- 比特流与物理信号的转换、物理介质传输
- 物理层和数据链路层的区别?
- 物理层管"信号传输",数据链路层管"信号封装和相邻设备通信"
数据链路层(Data Link Layer)------ 相邻设备的"通信桥梁"
核心 :解决"相邻设备(如电脑和路由器、路由器和交换机)之间的可靠通信",给物理层的比特流"封装标识",避免传错、传丢。
核心作用:将网络层传递的数据包(Packet)封装成 帧(Frame),添加源MAC地址和目标MAC地址(设备的物理地址,唯一标识),实现相邻设备的帧传输,同时进行差错检测和重传。
核心协议:
-
以太网协议(Ethernet):最常用的局域网协议,定义了帧的格式、MAC地址的规范,后端开发中,局域网内设备通信(比如服务器和交换机)依赖此协议。
-
PPP协议(点对点协议):用于点对点的通信(比如拨号上网、服务器之间的专线连接),无MAC地址,直接通过点对点链路传输帧。
-
HDLC协议(高级数据链路控制协议):面向连接的链路层协议,用于广域网,稳定性强,常被运营商使用。
协议关联:数据链路层的协议,依赖物理层的信号传输能力 ------没有物理层传递电信号,帧就无法在设备之间传输;同时,数据链路层为网络层提供"相邻设备可达"的服务,网络层的数据包必须通过数据链路层的帧封装,才能传递到物理层。
面经:
- MAC地址的作用?
- 标识相邻设备,实现帧的准确转发
- 数据链路层的封装单位是什么?
- 帧
- PPP协议和以太网协议的区别?
- PPP用于点对点,无MAC;以太网用于局域网,依赖MAC地址
网络层(Network Layer)------ 跨网络通信的"导航系统"
核心 :解决"跨网络通信"(比如本地局域网访问互联网、不同机房服务器通信),核心是"路由选择"和"IP地址寻址"。
核心作用:将传输层的段(Segment)封装成「数据包(Packet)」,添加源IP地址和目标IP地址,通过路由器选择最优路由,将数据包从源网络传递到目标网络(跨网络转发)。
核心协议:
-
IP协议(Internet Protocol):定义了IP地址的格式 (IPv4、IPv6),负责数据包的寻址和转发,是跨网络通信的基础。后端开发中,服务器之间的通信(比如微服务调用、数据库连接),本质都是IP协议在支撑。
-
ICMP协议(Internet控制消息协议):依赖IP协议,用于传递网络故障信息(比如ping命令,就是通过ICMP协议发送请求,判断目标设备是否可达)。
-
ARP协议(地址解析协议):将IP地址转换成MAC地址------网络层知道目标IP,但数据链路层需要MAC地址才能传输帧,ARP协议就是"IP转MAC"的桥梁。面试高频:ARP的作用?(答:IP地址与MAC地址的映射,解决相邻设备寻址问题)。
-
路由协议(RIP、OSPF):路由器之间用于交换路由信息的协议,帮助路由器选择最优转发路径
协议关联:
-
IP协议与ARP协议:IP负责跨网络寻址,ARP负责将IP转换成MAC,让数据包能在相邻设备之间传输(数据链路层需要MAC),两者协同完成跨网络+相邻设备的通信。
-
IP协议与ICMP协议:ICMP是IP的"辅助协议",IP协议只负责转发数据包,不负责检测故障;ICMP协议通过发送控制消息,反馈数据包传输中的问题(比如目标不可达、超时)。
-
网络层与数据链路层:网络层依赖数据链路层------数据包必须封装成帧,通过数据链路层传输到相邻设备;数据链路层为网络层提供"链路服务",确保数据包能在相邻设备之间传递。
面经:
- IP地址的作用?
- 跨网络标识设备,实现数据包的路由转发
- ARP和ICMP的区别?
- ARP是IP转MAC,ICMP是传递网络故障信息
- 网络层的封装单位是什么?
- 数据包
- ping的原理是什么?
- 基于ICMP协议,发送回声请求包,接收回声应答包
传输层(Transport Layer)------ 端到端通信的"可靠保障"
核心:负责"端到端"(比如本地应用和远程服务器应用)的通信,确保数据传输的可靠/高效,是应用层和网络层之间的桥梁。
核心作用:接收应用层的数据,封装成段(Segment) ,添加端口号(标识应用程序),通过协议确保数据的可靠传输(或高效传输),同时将接收端的段还原成数据,传递给应用层。
核心协议:
-
TCP协议(传输控制协议):面向连接、可靠传输、面向字节流。核心特点:三次握手建立连接、四次挥手断开连接、重传机制、流量控制、拥塞控制。
-
UDP协议(用户数据报协议):无连接、不可靠传输、面向数据报。核心特点:速度快、开销小,不保证数据有序和不丢失。适用场景:视频直播、语音通话、DNS查询(后端开发中,日志收集、实时推送也常用UDP)。
-
SCTP协议:面向连接、可靠传输,支持多路径传输,常用于电信领域。
协议关联:
-
TCP与UDP的区别:
- 连接性(TCP连接、UDP无连接)
- 可靠性(TCP可靠、UDP不可靠)
- 开销(TCP大、UDP小)、
- 适用场景(TCP用于文件传输、接口调用;UDP用于实时通信)
- 使用场景(微服务调用用TCP,日志推送用UDP)。
-
TCP/UDP与IP协议的关系:
- TCP/UDP依赖IP协议------传输层的段,必须封装成网络层的数据包,通过IP协议进行跨网络转发;
- IP协议只负责数据包的转发,不负责端到端的可靠传输,可靠传输由TCP协议实现。
-
传输层与应用层:
- 应用层的协议(比如HTTP),必须依赖传输层的TCP/UDP协议------HTTP请求会封装成TCP段,通过TCP协议传输到目标服务器;
- 应用层的每个应用,都对应一个端口号(比如HTTP用80端口,HTTPS用443端口),传输层通过端口号,将数据准确传递到对应应用。
面经:
- TCP三次握手的过程?
- 客户端发SYN→服务端回SYN+ACK→客户端回ACK
- TCP如何保证可靠传输?
- 重传机制、流量控制、拥塞控制、序号和确认号
- UDP的适用场景?
- 实时性要求高、允许少量丢失的场景,比如直播、DNS
- 端口号的作用?
- 标识应用程序,实现端到端的应用通信
会话层(Session Layer)------ 通信会话的"管理者"
核心作用:建立、管理、终止应用程序之间的"会话连接",确保通信的连续性和同步性(比如断点续传,就是会话层的作用)。
核心协议:
-
RPC协议(远程过程调用协议):虽然RPC常和应用层关联,但本质是会话层协议,负责建立客户端和服务器之间的会话,实现远程调用(比如Java的RMI、Dubbo,都是基于RPC协议)。
-
NetBIOS协议:用于局域网内的会话管理,标识设备和应用
协议关联:
- 会话层依赖传输层 ------会话的建立、维持,必须基于TCP/UDP协议的端到端连接;
- 会话层为表示层提供"会话服务",确保表示层的数据能在稳定的会话中传输。
面经:
- RPC协议的作用?
- 建立远程会话,实现应用程序之间的远程调用
- 会话层的核心功能?
- 会话的建立、管理、终止
表示层(Presentation Layer)------ 数据的"翻译官"
核心作用:负责数据的格式转换、加密解密、压缩解压缩,让发送端和接收端的应用程序能"看懂"对方发送的数据(比如发送端的JSON格式,经过表示层转换,接收端才能解析)。
核心协议/标准:
-
ASCII、UTF-8、GBK:字符编码转换协议,确保不同设备的字符能正常显示。
-
SSL/TLS协议:加密解密协议,用于数据传输的加密(比如HTTPS,就是HTTP+SSL/TLS,SSL/TLS本质是表示层协议,负责数据加密,再通过TCP协议传输)。
-
JPEG、PNG:图片压缩协议,属于表示层,负责数据压缩,减少传输体积。
协议关联:
- 表示层依赖会话层------加密/转换后的数据,需要通过会话层的会话连接传输;
- 表示层为应用层提供"数据格式服务",应用层的原始数据,经过表示层的处理,才能传递给传输层。
面经:
- SSL/TLS协议的作用?
- 数据加密解密,保证数据传输的安全性,比如HTTPS的加密
- 表示层的核心功能?
- 数据格式转换、加密解密、压缩解压缩
应用层(Application Layer)------ 后端开发的"直接接触层"
核心:直接面向应用程序,所有后端开发中用到的网络应用协议,都在这一层。
核心作用:为应用程序提供具体的网络服务,接收用户的请求(比如浏览器请求、接口调用),将请求数据传递给下一层,同时接收下一层传递的数据,反馈给应用程序。
核心协议:
-
HTTP/HTTPS协议:HTTP是超文本传输协议(无加密),HTTPS是HTTP+SSL/TLS(加密),用于网页访问、接口调用(比如微服务接口、前后端交互)。
-
DNS协议:域名解析协议,将域名(比如www.baidu.com)转换成IP地址,依赖UDP协议(高效)
-
FTP协议:文件传输协议,用于服务器之间的文件传输,依赖TCP协议(可靠),部署文件、备份数据常用。
-
SMTP/POP3/IMAP协议:邮件相关协议,SMTP用于发送邮件,POP3/IMAP用于接收邮件,后端开发中,发送验证码邮件、通知邮件,会用到SMTP协议。
-
Telnet/SSH协议:远程登录协议,用于远程操作服务器,Telnet无加密(不安全),SSH有加密(常用),远程连接服务器必用SSH。
协议关联:
-
HTTP与TCP的关系:
- HTTP是应用层协议,必须依赖TCP协议------HTTP请求会封装成TCP段,通过TCP三次握手建立连接,传输数据,四次挥手断开连接;
- TCP协议为HTTP提供可靠传输保障,确保HTTP请求和响应不丢失、不无序。
-
HTTPS的分层关联:
- HTTPS = HTTP(应用层) + SSL/TLS(表示层) + TCP(传输层)+ IP(网络层),层层依赖,最终实现安全的HTTP通信。
-
DNS与UDP的关系:
- DNS查询用UDP协议,因为DNS查询数据量小,需要高效传输,UDP的无连接、低开销刚好适合;如果DNS查询数据量大,会切换到TCP协议。
面经:
- HTTPS的加密过程?
- 通过SSL/TLS协议,实现客户端和服务器的身份认证、数据加密
- DNS的解析过程?
- 客户端→本地DNS→根DNS→顶级DNS→目标DNS,最终获取IP地址
OSI与TCP/IP模型的对应关系
-
OSI应用层 + 表示层 + 会话层 → TCP/IP应用层
-
OSI传输层 → TCP/IP传输层
-
OSI网络层 → TCP/IP网络层(网际层)
-
OSI数据链路层 + 物理层 → TCP/IP网络接口层(链路层)
补充:TCP/IP是实际应用中的模型(比如我们的互联网,就是基于TCP/IP),OSI是理论模型;