计算机网络 ---- 计算机网络的体系结构【计算机网络的分层结构】

news2024/9/20 18:52:17

一、以快递网络来引入分层思想

1.1 “分层” 的设计思想【将庞大而复杂的问题,转化为若干较小的局部问题】

      从我们最熟悉的快递网络出发,在你家附近会有一个快递终点站A,在其他的城市,也会有这种快递终点站,比如说快递终点站B,这些终点站会为顾客服务。快递终点站之间会有许多快递中转站组成的快递网络负责转运包裹,这样就组成了完整的快递网络。

      这个快递网络是一个非常复杂的系统,需要完成很多功能,比如说:

  • 货物打包
  • 取件、派件
  • 冷链存储(对于一些特殊的快件)
  • 包裹“路由”(给包裹规划转运路径)
  • 运输包裹的方式(采用飞机运输or火车运输还是汽车运输)
  • .........

      现实中的快递网络,采用了分层的设计思想,将庞大而复杂的问题,转化为若干较小的局部问题。详细请参考1.2小节。

1.2 快递网络的四层体系结构

      比如说我们将这种复杂的快递网络拆分成四层体系结构,快递终点站的最底层是运输部门, 往上是仓库部门,再往上是快递员,再往上是顾客。
      我们可以让不同的层次去承担不同的功能,比如说,第四层的顾客,让他实现货物打包的功能,快递员这一层让他实现取件派件的功能,仓库部门让他去实现冷链存储以及快件路由的功能,最下层的运输部门让他去实现包裹运输的功能。每一个快递终点站都需要具备这四个层次,相比之下,快递中转站只需要两个层次,只需要运输部门和仓库部门这两个功能。快递中转站与快递终点站会有公路铁路的连接。
      在这种体系结构之下,一个包裹的运输过程是这样的,首先,寄件的顾客对货物进行打包,然后快递员进行取件,取件完成后,请求仓库部门进行包裹的路由功能(即包裹准备发往哪个快递中转站),然后交由运输部门将包裹运输至快递中转站,包裹进入中转站之后,一般会入库,然后由仓库部门决定包裹下一站该去哪里,即等待下一次的路由,确定了包裹要发往的位置之后,运输部门开始进行包裹的运输,进而运输至下一个站点,到达快递终点站,然后入库,然后在此请求仓库部门进行包裹的再次路由,这个时候仓库部门将货物交给快递员,快递员进行派件交给顾客。这样,我们就完成了一次货物的运输工作。


可以看到,这个复杂的快递网络被拆分成了四个层次,每个层次会负责实现一个或者多个功能。 

  • 将复杂的快递网络在逻辑上划分为多个层次,并将各种“功能”安排在合适的层次中
  • 不同类型的节点,实现的功能层次可能不一样 

二、计算机网络要完成的功能 

2.1 计算机网络分层设计 

 

计算机网络是一个非常复杂的系统,要完成诸多功能,如:

  • 差错控制:确保数据在传输过程中不出错。
  • 流量控制:发送端的发送速率必须使接收端来得及接收,不要太快。
  • 分段和重装:发送端将要发送的数据块划分为更小的单位,并在接收端将其还原。
  • 复用和分用:发送端几个高层会话复用一条低层的连接,在接收端再进行分用。
  • 连接建立和释放:交换数据前先建立一条逻辑连接,数据传送结束后释放连接。

      那么应如何把这些功能组织起来才能让上面整个计算机网络结构看起来清晰明了呢?这就不得不用到我们在第一大节中学习到的分层设计思想了。
      比如说我们将计算机网络分成五个层次,如下:

注:从主机到路由器的线路是物理传输媒体(0层),一般是光纤或网线。

  • 将复杂的计算机网络在逻辑上划分为多个层次,并将各种“功能”安排在合适的层次中
  • 不同类型的节点,实现的功能层次可能不一样

我们可以发现,数据在计算机网络中的传输过程和货物(包裹)在快递网络中的传输过程类似。 

      我们思考这样一个问题,在第一大节提到的快递网络只能设计四层吗?答案:当然不是的,我们可以再增加一层,请看第2.2小节。

2.2 快递网络的五层体系结构

      我们在1.2小节中的四层快递网络体系结构中引入快递驿站这一层,如下图所示:


总结:

  • 分层结构的设计并不唯一,可以根据实际需求增加或减少层次
  • 同一个功能可以在多个层次中重复出现(比如说:我们可以将货物打包这项功能交由快递驿站来完成,这样一来的话,货物打包既出现在了顾客这一层,又出现在了快递驿站这一层)

