当前位置: 首页 > news >正文

网络四层模型和七层模型的区别

网络四层模型(TCP/IP 模型)和七层模型(OSI 模型)的核心差异体现在分层数量、起源目的及实际应用场景:四层模型是实际互联网使用的简化标准,七层模型是理论化的通用参考框架。

1. 核心定义与起源

对比维度四层模型(TCP/IP 模型)七层模型(OSI 模型)
起源背景源于 20 世纪 60 年代美国军方 ARPANET 项目,从实际网络通信需求中演化而来由国际标准化组织(ISO)1984 年制定,为统一全球网络通信标准而生
设计导向实用导向:以 “解决真实网络通信问题” 为核心,不追求理论完美,优先保证效率与可实现性理论导向:以 “标准化、通用性” 为核心,试图统一不同厂商设备的兼容性,侧重框架完整性
分层数量4 层(简化设计,合并冗余功能)7 层(细粒度拆分,每层职责单一)

2. 分层结构对比

四层模型通过 “合并关联层” 简化架构,将七层模型的 7 层整合为 4 层,具体对应关系如下:

四层模型(TCP/IP)核心功能对应七层模型(OSI)核心功能
应用层提供具体应用服务,整合 “应用 + 表示 + 会话” 功能(如 HTTP、FTP、DNS、SMTP)应用层为应用程序提供交互接口(如浏览器、邮件客户端的调用接口)
表示层处理数据格式(加密、压缩、编码,如 SSL、JPEG、JSON 解析)
会话层建立、维护、终止终端间通信会话(如会话超时控制、连接断开重连)
传输层端到端数据传输,负责可靠性 / 不可靠性控制(如 TCP 可靠传输、UDP 不可靠传输)传输层端到端数据传输,管理端口与流量控制(如 TCP 的三次握手、UDP 的无连接传输)
网络层路由选择与 IP 寻址,负责跨网络数据转发(如 IP 协议、路由器转发逻辑)网络层路由选择与逻辑地址处理,确定数据传输路径(如 IP 地址、ICMP 差错控制)
网络接口层整合 “数据链路 + 物理层” 功能,负责物理硬件通信(如网卡、MAC 地址、网线传输)数据链路层物理地址(MAC)管理与帧传输,处理链路错误(如交换机的 MAC 地址表)
物理层物理介质传输,定义电信号、接口标准(如网线类型、无线频段、电压规范)

3. 实际应用差异

  1. 实际应用差异
  • 四层模型:是互联网的“实际运行标准”,所有网络设备(路由器、交换机)和协议(TCP、IP、HTTP)均基于此设计,直接落地使用。

  • 七层模型:更多用于“理论教学和问题排查”(如分析网络故障时,按七层逐一定位),实际中没有完全符合七层模型的设备或协议。
    总结:

设计目的不同:OSI 是 ISO 制定的 “理论参考框架”,目标是统一设备兼容性;TCP/IP 是源于实际需求的 “实用标准”,直接支撑互联网通信。
分层结构不同:OSI 分 7 层(细粒度,如单独有表示层管加密、会话层管连接);TCP/IP 简化为 4 层,合并了 OSI 的冗余层(如 “应用 + 表示 + 会话” 合并为应用层)。
实际用途不同:OSI 几乎不落地,多用于教学和故障排查(如逐层定位网络问题);TCP/IP 是互联网事实标准,日常用的 HTTP、IP、路由器都基于它工作。 |

浏览器请求一个网址的过程?

当在浏览器输入一个网址,就在应用层根据http协议生成一个请求报文,

在浏览器会通过DNS服务器将域名解析为ip地址,

然后通过socket套接字调用操作系统的协议栈就到了传输层,在传输层给TCP加上TCP头部(主要包含源端口和目的端口),

网络层添加IP头部(主要加上源ip地址,目的IP地址),

数据链路层(把这个ip的数据包)添加以太网头部(主要加上源MAC地址,目的MAC地址),然后打包成一个以太网真正能传输的数据包,数据经路由器,交换机转发最终到了服务器。

服务器收到了这个数据包,在每一层拆掉对应的报文头部,得到了请求的数据进行处理,形成响应内容。

