《计算机网络微课堂》1-3 三种交换方式

本节课我们介绍三种交换方式,分别是电路交换(Circuit Switching),分组交换(Packet Switching)以及报文(Message Switching)交换。

我们首先来看电路交换,在电话问世后不久,人们就发现要让所有的电话机都两两相连接是不现实的。例如两部电话只需要用一对电线就能够互相连接起来,但若有 5 部电话要两两相连,则需要 10 对电线。当电话机的数量很大时,这种连接方法需要的电线数量就太大了。例如如果有 N 部电话机需要两两相连,那么一共需要多少吨电线?答案是 N * (N-1)/2。

于是人们认识到,要使得每一部电话能够很方便的和另一部电话进行通信,就应当使用一个中间设备,将这些电话连接起来。这个中间设备就是电话交换机,每一部电话都连接到电话交换机上,可以把电话交换机简单的看成是一个有多个开关的开关器,可以将需要通信的任意两部电话的电话线路按需接通,从而大大减少了连接的电话线数量。

当电话机的数量增多时,就需要使用很多彼此连接起来的电话交换机来完成全网的交换任务,用这样的方法就构成了覆盖全世界的电信网,电话交换机接通电话线的方式称为电路交换。从通信资源的分配角度来看,交换就是按照某种方式动态的分配传输线路的资源。

在这里插入图片描述

我们来看下面这个电路交换的示意图,为了简单起见,图中没有区分市话交换机和长途电话交换机。应当注意的是用户线归电话用户专用,而电话交换机之间拥有的大量话路的中继线,则是许多用户共享的。电路交换有以下三个步骤;

  • 第一步是建立连接,也就是分配通信资源。例如在使用电路交换打电话之前,必须先拨号请求建立连接,当被叫用户听到电话交换机送来的拨号音并摘机后,从主叫端到被叫端就建立了一条连接,也就是一条专用的物理通路,这条连接保证了双方通话时所需的通信资源,而这些资源在双方通信时不会被其他用户占用。
  • 第二步是通话,也就是主教和被教双方互相通电话,在整个通话期间,第一步建立连接所分配的通信资源始终被占用。
  • 第三步是释放连接,也就是通话完毕挂机后,电话交换机释放刚才使用的这条专用的物理通路。换句话说是把刚才占用的所有通信资源归还给电信网。

在这里插入图片描述

因此计算机网络通常采用分组交换,而不是电路交换。假设这是因特网的一部分,在因特网中最重要的分组交换机就是路由器,他负责将各种网络互联起来,并对接收到的分组进行转发,也就是在进行分组交换。

我们来看这样一个例子:

假设主机 H6 的用户要给主机 H2 的用户发送一条消息,通常我们把表示该消息的整块数据称为一个报文。

在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段,在每一个数据段前面,加上一些由必要的控制信息组成的首部后,就要构成了一个分组,也可简称为包,相应的首部也可称为包头。

请大家思考一下,添加首部的作用是什么?这不是额外加大了带传输的数据量吗?

实际上首部起到非常关键的作用。相信大家至少能想到首部中肯定包含了分组的目的地址,否则分组传输路径中的各分组交换机,也就是各路由器,就不知道如何转发分组了。

分组交换机收到一个分组后,先将分组暂时存储下来,再检查其首部,按照首部中的目的地址进行查表转发,找到合适的转发接口,通过该接口将分组转发给下一个分组交换机。

在本例中,主机 H6 将所构造出的各分组依次发送出去,各分组经过途中各分组交换机的存储转发,最终到达主机 H2,主机 H2 收到这些分组后,去掉他们的首部,将各数据段组合还原出原始报文。

需要说明的是,为了初学者容易理解,在本例中,我们只演示出了分组传输过程中的两种情况:

  • 一种是各分组从源站到达目的站,可以走不同的路径,也就是不同的路由
  • 另一种是分组乱序,也就是分组到达目的站的顺序,不一定与分组在源站的发送顺序相同

对于可能出现的分组丢失、误码、重复等问题并没有演示,这些内容将在今后的课程中详细介绍。

在这里插入图片描述

在上述的分组交换过程中:

  • 发送方所要完成的任务是构造分组和发送分组。
  • 路由器也就是分组交换机所要完成的任务是缓存分组和转发分组,简称为存储转发。
  • 接收方所要完成的任务是接收分组和还原报文。

