前后端传输流程-OSI七层模型详解
本文将详细拆解OSI七层模型的每一层核心作用、传输格式(PDU)、核心协议,结合前后端文件上传场景,还原数据从前端到后端的完整传输过程,让你直观理解数据在每一层的打包、传输、拆包全过程,贴合实际开发场景(SpringBoot3+前端文件上传)。
一、OSI七层模型核心总览
OSI(Open Systems Interconnection,开放系统互连)模型是国际标准化组织(ISO)制定的网络通信分层标准,将网络通信从低到高分为7层,每层仅负责自身核心职责,上层依赖下层提供的服务,下层不干预上层的业务逻辑,实现“分层解耦”。
核心原则:逐层打包、反向拆包——数据发送时,从上层(应用层)到下层(物理层),每一层都会给数据添加“头部信息”(用于标识、校验、寻址);数据接收时,从下层到上层,每一层都会剥离自身添加的头部,最终还原原始数据。
1.1 七层模型(从上到下,7→1)
- 应用层:用户与网络的接口,提供应用程序所需的网络服务(如HTTP接口);
- 表示层:负责数据的格式转换、加密、压缩,确保双方能“看懂”数据;
- 会话层:负责建立、管理、断开应用之间的通信会话(如一次文件上传会话);
- 传输层:负责端到端的可靠传输,控制两台主机的应用程序之间的通信(如TCP拆包、重组);
- 网络层:负责寻址、路由,将数据从一个主机传递到另一个主机(跨网段传输);
- 数据链路层:负责同一局域网内相邻设备的通信,用MAC地址寻址;
- 物理层:负责将二进制比特流(0/1)转换为物理信号(电信号、光信号),实现原始数据的物理传输。
1.2 七层模型核心汇总表
|
层级(从高到低) |
层名称 |
传输单位(PDU) |
核心协议/标准 |
核心作用 |
关键细节(贴合文件上传) |
|
7 |
应用层 |
报文(Message) |
HTTP、HTTPS、FTP |
给应用程序提供网络接口,定义通信规则 |
前端构建HTTP POST请求(multipart/form-data格式),后端接收HTTP请求 |
|
6 |
表示层 |
表示数据(Presentation Data) |
SSL/TLS、UTF-8、JPEG/MP4 |
数据格式转换、加密、压缩 |
HTTPS上传时,对文件字节流加密;图片/视频按对应格式编码 |
|
5 |
会话层 |
会话数据(Session Data) |
RPC、SQL连接 |
建立、管理、断开会话,支持断点续传 |
建立文件上传会话,标记本次上传的唯一标识,支持大文件断点续传 |
|
4 |
传输层 |
TCP:数据段(Segment);UDP:数据报(Datagram) |
TCP、UDP |
端到端可靠传输,拆包/重组,端口区分应用 |
用TCP协议,将大文件(视频/图片)拆成小数据段,添加端口信息 |
|
3 |
网络层 |
数据包(Packet) |
IP(IPv4/IPv6)、ICMP |
IP寻址、路由选择,跨网段传输 |
添加源IP(前端设备)、目标IP(后端服务器),选择传输路由 |
|
2 |
数据链路层 |
数据帧(Frame) |
以太网、Wi-Fi、ARP |
局域网内通信,MAC地址寻址,差错检测 |
添加源MAC(前端网卡)、目标MAC(路由器),检测数据帧是否损坏 |
|
1 |
物理层 |
比特流(Bit) |
网线、光纤、Wi-Fi信号标准 |
将二进制比特流转换为物理信号,实现物理传输 |
将数据帧转换为电信号/光信号,通过网线/Wi-Fi传输 |
二、OSI七层模型与TCP/IP模型对应关系
实际互联网中,我们常用的是TCP/IP四层模型(简化版OSI模型),两者对应关系如下(便于结合实际开发理解):
- OSI 7层(应用层)+ 6层(表示层)+ 5层(会话层) → TCP/IP 应用层
- OSI 4层(传输层) → TCP/IP 传输层
- OSI 3层(网络层) → TCP/IP 网络层
- OSI 2层(数据链路层)+ 1层(物理层) → TCP/IP 网络接口层
开发中重点关注:应用层(HTTP)、传输层(TCP)、网络层(IP),对应文件上传的核心流程。
三、文件上传(图片/视频)完整流程(OSI七层视角)

