计算机网络 ---- 电路交换、报文交换、分组交换性能分析

news/2024/9/18 14:51:46/ 标签: 计算机网络, 网络

目录

一、电路交换、报文交换、分组交换基本知识介绍

1.1 电路交换性能分析

1.2 报文交换的性能分析

1.3 分组交换性能分析 

1.4 三种交换的比较 


 

一、电路交换、报文交换、分组交换基本知识介绍

图1-11显示了电路交换、报文交换和分组交换的主要区别。图中的A和D分别是源点和终点,而B和C是在A和D之间的中间节点。图的最下方归纳了三种交换方式在数据传送阶段的主要特点:

  • 电路交换——整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。
  • 报文交换——整个报文先传送到相邻节点,全部存储下来后查找转发表,转发到下一个节点。
  • 分组交换——单个分组(这只是整个报文的一部分)传送到相邻节点,存储下来后查找转发表,转发到下一个节点。

      从图1-11可看出,若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较快。报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小,同时也具有更好的灵活性。
      在过去很长的时期,人们都有这样的概念:电路交换适合于话音通信,而分组交换则适合于数据通信。然而随着蜂窝移动通信的发展,这种概念已经发生了根本的变化。从第四代蜂窝移动通信网开始,无论是话音通信还是数据通信,都要采用分组交换。
 

1.1 电路交换性能分析

电路交换流程图如下图所示: 

 
假设:
每一跳传播时延=1ms
电路交换机建立、释放下一跳连接耗时=1ms
接收方处理连接请求需要2ms
数据传输速率=0.5kb/ms
报文大小=4kb

      假设计算机A通过中间节点B和C,要和计算机D建立连接,之后,通过电路交换的方式去传送一个大小为4kb的报文。
      在上上图中,纵向来看,纵轴向下表示时间t递增的方向,每一个小格子表示1ms;横向来看,共有ABCD四条竖线,分别代表了上图中ABCD四个节点。

  • 建立连接阶段

      那么我们知道,电路交换的第一步首先是需要建立连接。计算机A首先要向电路交换机B发出建立连接的请求,由于信号在线路上的传输是需要一定的时间消耗的,我们假设在这个过程中消耗1ms的时间【每一跳传播时延=1ms这个条件】,这也就是上上图第一个箭头线表示的含义。
      电路交换机B接收到A发来的请求连接信号之后,在内部建立连接耗时1ms,如下图蓝色间隔所示。

      在往后的过程是类似的,从B到C同样花费1ms,电路交换机C内部建立信号连接花费1ms,C到D需花费1ms,D作为接收方,处理连接请求需花费2ms。
      此时D和A之间已经建立好物理的线路连接,D给A返回应答信号时,就可以顺着物理线路很快的回到A点,但由于信号每一跳传播时延为1ms,因此返回应答信号需花费3ms。
      因此在建立连接这个过程中,共花费10ms。

  • 数据发送阶段

      当A接收到来自D的应答信号,此时开始数据发送阶段,整个报文的大小为4kb,数据传输速率为0.5kb/ms,因此报文发送到线路上共需8ms。
      下图中红白色箭头线表示的是数据的第一个 bit 发送过程,从A到D共需3ms。在接下来的8ms之内,数据会不断地从A发送到D,直到第八毫秒最后一位从A发送到D为止。

 报文从A发送到D接收共需11ms(将报文数据发送到线路上需要8ms+报文数据在线路上的传播需要三跳即3ms)。

  • 连接释放阶段 

      AB之间连接断开需要1ms,电路交换机B内部连接断开需要1ms,BC之间连接断开需要1ms,电路交换机C内部连接断开需要1ms,CD之间连接断开需要1ms,因此连接释放阶段共需花费5ms时间。
注意:在A发送报文的最后一个bit结束后,就可以开始释放连接,也就是说,下图中蓝色框选的箭头线可无限接近报文最下边位置。但为了方便分析,我们将箭头线与报文最下边间隔1ms。

因此从建立连接到释放连接电路交换的整个过程耗时

报文在电路交换的过程中,数据时从A直送到D节点。 

1.2 报文交换的性能分析

报文交换过程图如下图所示: 

 

假设:
每一跳传播时延=1ms
数据传输速率=0.5kb/ms
报文大小=4kb
报文存储转发时延=2ms

