当前位置: 首页 > 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 网络通信的复杂性促使我们需要一种分层的方法来理解和管理网络。就像建筑一样,我们不会把所有功能都混在一起…...

12.udp

12.udp **1. UDP特性****2. UDP编程框架(C/S模式)****3. UDP发送接收函数****4. UDP编程练习** 1. UDP特性 连接特性:无链接,通信前无需像TCP那样建立连接。可靠性:不可靠,不保证数据按序到达、不保证数据…...

【Leetcode 热题 100】32. 最长有效括号

问题背景 给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号 子串 的长度。 数据约束 0 ≤ s . l e n g t h ≤ 3 1 0 4 0 \le s.length \le 3 \times 10 ^ 4 0≤s.length≤3104 s [ i ] s[i] s[i] 为 ‘(’ 或 ‘…...

Python NumPy(8):NumPy 位运算、NumPy 字符串函数

1 NumPy 位运算 位运算是一种在二进制数字的位级别上进行操作的一类运算,它们直接操作二进制数字的各个位,而不考虑数字的整体值。NumPy 提供了一系列位运算函数,允许对数组中的元素进行逐位操作,这些操作与 Python 的位运算符类似…...

Fork/Join框架_任务分解与并行执行

1 概述 Fork/Join框架是Java 7引入的一个用于并行执行任务的框架。它特别适用于可以递归分解为多个子任务的工作,每个子任务可以独立执行,并且结果可以合并以获得最终结果。Fork/Join框架通过工作窃取(work-stealing)算法提高了多核处理器上的任务执行效率。 2 核心组件 …...

【大厂AI实践】OPPO:大规模知识图谱及其在小布助手中的应用

导读:OPPO知识图谱是OPPO数智工程系统小布助手团队主导、多团队协作建设的自研大规模通用知识图谱,目前已达到数亿实体和数十亿三元组的规模,主要落地在小布助手知识问答、电商搜索等场景。 本文主要分享OPPO知识图谱建设过程中算法相关的技…...

SOME/IP--协议英文原文讲解2

前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 4.1 Speci…...

为大模型提供webui界面的利器:Open WebUI 完全本地离线部署deepseek r1

为大模型提供webui界面的利器:Open WebUI Open WebUI的官网:🏡 Home | Open WebUI 开源代码:WeTab 新标签页 Open WebUI是一个可扩展、功能丰富、用户友好的自托管AI平台,旨在完全离线运行。它支持各种LLM运行程序&am…...

Cyber Security 101-Build Your Cyber Security Career-Security Principles(安全原则)

了解安全三元组以及常见的安全模型和原则。 任务1:介绍 安全已成为一个流行词;每家公司都想声称其产品或服务是安全的。但事实真的如此吗? 在我们开始讨论不同的安全原则之前,了解我们正在保护资产的对手至关重要。您是否试图阻止蹒跚学步…...

react-native网络调试工具Reactotron保姆级教程

在React Native开发过程中,调试和性能优化是至关重要的环节。今天,就来给大家分享一个非常强大的工具——Reactotron,它就像是一个贴心的助手,能帮助我们更轻松地追踪问题、优化性能。下面就是一份保姆级教程哦! 一、…...

Progressive Pretext Task Learning for Human Trajectory Prediction | 文献翻译

祥龙回首留胜景,金蛇起舞贺新程。 概述 行人轨迹预测是一项旨在预测行人未来位置的任务,它通常涵盖了从短期到长期的整个时间范围内的轨迹。然而,现有的研究试图通过单一、统一的训练范式来解决整个轨迹预测问题,往往忽视了行人轨…...

并发编程基础 - 并发编程的概念(C++)

前言 在当今多核处理器普及的时代,并发编程成为开发高性能应用程序的关键技术之一。无论是服务器端应用,桌面软件,还是移动应用,并发编程都扮演着重要角色。本文将详细介绍并发编程的基本概念,结合C语言特性&#xff…...

ARM嵌入式学习--第十天(UART)

--UART介绍 UART(Universal Asynchonous Receiver and Transmitter)通用异步接收器,是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来与PC进行通信,包括与监控…...

OpenEuler学习笔记(十七):OpenEuler搭建Redis高可用生产环境

在OpenEuler上搭建Redis高可用生产环境,通常可以采用Redis Sentinel或Redis Cluster两种方式,以下分别介绍两种方式的搭建步骤: 基于Redis Sentinel的高可用环境搭建 安装Redis 配置软件源:可以使用OpenEuler的默认软件源&#…...

CTF从入门到精通

文章目录 背景知识CTF赛制 背景知识 CTF赛制 1.web安全:通过浏览器访问题目服务器上的网站,寻找网站漏洞(sql注入,xss(钓鱼链接),文件上传,包含漏洞,xxe,ssrf,命令执行&#xff0c…...

java入门笔记基础语法篇(4)

变量 在Java中,每个变量都有一个类型(type)。在声明变量时,变量的类型位于变量 名之前。例如: int days; double salary; long earthPopulation; boolean done; 在Java中,每个声明以分号结束。变量名必须…...

【RocketMQ 存储】- broker 端存储单条消息的逻辑

文章目录 1. 前言2. DefaultMessageStore#asyncPutMessage 添加单条消息2.1 DefaultMessageStore#checkStoreStatus 检查存储服务的状态2.2 DefaultMessageStore#checkMessage 校验消息长度是否合法2.3 CommitLog#asyncPutMessage 核心存储逻辑2.4 MappedFile#appendMessage2.5…...

爬虫基础(四)线程 和 进程 及相关知识点

目录 一、线程和进程 (1)进程 (2)线程 (3)区别 二、串行、并发、并行 (1)串行 (2)并行 (3)并发 三、爬虫中的线程和进程 &am…...

29. C语言 可变参数详解

本章目录: 前言可变参数的基本概念可变参数的工作原理如何使用可变参数 示例:计算多个整数的平均值解析: 更复杂的可变参数示例:打印可变数量的字符串解析: 总结 前言 在C语言中,函数参数的数量通常是固定的&#xff…...

Java CAS操作

通过前面的学习认识到了CPU缓存,Java内存模型,以及线程安全的原子、可见、顺序三大特性。本文则重点认识CAS操作,这是Java并发编程常见的一个操作,AbstractQueuedSynchronizer基于此操作提供了丰富的同步器和各种锁。 CAS&#x…...

KNIME:开源 AI 数据科学

KNIME(Konstanz Information Miner)是一款开源且功能强大的数据科学平台,由德国康斯坦茨大学的软件工程师团队开发,自2004年推出以来,广泛应用于数据分析、数据挖掘、机器学习和可视化等领域。以下是对KNIME的深度介绍…...

超级强大的压缩和解压工具,免费解压

软件介绍 今天要给大家分享一款超厉害的软件 ——ZArchiver,在我心中,它堪称安卓平台目前最为强大的解压软件。 之前,我一直使用 MT 管理器来解压文件。然而,MT 管理器存在一些局限性。比如在处理解压分卷文件时,它有时…...

代码随想录_栈与队列

栈与队列 232.用栈实现队列 232. 用栈实现队列 使用栈实现队列的下列操作: push(x) – 将一个元素放入队列的尾部。 pop() – 从队列首部移除元素。 peek() – 返回队列首部的元素。 empty() – 返回队列是否为空。 思路: 定义两个栈: 入队栈, 出队栈, 控制出入…...

基于STM32的智能停车场管理系统设计

目录 引言系统设计 硬件设计软件设计 系统功能模块 车辆识别与进出管理模块车位检测与引导模块计费与支付模块数据存储与查询模块远程监控与异常报警模块 控制算法 车牌识别与车辆进出管理算法车位检测与引导算法计费与支付处理算法数据存储与远程反馈算法 代码实现 车辆检测与…...

告别重启!Vue CLI 动态代理配置实战:实现热更新与灵活配置

在前端开发中,代理配置是解决跨域问题的常见手段。尤其是在使用 Vue CLI 进行开发时,我们经常需要通过 devServer.proxy 来配置代理。然而,传统的代理配置通常是静态的,修改后需要重启开发服务器,这在频繁调整代理配置…...

Cocos Creator 3.8 2D 游戏开发知识点整理

目录 Cocos Creator 3.8 2D 游戏开发知识点整理 1. Cocos Creator 3.8 概述 2. 2D 游戏核心组件 (1) 节点(Node)与组件(Component) (2) 渲染组件 (3) UI 组件 3. 动画系统 (1) 传统帧动画 (2) 动画编辑器 (3) Spine 和 …...

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.28 存储之道:跨平台数据持久化方案

好的,我将按照您的要求生成一篇高质量的Python NumPy文章。以下是第28篇《存储之道:跨平台数据持久化方案》的完整内容,包括目录、正文和参考文献。 1.28 存储之道:跨平台数据持久化方案 目录 #mermaid-svg-n1z37AP8obEgptkD {f…...

chrome源码剖析—UI架构消息机制

Chrome 浏览器的 UI 架构是高度模块化且基于现代图形技术和用户界面设计理念构建的。它的 UI 架构涵盖了窗口、标签页、控件、通知、菜单等组件的管理和交互。Chrome 的 UI 基本上是通过 views 框架和 Aura(Chrome 自己的 UI 层)构建的,后者又…...

面试经典150题——图的广度优先搜索

文章目录 1、蛇梯棋1.1 题目链接1.2 题目描述1.3 解题代码1.4 解题思路 2、最小基因变化2.1 题目链接2.2 题目描述2.3 解题代码2.4 解题思路 3、单词接龙3.1 题目链接3.2 题目描述3.3 解题代码3.4 解题思路 1、蛇梯棋 1.1 题目链接 点击跳转到题目位置 1.2 题目描述 给你一…...

Day30-【AI思考】-错题分类进阶体系——12维错误定位模型

文章目录 错题分类进阶体系——12维错误定位模型**一、认知层错误(根源性缺陷)****二、操作层错误(执行过程偏差)****三、心理层错误(元认知障碍)****四、进阶错误(专业级陷阱)** 错…...

利用Edu邮箱解锁Notion Pro,提升学习与工作效率

摘要: 本文将详细介绍如何通过Edu教育邮箱申请教育订阅,从而免费获得Notion Pro版的所有高级功能。此外,我们还将简要提及Edu邮箱的其他福利,如申请Azure 100免费VPS和OpenAI。通过对比Notion免费版和Pro版的差异,你将…...

剑指 Offer II 010. 和为 k 的子数组

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20010.%20%E5%92%8C%E4%B8%BA%20k%20%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84/README.md 剑指 Offer II 010. 和为 k 的子数组 题目描述 给定一个正整数数组和一个…...

【外文原版书阅读】《机器学习前置知识》2.用看电影推荐的例子带你深入了解向量点积在机器学习的作用

目录 3.3 Where Are You Looking, Vector? The Dot Product 个人主页:Icomi 大家好,我是Icomi,本专栏是我阅读外文原版书《Before Machine Learning》对于文章中我认为能够增进线性代数与机器学习之间的理解的内容的一个输出,希望…...

Vue.js组件开发-实现全屏平滑移动、自适应图片全屏滑动切换

使用Vue实现全屏平滑移动、自适应图片全屏滑动切换的功能。使用Vue 3和Vue Router,并结合一些CSS样式来完成这个效果。 步骤 创建Vue项目:使用Vue CLI创建一个新的Vue项目。准备图片:将需要展示的图片放在项目的public目录下。创建组件&…...

openRv1126 AI算法部署实战之——ONNX模型部署实战

在RV1126开发板上部署ONNX算法,实时目标检测RTSP传输。视频演示地址 rv1126 yolov5 实时目标检测 rtsp传输_哔哩哔哩_bilibili 一、准备工作 1.从官网下载YOLOv5-v7.0工程(YOLOv5的第7个版本) 手动在线下载: Releases ultraly…...

实验作业管理系统的设计与实现

标题:实验作业管理系统的设计与实现 内容:1.摘要 本系统旨在解决当前实验作业管理中存在的问题,提高管理效率和质量。通过对现有系统的调研和分析,我们确定了系统的功能需求和性能要求,并采用了先进的技术和架构进行设计和实现。系统实现了实…...

【愚公系列】《循序渐进Vue.js 3.x前端开发实践》032-组件的Teleport功能

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主&…...

leetcode——二叉树的最大深度(java)

给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root [1,null,2] 输…...

【PyTorch】3.张量类型转换

个人主页:Icomi 在深度学习蓬勃发展的当下,PyTorch 是不可或缺的工具。它作为强大的深度学习框架,为构建和训练神经网络提供了高效且灵活的平台。神经网络作为人工智能的核心技术,能够处理复杂的数据模式。通过 PyTorch&#xff0…...

自制一个入门STM32 四足机器人具体开发顺序

0 前期准备 1. 知识储备 学习 STM32 微控制器的基础知识,包括 GPIO、定时器、串口通信等外设的使用,可通过官方文档、教程和视频课程进行学习。了解舵机控制原理,因为四足机器人通常使用舵机来实现关节运动。掌握基本的机械结构设计知识&am…...

SpringCloud基础二(完结)

HTTP客户端Feign 在SpringCloud基础一中,我们利用RestTemplate结合服务注册与发现来发起远程调用的代码如下: String url "http://userservice/user/" order.getUserId(); User user restTemplate.getForObject(url, User.class);以上代码就…...

云原生时代,如何构建高效分布式监控系统

文章目录 一.监控现状二.Thanos原理分析SidecarQuerierStoreCompactor 三.Sidecar or ReceiverThanos Receiver工作原理 四.分布式运维架构 一.监控现状 Prometheus是CNCF基金会管理的一个开源监控项目,由于其良好的架构设计和完善的生态,迅速成为了监控…...

WordPress使用(1)

1. 概述 WordPress是一个开源博客框架,配合不同主题,可以有多种展现方式,博客、企业官网、CMS系统等,都可以很好的实现。 官网:博客工具、发布平台和内容管理系统 – WordPress.org China 简体中文,这里可…...

小白爬虫冒险之反“反爬”:无限debugger、禁用开发者工具、干扰控制台...(持续更新)

背景浅谈 小白踏足JS逆向领域也有一年了,对于逆向这个需求呢主要要求就是让我们去破解**“反爬机制”**,即反“反爬”,脚本处理层面一般都是decipher网站对request设置的cipher,比如破解一个DES/AES加密拿到key。这篇文章先不去谈…...

Time Constant | RC、RL 和 RLC 电路中的时间常数

注:本文为 “Time Constant” 相关文章合辑。 机翻,未校。 How To Find The Time Constant in RC and RL Circuits June 8, 2024 💡 Key learnings: 关键学习点: Time Constant Definition: The time constant (τ) is define…...

Python爬虫学习第三弹 —— Xpath 页面解析 实现无广百·度

早上好啊,大佬们。上回使用 Beautiful Soup 进行页面解析的内容是不是已经理解得十分透彻了~ 这回我们再来尝试使用另外一种页面解析,来重构上一期里写的那些代码。 讲完Xpath之后,小白兔会带大家解决上期里百度搜索的代码编写,保…...

JS 正则表达式 -- 分组【详解】含普通分组、命名分组、反向引用

普通分组 使用圆括号 () 来创建分组捕获匹配的内容,通过正则表达式匹配结果的数组来访问这些捕获的内容。 const str "Hello, World!"; const regex /(Hello), (World)!$/; const match str.match(regex);if (match) {console.log("完整匹配结果…...

Leetcode刷题-不定长滑动窗口

分享丨【题单】滑动窗口与双指针(定长/不定长/单序列/双序列/三指针/分组循环) - 力扣(LeetCode) 3090 class Solution:def maximumLengthSubstring(self, s: str) -> int:c Counter()res 0rk -1for i in range(len(s)):i…...

【Rust自学】15.6. RefCell与内部可变性:“摆脱”安全性限制

题外话,这篇文章一共4050字,是截止到目前为止最长的文章,如果你能坚持读完并理解,那真的很强! 喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以…...

护眼好帮手:Windows显示器调节工具

在长时间使用电脑的过程中,显示器的亮度和色温对眼睛的舒适度有着重要影响。传统的显示器调节方式不仅操作繁琐,而且在低亮度下容易导致色彩失真。因此,今天我想为大家介绍一款适用于Windows系统的护眼工具,它可以帮助你轻松调节显…...