【网络奇遇记】我和因特网的初相遇2 —— 三种交换方式

news2024/11/16 13:49:59

在这里插入图片描述
🌈个人主页:聆风吟
🔥系列专栏:网络奇遇记、数据结构
🔖少年有梦不应止于心动,更要付诸行动。


文章目录

  • 前言
  • 一. 电路交换
    • 1.1 电路交换讲解
    • 1.2 电路交换实例
  • 二. 分组交换
    • 1.1 分组交换讲解
    • 1.2 分组交换实例
    • 1.3 分组交换的优缺点
  • 三. 电路交换
  • 四. 三种交换对比
  • 📝全文总结

前言

    网络的核心部分由大量异构型网络和连接这些网络的路由器构成,为其边缘部分提供连通性和数据交换等服务。在核心部分起特殊作用的是路由器,它是一种专用计算机(但不叫主机)。路由器是实现分组交换的关键构建,其任务转发收到的分组,这是网络核心部分最重要的功能。为了弄清楚分组交换,我们首先来介绍一下电路交换。

一. 电路交换

1.1 电路交换讲解

    在早期专为电话通信服务的电信网络中,需要使用很多相互连接起来的电话交换机来完成全网的交换任务。电话交换机接通电话线的方式就是电路交换。从通信资源分配的角度看,交换实际上就是以某种方式动态地分配传输线路的资源。使用电路交换进行通信的三个步骤如下:

  1. 建立连接:主叫方必须首先进行拨号以请求建立连接。当被叫方听到电话交换机送来的振铃音并摘机后,从主叫方到被叫方就建立了一条专用的物理通路,简称为连接。这条连接为通话双方提供通信资源。
  2. 通话:主叫方和被叫方现在可以基于已建立的连接进行通话了。在整个通话期间,通话双方始终占用着连接,通信资源不会被其他用户占用。
  3. 释放连接:通话完毕挂机后,从主叫方到被叫方的这条专用的物理通路被交换机释放,将双方所占用的通信资源归还给电信网。

    如果主叫方在拨号请求建立连接时听到忙音,这可能是被叫方此时正在或电信网的资源已不足以支持这次请求,则主叫方必须挂机等待一段时间后在重新拨号。
在这里插入图片描述

1.2 电路交换实例

    如下图所示给出了电路交换的简化示意图。用户线是电话用户专用的,电话交换机之间的中继线是许多用户共享的。电话A与E之间的物理通路共经过了3个电话交换机,而电话B和C是同一个电话交换机覆盖范围内的用户,因此B和C之间建立的连接就不需要再经过其他的电话交换机。在A和E的通话过程中,它们始终占用这条已建立的物理通路,就好像A和E之间直接用一对电话线连接起来一样。A和E的通话结束并挂机后,它们之间的连接就断开了,之前所占用的电话交换机之间的电路又可以由其他用户使用。
在这里插入图片描述

    学到这里想必大家都有个疑问,计算机之间的数据传送适合采用电路交换吗?显示是不能的,计算机之间的数据传送是突发式的,当使用电路交换来传送计算机数据时,其线路的传输效率一般都会很低,线路上真正用来传送数据的时间往往不到10%甚至1%。例如我们经常使用的QQ、微信,尽管我们并不是一直连续通过该工具发送消息,但为了随时发送和接受消息,我们也一直会让其处于上线状态。对于这种情况,如果采用电路交换方式,则大部分宝贵的通信线路资源并未被利用而是被白白浪费了。



二. 分组交换

1.1 分组交换讲解

    分组交换采用的是存储转发技术。源主机将待发送的整块数据构造成若干个分组并发送出去,分组传送途中的各交换节点(也就是路由器)对分组进行存储转发,目的主机收到这些分组后将它们组合还原成原始数据块。

    待发送的整块数据通常被称为报文。较长的报文一般不适宜直接传输。如果报文太长,则对交换节点的缓存容量有很大的需求,在错误处理方面也会比较低效。因此需要将较长的报文划分成若干个较小的等长数据段,在每个数据段前面添加一些由必要的控制信息(例如源地址和目的地址等)组成的首部,这样就构造出了一个个分组。分组是在分组交换网上传送的数据单元。构造分组的示意图如图下图所示:
