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

7层还是4层?网络模型又为什么要分层?

在这里插入图片描述

~犬📰余~

“我欲贱而贵,愚而智,贫而富,可乎?
曰:其唯学乎”

一、为什么要分层

\quad 网络通信的复杂性促使我们需要一种分层的方法来理解和管理网络。就像建筑一样,我们不会把所有功能都混在一起,而是分成地基、框架、管道、装修等不同层次,网络通信也是如此,我们需要将复杂的网络通信过程分解成相对独立的层次。

\quad 这种分层的思想可能看起来理所当然,但实际上这是网络技术发展过程中的一个重要突破。在早期的网络系统中,所有功能都混杂在一起,这导致系统难以维护和扩展。通过引入分层模型,我们不仅让网络设计变得更加清晰,更重要的是为不同厂商的设备互联互通提供了可能。

\quad 分层模型的核心在于定义了标准的层间接口。每一层都为上层提供特定的服务,同时又使用下层提供的服务。这种设计让各层能够独立演进,比如我们可以把铜缆换成光纤,只要保持接口不变,上层应用就完全不需要改动。这正是计算机网络能够持续发展的关键所在。

\quad 分层模型不仅是一个技术框架,更是一种解决复杂问题的方法论。它启示我们,面对复杂系统,适当的抽象和分层是控制复杂度的有效手段。这种思想已经超越了网络领域,成为了整个软件工程中的重要原则。

二、OSI七层模型详解

在这里插入图片描述

\quad OSI(开放系统互连)参考模型是由ISO组织提出的一个规范化网络通信模型。虽然如今实际应用更多的是TCP/IP模型,但OSI模型在理论上的完备性使其成为理解网络分层的最佳框架。

\quad 从整体来看,OSI模型将网络通信分为七层,从上到下分别是应用层、表示层、会话层、传输层、网络层、数据链路层和物理层:

  • 应用层是最贴近用户的一层,它为应用程序提供网络服务。我们每天使用的Web浏览、电子邮件、文件传输等功能都在这一层实现。它就像是一个业务员,直接面对客户,处理具体的业务需求。
  • 表示层负责数据格式的转换和统一。就像两个使用不同语言的人交流需要翻译一样,不同系统之间的通信也需要数据格式的转换。此外,数据的加密解密、压缩解压缩等工作也在这一层完成。
  • 会话层管理应用程序之间的通信会话,负责建立、维护和释放会话。它就像是一个电话接线员,负责建立通话、保持通话,并在通话结束时断开连接。
  • 传输层确保数据能够完整地从源端传输到目标端,它是整个模型的核心。这一层就像是快递公司的配送系统,不仅要确保包裹能够送达,还要保证包裹的完整性。TCP和UDP就是这层最重要的两个协议。
  • 网络层负责数据包的路由和转发。如果说传输层像是快递公司的配送系统,那网络层就像是快递公司的分拣中心,负责确定包裹的传输路线。IP协议就工作在这一层,它为网络上的每个设备分配地址,并负责选择数据传输的路径。
  • 数据链路层在物理传输的基础上,将数据组织成帧,并处理帧的传输控制。它就像是高速公路的红绿灯系统,控制着数据流的通行,确保数据传输的可靠性。
  • 物理层是整个模型的基础,它定义了数据传输的物理媒介和接口标准。就像高速公路的路面一样,它提供了数据传输的基础设施,规定了如何在物理介质上传输比特流。

\quad 这七层结构不是简单的堆叠,而是通过严格定义的接口紧密配合。每一层都利用下层提供的服务完成自己的功能,同时又为上层提供服务。这种层层递进的结构,让复杂的网络通信变得有序和可控。

三、TCP/IP四层模型剖析

在这里插入图片描述
\quad TCP/IP模型源于ARPANET项目,是一个从实际需求中成长起来的网络架构。不同于OSI模型从理论推导到实践,TCP/IP模型是在解决实际问题的过程中逐步形成的,这也使它成为了现代互联网的主流架构。

\quad TCP/IP模型将网络通信分为四层:应用层、传输层、网际层和网络接口层。这种分层方式立足于实际应用,在保证必要功能的同时,也兼顾了实现的效率。每一层的设计都紧密围绕着实际需求,避免了复杂的层次划分。

  • 应用层整合了OSI模型中应用层、表示层和会话层的功能。这种整合源于实践观察:在实际应用中,这三层功能往往需要紧密配合。例如,HTTP协议在传输网页时,不仅要处理数据的表示格式,还要维护客户端与服务器之间的会话状态。这种设计显著提升了应用层协议的实现效率。
  • 传输层的定位与OSI模型相似,但实现更加聚焦于实际需求。TCP/IP模型在这一层提供了两个核心协议:面向连接的TCP和无连接的UDP。这种设计让应用程序能够根据实际需求,在可靠性和效率之间做出选择。正是这种灵活性,使TCP/IP能够适应各种应用场景。
  • 网际层(也称互联网层)是TCP/IP模型的核心创新。它通过IP协议解决了异构网络互联的关键问题:如何为互联网上的每个设备分配唯一的地址,以及如何在复杂的网络环境中找到目标地址。这一层的设计为今天的互联网奠定了基础架构。
  • 网络接口层对应OSI模型中的数据链路层和物理层。这一层专注于在实际的物理网络上传输数据包,同时保持了足够的灵活性,能够适应各种网络硬件技术。这种设计为底层技术的演进预留了空间。