在生成一个响应报文,这个响应报文再通过相同的过程传送给浏览器,浏览器进行解析得到我们看到的内容。
具体:

  1. 域名解析(找 IP):浏览器先查本地 DNS 缓存,若没有就向 DNS 服务器发送请求,把域名(如www.xxx.com)解析成服务器的 IP 地址(如 192.168.1.1),确定 “要发给谁”。
  2. 建立 TCP 连接(三次握手):解析出 IP 后,浏览器通过 Socket 调用系统协议栈,在传输层与服务器建立 TCP 连接(三次握手确认双方通信能力),同时确定源端口(浏览器随机分配)和目的端口(如 HTTP 默认 80、HTTPS 默认 443)。
  3. 发起 HTTP 请求(应用层封装):连接建立后,浏览器在应用层按 HTTP 协议生成请求报文(包含请求头、请求体,比如 “GET /index.html”),并将报文往下传递。
  4. 数据分层封装(往下传)
    • 传输层:给请求报文加 TCP 头部(源 / 目的端口),变成 TCP 段;
    • 网络层:加 IP 头部(源 / 目的 IP),变成 IP 数据包;
    • 数据链路层:加以太网头部(源 / 目的 MAC 地址),变成可在物理网传输的帧,通过网线 / 无线发给路由器、交换机,最终传到服务器。
  5. 服务器处理并响应:服务器接收帧后,从下往上逐层拆包(拆以太网头→IP 头→TCP 头),拿到 HTTP 请求,处理后生成响应报文(含状态码、响应内容),再按同样的分层封装流程,把响应发回浏览器。
  6. 浏览器渲染页面:浏览器接收响应后,拆包拿到 HTML、CSS、JS 等资源,解析并渲染,最终呈现出我们看到的网页;若 TCP 连接不再用,会通过四次挥手断开。

文章转载自:

http://jnDZYqLj.sqbrs.cn
http://DPthwgRK.sqbrs.cn
http://2XW6LiPS.sqbrs.cn
http://MQ6njuRC.sqbrs.cn
http://0ujXrXse.sqbrs.cn
http://JRBwjIeH.sqbrs.cn
http://f09aPxVy.sqbrs.cn
http://2U3D6szr.sqbrs.cn
http://dkQabj3V.sqbrs.cn
http://iqZvT4hw.sqbrs.cn
http://CynFPUcT.sqbrs.cn
http://9rzGAofj.sqbrs.cn
http://KGErsWUN.sqbrs.cn
http://FQyzI5HY.sqbrs.cn
http://rJkYoeLn.sqbrs.cn
http://LHEJRAzO.sqbrs.cn
http://N9EmM3ok.sqbrs.cn
http://QvjxNtCq.sqbrs.cn
http://S7rUoKER.sqbrs.cn
http://kyYi9gsd.sqbrs.cn
http://1pNGgu4F.sqbrs.cn
http://LoXRIuxw.sqbrs.cn
http://9fP2GEO0.sqbrs.cn
http://OSozSNaH.sqbrs.cn
http://eitKqQ3G.sqbrs.cn
http://aWCkk7dw.sqbrs.cn
http://FaMmPnU8.sqbrs.cn
http://zl1Bln1g.sqbrs.cn
http://EHuc399x.sqbrs.cn
http://3P0lFbob.sqbrs.cn
http://www.dtcms.com/a/386998.html

相关文章:

  • 项目部署——LAMP、LNMP和LTMJ
  • 支付宝免押租赁平台源码
  • 不建议在 Docker 中跑 MySQL
  • PPT中将图片裁剪为爱心等形状
  • YOLO 模型前向推理全流程(以 YOLOv8 为例)
  • 【Redis】--集群
  • TRUNCATE还是DELETE?MySQL高效清空表的选择策略与实战指南
  • 【AI】AI评测入门(四):Evaluator Prompt拆解
  • Redis以`后台`方式启动方法
  • 【每日算法】找出字符串中第一个匹配项的下标 LeetCode
  • 【12】新国都 ——新国都 嵌入式 第一轮一面,技术面,校招,面试问答记录
  • 线程池-面试
  • 设计模式学习笔记(一)
  • 贪心算法应用:旅行商问题最近邻算法(TSP Nearest Neighbor)
  • 高系分七:软件工程
  • spark hive presto doris 对substr函数的差异
  • webpack5
  • M:Dijkstra算法求最短路径
  • C++11 atomic
  • 工作中真正常用的 git 操作
  • 【Java】P5 Java流程控制——分支结构详解
  • 下载 | Win10 2021官方精简版,预装应用极少!(9月更新、Win 10 IoT LTSC 2021版、适合老电脑安装)
  • 【面试场景题】交易流水表高qps写入会有锁等待或死锁问题吗
  • 嵌入式系统arm高级系统调试技能-24./proc/slabinfo 文件解读与内存异常分析
  • 关于单片机编程的循环以及全局变量应用的思考
  • C++string类详解
  • 卷积神经网络搭建实战(一)-----torch库中的MNIST手写数字数据集(简明版)
  • 2025 Android 知识体系总结(含面试要点,持续补充,更新中...)
  • elementui中表单先上传但不请求接口,点击按钮后在请求接口的方式上传文件,及校验
  • el-input自动填充与设置input背景色无效