在这里插入图片描述

    源主机将分组发送到分组交领网中,分组交换网中的分用交换机收到一个分组后,先将其缓存下来,然后从其首都中提取出目的地址,按照目的地址查找自己的转发表,找到相应的转发接口后将分组转发出去,把分组交给下一个分组交换机。经过多个分组交换机的存储转发后,分组最终被转发到目的主机。

1.2 分组交换实例

    如下图所示为简化的分组交换网,为了方便起见,图中并没有画出互联网中通过路由器互连的各个物理网络,而是把它们分别等效为路由器之间的一段链路,整个互联网可以看作一个分组交换网,而路由器R1 ~ R5就是分组交换网中的交换节点,主机H1 ~ H5通过分组交换网进行通信。
在这里插入图片描述

    现在假设主机H1给主机H3发送数据。H1将分组逐个发送给与其直接相连的路由器R1。此时H1到R1的链路被占用,而分组交换网中的其他链路并未被当前通信的双方占用,如下图所示:
在这里插入图片描述

    路由器R1对收到的分组进行存储转发。假设R1根据分组首部的目的地址查找自己的转发表,查找结果是R2,则R1转发分组给R2。当分组正在R1与R2之间的链路上传送时,仅占用R1与R2这段链路,而不会占用分组交换网中的其他资源,如下图所示:
在这里插入图片描述

    假设路由器R2收到分组后按上述方式将分组转发给路由器R3,R3收到分组后将分组转发给主机H3,如下图所示:
在这里插入图片描述

上述整个过程动态图展示:
在这里插入图片描述

    假设在主机H1给H3连续发送多个分组的过程中,路由器R1与R2之间的通信太大,那么R1可以把分组沿另一条路径转发给路由器R5,R5转发分组给R4,R4转发分组给R3,R3转发分组给主机H3。如下图所示:
在这里插入图片描述

    从上述例子可以看出,分组交换与电路交换有着很大的不同。分组交换没有建立连接和释放连接带来的开销,分组在哪段链路上传送才占用这段链路的通信资源,因而数据的传输效率更高,这对于突发式的计算机数据的传送是非常适宜的。相比于采用电路交换传送突发式的计算机数据,分组交换的通信线路利用率大大提高


1.3 分组交换的优缺点

分组交换的优点:

  1. 没有建立连接和释放连接的过程;
  2. 分组传输过程中逐段占用通信链路,有较高的通信线路利用率;
  3. 交换节点可以为每一个分组独立选择转发路由,使得网络有很好的生存性。

分组交换的缺点:

  1. 分组首部带来了额外的传输开销;
  2. 路由器存储转发分组会造成一定的时延;
  3. 无法确保通信时端到端的通信资源的全部可用,在通信量较大时可能造成网络拥塞;
  4. 分组可能会出现失序(未按序到达)和丢失等问题。


三. 电路交换

    报文交换是分组交换的前身。在报文交换中,报文被整个地发送,而不是拆分成若干个分组进行发送。交换节点将报文整体接收完成后才能查找转发表,将整个报文转发到下一个节点。因此,报文交换比分组交换带来的转发时延要长很多,需要交换节点具有的缓存空间也要大很多



四. 三种交换对比

    在使用电路交换时,必须首先建立连接,也就是从主叫方到被叫方建立一条专用的物理通路。然后主叫方和被叫方就可以基于已建立的连接进行数据传送了。在整个计算数据传送期间,通信双方始终占用着连接,通信资源不会被其他用户占用。数据传送结束后还需要释放连接,双方挂机后,从主叫方到被叫方的这条专用的物理通路被交换机释放,将双方所占用的通信资源归还给电信网。

    在使用报文交换时,无须首先建立连接,通信结束后也无须释放连接。数据传送单元为整个报文,传送路径中的交换节点只有在完整接收整个报文后,才能对其进行查表转发,将整个报文发送到下一个节点。

    在使用分组交换时,也无须建立连接和释放连接。数据传送单元是由整个报文划分并构造出的若干个分组,传送路径中的交换节点每完整接收一个分组后,就对其查表转发,将其发送到下一个节点。
