首页 > 其他分享 >为什么计网体系结构要进行分层?(计网体系结构分层的必要性)

为什么计网体系结构要进行分层?(计网体系结构分层的必要性)

时间:2024-08-06 22:27:56浏览次数:9  
标签:问题 主机 网络 计网 传输 分层 进程 数据包 体系结构

计算机网络体系结构

首先,我们来看一下我们最常用的计算机网络的体系结构:OSI原理参考原型将计算机网络分成了五层,自下而上分别是物理层,数据链路层,网络层,运输层以及应用层。我记得刚开始学习的时候就很好奇,为什么要将计算机网络进行分层呢?为什么要分为这五个层呢?经过我后来对计算机网络的学习之后再回头看才发现对计网体系分层是多么的重要,对于学习者进行学习的时候是多么的方便。在这里,我将对计算机网络体系结构的五层进行逐一讲解,方便大家理清楚原因。

一:物理层的必要性

首先我们来从最简单的问题出发:

就是刚开始的两个计算机通过一条链路相连,这时我们需要考虑的主要问题:

1.采用什么传输媒体(介质)进行传输:

例如同轴电缆,双控线电缆,光纤,光缆等。

2.用户主机,交换机以及路由器等网络设备需要采用什么物理接口来传输媒体:

例如最常见的RJ45以太网接口;

3.采用什么信号表示比特0或1:

例如,使用数字基带信号,高电平表示比特1,低电平表示比特0。

我们可以把以上问题规划到物理层,严格来说,传输媒体并不属于物理层范畴。

然而实用的计算机网络,往往由多台计算机互连而成,例如,主机A,B,C通过总线互连成了一个总线型网络,假设我们已经解决了物理层的问题,那这个总线上我们还需要解决的问题

假设主机A要给主机B发送数据,表示数据的信号会通过总线传播到总线上的每一个主机。那么问题来了,主机B如何知道这是A发送给它的数据,进而接收该数据?主机C又如何知道,这不是发送给它的,从而丢弃该数据呢?这就引出了以下问题:

二:数据链路层的必要性

1.如何标识网络中各主机(主机编址,例如MAC地址)?

主机在发送数据时,应该给数据附加上源地址和目的地址,当其他主机收到后,根据目的地址和自身地址是否匹配来决定是否接收该地址,还可以通过源地址知道是那个主机发来的数据,这就又引出了一个问题,目的主机如何从信号所表示的一连串比特流中,区分出地址和数据,也就是需要解决数据包的封装格式问题。