与分组交换类似,报文交换中的交换节点,也采用存储转发方式,但报文交换对报文的大小没有限制,这就要求交换节点需要有较大的缓存空间。

需要注意的是报文交换主要用于早期的电报、通信网,现在较少使用,通常被较先进的分组交换方式所取代,因此我们不再详细介绍报文交换了。

接下来我们对电路交换、报文交换、分组交换这三种交换方式进行一下对比。假设 ABCD 是分组传输路径上所要经过的 4 个节点交换机,纵坐标为时间:

  • 对于电路交换,通信之前首先要建立连接,连接建立好之后,就可以使用已建立好的连接进行数据传送,数据传送结束后需要释放连接,以归还之前建立连接所占用的通信线路资源,

  • 对于报文交换可以随时发送报文,而不需要事先建立连接。整个报文先传送到相邻节点交换机,全部存储下来后进行查表转发,转发到下一个节点交换机,

  • 对于分组交换可以随时发送分组,而不需要事先建立连接,构成原始报文的一个个分组,依次在各节点交换机上存储转发,各节点交换机在发送分组的同时,还缓存接收到的分组。

  • 当使用电路交换时,一旦建立连接中间的各节点交换机就是直通形式的,比特流可以直达终点。

  • 当使用报文交换时,整个报文需要在各节点交换机上进行存储转发,由于不限制报文的大小,因此需要各节点交换机都具有较大的缓存空间。

  • 当使用分组交换时,构成原始报文的一个个分组,在各节点交换机上进行存储转发,相比报文交换,减少了转发时延,还可以避免过长的报文,长时间占用链路,同时也有利于进行差错控制。


最后我们总结一下这三种交换方式各自的优缺点。

电路交换的优点如下:

  • 第一,通信时延小,这是因为通信线路为通信双方用户专用,数据直达,因此通信时延非常小,当连续传输大量数据时,这一优点非常明显。
  • 第二,有序传输,这是因为通信双方之间只有一条专用的通信线路,数据只在这一条线路上传输,因此不存在失序问题。
  • 第三,没有冲突,不同的通信双方拥有不同的信道,不会出现征用物理信道的问题。
  • 第四,使用范围广,电路交换既适用于传输模拟信号,也适用于传输数字信号。
  • 第五,实时性强,这主要得益于其通信时延小的优点。
  • 第六,控制简单,电路交换的节点交换机及其控制都比较简单。

电路交换的缺点如下:

  • 第一,建立连接时间长,电路交换的平均连接建立时间对计算机通信来说太长了。
  • 第二,线路独占,使用效率低,电路交换一旦建立连接,物理通路就被通信双方独占,即使通信线路空闲,也不能供其他用户使用,因而信道利用率很低。
  • 第三,灵活性差,只要连接所建立的物理通路中的任何一点出现了故障,就要必须重新拨号建立新的连接,这对十分紧急和重要的通信是很不利的。
  • 第四,难以规格化,电路交换时数据直达,不同类型不同规格不同速率的终端,很难相互进行通信,也难以在通信过程中进行差错控制。

报文交换的优点如下:

  • 第一,无需建立连接,报文交换不需要为通信双方预先建立一条专用的通信线路,不存在建立连接的时延,用户可以随时发送报文。
  • 第二,动态分配线路,当发送方把报文传送给节点交换机,时节点交换机先存储整个报文,然后选择一条合适的空闲线路,将报文发送出去。
  • 第三,提高线路可靠性。如果某条传输路径发生故障,会重新选择另一条路径传输,数据因此,提高了传输的可靠性。
  • 第四,提高线路利用率。通信双方不是固定占用一条通信线路,而是在不同的时间分段部分占用物理线路,因而大大提高了通信线路的利用率。
  • 第五,提供多目标服务,一个报文可以同时发送给多个目的地址,这在电路交换中是很难实现的。

报文交换的缺点如下:

  • 第一,引起了转发时延,这是因为报文在节点交换机上要经历存储转发的过程。
  • 第二,需要较大的存储缓存空间,这是因为报文交换对报文的大小没有限制。
  • 第三,需要传输额外的信息量,这是因为报文需要携带目标地址、源地址等信息。