\quad TCP/IP模型的广泛应用,源于其对实际需求的准确把握。它为互联网的发展提供了一个稳定而灵活的框架,能够适应新技术的不断发展。这个四层模型通过多年的实践检验,展现出了强大的生命力,成为了现代互联网的技术基石。

四、模型对比与分析

在这里插入图片描述
\quad OSI模型和TCP/IP模型反映了两种不同的网络设计思路。OSI模型采用自顶向下的设计方法,先构建理论框架,再定义具体协议。这种方式使得每一层的功能定义严谨,层间接口规范清晰。TCP/IP模型则采用自底向上的方式,从解决实际问题出发,在实践中逐步形成模型。这使得TCP/IP各层的功能定义更加务实。

\quad 从层次划分来看,OSI模型将网络通信分为七个层次,每层功能单一,界面分明。而TCP/IP模型采用四层结构,将应用层、表示层和会话层合并为应用层,将数据链路层和物理层合并为网络接口层。这种差异反映了两种模型对复杂性控制的不同思路。

\quad 在实际应用中,两种模型都发挥着重要作用。OSI模型为网络通信提供了一个清晰的概念框架,它详细的分层定义对理解网络通信原理具有重要价值。TCP/IP模型则通过其简练的四层结构,为互联网的实际实现提供了有效的指导。

在这里插入图片描述

关注犬余,共同进步

技术从此不孤单

相关文章:

7层还是4层?网络模型又为什么要分层?

~犬📰余~ “我欲贱而贵,愚而智,贫而富,可乎? 曰:其唯学乎” 一、为什么要分层 \quad 网络通信的复杂性促使我们需要一种分层的方法来理解和管理网络。就像建筑一样,我们不会把所有功能都混在一起…...

C++:抽象类习题

题目内容: 求正方体、球、圆柱的表面积,抽象出一个公共的基类Container为抽象类,在其中定义一个公共的数据成员radius(此数据可以作为正方形的边长、球的半径、圆柱体底面圆半径),以及求表面积的纯虚函数area()。由此抽象类派生出…...

C++ 泛型编程指南02 (模板参数的类型推导)

文章目录 一 深入了解C中的函数模板类型推断什么是类型推断?使用Boost TypeIndex库进行类型推断分析示例代码关键点解析 2. 理解函数模板类型推断2.1 指针或引用类型2.1.1 忽略引用2.1.2 保持const属性2.1.3 处理指针类型 2.2 万能引用类型2.3 传值方式2.4 传值方式…...

音视频入门基础:RTP专题(5)——FFmpeg源码中,解析SDP的实现