以下以「前端(Vue3)上传一张图片到后端(SpringBoot3)」为例,还原数据在OSI七层中“打包→传输→拆包”的完整过程,每一步都对应七层模型,直观易懂,可理解为“数据一步步穿衣服、再一步步脱衣服”。
前提:前端已选择图片(File对象,本质是字节流),准备发送上传请求;后端已启动,监听8080端口,等待接收请求。
完整流程(从前端发送 → 后端接收,按OSI七层从上到下打包,再从下到上拆包)
第一步:前端应用层(OSI第7层)—— 构建HTTP请求报文(打包第一步)
前端通过axios发送POST请求,构建HTTP应用层报文(Message):
- 请求行:POST /api/upload HTTP/1.1(请求方法、接口路径、HTTP版本);
- 请求头:Content-Type: multipart/form-data(文件上传格式)、Host: localhost:8080(后端服务器地址);
- 请求体:FormData包装的内容(包含文件原始字节流、文件名、文件类型)。
此时,数据格式为「应用层报文(Message)」,包含完整的HTTP请求信息,准备向下传递到表示层。
第二步:前端表示层(OSI第6层)—— 数据加密、格式转换(打包第二步)
表示层对应用层传递的报文进行处理:
- 若为HTTPS上传:对HTTP请求体(含文件字节流)进行加密(TLS加密),防止传输过程中被窃取;
- 格式校验:确认图片格式(如JPEG),确保编码正确(UTF-8),无需压缩(若为大视频,可在此层压缩);
- 添加表示层头部:标记加密方式、数据编码格式。
此时,数据格式为「表示层数据(Presentation Data)」,包含加密后的HTTP报文+表示层头部,向下传递到会话层。
第三步:前端会话层(OSI第5层)—— 建立上传会话(打包第三步)
会话层建立前端与后端的“文件上传会话”:
- 生成会话ID:标记本次文件上传的唯一会话(便于后端区分不同的上传请求);
- 建立会话连接:确认后端已准备接收,约定会话超时时间(防止上传中断后无响应);
- 添加会话层头部:标记会话ID、会话状态(建立中)。
此时,数据格式为「会话数据(Session Data)」,包含表示层数据+会话层头部,向下传递到传输层。
第四步:前端传输层(OSI第4层)—— TCP拆包、添加端口(打包第四步)
传输层(TCP协议)对会话层数据进行拆分和包装:
- 拆包:若图片较大(如10MB),将会话数据拆成多个小数据段(Segment),每个数据段大小约1-2KB(TCP MSS限制);
- 添加TCP头部:每个数据段都添加头部,包含源端口(前端随机端口,如54321)、目标端口(后端8080端口)、数据段序号(用于后端重组)、校验和(用于校验数据完整性);
- 建立TCP连接:通过“三次握手”确认前端与后端的TCP连接已建立(确保可靠传输)。
此时,数据格式为「TCP数据段(Segment)」,包含多个带序号的小数据段,每个数据段都有TCP头部,向下传递到网络层。
第五步:前端网络层(OSI第3层)—— 添加IP地址、选择路由(打包第五步)

网络层(IP协议)对TCP数据段进行包装,实现寻址:
- 添加IP头部:给每个TCP数据段添加IP头部,包含源IP地址(前端设备IP,如192.168.1.100)、目标IP地址(后端服务器IP,如192.168.1.200)、IP版本(IPv4);
- 路由选择:通过路由器确定传输路径(前端→路由器→后端服务器),标记路由信息。
此时,数据格式为「IP数据包(Packet)」,包含TCP数据段+IP头部,向下传递到数据链路层。
第六步:前端数据链路层(OSI第2层)—— 添加MAC地址、封装帧(打包第六步)
数据链路层对IP数据包进行封装,实现局域网内传输:
- 添加MAC头部:给每个IP数据包添加MAC头部,包含源MAC地址(前端网卡MAC地址)、目标MAC地址(路由器MAC地址);
- 添加帧尾:包含校验码(CRC),用于检测数据帧在传输过程中是否损坏;
- 封装为数据帧(Frame):将IP数据包+MAC头部+帧尾封装成数据帧,适配局域网传输。
此时,数据格式为「数据帧(Frame)」,包含IP数据包+MAC头部+帧尾,向下传递到物理层。
第七步:前端物理层(OSI第1层)—— 转换为物理信号,传输(打包第七步)
物理层将数据帧转换为物理信号,通过传输介质(网线/Wi-Fi)发送:
- 格式转换:将数据帧(二进制0/1比特流)转换为电信号(网线)或光信号(光纤)、无线电波(Wi-Fi);
- 物理传输:信号通过传输介质(如网线)发送,经过路由器转发,最终到达后端服务器的物理层。
此时,数据以「比特流(Bit)」对应的物理信号形式,在网络中传输,完成前端的“打包+发送”过程。
第八步:后端物理层(OSI第1层)—— 接收物理信号,转换为比特流(拆包第一步)
后端服务器物理层接收前端发送的物理信号:
- 信号转换:将电信号/光信号转换为二进制比特流(0/1);
- 传递数据:将比特流向上传递到数据链路层,完成物理层的拆包(剥离物理信号,还原比特流)。
第九步:后端数据链路层(OSI第2层)—— 校验帧、剥离MAC头部(拆包第二步)