2.3 三种常见的计算机网络体系结构

      根据2.2小节的思想,同样的道理,我们也可以将计算机网络设计成四层的结构以及七层的结构,如下图所示:

三、网络体系结构的概念

3.1 定义 

      计算机网络的体系结构(Network Architecture)是计算机网络的各层及其协议的集合,换种说法,就是这个计算机网络及其构件所应完成的功能的精确定义(不涉及实现)。即:当我们设计一个计算机网络体系结构的时候, 我们只需要精确的定义出,分为几层,每一层需要实现哪些功能,每个功能需要由什么协议来实现。
      实现(implementation)是遵循这种体系结构的前提下,用何种硬件或软件完成这些功能的问题。

注意:
      这些功能究竟是用何种硬件或软件完成的,则是一个遵循这种体系结构的实现(implementation)的问题。体系结构的英文名词architecture的原意是建筑学或建筑的设计和风格。它和一个具体的建筑物的概念很不相同。例如,我们可以走进一个明代的建筑物中,但却不能走进一个明代的建筑风格之中。同理,我们也不能把一个具体的计算机网络说成是一个抽象的网络体系结构。总之,体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。

3.2 具有五层协议的体系结构各层之间的关系

3.2.1 从水平来看各层之间的关系 

  • 实体:在计算机网络的分层结构中,第n层中的活动元素(软件+硬件)通常称为第n层实体。【比如说,我们要实现第五层的这些功能,那么会有一些对应的软件硬件模块工作在第五层,那么我们把涉及到第五层的软件硬件模块看作是第五层的活动元素,这些东西就是第五层的实体】不同机器上的同一层称为对等层,同一层的实体称为对等实体。
  • 协议:即网络协议(Network Protocol),是控制对等实体之间进行通信的规则的集合,是水平的。

百度百科解释网络协议:网络协议指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合。

网络协议是由三个要素组成:
(1)语义。语义是解释控制信息每个部分的意义。它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应。(例如:协议中需要明确规定:发送方发送完数据后,接收方是否需要应答,以及应答的种类有哪些(如:传输成功、传输失败))
(2)语法。语法是用户数据与控制信息的结构与格式,以及数据出现的顺序。例如:协议控制信息(首部)部分占几个字节、每个字节是什么含义、协议的数据部分最多有多少字节。
(3)时序。时序是对事件发生顺序的详细说明。(也可称为“同步”)。
      人们形象地把这三个要素描述为︰语义表示要做什么,语法表示要怎么做,时序表示做的顺序。

 3.2.2 从垂直来看各层之间的关系

  • 接口:即同一节点内相邻两层的实体交换信息的逻辑接口,又称为服务访问点(Service AccessPoint,SAP) 。
  • 服务:服务是指下层为紧邻的上层提供的功能调用,它是垂直的。

3.3 数据的传输过程(水平视角、垂直视角)

3.3.1 水平视角

 我们不妨假设应用层分别实现L、M、N这几个功能,其中功能N是将数据压缩传输,以节省流量,基于这样的设计,发送方的第五层实体需要把数据进行压缩,压缩完成之后再交给下面的层次进行处理和传输。而接收方的第五层实体,它需要将传输过来的数据进行解压缩,解压之后,再把数据交给接收方。
因此,从水平视角来看,这两个用户感受不到数据被压缩和解压的过程。在他们俩看来,数据似乎是被原模原样的传输,但事实上,发送方、接收方的第五层实体分别做了压缩和解压缩的过程。

那么为了支持数据压缩这样的功能,我们不妨制定一个协议,这个协议叫做YSCS协议,即压缩传输协议,如下图所示:

      我们知道,一个协议它是规定水平方向上的两个对等实体之间的通信规则,为了实现压缩传输这个功能,我们需要在协议当中规定,发送方采用了何种数据压缩算法,并将使用的何种压缩算法记录在首部中,这是为了方便接收方根据首部来选择解压缩算法。
      从上面这个例子来看,从水平视角来看,对等实体之间,他们的通信需要遵循某种协议,而遵循这个协议的目的是为了实现某种功能。

相信理解了上面这个例子之后,我们便可以知道: 计算机网络为什么要分层?为什么要制定协议?
答案:计算机网络功能复杂→采用分层结构,将诸多功能合理地划分在不同层次→对等层之间制定协议,以实现功能。

 