一、引言 FFmpeg源码中通过ff_sdp_parse函数解析SDP。该函数定义在libavformat/rtsp.c中: int ff_sdp_parse(AVFormatContext *s, const char *content) {const char *p;int letter, i;char buf[SDP_MAX_SIZE], *q;SDPParseState sdp_parse_state { { 0 } }, *s1…...

计算机网络 应用层 笔记 (电子邮件系统,SMTP,POP3,MIME,IMAP,万维网,HTTP,html)

电子邮件系统: SMTP协议 基本概念 工作原理 连接建立: 命令交互 客户端发送命令: 服务器响应: 邮件传输: 连接关闭: 主要命令 邮件发送流程 SMTP的缺点: MIME: POP3协议 基本概念…...

【视频+图文详解】HTML基础3-html常用标签

图文教程 html常用标签 常用标签 1. 文档结构 <!DOCTYPE html>&#xff1a;声明HTML文档类型。<html>&#xff1a;定义HTML文档的根元素。<head>&#xff1a;定义文档头部&#xff0c;包含元数据。<title>&#xff1a;设置网页标题&#xff0c;浏览…...

FreeRTOS学习 --- 消息队列

队列简介 队列是任务到任务、任务到中断、中断到任务数据交流的一种机制&#xff08;消息传递&#xff09; 全局变量的弊端&#xff1a;数据无保护&#xff0c;导致数据不安全&#xff0c;当多个任务同时对该变量操作时&#xff0c;数据易受损 使用队列的情况如下&#xff1a;…...

PHP If...Else 语句详解

PHP If...Else 语句详解 引言 在PHP编程中&#xff0c;if...else语句是流程控制的重要组成部分&#xff0c;它允许程序根据条件判断执行不同的代码块。本文将详细解析PHP中的if...else语句&#xff0c;包括其基本用法、高级技巧以及注意事项。 一、基本用法 if...else语句的…...

pytorch使用SVM实现文本分类

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 完整代码&#xff1a; import torch import torch.nn as nn import torch.optim as optim import jieba import numpy as np from sklearn.model_selection import train_test_split from sklearn.feature_extract…...

安卓(android)读取手机通讯录【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的&#xff08;如果代码有错漏&#xff0c;可在代码地址查看&#xff09; 1.熟悉内容提供者(Content Provider)的概念和作用。 2.掌握内容提供者的创建和使用方法。 4.掌握内容URI的结构和用途。 二、实验条件 1.熟悉内容提供者的工作原理。 2.掌握内容提供者访问其…...

【Qt】常用的容器

Qt提供了多个基于模板的容器类&#xff0c;这些容器类可用于存储指定类型的数据项。例如常用的字符串列表类 QStringList 可用来操作一个 QList<QString>列表。 Qt的容器类比标准模板库(standard template library&#xff0c;STL)中的容器类更轻巧、使用更安全且更易于使…...

基于UKF-IMM无迹卡尔曼滤波与交互式多模型的轨迹跟踪算法matlab仿真,对比EKF-IMM和UKF

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于UKF-IMM无迹卡尔曼滤波与交互式多模型的轨迹跟踪算法matlab仿真,对比EKF-IMM和UKF。 2.测试软件版本以及运行结果展示 MATLAB2022A版本运行 3.核心程序 .…...

分布式事务组件Seata简介与使用,搭配Nacos统一管理服务端和客户端配置

文章目录 一. Seata简介二. 官方文档三. Seata分布式事务代码实现0. 环境简介1. 添加undo_log表2. 添加依赖3. 添加配置4. 开启Seata事务管理5. 启动演示 四. Seata Server配置Nacos1. 修改配置类型2. 创建Nacos配置 五. Seata Client配置Nacos1. 增加Seata关联Nacos的配置2. 在…...

JavaScript常用的内置构造函数

JavaScript作为一种广泛应用的编程语言&#xff0c;提供了丰富的内置构造函数&#xff0c;帮助开发者处理不同类型的数据和操作。这些内置构造函数在创建和操作对象时非常有用。本文将详细介绍JavaScript中常用的内置构造函数及其用途。 常用内置构造函数概述 1. Object Obj…...

25寒假算法刷题 | Day1 | LeetCode 240. 搜索二维矩阵 II,148. 排序链表

目录 240. 搜索二维矩阵 II题目描述题解 148. 排序链表题目描述题解 240. 搜索二维矩阵 II 点此跳转题目链接 题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到…...

MQTT知识

MQTT协议 MQTT 是一种基于发布/订阅模式的轻量级消息传输协议&#xff0c;专门针对低带宽和不稳定网络环境的物联网应用而设计&#xff0c;可以用极少的代码为联网设备提供实时可靠的消息服务。MQTT 协议广泛应用于物联网、移动互联网、智能硬件、车联网、智慧城市、远程医疗、…...

【机器学习与数据挖掘实战】案例11:基于灰色预测和SVR的企业所得税预测分析

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈机器学习与数据挖掘实战 ⌋ ⌋ ⌋ 机器学习是人工智能的一个分支,专注于让计算机系统通过数据学习和改进。它利用统计和计算方法,使模型能够从数据中自动提取特征并做出预测或决策。数据挖掘则是从大型数据集中发现模式、关联…...

新一代搜索引擎,是 ES 的15倍?

Manticore Search介绍 Manticore Search 是一个使用 C 开发的高性能搜索引擎&#xff0c;创建于 2017 年&#xff0c;其前身是 Sphinx Search 。Manticore Search 充分利用了 Sphinx&#xff0c;显着改进了它的功能&#xff0c;修复了数百个错误&#xff0c;几乎完全重写了代码…...

使用 Context API 管理临时状态,避免 Redux/Zustand 的持久化陷阱

在开发 React Native 应用时&#xff0c;我们经常需要管理全局状态&#xff0c;比如用户信息、主题设置、网络状态等。而对于某些临时状态&#xff0c;例如 数据同步进行中的状态 (isSyncing)&#xff0c;我们应该选择什么方式来管理它&#xff1f; 在项目开发过程中&#xff…...

PyTorch框架——基于深度学习YOLOv8神经网络学生课堂行为检测识别系统

基于YOLOv8深度学习的学生课堂行为检测识别系统&#xff0c;其能识别三种学生课堂行为&#xff1a;names: [举手, 读书, 写字] 具体图片见如下&#xff1a; 第一步&#xff1a;YOLOv8介绍 YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...