后端数据链路层接收比特流,进行校验和拆包:
- 帧校验:通过帧尾的CRC校验码,检测数据帧是否损坏(若损坏,请求前端重发);
- 剥离头部:剥离MAC头部和帧尾,还原IP数据包;
- 传递数据:将IP数据包向上传递到网络层。
第十步:后端网络层(OSI第3层)—— 校验IP、剥离IP头部(拆包第三步)
后端网络层接收IP数据包,进行寻址校验和拆包:
- IP校验:校验目标IP地址是否为自身(后端服务器IP),若不是,转发到其他设备;
- 剥离头部:剥离IP头部,还原TCP数据段;
- 传递数据:将TCP数据段向上传递到传输层。
第十一步:后端传输层(OSI第4层)—— TCP重组、剥离TCP头部(拆包第四步)

后端传输层(TCP协议)接收TCP数据段,进行重组和拆包:
- 数据重组:根据TCP头部的序号,将多个小数据段重组为完整的会话数据;
- 校验确认:通过校验和确认数据完整,发送“确认应答”给前端(若有数据丢失,请求重发);
- 剥离头部:剥离TCP头部,还原会话数据;
- 传递数据:将会话数据向上传递到会话层。
第十二步:后端会话层(OSI第5层)—— 管理会话、剥离会话头部(拆包第五步)
后端会话层接收会话数据,进行会话管理和拆包:
- 会话校验:通过会话ID,确认是本次文件上传会话,更新会话状态(传输中);
- 剥离头部:剥离会话层头部,还原表示层数据;
- 传递数据:将表示层数据向上传递到表示层。
第十三步:后端表示层(OSI第6层)—— 解密、格式转换(拆包第六步)
后端表示层接收表示层数据,进行解密和格式转换:
- 解密:若为HTTPS上传,对数据进行TLS解密,还原原始HTTP请求报文;
- 格式解析:解析数据编码格式(UTF-8),确认文件格式(JPEG);
- 剥离头部:剥离表示层头部,还原应用层报文;
- 传递数据:将应用层报文向上传递到应用层。
第十四步:后端应用层(OSI第7层)—— 解析HTTP请求,处理文件(拆包第七步)
后端应用层(SpringBoot3)接收HTTP请求报文,进行解析和处理:
- 解析HTTP请求:Tomcat解析multipart/form-data格式,提取文件字节流、文件名、文件类型;
- 封装为MultipartFile:SpringBoot将文件字节流封装为MultipartFile对象,交给Controller处理;
- 文件处理:Controller校验文件(类型、大小),将文件字节流存储(本地/OSS),生成访问URL;
- 返回响应:构建HTTP响应报文(状态码200,响应体包含文件访问URL),按上述流程反向打包,发送回前端。
流程结束
前端接收后端的HTTP响应,解析出文件访问URL,用于展示图片/视频,整个文件上传的OSI七层传输流程完成。
四、核心总结
- OSI七层模型的核心是“分层打包、反向拆包”,每一层都有自己的传输格式(PDU)和核心职责;
- 文件上传(图片/视频)的本质:文件字节流在OSI七层中,从上到下逐层添加头部,转换为物理信号传输,后端从下到上逐层剥离头部,还原字节流并处理;
- 实际开发中,我们关注的核心层:应用层(HTTP)、传输层(TCP)、网络层(IP),对应接口开发、可靠传输、寻址路由;
- TCP/IP模型是OSI模型的简化版,实际互联网中广泛使用,两者的对应关系需牢记,便于理解网络通信原理。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)