注意:中间节点一定要接收完整个报文后,才能解析并转发
报文从一个节点到下一个节点的转发所需要的时间至少需要8ms。
      计算机A将报文数据全部发送到线路上总共需要8ms的时间,接下来B节点需要对报文进行解析处理,我们不妨设报文存储转发时延为2ms,如下图红白色线段所示:

      接下来,B节点将报文数据全部转发到线路上共需8ms,同理,到达C之后,报文需要存储转发时延2ms。
然后,C节点将报文数据全部转发到线路上共需8ms,随后到达D计算机。
从A点开始发送报文数据直到D节点接收到报文数据共经历31ms。

1.3 分组交换性能分析 

分组交换过程图如下图所示: 

 
假设:
每一跳传播时延=1ms
数据传输速率=0.5kb/ms
报文大小=4kb
分组大小=1kb
分组存储转发时延=0.5ms
注意:中间节点一定要接收完整个分组后,才能解析并转发。

      我们把一个大小为4kb的报文拆分成4个,每个分组大小为1kb,数据传输速率为0.5kb/ms,因此每一个分组数据从节点发送到线路上需要2ms。
      例如:A节点把分组1发送到线路上需要2ms,分组1的每一个bit从A节点传送到B节点需要1ms,因此分组1从A发送到B接收需要3ms时间。
      当B接收到分组1后,开始对分组1进行解析处理,由于分组的大小要小于整个报文的大小,因此不妨假设分组存储转发时延为0.5ms,如下图所示:

      那么经过这0.5ms存储转发时延之后,B节点将分组1发送到线路上花费2ms,分组1在BC之间的线路上需花费1ms,因此共花费3ms。与此同时,B节点也可以接收来自A节点发送过来的分组2。各个分组之间相差0.5ms就是为了确保中间节点能够将分组解析处理完。
采用分组交换技术进行报文的传输工作需花费17.5ms。

1.4 三种交换的比较 


报文数据从A发送到D接收时间对比:
电路交换:11ms
报文交换:31ms
分组交换:17.5ms


http://www.ppmy.cn/news/1524736.html

相关文章

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们…

动手学深度学习(pytorch)学习记录26-卷积神经网路(LeNet)[学习记录]

目录 LeNet模型训练 LeNet 总体来看,LeNet(LeNet-5)由两个部分组成: 卷积编码器:由两个卷积层组成; 全连接层密集块:由三个全连接层组成。 每个卷积块中的基本单元是一个卷积层、一个sigmoid激活函数和平均…

【网络安全】服务基础第二阶段——第五节:Linux系统管理基础----Linux常见应用服务(Apache、数据库)

在Linux系统中,有许多常见的应用服务,它们用于执行各种任务,如网页托管、数据库管理、文件传输等。 Apache HTTP Server:用于托管网站和Web应用程序的Web服务器。Nginx:高性能的Web服务器和反向代理服务器&#xff0c…

TimedRotatingFileHandler 修改 suffix 后 backupCount 设置失效无法自动删除文件