2.从比特流中区分出地址和数据(封装数据格式

3.协调各主机争用总线(媒体接入控制

需要说明的是,上述这种总线型网络早已淘汰,现在常用的是使用以太网交换机将多台主机互连而成的交换式以太网。在交换式以太网中,多对主机之间可以同时进行通信,而不会产生碰撞,那么以太网交换机又是如何实现的呢?

4.以太网交换机的实现(自学习和转发帧

而且交换式以太网有线网络很少出现误码的情况,但是无线网络很容易误码,因此下一个需要考虑的问题,就是数据在传输过程中是否出现了误码的问题。

5.检测数据是否误码(差错检测

当检测到数据包有误码时,是直接丢弃,然后什么也不做,又或者是想办法让发送方重传有误码的数据包,这就引出了出现传输差错如何处理的问题,根据应用需求,可分为可靠传输和不可靠传输服务。

6.出现传输差错如何处理(可靠传输和不可靠传输)。

再来看这种情况,主机A给主机B连续发送数据,然而,主机B正在处理很多其他任务,来不及取走缓存中的数据,于是,主机B给主机A发送通知,通知主机A停止发送数据,这就引出了接收方控制发送方注入网络的数据量问题,即流量控制。

7.接收方控制发送方注入网络的数据量(流量控制)。

我们可以将上述问题划归到数据链路层,到这里,我们会发现,主要解决了物理层和数据链路层的问题,就可以实现数据包在一个网络上的传输了。然而,我们的网络应用往往不仅限于在一个单独的网络上,例如,而我们使用的因特网是由非常多的网络和路由器互连起来的,仅解决物理层和数据链路层的问题还是不能正常工作,我们可以将下面的小型互联网看成是因特网中很小的一部分,我们来看看在这个小型互联网中,应该考虑的问题

三:网络层的必要性

如图所示,由于互联网是由多个网络通过多个路由器互连起来的,因此,我们还需要对互联网中的各网络进行标识,这就引出了网络和主机共同编址的问题

1.标识网络和网络中的各个主机(网络和主机共同编址,例如IP地址)

相信同学们一定听说过IP地址,例如这是分配给网络N1中各设备接口的IP地址,由于网络N1中的主机H1, 主机H2以及路由器R1连接网络N1的接口,它们都处于同一个网络,因此,它们的IP地址的网络号相同,在本例中都是192.168.0 ,而它们的主机号分别为1、2以及254,各不相同,用于在网络N1中唯一标识它们自己。同理,我们给网络N2中的主机H3、主机H4、以及路由器R2连接网络N2的接口,也分配了相应的IP地址,请同学们注意,给网络N2分配的网络号为192.168.1,这与给网络N1分配到192.168.0是不同的,因为它们是不同的网络。

我们再来看另一个问题,在互联网中,源主机到目的主机的传输路径往往不止一条,数据包从源主机到目的主机可走不同的路径,这就引出了路由器如何转发数据包以及如何选择的问题。

2.路由器转发分组(路由选择协议、路由表和转发表)

我们可以将这些问题划归到网络层,至此,如果我们解决了物理层,数据链路层以及网络层各自的问题,就可以实现数据包在多个网络之间的传送了。然而,对于计算机网络应用而言,仍有一些重要问题需要考虑

四:运输层的必要性

例如,假设主机H3中,运行着两个与网络通信相关的应用进程,一个是浏览器进程,一个是QQ进程,H2这台web服务器中运行着于网络通信相关的Web服务器进程,例如Nginx,当主机H3收到web服务器中Nginx进程发来的数据包后,应将数据包交付给浏览器进程还是QQ进程。很显然,如果数据包中含有与进程相关的标志信息,主机H3就可以根据标志信息,将数据包交付给相应的应用进程,这就引出了如何标识与网络通信相关的应用进程进而解决进程之间基于网络通信的问题,例如,使用端口号来区分不同的应用进程。

1.进程之间基于网络的通信(进程的标识,例如端口号)

在之前,我们曾介绍过数据包由于误码被路由器或者用户主机丢弃,又或是由于路由器繁忙,而主动丢弃正常数据包,这些都属于传输差错,那么,当出现传输差错时应该如何处理,这也是需要解决的问题。

2.出现传输差错如何处理(可靠传输和不可靠传输

我们可以将上述这些问题划归到运输层。至此,我们解决了物理层,数据链据层,网络层以及运输层各自的问题,则可以实现进程之间基于网络的通信。

五:应用层的必要性

在此基础上,可以制定各种应用协议,并按协议标准编写相应的应用程序,通过应用进程之间的交互来实现特定的网络应用。例如,支持万维网的HTTP协议,支持电子邮件的SMTP协议,以及支持文件传送的FSP协议等。另外,在制定协议时,还需要考虑应用进程基于网络通信时的会话管理问题和数据表示问题。

1.通过应用进程之间的交互来实现特定的网络应用

2.进行会话管理和数据表示

我们可以将上述这些问题划归到应用层,至此,我们将计算机网络需要实现的各种问题分别划归到了物理层,数据链路层,网络层,运输层以及应用层。这就构成了五层原理体系结构。

总结一下:将计算机网络分为这五层,它们分别有什么用,解决了什么问题?

物理层解决使用何种信号来表示比特0和1的问题;

数据链路层解决数据包在一个网路或一段链路上传输的问题;

网络层解决数据包在多个网络之间传输和路由的问题;

运输层解决进程之间基于网络的通信问题;

应用层解决通过应用进程的交互来实现特定网络应用的问题。

以上就是我对计算机网络体系结构划归为这五层的理解,希望大家可以从这篇文章中有所收获。共勉~

标签:问题,主机,网络,计网,传输,分层,进程,数据包,体系结构
From: https://blog.csdn.net/2301_79346828/article/details/140967105

相关文章

  • 基于R语言复杂数据回归与混合效应模型【多水平/分层/嵌套】技术与代码
    回归分析是科学研究特别是生态学领域科学研究和数据分析十分重要的统计工具,可以回答众多科学问题,如环境因素对物种、种群、群落及生态系统或气候变化的影响;物种属性和系统发育对物种分布(多度)的影响等。纵观涉及数量统计方法生态学论文中几乎都能看到回归分析的身影。随着现代统......
  • 查找分层股东关系:在 python 中重构嵌套 if
    我想找到公司之间的股东关系。在下面的示例中,“人员1”直接拥有“公司1”50%的股份,那么需要检查“公司1”是否也拥有其他公司的股份。“公司1”拥有“公司2”50%的股份,“公司3”拥有20%的股份。这意味着“人员1”间接拥有“公司2”和“公司3”的部分股份。此......
  • Linux内核系统体系结构
    Linux内核主要由5个模块构成,它们分别是:进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。进程调度模块用来负责控制进程对CPU资源的使用。所采取的调度策略是各进程能够公平合理地访问CPU,同时保证内核能及时地执行硬件操作。内存管理模块用于确......
  • 【Linux进程理解】| 冯诺依曼体系结构 | 操作系统 | 进程理解 | 状态 | 优先级
    本文目录【写在前面】一、冯•诺依曼体系结构......
  • Java计算机毕业设计网络相册平台(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和智能设备的普及,人们拍摄和分享照片的方式发生了翻天覆地的变化。传统的实体相册逐渐被数字相册所取代,而网络相册平台作为......
  • 数仓分层ODS、DWD、DWM、DWS、DIM、DM、ADS
    往期推荐数仓入门:数据分析模型、数仓建模、离线实时数仓、Lambda、Kappa、湖仓一体-CSDN博客数仓常见名词解析和名词之间的关系-CSDN博客数据仓库及数仓架构概述-CSDN博客大数据HBase图文简介-CSDN博客目录1.数仓分层 1.1数据源层:ODS(OperationalDataStore)1.2数......
  • 数据探索的聚宝盆:sklearn中分层特征聚类技术全解析
    数据探索的聚宝盆:sklearn中分层特征聚类技术全解析在机器学习领域,聚类是一种无监督学习方法,用于将数据集中的样本划分为若干个组或“簇”,使得同一组内的样本相似度高,而不同组间的样本相似度低。当数据集中包含分层特征时,即特征本身具有某种层次结构,传统的聚类算法可能无法......
  • 达梦数据库体系结构(物理结构、逻辑结构、内存结构、线程结构)
    达梦数据库体系结构(物理结构、逻辑结构、内存结构、线程结构) DM目录数据库安装目录下图展示为DM8数据库目录。  /dm8/bin 目录存放DM数据库的可执行文件,例如disql命令、dminit命令、dmrman工具等。  /dm8/desktop 存放DM数据库各个工具的桌面图标......
  • html+css 实现3D分层悬停按钮
    前言:哈喽,大家好,今天给大家分享html+css绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦......
  • SpringBoot的分层解耦(三层架构,控制反转,依赖注入)
    目录一、项目结构二、案例引入三、三层架构1.介绍2.代码拆分(1)控制层Controller(2)业务逻辑层Service业务接口业务实现类(3)数据访问层Dao数据访问接口数据访问实现类(4)接口测试四、解除耦合1.高内聚与低耦合2.控制反转和依赖注入3.解耦后的代码(1)控制层Co......