在这里插入图片描述综上所述:

  1. 若要连续传送大量的数据,并且数据传送时间远长于建立连接的时间,则使用电路交换可以有较高的传输效率。然而计算机的数据传送往往是突发式的,采用电路交换时通信线路的利用率会很低
  2. 报文交换和分组交换都不需要建立连接(即预先分配通信资源),在传送计算机的突发数据时可以提高通信线路的利用率
  3. 将报文构造成若干个更小的分组进行分组交换,比将整个报文进行报文交换的时延要小,并且还可以避免太长的报文长时间占用链路,有利于差错控制,同时具有更好的灵活性;


📝全文总结

归纳:
     本文主要详细介绍了电路交换、分组交换以及电路交换的优缺点、电路交换,并对三种交换进行了比较。

     今天的干货分享到这里就结束啦!如果觉得文章还可以的话,希望能给个三连支持一下,聆风吟的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是作者前进的最大动力!
在这里插入图片描述

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

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

相关文章

Go 14岁了

今天我们庆祝Go开源十四周年!Go度过了美好的一年,发布了两个功能齐全的版本和其他重要的里程碑。 我们在2月份发布了Go 1.20,在8月份发布了Go 1.21,更多地关注实现改进而不是新的语言更改。 在Go 1.20中,我们预览了配置…

基于Python+Django的图书管理系统

项目介绍 图书是人类文明传播的一个重要方式,很多历史悠久的文明都是通过图书来进行传递的,虽然随着时代的进步电子信息技术发展很快,但是纸质图书的地位仍然是非常稳固的,为了能够让知识拥有更加快捷方便的传递方式我们开发了本…

Typora-PicGo-七牛云图床

Typora-PicGo-七牛云图床 问题描述: 每次使用Typora写完笔记后,想要将笔记上传至CSDN会发现一个问题,由于没有配置图床,笔记中的图片需要一张一张的上传到CSDN,非常麻烦,若使用PicGo并搭配七牛云的10G免费…

Django配置文件,request,链接mysql方法,Orm简介

三板斧问题(views.py) HttpResponse # 返回的是字符串render # 渲染一个HTML静态文件,模板文件redirect # 重定向的 在视图文件中得视图函数必须要接收一个形参request,并且,视图函数也要有返回值&#xff…

Linux - 基础IO(重定向 - 重定向模拟实现 - shell 当中的 重定向)- 下篇