3.3.2 垂直视角

      假设左边这个用户要给右边这个用户发送一些数据,那这些数据首先会交给应用层进行处理,应  用层会实现某些功能,为了实现某些功能,应用层和应用层之间通信需要遵循某种协议,因此就需要给这些数据增加协议的首部,我们不妨把它称为应用层的首部。
      应用层按照协议的规定做了相应地处理之后,又会把带有应用层首部的数据交给传输层,传输层和传输层之间同样也要遵循某种协议,因此数据到达传输层后也会增加首部。
      同理,数据在网络层和数据链路层时也会添加对应的首部,紧接着,数据链路层将带有四层(应用层、传输层、网络层、数据链路层)首部或尾部信息的数据交给物理层,在这种五层体系结构当中,物理层不会对这些数据进行处理,他只负责将这些二进制数据原模原样的传输到传输媒体上,这样就可以让数据到达下一个节点。
      数据到达下一个节点(路由器)之后,首先交给物理层,紧接着物理层再交给数据链路层,该层的实体,会根据本层的协议规定,检查首部以及尾部的这些控制信息,然后根据这些控制信息,完成数据链路层需要完成的功能。
      接下来数据链路层会将数据会交给网络层进行处理,网络层通过本层的协议控制信息去实现本层需要完成的功能,具体来说,这层要实现的功能是路由,也就是数据分组的存储转发功能,所以第三层的控制信息会包含发送方以及接收方的IP地址,路由器的第三层实体就会根据这些控制信息去决定下一跳应该将数据分组转发到什么位置。

      路由器的第三层实体会对H3的控制信息做简单的处理【目前先不展开讨论】,处理完成之后,会将数据分组交给数据链路层,数据链路层会根据对等实体之间的协议去增加首部或尾部的控制信息,然后再把这些数据交给物理层,物理层再把这些数据通过传输媒体传给下一个节点。

      接收方主机物理层接收到这些数据之后,会将其交给数据链路层,后面的过程与前面的类似,逐层往上处理,逐层拆掉首部或尾部控制信息,每一层的实体只关注本层的控制信息,最终交给用户的是一个干净的、没有首部信息的数据。

3.4 PDU、SDU、PCI的概念 

 

四、总结

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2128248.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

贷款防坑秘籍:揭秘几大陷阱,让套路无所遁形!

今日话题聚焦于贷款领域的潜藏陷阱,旨在助您避开精心设计的圈套,确保金融决策的智慧与安全。我们常误以为寻得了可靠的助力,实则可能步入了层层迷局,以下便是一系列揭秘与警示: 首先,警惕“超低利率”的甜蜜…

终于!!把企业轻量级数据中台的构建路径理清了!

一、标准化轻量级数据中台落地探索 尽管数据中台在近些年的热度有所下降,但大中型企业依然对其建设非常重视。企业通过数据中台的搭建,旨在构建统一的数据开发、管理和应用规范,创造标准统一的数据资产,夯实数据互通的基础&#…

对话:LLC磁集成能否成为充电桩模块电源常态产品?

编者按:在终端需求疲软的影响下,前两年火热的新能源汽车、光伏、储能等新能源领域也掀起了价格战,储能已正式进入0.5元时代,新能源汽车领域价格战更是一轮接一轮,成本管控成为2024年企业绕不开的话题。 接下来我们将围…

2024北京IC WORLD大会启幕:高频科技展位人气高涨,共绘半导体产业“芯”篇章

9月11日,2024北京微电子国际研讨会暨IC WORLD大会在北人亦创国际会展中心盛大启幕。此次大会汇集200余家集成电路装备、零部件到材料等全领域企业,纷纷展出最新成果,共同推动集成电路产业向聚集化、链条化、高端化方向迈进。 高频科技作为半导体水系统领域的代表性企业受邀参加…

机器学习 第14章 概率图模型

目录 隐马尔可夫模型(HMM)马尔可夫随机场(MRF)条件随机场(CRF)学习与推断变量消去信念传播 近似推断MCMC采样变分推断 话题模型 隐马尔可夫模型(HMM) 隐马尔可夫模型 (Hidden Markov Model, HMM) 是一种统…

SpringBoot景区分时预约系统---附源码77951

目 录 摘要 1 绪论 1.1 选题背景与意义 1.2开发现状 1.3论文结构与章节安排 2 景区分时预约系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分…

Sirius:一种高效的上下文稀疏性校正方法,恢复稀疏模型在推理任务上的性能...

论文:Sirius: Contextual Sparsity with Correction for Efficient LLMs地址:https://www.arxiv.org/abs/2409.03856 研究背景 研究问题:这篇文章要解决的问题是大型语言模型(LLMs)在推理效率上的挑战。随着LLMs的广泛…

智能获客系统,是企业引爆营销潜力的新工具