分组交换的优点如下,

  • 第一,无需建立连接,分组交换不需要为通信双方预先建立一条专用的通信线路,不存在建立连接的时延,用户可以随时发送分组。
  • 第二,线路利用率高,通信双方不是固定占用一条通信线路,而是在不同的时间分段部分占有物理线路,因而大大提高了通信线路的利用率。
  • 第三,简化了存储管理,这是相对于报文交换而言的,因为分组的长度固定,相应的缓冲区的大小也固定,管理起来相对容易
  • 第四,加速传输,由于分组是逐个传输的,这就使得后一个分组的存储操作与前一个分组的转发操作可以同时进行。
  • 第五减少出错概率和重发数据量。因为分组比报文小,因此出错概率必然减小。即便分组出错,也只需重传出错的部分,这比重传整个报文的数据量小很多,这样不仅提高了可靠性,也减少了传输时延。

分组交换的缺点如下:

  • 第一,引起了转发时延,这是因为分组在节点交换机上要经历存储转发的过程。
  • 第二,需要传输额外的信息量,将原始报文分割成等长的数据块,每个数据块都要加上源地址、目的地址等控制信息,从而构成分组,因此使得传送的信息量增大了。
  • 第三,当分组交换采用数据报服务时,可能会出现失去丢失或重复分组,分组到达目的节点时,需要重新还原成原始报文,比较麻烦。若分组交换采用虚电路服务,虽然没有分组失序问题,但有呼叫建立数据传输和虚电路释放三个过程。

在这里插入图片描述