本文主要分析 TimedRotatingFileHandler 在实际使用中 backupCount 设置未生效的问题。源码分析显示,文件删除依赖于后缀 suffix 的正则匹配,如果自定义了 suffix 格式,必须同步更新 extMatch 的正则表达式(保证正则表达式可以正常…

RK3568平台开发系列讲解(LCD篇)Framebuffer开发

🚀返回专栏总目录 文章目录 一、FrameBuffer 应用编程二、LCD 基础2.1、分辨率2.2、像素格式2.3、LCD 成像步骤2.4、LCD 屏幕时序2.4.1、行显示时序2.4.2、帧显示时序三、FrameBuffer 操作步骤四、LCD 应用编程实验沉淀、分享、成长,让自己和他人都能有所收获!😄 line di…

性能测试:Locust使用介绍(三)

配置 Locust的配置,可以通过三种方式进行。第一种是命令行执行选项,第二种是将配置写到环境变量中,第三种是通过配置文件进行配置。 命令行选项 locust --helpUsage: locust [options] [UserClass ...]常用选项:-h, --help 显示…

VSCode 创建Python 项目(最简单,最少步骤,无痛从pycharm迁移项目)

第一步:下载 下载地址:https://code.visualstudio.com/docs/?dvwin64user 第二步:配置 2.1:VsCode设置中文 按住键盘上的“CtrlShiftP”组合键,打开命令面板。 在命令面板中输入“Configure Display Language”。点击…

LSS可视化分析

1 完整 2 去掉plt.imshow(img_show) 3 去掉plt.axis(‘off’) 4 去掉plt.annotate(cams_text[img_id].replace(‘_’, ’ ), (0.01, 0.92), xycoords=‘axes fraction’)

【自然语言处理】第二章现代语言学基础

【自然语言处理】第二章现代语言学基础 文章目录 【自然语言处理】第二章现代语言学基础1. 语言学与人类的语言1.1 现代语言学的源起及学科分支概况1.2 人类语言的符号性与层级性2. 语言系统及其知识模型2.1 语音系统2.2 词汇系统2.3 句法系统2.4 语义系统2.5 语用系统3. 语言的…

1、https的全过程

目录 一、概述二、SSL过程如何获取会话秘钥1、首先认识几个概念:2、没有CA机构的SSL过程:3、没有CA机构下的安全问题4、有CA机构下的SSL过程 一、概述 https是非对称加密和对称加密的过程,首先建立https链接需要经过两轮握手: T…

SpringMVC基于注解使用:JSON

01-json处理--介绍 json数据格式回顾: 在pom.xml导入依赖 在web.xml里面导入配置文件 ResponseBody 注解是将返回值作为文本返回到客户端了而不是字符串了 当我们想返回bean对象的json数据的时候我们需要先导入jackson依赖在pom.xml里面 然后创建User类&#xff0c…

分享一个基于微信小程序的医院挂号就诊一体化平台uniapp医院辅助挂号应用小程序设计(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

前端开发的单例设计模式

一、什么是单例模式 单例模式(Singleton Pattern)是一种常见的设计模式,它确保在整个应用程序的生命周期中,一个类只能创建一个实例。无论你在代码的任何地方尝试创建该类的新实例,它都会返回已经存在的唯一实例。这在…

计算机网络分层结构解析:OSI与TCP/IP模型

文章目录 计算机网络分层结构解析:OSI与TCP/IP模型一、引言二、OSI七层模型1、模型介绍1.1、层次功能 2、模型特点 三、TCP/IP四层模型1、模型介绍1.1、层次功能 2、模型特点 四、总结 计算机网络分层结构解析:OSI与TCP/IP模型 一、引言 计算机网络的分…

【前端UI框架】VUE ElementUI 离线文档 可不联网打开

【前端UI框架】VUE ElementUI 离线文档 可不联网打开 Element - The worlds most popular Vue UI framework Element - The worlds most popular Vue UI framework 离线文档下载地址 https://download.csdn.net/download/G971005287W/89742895 文档制作 第一步: 克隆源代码 …

oceanbase(ob)基于备份集搭建备租户方式

一、搭建备租户方式(基于备份的方式) 注意事项:要有一个源端OB集群和目标端OB集群。 1、新建主租户(如果原来有主租户可是省略) #创建unit create resource unit ut_2c2g max_cpu2, memory_size2G, max_iops10000,l…

网络安全实训七(MSF与CS互相连接)

1 MSF连接CS 1.1 生成木马上传到/var/www/html中 1.2 开启apache服务 1.3 设置监听模组并运行 1.4 在靶机上打开网页运行木马 1.5 kali机中获取反弹的shell 1.6 运行CS服务器 1.7 windows端作为客户端连接CS 1.8 新建一个监听器 1.9 返回kali机中使用载荷注入模块,…

【Linux网络】详解TCP协议(1)

🎉博主首页: 有趣的中国人 🎉专栏首页: Linux网络 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好,本片文章将会讲解 TCP协议 的相关内容。 如果看到最后您觉得这篇文章写得不错&am…

前端开发的观察者模式

什么是观察者设计模式 观察者模式(Observer Pattern)是前端开发中常用的一种设计模式。它定义了一种一对多的依赖关系,使得当一个对象的状态发生改变时,其所有依赖对象都能收到通知并自动更新。观察者模式广泛应用于事件驱动的系…

如何在 Visual Studio Code 中反编译具有正确行号的 Java 类?

优质博文:IT-BLOG-CN 问题 我在 macOS 中使用 vscode 版本 1.92.2,并安装了Java 扩展包v0.29.0。当我打开command click或right click->Go to definition一个没有源代码的类时,vscode 会使用 FernFlower 反编译器打开 .class 文件。但…