企业为争取每一位潜在客户投入了大量资源和精力,然而即使拥有最先进的营销策略和庞大的营销预算,面对海量数据和复杂的用户行为模式,传统的获客方式依然效能有限。如果您的企业也有这方面的痛点,不让考虑使用智能获客系统&#xf…

影刀RPA实战:自动化同步商品库存至各大电商平台(二)

在当今的电商世界中,多平台运营已成为常态。商家需要在多个电商平台上维护商品库存的一致性,以确保顾客体验的流畅性和库存管理的高效性。运营人员每天面临的问题,就是把公司的商品库存数据,间断性的同步到电商平台上,…

Django+Vue基于OpenCV的人脸识别系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者&…

Apache OFBiz 远程代码执行漏洞复现(CVE-2024-45195)并拿到shell

FOFA&#xff1a;app"Apache_OFBiz" 复现&#xff1a; VPS上准备两个文件 rceschema.xml <data-files xsi:noNamespaceSchemaLocation"http://ofbiz.apache.org/dtds/datafiles.xsd" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"…

机器学习--K-Means

K均值聚类 算法过程 K − m e a n s K-means K−means 是 聚类 c l u s t e r i n g clustering clustering 算法的一种&#xff0c;就是给你一坨东西&#xff0c;让你给他们分类&#xff1a; 我们的 K − m e a n s K-means K−means 大概是这样一个流程&#xff1a; 第一…

大模型的实践应用29-大语言模型的RLHF(人类反馈强化学习)的具体应用与原理介绍

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用29-大语言模型的RLHF(人类反馈强化学习)的具体应用与原理介绍。在当今人工智能发展的浪潮中,大语言模型(Large Language Models, LLMs)凭借其强大的语言理解和生成能力,成为了研究与应用的热点。而在这股浪潮中,一…

python小脚本,实时监测服务器是否宕机状态,并发送到指定群组

一&#xff0c;前言 众所周知&#xff0c;市面上监控软件很多&#xff0c;有Zabbix&#xff0c;Prometheus等&#xff0c;但对于相对简单的功能&#xff0c;需要第一时间发现问题&#xff0c;如服务器宕机&#xff0c;zabbix和Prometheus都需要等几分钟才会报警。 想到最原始…

链路层和交换网_计算机网络

文章目录 链路层和交换网链路层多路访问链路和协议 ARPWeb 页面请求的历程 链路层和交换网 target&#xff1a; 分组是如何通过构成端到端通信路径的各段链路的&#xff1f;网络层的数据报是怎样被封装进链路层帧的呢&#xff1f;不同的通信链路能够采用不同的链路层协议吗&a…

【Linux】常见指令(2)

1.cp指令 cp指令用于复制文件或目录。 使用&#xff1a;cp [选项] [源文件或目录] [目标文件或路径] 常使用的选项是-r&#xff0c;即递归式复制。 接下来给两个使用示例来看&#xff1a; 当前有这些文件&#xff1a; 复制后&#xff1a; 2.mv指令 mv指令具有两个作用&am…

通义千问× DataV:AIGC “大时代”与可视化“小进步”

云布道师 阿里云数据可视化产品 DataV 借助“通义千问”大模型能力&#xff0c;推出“智能助手 DataV Copilot ”&#xff1b;通过代码自动生成、智能样式设计、“对话式”业务模版创建等功能&#xff0c;全面提速数据可视化应用开发效率。 一、DataV AI 探索之路&#xff1a…

闪存产品概述 NAND NOR FLASH

随着国内对集成电路&#xff0c;特别是存储芯片的重视&#xff0c;前来咨询我们关于NOR Flash&#xff0c;NAND Flash&#xff0c;SD NAND, eMMC, Raw NAND的客户越来越多了。这里我们专门写了这篇文章&#xff1a;1&#xff0c;把常用的存储产品做了分类; 2把一些产品的特点做…

Leetcode 188. 买卖股票的最佳时机 Ⅳ 状态机dp C++实现

Leetcode 188.买卖股票的最佳时机 Ⅳ 问题&#xff1a;给你一个整数数组 prices 和一个整数 k &#xff0c;其中 prices[i] 是某支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说&#xff0c;你最多可以买 k 次&…

Dubbo--高性能RPC框架

文章目录 Dubbo介绍Dubbo基本架构Dubbo是什么&#xff0c;它能做什么 Dubbo入门示例1.准备工作2.创建Maven项目3.添加依赖3.1提供者服务3.2消费者服务 4.创建服务接口5.实现服务接口6.配置服务提供者7.配置服务消费者8.启动 ZooKeeper9.运行服务提供者10.运行服务消费者 Dubbo介…