本节课到这里就结束了。在本节课中,我们介绍了电路交换,分组交换以及报文交换这三种交换方式,其中分组交换是重点内容,希望大家能很好的掌握它的特点。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计模式8——原型模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 原型模式(Prototyp…

MiniCPM-Llama3-V-2_5-int4

MiniCPM-Llama3-V-2_5-int4大模型部署使用环境: python3.8cuda11.8其它要求,按照安装文档要求下载即可 我是在算力平台用4090跑的, GPU 显存(8GB)可以部署推理 int4 量化版本,如果推理非量化版本需要更高显…

开视频号小店要花哪些钱?这些费用大家要知道

大家好,我是喷火龙。 目前,视频号小店从推出到现在已经快两年的时间了,视频号小店虽然门槛高,但是单价也高,利润也高,市场环境也好,算是一个不错的项目。 接下来给大家讲讲开视频号小店要花哪…

推荐五个线上兼职,在家也能轻松日入百元,适合上班族和全职宝妈

在这个瞬息万变的时代,你是否也曾考虑过在繁忙的工作之外,寻找一份兼职副业来补贴家用,同时保持生活的多样性?别急,现在就让我为你揭秘五个可靠的日结线上兼职岗位,助你轻松迈向财务自由之路! 一…

VBA批量合并带有图片、表格与文本框的Word

本文介绍基于VBA语言,对大量含有图片、文本框与表格的Word文档加以批量自动合并,并在每一次合并时添加分页符的方法。 在我们之前的文章基于Python中docx与docxcompose批量合并多个Word文档文件并逐一添加分页符(https://blog.csdn.net/zhebu…

iBarcoder for Mac v3.15.1中文激活版:让条形码生成变得如此简单

在现代社会,条形码无处不在,从超市商品到物流包裹,都离不开它的身影。iBarcoder for Mac作为一款简单易用的条形码生成软件,让条形码的生成变得如此简单。 iBarcoder for Mac v3.15.1中文激活版下载 无论你是需要为商品添加条形码…

信息安全等级保护测评: 登陆日志

文章目录 引言I 登录日志表结构设计II 日志处理2.1 封装日志入库2.2 收集登陆信息2.3 查询接口引言 等保测评是信息安全等级保护测评的简称,是对信息和信息载体按照重要性等级分级别进行检测、评估的过程。 背景:近期AIS监控平台(网页版)等保测评,发现没有登陆日志,现要…

【高时效通路】

一 高时效通路 1.1 pathchdumper 实时数据拉取、实时数据处理、5分钟微批dump来加速时效性,具体来说: 实时数据拉取(Fetcher):基于Databus Fetcher基建,直接对接F0层实时拉取最新数据,保证该…

微服务架构-链式微服务设计模式

微服务架构-链式微服务设计模式 链式微服务设计模式(Chain Microservice Pattern)是一种微服务架构中的设计模式,它强调将一系列的服务按照特定的业务逻辑顺序串联起来,形成一个服务链。每个服务在链中负责完成特定的业务功能&am…

基于JSP/Servlet校园二手交易平台(二)

目录 2 开发技术及开发环境 2.1 Java语言简介 2.2 J2EE技术介绍 2.3 Servlet/JSP技术 2.4 MVC 简介 2.5 Struts 技术 2.6 Hibernate 技术 2.6.1 应用程序的分层体系结构 2.6.2 Hibernate的应用及API简介 2.7 开发环境及环境配置 2.7.1 Java/JSP系统环境 2.7.2 JSP环…

uniapp 对接 微信App/支付宝App 支付

相关文档:uni.requestPayment(OBJECT) | uni-app官网 示例代码: import qs from qsasync aliPay(){const { provider } await uni.getProvider({ service:payment })if(provider.includes(alipay)){uni.request({url:后端接口地址,data:{ //传参 },suc…

Rabbitmq 搭建使用案例 [附源码]

Rabbitmq 搭建使用案例 文章目录 RabbitMQ搭建docker 代码golang生产者消费者 可视化消费进度 RabbitMQ搭建 docker docker run -d --hostname rabbitmq --name rabbitmq -e RABBITMQ_DEFAULT_USERadmin -e RABBITMQ_DEFAULT_PASSadmin -e RABBITMQ_DEFAULT_VHOSTmy_vhost -e…

分类预测 | Matlab实现ZOA-SVM斑马算法优化支持向量机的多变量输入数据分类预测

分类预测 | Matlab实现ZOA-SVM斑马算法优化支持向量机的多变量输入数据分类预测 目录 分类预测 | Matlab实现ZOA-SVM斑马算法优化支持向量机的多变量输入数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现ZOA-SVM斑马算法优化支持向量机的多变量输…

5. C++网络编程-UDP协议的实现

UDP是无连接的。 UDP Server网络编程基本步骤 创建socket,指定使用UDP协议将socket与地址和端口绑定使用recv/send接收/发送数据 由于UDP是无连接的,直接侦听就行使用close关闭连接 这个UDP接收数据的时候用的API是recvfrom,发送数据是sendto 客户端 …

IS-IS链路状态数据库

原理概述 一个OSPF链路状态数据库是若干条LSA的集合。与此相似,一个IS-IS链路状态数据库是由若干条LSP的集合。与OSPF链路状态数据库不同,IS-IS链路状态数据库有Level-1和Level-2之分。 在IS-IS协议中,每一条LSA都有一条剩余生存时间、一个…

Behind the Code:Polkadot 如何重塑 Web3 未来

2024 年 5 月 17 日 Polkadot 生态 Behind the Code 第二季第一集 《创造 Web3 的未来》正式上线。第一集深入探讨了 Polkadot 和 Web3 技术在解决数字身份、数据所有权和去中心化治理方面的巨大潜力。 🔍 查看完整视频: https://youtu.be/_gP-M5nUidc?…

Docker安装OnlyOffice

工作需要,多人在线编辑同一文档,找了一圈发现onlyoffice满足需求,于是使用docker安装了社区版本。下面记录下安装过程。 Onlyoffice 是什么? Onlyoffice 是一个多端协同的 Office 办公套件,相当于微软的 Office365 全…

MySQL多表关联查询习题

一、素材 -- Active: 1714203732007127.0.0.13306db_stu -- 1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); -- 创建…

模块化程序设计(函数的定义、调用、参数传递、局部变量、全局变量)

函数的引入: 我们曾经学习了程序设计中的三种基本控制结构(顺序、分支、循环)。用它们可以组成任何程序。但在应用中,还经常用到子程序结构。 通常,在程序设计中,我们会发现一些程序段在程序的不同地方反复…

android实现PhotoShop里的魔棒效果

魔棒是画板工具一个重要的功能,非常实用,只要轻轻一点,就能把触摸到的颜色区域选中,做复制、剪切、擦除等工作。 那怎么实现呢? 先来看看效果: 要实现这个效果,需要对安卓canvas和paint理解比…