前言 上一篇博客当中,我们对 文件 在操作系统当中是 如何就管理的,这个问题做了 详细描述,本篇博客将基于上篇 博客当中的内容进行 阐述,如有疑问,请参考上篇博客: Linux - 基础IO(Linux 当中…

matlab 多自由度的车辆垂向振动模型 车辆平稳性研究

1、内容简介 略 17-可以交流、咨询、答疑 多自由度的车辆垂向振动模型 多自由度的车辆垂向振动模型,包含四分之一车体模型、半车模型和整车模型 垂向振动模型、四分之一车体模型、半车模型和整车模型 2、内容说明 略 3、仿真分析 略 4、参考论文 略 链接&…

第七章 块为结构建模 P3|系统建模语言SysML实用指南学习

仅供个人学习记录 块行为建模 块提供了行为情境,行为这个 SysML 词条覆盖了块如何处理输如/输出和其内部状态改变的所有描述。 块可以指定某个行为作为其主行为或者分类器行为,该行为在块实例化后启动执行。其他行为可以指定为方法,提供了处…

人机交互——自然语言生成

自然语言生成是让计算机自动或半自动地生成自然语言的文本。这个领域涉及到自然语言处理、语言学、计算机科学等多个领域的知识。 1.简介 自然语言生成系统可以分为基于规则的方法和基于统计的方法两大类。基于规则的方法主要依靠专家知识库和语言学规则来生成文本&#xff0…

【Redis】list列表

上一篇: String 类型 https://blog.csdn.net/m0_67930426/article/details/134362606?spm1001.2014.3001.5501 目录 Lpush LRange Rpush Lpop Rpop Lindex Ltrim Lset 列表不存在的情况 如果列表存在 Linsert ​编辑 在………之前插入 在……后面插入…

Windows系统安装Redis、配置环境变量

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

【 第十一章】软件设计师 之 面向对象设计与结构化分析设计

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 备考资料导航 软考好处:软考的…

域名无法访问了,如何找回浏览器的缓存

背景需求 双十一即将来临,这意味着我购买了三年低配的阿里服务器,而它的服务期限也即将到期。为了提前做好准备,我在一周前对静态网站进行了备份,并成功地使用了Vercel进行部署(已经有了域名)。相比于付费…

腾讯云3年轻量应用服务器2核2G4M带宽540元,它来了

腾讯云轻量应用服务器特价是有新用户限制的,所以阿腾云建议大家选择3年期轻量应用服务器,一劳永逸,免去续费困扰。腾讯云轻量应用服务器3年可以选择2核2G4M和2核4G5M带宽,3年轻量2核2G4M服务器540元,2核4G5M轻量应用服…

jdk21 虚拟线程原理及使用分享

虚拟线程概述 jdk21已于北京时间9月19日21点正式发布, 其中引人注目的就是虚拟线程(Virtual Thread)随之正式发布, 不再是此前jdk19、jdk20中的预览版本。 平台线程:java传统的线程是对系统线程的包装,为了区别于虚拟线程,因此将通过传统方式…

C#源代码生成器深入讲解一

C#源代码生成器 01 源代码生成器初体验 新建一个类库,一定是standard2.0版本,否则会出问题。引用Nuget包Microsoft.CodeAnalysis.Common新建一个类,继承自ISourceGenerator接口 //一定要写,制定语言 [Generator(LanguageNames.…

Django 基于ORM的CURD、外键关联,请求的生命周期

文章目录 基于ORM进行的CURDORM外键关联Django请求的生命周期流程图 基于ORM进行的CURD 本质上就是通过面向对象的方式,对数据库的数据进行增、删、改、查。 这里将会将我们之前所有内容结合到一起,首先确保基于上序操作已经建立好了UserInfo表&#xff…

Three.js——基于原生WebGL封装运行的三维引擎

文章目录 前言一、什么是WebGL?二、Three.js 特性 前言 Three.js中文官网 Three.js是基于原生WebGL封装运行的三维引擎,在所有WebGL引擎中,Three.js是国内文资料最多、使用最广泛的三维引擎。既然Threejs是一款WebGL三维引擎,那么…

Python 使用tkinter的Scrollbar方法创建Text水平和垂直滚动条

在Python的Tkinter中,可以使用Scrollbar来实现Text组件的上下或左右滑动。首先,需要创建一个Scrollbar对象并将其与Text组件绑定,然后将Scrollbar放置在Text组件的右侧或底侧,使其能够控制Text组件的上下或左右滑动。 运行结果&am…

隔离在高可用架构中的使用

写作目的 最近看到了河北王校长隔离的视频,结合自己在工作中的应用,分享常见的隔离落地方案。 隔离落地方案 服务环境隔离 因为我们的项目服务于整个国内的多条产品线,也服务于国外。为了低成本所以使用一套代码。在产品线之间隔离&#…

mysql讲解2 之事务 索引 以及权限等

系列文章目录 mysql 讲解一 博客链接 点击此处即可 文章目录 系列文章目录一、事务1.1 事务的四个原则1.2 脏读 不可重复读 幻读 二、索引三,数据库用户管理四、mysql备份 一、事务 1.1 事务的四个原则 什么是事务 事务就是将一组SQL语句放在同一批次内去执行 如果一个SQ…