【TCP/IP和OSI模型以及区别——理论汇总】
参考小林code和卡尔哥,感恩!
网络基础篇
面试官您好!OSI和TCP/IP是网络通信中两个关键模型,本质都是分层处理数据传输,但设计理念和应用场景差异很大。
OSI模型是理论上的七层架构,从下到上依次是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层(可记口诀“物数网传会表应”)。它的特点是每层功能严格独立,比如物理层只负责传输0/1信号,数据链路层用MAC地址在局域网内传帧,网络层通过IP地址跨网络路由,传输层用TCP/UDP区分进程。上层如会话层管连接状态(如登录会话),表示层处理格式转换和加密(如HTTPS加密),应用层直接提供服务(如HTTP协议)。这种分层适合教学和标准化分析,但实际中因层级复杂很少完全实现。
TCP/IP模型是OSI的简化版,更注重实用,分为四层:网络接口层(对应OSI物理层+数据链路层)、网络层(IP层)、传输层(TCP/UDP)、应用层(融合OSI会话层+表示层+应用层)。比如网络接口层直接处理MAC寻址和帧传输,网络层用IP协议路由,传输层通过端口区分应用(如HTTP用80端口),应用层整合了协议逻辑(如DNS解析域名、HTTP请求格式)。我们日常上网、刷视频等场景,底层都是TCP/IP模型在工作,比如浏览器用HTTP协议(应用层),通过TCP协议(传输层)建立连接,经IP路由(网络层)和Wi-Fi的MAC地址(网络接口层)完成数据传输。
核心区别在于OSI是理论框架,分层更细但落地难;TCP/IP是实用模型,四层结构更高效,直接支撑互联网通信。比如面试常问的“TCP三次握手”属于传输层逻辑,“IP路由选择”属于网络层,这些都属于TCP/IP模型的核心考点。总结来说,OSI适合理解原理,TCP/IP用于解决实际问题,两者结合能更全面掌握网络通信逻辑。
网络模型与 URL 访问掌握程度要求:
一、OSI 模型与 TCP/IP 模型
(一)OSI 模型(7 层)
- 层级构成
- 需清晰说明 7 层名称,依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 。
- 功能职责
- 能够对每一层进行粗浅描述,理解各层在网络数据传输中承担的基础任务,比如物理层负责处理物理介质上的信号传输等 。
- 协议掌握
- 熟悉部分层级常见协议,网络层重点掌握 IP 协议;传输层重点掌握 TCP 协议、UDP 协议 。
(二)TCP/IP 模型(4 层)
- 层级结构
- 理解模型通常为 4 层架构(网络接口层、网络层、传输层、应用层 ),清晰描述各层层次关系 。
- 层作用与对应关系
- 解释每层作用,明确与 OSI 模型各层的对应映射,清楚不同层级在整体网络通信里的分工 。
- 协议与深入原理
- 举例说明每层使用的协议,对关键层次(如传输层、网络层 )深入理解,像掌握 TCP 三次握手建立连接、四次挥手断开连接过程;理解 IP 数据报路由选择逻辑 。
- 层次交互
- 明白不同层次间的数据交互流程,知晓数据在层次流转时,每层如何添加、移除头部信息来实现传输 。
二、从输入 URL 到页面展示流程
(一)基础流程理解
- 整体交互
- 理解浏览器与服务器交互全过程,清晰、完整描述从输入 URL 开始,到页面最终显示的端到端流程 。
- 各步骤分解
- DNS 解析:掌握域名转换为 IP 地址的流程,清楚递归查询、迭代查询等解析方式 。
- TCP 连接建立:准确解释 TCP 三次握手过程,理解三次握手在建立可靠连接中的作用,包括各次握手的标志位(SYN、ACK )、序列号变化等 。
- HTTP 请求:说明浏览器构建 HTTP 请求的要素(请求行、请求头、请求体 ),以及请求发送到服务器的机制 。
- 服务器处理请求:描述服务器接收请求后,从解析请求、业务逻辑处理(如调用后端服务、查询数据库 )到生成响应的过程 。
- HTTP 响应:讲解服务器构建响应(状态码、响应头、响应体 )并回传浏览器的机制,理解不同状态码代表的含义 。
- TCP 连接关闭:清晰描述 TCP 四次挥手过程,掌握各次挥手的作用、标志位变化,理解 TIME_WAIT 等状态的意义 。
- 浏览器渲染页面:知晓浏览器解析 HTML 构建 DOM 树、解析 CSS 构建 CSSOM 树,以及合并生成渲染树的流程;理解 JavaScript 执行对 DOM 树、渲染树的影响 。
- 页面显示:解释浏览器依据渲染树,通过布局、绘制、合成等步骤,将内容最终绘制到屏幕的机制 。
(二)进阶知识掌握
- 关键步骤深入
- 对 DNS 解析、TCP/IP 连接、HTTP 请求响应、浏览器渲染等各步骤的关键点(如 DNS 缓存机制、TCP 拥塞控制、HTTP 缓存策略、浏览器重排与重绘 )深入了解,能应对针对具体细节的追问 。
- 性能优化认知
- 知晓页面加载性能优化手段,如通过 DNS 预解析、使用 CDN 加速内容分发、压缩资源(Gzip 等 )、合理利用缓存(强缓存、协商缓存 )等方式,减少加载时间、提升页面性能 。
问题一:TCP/IP模型和OSI模型分别是什么?它们之间有什么区别?
核心记忆要点如下:
- OSI七层顺序口诀:物数网传会表应(物理层→数据链路层→网络层→传输层→会话层→表示层→应用层)。
- 重点协议:网络层IP、传输层TCP/UDP,应用层HTTP/DNS。
- 面试高频:三次握手 / 四次挥手原理、TCP 与 UDP 区别、IP 子网划分。
一、OSI层级构成
OSI(Open Systems Interconnection ,开放系统互连)模型将网络通信流程抽象为 7 层架构,从底层到应用层依次为 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 。这 7 层分工明确,协同完成网络数据的传输、处理与交互,类似工厂流水线,每层专注 “特定工序”,共同保障信息从源头准确抵达目标。
各层粗浅理解
OSI七层模型各层功能职责与协议(一句话概括)
1. 物理层
功能职责:在物理介质(网线/光纤/无线)上传输原始比特流(0/1信号),定义硬件接口与信号标准(如电压、传输速率)。
协议/技术:无具体协议,涉及RJ45接口、曼彻斯特编码、光纤传输标准。
2. 数据链路层
功能职责:将比特流封装为帧(Frame),通过MAC地址实现相邻设备通信,负责帧同步、差错检测(CRC校验)和流量控制。
核心协议:以太网协议(Ethernet,帧格式含MAC地址)、PPP协议(拨号上网)、ARP协议(IP转MAC)。
3. 网络层
功能职责:通过IP地址(逻辑地址)实现跨网络寻址,将帧封装为IP数据包,负责路由选择(路由器转发)和拥塞控制。
核心协议:IP协议(IPv4/IPv6)、ICMP协议(网络诊断,如ping)、路由协议(RIP/OSPF)。
4. 传输层
功能职责:为应用程序提供端到端(进程间)通信,通过**端口(Port)**区分进程,实现可靠传输(TCP)或高效传输(UDP)。
核心协议:TCP协议(三次握手/四次挥手,如网页浏览)、UDP协议(无连接,如视频通话)。
5. 会话层
功能职责:管理应用进程间的会话(Session),包括建立(如用户登录)、维护(会话超时)和终止(断点续传)。
典型场景:HTTP会话管理(Cookie/Session)、数据库连接(如MySQL会话)。
6. 表示层
功能职责:负责数据的格式转换、加密解密、压缩解压缩,确保不同系统兼容(如JSON转二进制、HTTPS加密)。
核心技术:TLS加密(HTTPS)、Gzip压缩、字符编码(UTF-8/ASCII)。
7. 应用层
功能职责:直接为用户程序提供网络服务,定义应用协议(如请求/响应格式),是用户与网络的接口。
核心协议:
- 网页浏览:HTTP/HTTPS
- 文件传输:FTP
- 邮件收发:SMTP/POP3
- 域名解析:DNS
- 远程登录:SSH/Telnet
逻辑链接总结
从下到上,各层逐步抽象:
- 物理层提供硬件通信基础 →
- 数据链路层实现局域网内可靠传输(MAC寻址)→
- 网络层实现跨网络寻址(IP路由)→
- 传输层实现进程间通信(端口+TCP/UDP)→
- 会话层-表示层-应用层支撑具体应用(会话管理→数据格式→业务逻辑)。
每一层依赖下层服务,为上层提供接口,共同构成完整的网络通信链条。
二、各层功能职责与协议解析
(1)物理层(第1层:硬件传输层)
功能:
负责在物理介质上传输原始比特流,不关心数据含义,仅处理信号的物理特性(如电压高低、光信号有无)。负责将上层传来的二进制数据(0 和 1 )转化为物理信号(如电信号、光信号 ),通过物理介质(如双绞线、光纤、无线信号)发送;同时接收来自物理介质的信号,还原为二进制数据交给上层 。
( 简单说,它解决“信号怎么在物理线 / 空气中传” 的问题,不关心数据含义,只负责 “信号收发” 的物理实现 ,比如电信号高低电平对应0和1比特,光纤(xian)通过光信号有无表示比特流)
关键技术:
涉及电缆标准(如 RJ45 网线接口 )、信号编码(如曼彻斯特编码 )、传输速率(如 10Mbps、100Mbps )、传输模式(单工、半双工、全双工 )等 。比如网线传输电信号时,物理层规定电压、频率等参数,确保不同设备能 “读懂” 信号 。
(二)数据链路层(第2层:局域网通信层)
将物理层的比特流封装为帧(Frame),通过MAC地址实现局域网内设备通信,负责帧同步、差错检测(CRC校验)和流量控制。
核心任务:
- 帧同步:识别帧的起始与结束
- 差错检验:通过CRC校验码检测传输错误
- MAC寻址:利用网卡物理地址(MAC地址)唯一标识设备
MAC 地址:
- 定义:Media Access Control Address,又称物理地址,由网卡制造商烧录,长度48位(6字节),用12位16进制数表示(如00-50-56-C0-00-08)。
- 结构:
- 前3字节(24位)为厂商识别码(OUI),如00-50-56代表VMware。
- 后3字节(24位)为设备序列号,由厂商唯一分配。
通信类型:
单播:MAC地址最高字节最低位为0(如00-0A-02),数据仅发往唯一设备;
广播:地址为ff:ff:ff:ff:ff:ff,数据发往局域网所有设备;
多播:最高位为1,数据发往一组设备(如视频会议)。
核心协议:
- 以太网协议:帧格式包含源MAC、目的MAC、数据、CRC校验码,是局域网主流协议。
- PPP协议:点对点协议,用于拨号上网,支持IP等协议封装,简化链路建立。
(四)传输层(第4层:进程通信层)
功能:
为应用程序提供端到端通信,通过端口(Port)区分不同进程,将网络层数据包封装为段(TCP)或数据报(UDP)。
核心知识点:端口(Port)
定义:16位整数(0~65535),标识主机中的应用进程,如HTTP用80端口,HTTPS用443端口。
分类:
知名端口(0~1023):系统预留(如21-FTP、22-SSH);
注册端口(1024~49151):分配给特定应用(如3306-MySQL、8080-Web服务);
动态端口(49152~65535):临时分配给客户端进程(如浏览器随机端口)。
作用:通过“IP+端口”唯一标识进程(如192.168.1.1:80),解决多应用同时通信问题。
核心协议:
TCP协议:
面向连接,可靠传输,通过三次握手建立连接、四次挥手断开连接;
特性:序列号/确认应答、滑动窗口(流量控制)、慢启动(拥塞控制),适合文件传输、网页浏览。
UDP协议:
无连接,不可靠传输,低延迟、高效率,适合视频通话、DNS查询(依赖UDP 53端口)。
(五)会话层(第5层:应用会话层)
- 功能:
- 管理应用进程之间的会话,包括建立(如用户登录)、维护(如会话超时)、终止 (如退出系统),支持会话同步(断点续传)。
- 应用场景:
- C/S模式(如QQ):建立长连接会话,支持断线重连;
- B/S模式(如网页登录):通过Cookie/Session管理会话状态,实现“一次登录,多次访问”。
(六)表示层(第6层:数据格式层)
- 功能:
负责数据的格式转换、加密解密、压缩解压缩,确保不同系统兼容。 - 典型应用:
- 格式转换:浏览器将服务器返回的JSON数据解析为页面结构(如JSON→JavaScript对象);
- 加密解密:HTTPS通过TLS协议在表示层加密数据(如AES算法),接收方解密后渲染;
- 压缩解压缩:服务器通过Content-Encoding: gzip压缩HTML/CSS/JS,减少传输体积(如1MB数据压缩至300KB)。
(七)应用层(第7层:用户交互层)
功能:
直接为用户程序提供网络服务,定义应用协议(请求格式和响应结构)
核心:网络设计模式
- C/S模式(客户端/服务器)
- 架构:需开发客户端和服务器端(如微信PC端+服务器),客户端处理逻辑,服务器集中存储数据;
- 优点:性能高(本地缓存)、协议灵活(可自定义私有协议);
- 缺点:开发成本高(需适配多平台)、客户端安全风险(如恶意软件)。
- B/S模式(浏览器/服务器):
- 架构:仅开发服务器端,用户通过浏览器访问(如淘宝网页),依赖HTTP/HTTPS协议;
- 优点:开发维护成本低(仅更新服务器)、跨平台(浏览器通用);
- 缺点:性能受限(依赖浏览器)、协议固定(必须用HTTP)。
- 核心协议:
-
HTTP/HTTPS:网页浏览协议,定义请求方法(GET/POST)、状态码(200/404)、头部字段(Cache-Control);
-
FTP:文件传输协议,用于C/S模式下的文件上传下载(如通过FileZilla连接FTP服务器);
DNS:域名解析协议(应用层),依赖UDP 53端口,将域名(如baidu.com)解析为IP地址。
-
OSI七层协同工作流程(以浏览器访问网页为例)
- 应用层: 浏览器(B/S客户端)发起HTTP请求,调用DNS协议解析域名(如www.example.com)。
- 表示层: 若为HTTPS,通过TLS协议加密请求数据(如AES算法),转换为二进制格式。
- 会话层:
- 建立浏览器与服务器的会话(如通过Cookie记录用户ID)。
- 传输层:
选择TCP协议,将数据分段,源端口为浏览器随机端口(如50001),目的端口为443(HTTPS); 三次握手建立连接,封装为TCP段。 - 网络层:
- DNS解析得到服务器IP(如192.168.1.100),封装TCP段为IP数据包(源IP=客户端IP,目的IP=服务器IP);
- 路由器根据路由表转发数据包(可能经过多个网络)。
- 数据链路层:
将IP数据包封装为以太网帧,源MAC=客户端网卡MAC,目的MAC=网关MAC; 交换机通过MAC地址表转发帧至网关。 - 物理层:
帧转换为电信号通过网线传输至网关,经路由器转发到服务器,逆流程解封装后,服务器返回响应数据,浏览器渲染页面。
理解和记忆OSI七层模型可以通过分层类比、口诀记忆、场景联想和对比分析等方法,将抽象的概念转化为具体的生活场景或逻辑链条。以下是具体技巧:
一、分层类比:用快递物流理解七层模型
将OSI七层与“快递运输流程”类比,每层对应物流中的一个环节,通过熟悉的场景记忆功能:
OSI层级 | 物流类比 | 核心功能 | 记忆关键词 |
---|---|---|---|
物理层 | 运输工具(卡车/飞机/轮船) | 运输货物的物理载体,负责“比特流”(货物)在物理介质(公路/航线)上的传输 | 硬件、信号、介质 |
数据链路层 | 同城快递分拣中心 | 将货物分组(帧),贴上“收件人地址”(MAC地址),确保同城内准确分拣和运输 | 帧、MAC地址、差错检测 |
网络层 | 跨省物流调度中心 | 规划跨省运输路线(IP路由),通过“逻辑地址”(IP)选择最佳路径,转发货物(数据包) | IP地址、路由、跨网络寻址 |
传输层 | 物流信息系统(跟踪单号) | 全程跟踪货物(端到端传输),通过“订单号”(端口)区分不同客户(进程),确保货物完整送达 | TCP/UDP、端口、可靠传输 |
会话层 | 客户服务中心(处理订单会话) | 管理客户与物流的会话(如订单创建、取消),保持通信状态(如登录状态) | 会话管理、连接维护 |
表示层 | 货物包装工厂(统一包装标准) | 按客户要求包装货物(数据格式转换),加密敏感货物(如贵重物品),压缩体积(减少运输成本) | 格式转换、加密、压缩 |
应用层 | 客户本人(签收货物) | 直接与用户交互,提供最终服务(如货物签收、反馈评价) | 应用协议、用户接口 |
记忆要点:从“物理运输→本地分拣→跨区调度→全程跟踪→会话管理→包装处理→用户签收”,层层递进,逻辑连贯。
二、口诀记忆:七层顺序与核心功能
1. 七层顺序口诀
- 顺记(从下到上):
物数网传会表应(物理层→数据链路层→网络层→传输层→会话层→表示层→应用层)。 - 逆记(从上到下):
应表会传网数物(应用层→表示层→会话层→传输层→网络层→数据链路层→物理层)。
2. 各层功能口诀
- 物理层:传信号,靠硬件,介质传输无逻辑;
- 数据链路层:成帧传输,MAC寻址,差错检测保可靠;
- 网络层:IP路由,跨网络,数据包里找地址;
- 传输层:端口区分进程,TCP可靠,UDP高效;
- 会话层:建会话,管连接,登录状态要维持;
- 表示层:转格式,加解密,压缩数据省流量;
- 应用层:HTTP/FTP/DNS,直接服务用户端。
三、场景联想:以“网购下单”为例串联七层
- 应用层(用户下单):
- 你在电商APP(应用层)点击“下单”,触发HTTP请求(协议)。
- 表示层(订单加密与格式转换):
- 订单数据(如收货地址)被加密(TLS协议),并转换为JSON格式(格式转换)。
- 会话层(保持登录会话):
- 系统验证你的登录会话(Session),确保订单与你的账号关联。
- 传输层(选择运输方式):
- 用TCP协议(可靠传输)发送订单数据,源端口为APP随机端口,目的端口为服务器80端口。
- 网络层(规划运输路线):
- 根据服务器IP地址(如192.168.1.100),路由器选择最佳路径(路由协议)转发数据包。
- 数据链路层(本地分拣与MAC寻址):
- 数据包封装为以太网帧,添加你的网卡MAC地址(源)和网关MAC地址(目的),通过交换机在局域网内传输。
- 物理层(信号传输):
- 帧转换为电信号通过网线传输至网关,再经光纤传输至电商服务器。
反向流程:服务器返回订单确认信息时,按七层逆序解封装,最终在APP显示“下单成功”。
记忆技巧:
- 传输层=“门牌号”:同一栋楼(主机)里区分不同住户(进程),靠端口。
- 网络层=“街道地址”:找到某栋楼(主机),靠IP。
- 数据链路层=“单元门禁”:在小区(局域网)内找到具体单元,靠MAC。
五、图示记忆:七层模型分层图
画一张七层模型图,标注每层名称、功能、协议和类比场景,贴在书桌旁或手机壁纸上,强化视觉记忆:
┌───────────────┐ 应用层(网购APP下单)
│ 应用层 │ 协议:HTTP、FTP
├───────────────┤ 表示层(订单加密/JSON格式)
│ 表示层 │ 技术:TLS、Gzip
├───────────────┤ 会话层(登录会话管理)
│ 会话层 │ 场景:保持用户登录状态
├───────────────┤ 传输层(TCP传输订单数据)
│ 传输层 │ 协议:TCP(端口80)
├───────────────┤ 网络层(IP路由至服务器)
│ 网络层 │ 协议:IP、OSPF
├───────────────┤ 数据链路层(MAC寻址,局域网传输)
│ 数据链路层 │ 协议:以太网、ARP
└───────────────┘ 物理层(电信号通过网线传输) 物理层 介质:双绞线、光纤
六、实战记忆:通过面试题巩固
典型问题:
- “请从下到上说出OSI七层模型名称。”
→ 用口诀“物数网传会表应”快速应答。 - “TCP和UDP属于哪一层?它们的区别是什么?”
→ “传输层。TCP可靠(三次握手),UDP高效(无连接),如TCP用于网页,UDP用于直播。” - “IP地址和MAC地址分别属于哪一层?”
→ “IP是网络层(逻辑地址),MAC是数据链路层(物理地址)。”
记忆框架
- 顺序:物理→数据链路→网络→传输→会话→表示→应用(物数网传会表应)。
- 每层核心:
- 下三层(物理/数据链路/网络):解决“如何传数据”(硬件→局域网→跨网络)。
- 上四层(传输/会话/表示/应用):解决“传什么数据”(进程通信→会话管理→格式处理→用户服务)。
- 协议联想:
- 网络层=IP,传输层=TCP/UDP,应用层=HTTP/DNS。
TCP/IP 网络模型有哪几层?
应用层(Application Layer)
我们用户直接接触到的就是用户层,手机电脑上使用的软件都是应用层实现的。
那么当两个不同设备之间需要通信时,应用就把数据传给下一层,也就是传输层。
应用层只专注于为用户提供应用功能,比如比如 HTTP、FTP、Telnet、DNS、SMTP等。不关心数据如何传输,类似于我们寄快递只需要把包裹交给快递员,不管他怎么送。
传输层(Transport Layer)——TCP和UDP
应用层数据传给传输层;
传输层为应用层提供网络支持;
TCP/IP模型深度解析(4层架构与核心原理)
一、TCP/IP模型层级结构(对比OSI模型)
TCP/IP模型是OSI模型的简化实现,共4层,从下到上依次为:
网络接口层 → 网络层 → 传输层 → 应用层
与OSI模型的对应关系如下:
TCP/IP层 | OSI对应层 | 核心功能 |
---|---|---|
网络接口层 | 物理层+数据链路层 | 处理物理介质上的比特流传输,封装为帧(Frame),通过MAC地址实现本地通信 |
网络层 | 网络层 | 通过IP地址实现跨网络寻址与路由,封装为IP数据包(Packet) |
传输层 | 传输层 | 提供端到端进程通信,通过端口区分应用,封装为段(Segment)或数据报(Datagram) |
应用层 | 会话层+表示层+应用层 | 直接为用户程序提供服务,处理应用协议(如HTTP请求、FTP文件传输) |
这张图是 TCP/IP 四层模型的封装流程,核心是 “数据层层打包,每层加‘头部’控制信息” 。简单拆解:
这张图展示了 TCP/IP 模型四层封装流程,核心是数据从应用层到网络接口层的“层层包裹”(封装)与接收时的“层层拆解”(解封装)。以下结合网络通信原理,详细拆解每一层的作用、封装内容和关键知识点:
一、四层封装流程与核心逻辑
数据在 TCP/IP 模型中传递时,每经过一层就会添加对应层的“头部(Header)”,形成“洋葱式”封装结构;接收方则反向“剥洋葱”,逐层移除头部,最终还原出应用数据。
1. 应用层:原始数据起点
- 形态:纯应用数据(如 HTTP 请求内容、文件内容)。
- 作用:
是网络通信的“起点”,由具体应用生成(如浏览器生成 HTTP 请求、邮件客户端生成邮件内容)。 - 关键知识点:
- 应用层不添加头部,直接传递原始数据给传输层。
- 不同应用有专属协议(如 HTTP、FTP、DNS),但封装逻辑一致:把应用数据交给传输层处理。
2. 传输层:添加“传输控制头”(TCP/UDP 头)
- 形态:
[TCP 头] + [应用数据]
(若用 TCP 协议);或[UDP 头] + [应用数据]
(若用 UDP 协议)。 - 作用:
- 通过**端口号(Port)**区分应用进程(如 HTTP 用 80/443 端口,DNS 用 53 端口)。
- TCP 头提供可靠传输能力(序列号、确认应答、窗口机制等);UDP 头则极简,仅标识端口。
- 关键知识点:
- TCP 头核心字段:
- 源端口、目的端口(区分进程);
- 序列号(按序组装数据)、确认号(应答机制);
- 标志位(SYN 建立连接、FIN 断开连接、ACK 确认等)。
- UDP 头核心字段:
- 源端口、目的端口(仅标识进程,无可靠传输字段);
- 长度(数据报总长度)、校验和(简单差错检测)。
- TCP 头核心字段:
3. 网络层:添加“路由寻址头”(IP 头)
- 形态:
[IP 头] + [TCP/UDP 头 + 应用数据]
。 - 作用:
- 通过IP 地址实现跨网络寻址(如从手机热点到路由器,再到互联网服务器)。
- 处理路由选择(通过路由表决定数据包转发路径)、拥塞控制(调整发送速率)。
- 关键知识点:
- IP 头核心字段:
- 源 IP、目的 IP(标识网络中主机位置);
- 协议号(标识上层协议,如 TCP=6、UDP=17);
- 生存时间(TTL,防止数据包无限循环,每经过路由器减 1)。
- IP 分片:若数据包超过 MTU(最大传输单元,如以太网默认 1500 字节),网络层会拆分数据包,并在接收方重组。
- IP 头核心字段:
4. 网络接口层:添加“链路通信头”(帧头、帧尾)
- 形态:
[帧头] + [IP 头 + TCP/UDP 头 + 应用数据] + [帧尾]
。 - 作用:
- 通过MAC 地址实现局域网内相邻设备通信(如手机与路由器、路由器与交换机)。
- 帧尾的 CRC 校验检测传输错误(若出错,直接丢弃帧,由上层重传)。
- 关键知识点:
- 帧头核心字段:
- 源 MAC、目的 MAC(局域网内设备的物理地址);
- 类型(标识上层协议,如 0x0800 表示 IP 协议)。
- 帧尾:仅包含 CRC 校验值,用于检测帧在物理层传输时的错误。
- 帧头核心字段:
二、各层“传输单位”与本质
图中提到:
- 网络接口层 → 帧(Frame)
- 网络层 → 包(Packet)
- 传输层 → 段(Segment,TCP 用)/数据报(Datagram,UDP 用)
- 应用层 → 消息/报文(Message,如 HTTP 报文)
本质:都是“数据包”的不同称谓,仅因层级不同、封装内容差异而区分。核心是 “头部 + 数据”的嵌套结构,每一层通过“头部”传递控制信息(如寻址、端口、可靠传输)。
三、封装与解封装的完整流程(以浏览器访问网页为例)
发送端(你的电脑)封装流程
- 应用层:浏览器生成 HTTP 请求(应用数据,如
GET /index.html HTTP/1.1
)。 - 传输层:
- 选择 TCP 协议(因 HTTP 基于 TCP),添加 TCP 头(源端口随机,目的端口 80/443)。
- 形成:
[TCP 头] + [HTTP 请求]
(段,Segment)。
- 网络层:
- 添加 IP 头(源 IP 是你的手机/电脑 IP,目的 IP 是网站服务器 IP)。
- 形成:
[IP 头] + [TCP 头 + HTTP 请求]
(包,Packet)。
- 网络接口层:
- 添加帧头(源 MAC 是你的网卡 MAC,目的 MAC 是路由器 MAC)和帧尾(CRC 校验)。
- 形成:
[帧头] + [IP 头 + TCP 头 + HTTP 请求] + [帧尾]
(帧,Frame)。 - 最终通过物理层(网线/无线)发送电信号/光信号。
接收端(网站服务器)解封装流程
- 网络接口层:
- 接收帧,校验 CRC(若错误则丢弃),移除帧头、帧尾。
- 还原出:
[IP 头 + TCP 头 + HTTP 请求]
(包,Packet)。
- 网络层:
- 校验 IP 地址(确认是发给自己),移除 IP 头。
- 还原出:
[TCP 头 + HTTP 请求]
(段,Segment)。
- 传输层:
- 校验 TCP 序列号、确认应答(若用 TCP),移除 TCP 头。
- 还原出:
[HTTP 请求]
(应用数据)。
- 应用层:
- 服务器解析 HTTP 请求,处理后生成响应(如 HTML 内容),反向封装回传。
四、关键知识点总结
- 封装逻辑:每一层“包裹”上一层数据,并添加本层控制信息(头部),实现“分层职责”。
- 头部作用:
- 应用层:无头部,纯数据。
- 传输层:端口 + 传输控制(TCP/UDP 头)。
- 网络层:IP 地址 + 路由控制(IP 头)。
- 网络接口层:MAC 地址 + 差错检测(帧头、帧尾)。
- 核心目的:通过“分层封装”,让 不同层级专注自己的任务(应用处理业务、传输处理可靠、网络处理路由、链路处理物理传输),最终实现“跨网络、跨设备、跨应用”的通信。
理解这张图,就能掌握 TCP/IP 模型的核心工作原理:数据不是“裸奔”传输,而是通过“层层包裹”传递控制信息,确保每一步都能被正确处理。
一、四层封装,一层包一层
数据从应用层出发,每到下一层,就会 “裹上一层头部(Header)” ,像套娃一样:
- 应用层:纯数据(比如你要发的消息、网页请求),不加头部。
- 传输层:给数据加 TCP/UDP 头(标端口,区分 App,比如微信、浏览器)。
- 网络层:再加 IP 头(标 IP 地址,找目标设备,比如手机→服务器)。
- 网络接口层:最后加 帧头、帧尾(标 MAC 地址,局域网内找邻居,比如手机→路由器)。
二、每层“头部”干啥用?
层级 | 封装后形态 | 头部关键作用 |
---|---|---|
应用层 | 纯应用数据(如 HTTP 内容) | 无头部,纯业务数据 |
传输层(TCP) | TCP 头 + 应用数据 | 用端口区分 App(微信/浏览器) |
网络层 | IP 头 + TCP 头 + 应用数据 | 用IP 地址跨网络找目标设备 |
网络接口层 | 帧头 + IP 头 + … + 帧尾 | 用MAC 地址局域网内找邻居 |
三、一句话总结
数据从 App 出发,每往下一层就“穿一层控制外衣”(头部),带着端口、IP、MAC 地址,最终通过网线/无线发出去;接收方反向“脱衣服”,逐层拆包,拿到原始数据。
这样就记住了:封装是“套娃加头部”,解封装是“拆娃卸头部”,每层头部负责不同的“找设备、分应用、保可靠”工作~
二、各层作用与协议详解
(一)网络接口层(Network Interface Layer)
- 作用:
负责物理介质上的数据传输,将网络层的IP数据包封装为帧(Frame),通过MAC地址实现局域网内通信,处理差错检测和流量控制。 - 对应OSI层:物理层(信号传输)+数据链路层(帧封装)。
- 核心协议/技术:
- 以太网协议(Ethernet):定义帧格式(源MAC、目的MAC、数据、CRC校验),局域网主流协议。
- PPP协议:用于拨号上网或点对点连接(如ADSL),支持IP封装。
- ARP协议(地址解析协议):将IP地址解析为MAC地址(如
arp -a
命令查看本地ARP表)。
- 典型场景:
电脑通过交换机传输数据时,网络接口层为IP数据包添加MAC地址,确保数据在局域网内正确转发。
(二)网络层(Network Layer)
- 作用:
实现跨网络的逻辑寻址,通过IP地址将数据从源主机路由到目标主机,处理路由选择、拥塞控制和IP数据包分片。 - 对应OSI层:网络层。
- 核心协议:
- IP协议(IPv4/IPv6):
- IPv4:32位地址(如
192.168.1.1
),通过子网掩码划分网络位与主机位(如/24
表示前24位为网络位)。 - IPv6:128位地址(如
2001:0db8::8a2e:0370:7334
),解决地址枯竭问题。
- IPv4:32位地址(如
- ICMP协议:网络诊断与差错报告(如
ping
命令通过ICMP回显请求/应答检测连通性)。 - 路由协议:
- 静态路由:手动配置路由表(适合小型网络)。
- 动态路由:如RIP(距离向量)、OSPF(链路状态),自动更新路由表。
- IP协议(IPv4/IPv6):
- 关键原理:
- IP数据报结构:包含源IP、目的IP、协议号(标识上层协议,如TCP=6,UDP=17)、分片信息(处理大数据包拆分)。
- 路由选择逻辑:路由器根据目的IP地址查找路由表,选择最佳路径(下一跳IP)转发数据包。
(三)传输层(Transport Layer)
- 作用:
提供端到端(进程间)的通信服务,通过端口号(Port)区分不同应用程序,实现可靠传输(TCP)或高效传输(UDP)。 - 对应OSI层:传输层。
- 核心协议:
- TCP协议(传输控制协议):
- 特点:面向连接、可靠传输、字节流服务。
- 关键机制:
- 三次握手建立连接:
① 客户端发送SYN包(请求连接,序号A);
② 服务器回复SYN+ACK包(确认请求,序号B,确认号A+1);
③ 客户端回复ACK包(确认连接,序号A+1,确认号B+1)。 - 四次挥手断开连接:
① 客户端发送FIN包(请求断开,序号X);
② 服务器回复ACK包(确认请求,序号Y,确认号X+1);
③ 服务器发送FIN包(数据发送完毕,序号Z);
④ 客户端回复ACK包(确认断开,序号X+1,确认号Z+1)。 - 可靠性保障:序列号/确认应答、滑动窗口(流量控制)、超时重传、拥塞控制(慢启动/拥塞避免)。
- 三次握手建立连接:
- 应用场景:网页浏览(HTTP/HTTPS)、文件传输(FTP)、邮件收发(SMTP)。
- UDP协议(用户数据报协议):
- 特点:无连接、不可靠传输、数据报服务(面向报文)。
- 优势:低延迟、高效率,适合实时场景(如视频通话、直播、DNS查询)。
- 应用场景:DNS解析(UDP 53端口)、实时通信(WebSocket部分场景)、游戏数据传输。
- TCP协议(传输控制协议):
- 对比记忆:
协议 连接性 可靠性 传输单位 典型端口 TCP 面向连接 可靠 字节流 80(HTTP)、443(HTTPS) UDP 无连接 不可靠 数据报 53(DNS)、67/68(DHCP)
(四)应用层(Application Layer)
- 作用:
直接为用户应用程序提供服务,定义应用层协议(如请求格式、响应结构),处理数据的语义(如JSON/HTML解析)。 - 对应OSI层:会话层(会话管理)+表示层(格式转换)+应用层(业务逻辑)。
- 核心协议:
- HTTP/HTTPS:网页浏览协议
- HTTP:无状态,明文传输,默认端口80;
- HTTPS:HTTP+TLS加密,默认端口443,确保数据安全。
- FTP:文件传输协议,支持上传/下载,默认端口20(数据)/21(控制)。
- DNS:域名解析协议,将域名(如baidu.com)解析为IP地址,基于UDP 53端口。
- SMTP/POP3/IMAP:邮件协议,分别用于发送(25端口)、接收(110/143端口)。
- SSH/Telnet:远程登录协议,SSH加密(22端口),Telnet明文(23端口)。
- HTTP/HTTPS:网页浏览协议
- 关键原理:
- 应用层协议数据单元(APDU):如HTTP请求报文包含请求行、请求头、请求体。
- 会话与格式处理:
- 会话层功能:通过Cookie/Session管理用户登录状态(如HTTP会话);
- 表示层功能:HTTPS在表示层加密数据(TLS协议),Gzip压缩响应体(
Content-Encoding: gzip
)。
三、层次交互:数据封装与解封装流程
(一)数据发送流程(封装过程,从上到下)
- 应用层:生成应用数据(如HTTP请求报文),传递给传输层。
- 传输层:
- 若用TCP,将数据分段,添加TCP头部(源端口、目的端口、序列号等),封装为TCP段;
- 若用UDP,添加UDP头部,封装为UDP数据报。
- 网络层:
添加IP头部(源IP、目的IP),封装为IP数据包,查询路由表确定下一跳。 - 网络接口层:
添加MAC头部(源MAC、目的MAC),封装为以太网帧,通过物理层转换为比特流发送。
(二)数据接收流程(解封装过程,从下到上)
- 网络接口层:接收物理信号,解封装为帧,校验MAC地址,剥离帧头,传递IP数据包至网络层。
- 网络层:校验IP地址,剥离IP头,根据协议号(如TCP=6)将数据报传递至传输层。
- 传输层:
- TCP:校验序列号,按序组装字节流,剥离TCP头,传递数据至应用层;
- UDP:直接剥离UDP头,传递数据报至应用层(可能丢包或乱序)。
- 应用层:解析应用数据(如HTTP响应报文),渲染页面或执行其他操作。
示例:浏览器访问https://www.baidu.com
- 封装:应用层(HTTP请求)→传输层(TCP段,端口80→随机端口)→网络层(IP包,源IP→百度IP)→网络接口层(以太网帧,源MAC→网关MAC)。
- 解封装:百度服务器逆向流程解析,返回响应数据后,浏览器逐层解封装并渲染页面。
四、核心知识点对比与面试高频问题
(一)TCP/IP vs OSI模型
对比项 | TCP/IP模型 | OSI模型 |
---|---|---|
层数 | 4层(网络接口层、网络层、传输层、应用层) | 7层(更细分) |
设计理念 | 面向实用(互联网标准) | 理论框架(标准化分层) |
协议绑定 | 紧密绑定IP/TCP/UDP等协议 | 协议独立性强 |
(二)面试高频问题
- TCP三次握手的作用是什么?为什么需要三次?
→ 确认双方收发能力正常。两次握手无法确认客户端最后一次ACK是否到达,三次确保可靠连接。 - TCP和UDP的区别?分别适用场景?
→ TCP可靠(文件传输),UDP高效(直播/游戏)。 - IP路由选择的核心逻辑是什么?
→ 路由器根据目的IP地址查找路由表,匹配最长前缀路由,转发至下一跳。 - 应用层协议如何实现跨平台通信?
→ 通过统一数据格式(如JSON)和协议规范(如HTTP),屏蔽底层差异。
五、记忆框架与学习建议
(一)口诀记忆
TCP/IP四层记,网接网传应
- 网接层(网络接口层):物理传输+帧封装;
- 网传层(网络层):IP路由+数据包;
- 传输层:TCP可靠+UDP快;
- 应用层:HTTP/FTP/DNS全靠它。
(二)学习资源推荐
- 图解参考:小林coding官网(https://xiaolincoding.com/network/)中的TCP/IP模型动画,直观理解封装流程。
- 实战工具:
- Wireshark抓包:捕获TCP三次握手包,分析各层头部字段;
ping
/tracert
命令:测试ICMP协议与路由路径。
通过“分层对比+协议原理+场景实战”的学习路径,可系统掌握TCP/IP模型,轻松应对面试与实际网络问题。
TCP/IP 模型核心逻辑与分层解析
一、TCP/IP 四层架构总览
TCP/IP 模型将网络通信简化为 4 层,从“应用数据”到“物理传输”,每层负责特定任务,通过**“封装(加头部)”和“解封装(拆头部)”** 实现跨设备、跨网络通信。
四层结构(从上到下):
应用层 → 传输层 → 网络层 → 网络接口层
二、各层核心逻辑与关键知识点
(一)应用层:用户业务的起点
- 作用:生成应用数据(如 HTTP 请求、文件内容、聊天消息),是网络通信的“业务源头”。
- 特点:不添加头部,直接传递原始数据给传输层。
- 典型协议:HTTP(网页)、FTP(文件传输)、DNS(域名解析)、SMTP(邮件)。
(二)传输层:进程通信的“中间人”
- 作用:为应用层提供端到端(进程间)通信,通过 端口号(Port) 区分同一设备上的不同应用(如浏览器用 80/443 端口,微信用随机端口)。
- 核心协议:
- TCP(传输控制协议):
- 特点:面向连接、可靠传输(通过三次握手建立连接、序列号/确认应答保障数据完整)。
- 场景:适合重要数据(如网页、文件下载),确保数据不丢、不乱序。
- 关键机制:流量控制(滑动窗口)、拥塞控制(慢启动、拥塞避免)、超时重传。
- UDP(用户数据报协议):
- 特点:无连接、高效但不可靠(仅封装端口,不保证送达)。
- 场景:适合实时性要求高的场景(如直播、游戏、DNS 查询),牺牲可靠性换速度。
- TCP(传输控制协议):
- 数据处理:
- 若数据过大(超过 MSS 最大报文段长度 ),TCP 会分段(拆成小数据块,每块加 TCP 头),接收方再重组。
(三)网络层:跨网络寻址的“导航员”
- 作用:通过 IP 地址 实现跨网络(不同局域网)寻址,决定数据从“源设备”到“目标设备”的传输路径(路由选择)。
- 核心协议:
- IP 协议(IPv4/IPv6):
- IPv4:32 位地址(如
192.168.1.1
),通过 子网掩码 划分“网络号”(标识子网)和“主机号”(标识子网内设备)。 - 示例:
10.100.122.2/24
中,子网掩码255.255.255.0
(或/24
),网络号是10.100.122.0
,主机号是2
。 - 计算方式:IP 地址 & 子网掩码 = 网络号(如
10.100.122.2 & 255.255.255.0 = 10.100.122.0
)。
- IPv4:32 位地址(如
- 路由协议:
- 作用:路由器通过路由协议(如 OSPF、RIP )交换路由信息,选择最佳路径转发数据。
- 逻辑:路由器根据目标 IP 的网络号判断“下一跳”,像导航一样指引数据包跨网络传输。
- IP 协议(IPv4/IPv6):
(四)网络接口层:局域网通信的“快递员”
- 作用:在物理介质(网线、无线) 上传输数据,通过 MAC 地址 实现局域网内相邻设备(如手机与路由器、路由器与交换机)的通信。
- 数据处理:
- 给网络层的 IP 数据包添加帧头(含 MAC 地址)和帧尾(CRC 校验) ,封装成 帧(Frame) 。
- CRC 校验:检测帧在物理传输中的错误,若出错直接丢弃,由上层重传。
- 关键协议:
- ARP 协议:将 IP 地址解析为 MAC 地址(如
arp -a
查看本地 ARP 表,实现“IP→MAC”映射 )。
- ARP 协议:将 IP 地址解析为 MAC 地址(如
三、数据封装与解封装流程(以浏览网页为例)
1. 发送端(你的电脑):层层“打包”
- 应用层:浏览器生成 HTTP 请求(如
GET /index.html
)。 - 传输层:用 TCP 协议,给数据加 TCP 头(标源端口、目的端口 80/443 ),形成 TCP 段。
- 网络层:给 TCP 段加 IP 头(标源 IP、目的 IP ),形成 IP 数据包。
- 网络接口层:给 IP 数据包加 帧头(MAC 地址)和帧尾(CRC) ,形成 帧,通过网线/无线发送。
2. 接收端(网站服务器):层层“拆包”
- 网络接口层:接收帧,校验 CRC 无误后,拆帧头、帧尾,还原出 IP 数据包。
- 网络层:校验 IP 地址,拆 IP 头,还原出 TCP 段。
- 传输层:校验 TCP 序列号、确认应答,拆 TCP 头,还原出 应用数据(HTTP 请求)。
- 应用层:服务器解析 HTTP 请求,处理后返回响应(如 HTML 内容),反向封装回传。
四、核心概念对比与总结
层级 | 传输单位 | 核心地址 | 关键协议 | 核心作用 |
---|---|---|---|---|
应用层 | 消息/报文 | - | HTTP、FTP、DNS | 生成业务数据,直接服务用户应用 |
传输层 | 段(TCP)/数据报(UDP) | 端口(Port) | TCP、UDP | 区分进程,实现端到端可靠/高效传输 |
网络层 | 包(Packet) | IP 地址 | IP、ICMP、OSPF | 跨网络寻址,路由选择 |
网络接口层 | 帧(Frame) | MAC 地址 | ARP、以太网协议 | 局域网内物理传输,差错检测 |
一句话总结:
TCP/IP 模型通过 四层封装 实现“应用数据→跨网络传输→局域网通信→物理发送”,每层用“头部”传递控制信息(端口、IP、MAC ),接收方反向拆包还原数据,最终完成网络通信。
掌握这一逻辑,就能理解“数据如何从 App 发往服务器”,无论是抓包分析还是排查网络问题,都能抓住核心!
面试官您好!OSI和TCP/IP是网络通信中两个重要的模型,分别用于理论框架和实际应用。以下是它们的详细解析及对比:
一、OSI模型:七层理论框架
**OSI(开放系统互连模型)**将网络通信划分为7层,从底层硬件到上层应用逐层抽象,每层解决特定问题,强调标准化和理论完整性。
1. 七层结构与核心功能(口诀:物数网传会表应)
- 物理层
- 功能:传输原始比特流(0/1信号),定义硬件标准(如网线接口、信号电压)。
- 示例:双绞线传输电信号,光纤传输光信号。
- 数据链路层
- 功能:将比特流封装为帧,通过MAC地址实现局域网通信,校验传输错误(CRC校验)。
- 协议:以太网协议(帧格式含MAC地址)、ARP协议(IP转MAC)。
- 网络层
- 功能:通过IP地址实现跨网络寻址,路由选择(如路由器转发数据包)。
- 协议:IP协议(IPv4/IPv6)、ICMP协议(网络诊断,如ping命令)。
- 传输层
- 功能:端到端进程通信,通过端口号区分应用,提供可靠(TCP)或高效(UDP)传输。
- 协议:TCP协议(三次握手/四次挥手)、UDP协议(无连接,适合直播)。
- 会话层
- 功能:管理应用会话(如用户登录状态保持、断点续传)。
- 场景:HTTP会话通过Cookie/Session维持登录状态。
- 表示层
- 功能:数据格式转换与加密压缩(如JSON转二进制、HTTPS加密)。
- 技术:TLS加密、Gzip压缩、UTF-8编码。
- 应用层
- 功能:直接为用户程序提供服务,定义应用协议(如HTTP请求格式)。
- 协议:HTTP/HTTPS(网页)、FTP(文件传输)、DNS(域名解析)。
2. 特点
- 理论性强:适合教学和标准制定,但实际网络中很少完全实现。
- 分层细致:每一层功能独立,便于问题定位(如排查物理层故障或应用层协议错误)。
二、TCP/IP模型:四层实用架构
TCP/IP模型是OSI的简化版,更注重实用性,是互联网的基础架构,共分为4层:
1. 四层结构与对应OSI层
TCP/IP层 | OSI对应层 | 核心功能 |
---|---|---|
网络接口层 | 物理层+数据链路层 | 处理物理传输和局域网帧通信(如MAC寻址、CRC校验) |
网络层 | 网络层 | 跨网络IP寻址与路由(如路由器转发IP数据包) |
传输层 | 传输层 | 进程间通信(TCP/UDP+端口号) |
应用层 | 会话层+表示层+应用层 | 处理应用协议(如HTTP请求、数据格式转换、会话管理) |
2. 各层关键逻辑
- 网络接口层:
- 封装帧头(MAC地址)和帧尾(CRC校验),实现设备在局域网内的通信(如电脑通过交换机转发数据)。
- 网络层:
- 核心是IP协议,通过路由表选择最佳路径(如从家庭网络经路由器转发至目标服务器)。
- 传输层:
- TCP协议:三次握手建立连接,适用于需要可靠性的场景(如网页加载);
- UDP协议:无连接,适用于实时性场景(如视频会议)。
- 应用层:
- 整合OSI的会话层、表示层和应用层功能,例如HTTP协议同时处理会话管理(Cookie)和数据格式(JSON/HTML)。
三、核心区别对比
对比维度 | OSI模型 | TCP/IP模型 |
---|---|---|
层数 | 7层(细分到每一步功能) | 4层(合并相似层,更高效) |
设计理念 | 先有理论框架,再匹配协议 | 先有实际协议(如IP/TCP),再抽象成模型 |
协议绑定 | 协议与层解耦(理论灵活) | 紧密绑定IP/TCP/UDP等协议 |
应用场景 | 教学、标准制定(如ISO协议) | 实际互联网通信(如手机上网、服务器交互) |
数据封装 | 每层严格独立封装 | 部分层合并封装(如应用层整合会话/表示逻辑) |
举例说明区别:
- 当你用手机刷抖音时:
- TCP/IP模型直接通过应用层(抖音APP)→传输层(UDP协议,快速传输视频数据)→网络层(IP地址找到抖音服务器)→网络接口层(Wi-Fi的MAC地址传输帧)。
- OSI模型则需逐层拆解:应用层(抖音APP)→表示层(视频数据压缩)→会话层(保持连接)→传输层(UDP)→网络层(IP)→数据链路层(MAC)→物理层(无线信号)。
四、面试高频考点总结
- OSI七层顺序:
- 口诀“物数网传会表应”,能快速复述各层名称及功能(如传输层负责端口寻址,网络层负责IP路由)。
- TCP/IP核心协议:
- 网络层:IP协议(IPv4/IPv6)、路由协议;
- 传输层:TCP(可靠)与UDP(高效)的区别及场景(TCP用于文件传输,UDP用于直播)。
- 模型对比关键点:
- OSI是理论分层,TCP/IP是实用模型;
- TCP/IP的应用层融合了OSI的上三层(会话、表示、应用)。
五、总结
OSI模型如同一本详细的“网络通信教科书”,适合理解底层原理;TCP/IP模型则是“互联网的实际施工图纸”,直接支撑我们日常的网络应用。掌握两者的区别与联系,既能应对理论面试题(如“OSI哪层负责加密?”),也能理解实际网络问题(如“为什么直播多用UDP?”)。
相关文章:

【TCP/IP和OSI模型以及区别——理论汇总】
参考小林code和卡尔哥,感恩! 网络基础篇 面试官您好!OSI和TCP/IP是网络通信中两个关键模型,本质都是分层处理数据传输,但设计理念和应用场景差异很大。 OSI模型是理论上的七层架构,从下到上依次是物理层…...
【HarmonyOS 5】生活与服务开发实践详解以及服务卡片案例
一、金融场景创新实践 智慧银行网点转型 通过统一设备方案整合国产芯片与鸿蒙系统,支持智能柜员机、移动展业终端等设备的弹性硬件组合,降低25%硬件成本。利用元服务框架实现卡片式交互(如客户画像、风险评估一键调取)&a…...
LEAP模型能源需求/供应预测、能源平衡表核算、空气污染物排放预测、碳排放建模预测、成本效益分析、电力系统优化
🌐 LEAP模型(Long-range Energy Alternatives Planning System),即长期能源替代规划系统,是由斯德哥尔摩环境研究所与美国波士顿大学共同开发的基于情景分析的自底向上的能源—环境核算工具。该模型采用自底向上的架构…...

STM32 I2C通信外设
1、外设简介 可变多主机 7位/10位寻址 10位寻址:起始之后的两个字节都作为寻址,第一个字节前5位是11110作为10位寻址的标志位 SMBus:系统管理总线,主要用于电源管理,与I2C类似 2、外设结构框图 比较器、自身地址寄…...

13. springCloud AlibabaSeata处理分布式事务
目录 一、分布式事务面试题 1.多个数据库之间如何处理分布式事务? 2.若拿出如下场景,阁下将如何应对? 3.阿里巴巴的Seata-AT模式如何做到对业务的无侵入? 4.对于分布式事务问题,你知道的解决方案有哪些?请你谈谈? 二、分布式事务问题…...

MySQL 表的内连和外连
一、内连接 内连接实际上就是利用 where 子句对两种表形成的笛卡儿积进行筛选,前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。 select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件; 注意:前面学习的都是内连…...

VR线上展厅特点分析与优势
VR线上展厅:特点、优势与实际应用 VR线上展厅,作为虚拟现实(VR)技术在展示行业的创新应用,正逐步改变着传统的展览方式。通过模拟真实的物理环境,为参观者提供身临其境的展览体验,成为展示行业…...

Python基于SVM技术的手写数字识别问题项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在当今数字化转型加速的时代,手写数字识别作为图像处理与机器学习领域的一个经典问题,具有广…...
Elasticsearch的写入性能优化
优化Elasticsearch的写入性能需要从多维度入手,包括集群配置、索引设计、数据处理流程和硬件资源等。以下是一些关键优化策略和最佳实践: 一、索引配置优化 合理设置分片数与副本数分片数(Shards):过少会导致写入瓶颈(无法并行),过多会增加集群管理开销。公式参考:分…...

2024年数维杯国际大学生数学建模挑战赛A题飞行器激光测速中的频率估计问题解题全过程论文及程序
2024年数维杯国际大学生数学建模挑战赛 A题 复合直升机的建模与优化控制问题 原题再现: (一) 问题的背景 空速,即飞机相对于空气的速度,是飞行期间需要监控的关键参数。空速与飞行状态密切相关,如迎角…...
AWS 成本异常检测IAM策略
问题 审计人员需要看AWS 成本异常检测,则需要开通这个权限。 IAM 自定义策略 {"Version": "2012-10-17","Statement": [{"Action": ["ce:Get*"],"Effect": "Allow","Resource"…...
解决Vue3+uni-app导航栏高亮自动同步方案
路由跳转自动识别导航高亮实现方法 以下代码使用wd-tabbar组件实现路由跳转时自动同步导航栏高亮状态,适用于所有的Vue3uni-app项目。 请根据自身使用框架类型完成,也可根据我使用的UI组件进行完成地址如下: Tabbar 标签栏 | Wot UI &#…...

DeepSeek+SpringAI实现流式对话
大模型的响应速度通常是很慢的,为了避免用户用户能够耐心等待输出的结果,我们通常会使用流式输出一点点将结果输出给用户。 那么问题来了,想要实现流式结果输出,后端和前端要如何配合?后端要使用什么技术实现流式输出呢…...

【Spark征服之路-2.1-安装部署Spark(一)】
实验目标: 本节课实验将完成Spark 4种部署模式的其中2种,分别是Local、Standalone模式。 实验准备工作: 三台linux虚拟机spark的压缩包 实验步骤: Spark-local Spark的Local模式仅需要单个虚拟机节点即可,无需启…...

VS代码生成工具ReSharper v2025.1——支持.NET 10和C# 14预览功能
实质上,ReSharper特征可用于C#,VB.net,XML,Asp.net,XAML和构建脚本。 使用ReSharper,你可以进行深度代码分析,智能代码协助,实时错误代码高亮显示,解决方案范围内代码分析…...

【Godot】如何导出 Release 版本的安卓项目
在使用 Godot 引擎开发安卓游戏或应用时,发布到应用市场(如 Google Play、华为应用市场等)通常需要生成一个 Release 版本的 .apk 包,而非 Debug 版本。本文将详细介绍如何将 Godot 项目导出为 Release 版本的安卓项目,…...

VSCode 工作区配置文件通用模板(CMake + Ninja + MinGW/GCC 编译器 的 C++ 或 Qt 项目)
下面是一个通用模板,适用于大多数使用 VSCode CMake Ninja MinGW/GCC 编译器 的 C 或 Qt 项目。你可以将这个 .vscode 文件夹复制到你的项目根目录下,稍作路径调整即可使用。 📁 .vscode/ 目录结构(通用模板) .vs…...
js鼠标事件大全
一、鼠标相关事件(Mouse Events) 事件名描述支持浏览器(HTML 版本)onClick鼠标单击对象时触发IE3, N2, O3onDblClick鼠标双击对象时触发IE4, N4, OonMouseDown鼠标按键按下时触发IE4, N4, OonMouseUp鼠标按键释放时触发IE4, N4, …...

Java八股文——Redis篇
目录 1. 缓存穿透解决方案1. 缓存空值2. 布隆过滤器(Bloom Filter)3. 参数校验4. 接口限流与验证码 2. 缓存击穿解决方案1. 设置热点数据永不过期(或很长过期时间)2. 使用互斥锁(如分布式锁)3. 利用异步更新…...

爬虫接口类型判断与表单需求识别全解析
爬虫接口类型判断与表单需求识别全解析 在爬虫开发中,准确判断目标接口的类型以及是否需要表单提交,是实现高效、稳定爬取的关键一步。本文将通过实际案例,详细介绍如何通过浏览器开发者工具和代码验证来判断接口类型及表单需求。 一、接口…...
Photoshop智能图层 vs 普通图层:核心差异与适用场景对比
一、基础概念对比 维度智能图层(Smart Object)普通图层(Raster Layer)本质定义封装原始数据的容器,保留原始图像/矢量/3D信息直接编辑的像素图层,仅存储当前显示效果核心特性非破坏性编辑(保留…...

Chainlink:连接 Web2 与 Web3 的去中心化桥梁
区块链技术通过智能合约实现了去中心化的自动执行,但智能合约无法直接访问链下数据,限制了其在现实世界的应用。Chainlink 作为去中心化预言机网络,以信任最小化的方式解决了这一问题,成为连接传统互联网(Web2…...
[Java 基础]面向对象-继承
继承,可以理解为和现实生活中的继承是一样的概念,比如:儿子继承了父亲的一些特性,面貌、身材、性格等。 在面向对象编程中,继承的概念与之类似。它允许我们创建一个新的类(子类 或 派生类)&…...

编译一个Mac M系列可以用的yuview
做音视频的有一个神器工具YUView,具体使用和它的功能可以看:https://zhuanlan.zhihu.com/p/558580168, 这个作者讲得很清楚,但是官方只提供了intel的版本,arm版本要自己编,且依赖低版本的ffmpeg。 操作过程…...
LeetCode - 876. 链表的中间结点
题目 876. 链表的中间结点 - 力扣(LeetCode) 快慢指针解法 初始化两个指针: 慢指针(slow):每次移动一步 快指针(fast):每次移动两步 同时移动两个指针: 当fast指针到达链表末尾或者倒数第二个节点时…...
概率单纯形(Probability Simplex)
目录 定义性质在统计学中的应用在机器学习中的应用在信息论中的应用在优化问题中的应用在其他领域的应用 定义 定义:在数学中,概率单纯形(Probability Simplex)是指在 n n n维空间中,所有分量非负且分量之和为1的向量…...
Go语言爬虫系列教程4:使用正则表达式解析HTML内容
Go语言爬虫系列教程4:使用正则表达式解析HTML内容 正则表达式(Regular Expression,简称RegEx)是处理文本数据的利器。在网络爬虫中,我们经常需要从HTML页面中提取特定的信息,正则表达式就像一个智能的&quo…...

6.4 C++作业
刷题...

rabbitmq Topic交换机简介
1. Topic交换机 说明 尽管使用 direct 交换机改进了我们的系统,但是它仍然存在局限性——比方说我们的交换机绑定了多个不同的routingKey,在direct模式中虽然能做到有选择性地接收日志,但是它的选择性是单一的,就是说我的一条消息…...

网络交换机:构建高效、安全、灵活局域网的基石
在数字化时代,网络交换机作为局域网(LAN)的核心设备,承担着数据转发、通信优化和安全防护的关键任务。其通过独特的MAC地址学习、冲突域隔离、VLAN划分等技术,显著提升了网络性能,成为企业、学校、医院等场景不可或缺的基础设施。…...