【计算机网络】第 1 课 - 数据的三种交换方式

news2024/11/28 0:46:52

        欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。


目录

1、缘起

2、电路交换

3、分组交换

4、三种交换方式的对比

4.1、电路交换优点

4.2、电路交换缺点

4.3、报文交换优点 

4.4、报文交换缺点

4.5、分组交换优点

4.6、分组交换缺点

5、总结  

             


1、缘起

        数据的交换就是数据从一个设备到另外一个设备,或者是从一个地方到另外一个地方。不同的实际需求情况,有不同的数据交换方式,常用的交换方式有 电路交换(Circuit  Switching)分组交换(Packet  Switching)和 报文交换(Message  Switching)


2、电路交换

电话交换机接通电话线的方式称为电路交换

从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路的资源 

电路交换的三个步骤: 

①  建立连接(分配通信资源)

        在使用电路交换打电话之前,必须先拨号请求建立连接。当被叫用户听到电话交换机送来的 拨号音 并摘机后,从主叫端到被叫端就建立了一条连接,也就是一条专用的物理通路。这条连接保证了双方通话时所需的通信资源,而这些资源在双方通信时不会被其他用户占用。

②  通话(一直占用通信资源)

        在整个通话期间,第一步建立连接所分配的通信资源始终被占用。

③  释放连接(归还通信资源)

        通话完毕挂机后,电话交换机释放刚才使用的这条专用的物理通路。 

 

 如果使用电路交换来传送计算机数据,是否可行?

        尽管采用电路交换可以实现计算机之间的数据传送,但是,线路的传输效率往往很低,这是因为计算机数据是 突发式地出现在传输线路上的。 

        试想一下这种情况,当用户正在输入和编辑一份待传输的文件时,用户所占用的通信资源暂时未被利用,该通信资源也不能被其他用户利用,宝贵的通信线路资源就白白被浪费了。因此,计算机网络通常采用分组交换,而不是电路交换。


3、分组交换

        在因特网中,最重要的分组交换机就是路由器。它负责将各种网络互连起来,并对接收到的分组进行转发,也就是进行 分组交换 

        假如主机 H6 的用户要给主机 H2 的用户发送一条消息,通常我们把表示该消息的整块数据称为一个 报文。在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段。在每一个数据段前面,加上一些由必要的控制信息组成的首部后,就构成了一个分组,也可简称为“包”,相应地,首部也可称为“包头”。

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

与分组交换类似,报文交换中的交换结点也采用存储转发方式,但报文交换对报文的大小没有限制,这就要求交换结点需要有较大的缓存空间。需要注意的是,报文交换主要用于早期的电报通信网,现在较少使用,通常被较先进的分组交换方式所取代。因此,我们不再详细介绍报文交换了。 


4、三种交换方式的对比

4.1、电路交换优点

①  通信时延小

        这是因为通信线路为通信双方用户专用,数据直达,因此通信时延非常小。当连续传输大量数据时,这一优点非常明显。

②  有序传输

        这是因为通信双方之间只有一条专用的通信线路,数据只在这一条线路上传输,因此不存在失序问题。

③  没有冲突

        不同的通信双方拥有不同的信道,不会出现争用物理信道的问题。

④  适用范围广

        电路交换既适用于传输模拟信号,也适用于传输数字信号。 

⑤  实时性强

        这主要得益于通信时延小的优点。

⑥  控制简单

        电路交换的结点交换机及其控制都比较简单。


4.2、电路交换缺点

①  建立连接时间长

        电路交换的平均连接建立时间对计算机通信来说太长。

②  电路独占,使用效率低

        电路交换一旦建立连接,物理通路就被通信双方独占,即使通信线路空闲,也不能够被其他用户使用,因而信道利用率很低。

③  灵活性差

        只要连接所建立的物理通路中的任何一点出现了故障,就必须重新拨号建立新的连接,这对十分紧急和重要的通信是很不利的。

④  难以规格化

        电路交换时,数据直达,不同类型、不同规格、不同速率的终端很难相互进行通信,也难以在通信过程中进行差错控制。


4.3、报文交换优点 

①  无需建立连接

        报文交换不需要为通信双方预先建立一条专用的通信线路,不存在建立连接的时延,用户可以随时发送报文。

②  动态分配线路

        当发送方把报文传送给结点交换机时,结点交换机先存储整个报文,然后选择一条合适的空闲线路,将报文发送出去。

③  提高线路可靠性

        如果某条传输路径发生故障,会重新选择另一条路径传输数据,因此提高了传输的可靠性。

④  线路利用率高

        通信双方不是固定占用一条通信线路,而是在不同的时间分段部分占用物理线路,因而提高了通信线路的利用率。

⑤  提供多目标服务

        一个报文可以同时发送给多个目的地址,这在电路交换中是很难实现的。


4.4、报文交换缺点

①  引起了转发时延

        这是因为报文在结点交换机上要经历存储转发的过程。

②  需要较大存储缓存空间

        这是因为报文交换对报文的大小没有限制。

③  需要传输额外的信息量

        这是因为报文需要携带目标地址、源地址等信息。


4.5、分组交换优点

①  无需建立连接  

        分组交换不需要为通信双方预先建立一条专用的通信线路,不存在建立连接的时延,用户可以随时的发送分组。

②  线路利用率高

        通信双方不是固定占用一条通信线路,而是在不同的时间分段部分占用物理线路,因而提高了通信线路的利用率。

③  简化了存储管理

        这是相对于报文交换而言的,因为分组的长度固定,相应的缓冲区的大小也固定,管理起来相对容易。

④  加速传输

        由于分组是逐个传输的,这就使得后一个分组的存储操作,与前一个分组的转发操作可以同时进行。

⑤  减少出错概率和重发数据量

        因为分组比报文小,因此出错概率必然减小,即便分组出错,也只需要重传出错的分组,这比重传整个报文的数据量小很多,这样不仅提高了可靠性,也减少了传输时延。


4.6、分组交换缺点

①  引起了转发时延

        这是因为分组在结点交换机上要经历存储转发的过程。

②  需要传输额外的信息量

        将原始的报文分成等长的数据块,每个数据块都要加上源地址、目的地址等控制信息,从而构成分组。因此,整个传输的信息量就增大了。

③  对于数据报服务,存在失序,丢失或重复分组的问题;对于虚电路服务,存在呼叫建立、数据传输和虚电路释放三个过程。

        分组到达目的结点时,需要重新还原成原始报文,比较麻烦。若分组交换采用虚电路服务,虽然没有分组失序问题,但有呼叫建立、数据传输和虚电路释放三个过程。


5、总结  

        本期的分享总结就到这里了,如果有疑问的小伙伴儿,我们在评论区交流嗷~~~,笔者必回,我们下期再见啦 !!!

博客中难免存在疏漏和错误之处,皆归因于作者水平有限,诚请各位读者不吝指正 !

             

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

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

相关文章

【抽象拓扑排序】ABC216 D

D - Pair of Balls (atcoder.jp) 题意: 有2*n个球,每个球涂n种颜色,每种颜色恰好涂两个球,把这些球放进m个栈里,每次操作可以弹出两个相同颜色的球,问是否存在方案使得将所有栈清空 思路: 注…

Day44——动态规划part6

完全背包 private static void testCompletePack(){int[] weight {1, 3, 4};int[] value {15, 20, 30};int bagWeight 4;int[] dp new int[bagWeight 1];for (int i 0; i < weight.length; i){ // 遍历物品for (int j weight[i]; j < bagWeight; j){ // 遍历背包…

2023.07.06 homework

1&#xff09;止水夹打开&#xff0c;连通器相通 2&#xff09;左侧水位高11cm 的水位下降 y cm 3&#xff09;右侧水位低 4cm 的水位上涨 x cm 4&#xff09;最终两边水位相等保持一个平面上 11cm - y 4cm x 5&#xff09;左侧的水下降的体积跑哪里去了&#xff0c;填到…

flask和Vue3的前后端数据传输

&#xff08;一&#xff09;基于flask&#xff0c;构建一个后端 后端就采用flask的一般构建方法&#xff0c;然后用 flask-restful 构建一个接口&#xff0c;接口返回为json数据。 datas [{id: 1, name: xag, 年龄: 18}, {id: 2, name: xingag, age: 19}]class UserView(Res…

基于单片机的智能太阳能手机充电器的设计与实现

功能介绍 以STM32/51单片机作为主控系统&#xff1b;LCD1602液晶显示当前电压值&#xff1b;太阳能电池板采集当前光照转换为电能&#xff0c;然后TP4056锂电池充放电模块给锂电池进行充电&#xff0c;充完后自动断电&#xff0c;防过充&#xff1b;通过CE8301模块对锂电池电压…

3D空间的旋转的各种等价形式

旋转矩阵 欧拉轴和角度&#xff08;旋转矢量&#xff09; 欧拉旋转 四元数

如何部署LVS + keepalived 负载均衡高可用集群

目录 一、LVS架构 概念 L4和L7负载均衡的区别 keepalive故障自动切换 抢占与非抢占 二、keepalived管理LVS负载均衡器 LVS集中节点的健康检查 三、部署LVS keeplived 高可用集群 第一步 关闭防火墙和安全机制 第二步 安装工具 第三步 手动配置模块 第四步 编辑策略…

解决OpenJDK 64-Bit Server VM warning

解决OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 问题解决关闭Xshare关闭提示&#xff08;如果你使用的是IDEA的话&#xff09; 问题 在写spring boot项目调试的时候&#xff0c;发…

超級SEO助手,如何批量发布文章?

超級SEO助手,如何批量发布文章&#xff1f; 目前超级SEO助手产品已经正式上线&#xff0c;但是还是有很多同学不会自动化发布文章&#xff0c;所以今天我就详细讲解下整个流程。 在发布文章之前首先确认你已经接入了对应的接口渠道&#xff0c;比如Wordpress、DeDeCMS、Z-Blog、…

FlinkCDC第三部分-同步mysql到mysql,ctrl就完事~

本文介绍了不同源单表-单表同步&#xff0c;不同源多表-单表同步。 Flink版本&#xff1a;1.16 环境&#xff1a;Linux CentOS 7.0、jdk1.8 基础文件&#xff1a;flink-1.16.2-bin-scala_2.12.tgz、flink-connector-jdbc-3.0.0-1.16.jar、flink-sql-connector-mysql-cdc-2.3…

手机也能做3D建模人物,你知道吗?

3D建模人物是当今设计界越来越流行的一个领域。3D建模人物可以指的是使用3D技术来建立和表现各种类型的人物模型。无论是在游戏设计、电影特效还是虚拟现实等领域&#xff0c;3D建模人物都扮演着重要的角色。 与传统的手工绘图相比&#xff0c;现代设计师可以使用各种3D建模软…

全网最细,Fiddler抓包实战教程-辅助接口测试(三)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 AutoResponder 请…

计算机丢失msvcr110.dll解决办法,那种更加简单

"msvcr110.dll" 是一个动态链接库文件&#xff0c;用于支持 Microsoft Visual C 运行时库&#xff08;Runtime Library&#xff09;版本 11.0。它包含了在 Visual C 程序中使用的函数和变量。当一个程序编译完成后&#xff0c;它仍然需要一些运行时库来在操作系统上运…

LLM模型中英文评测基准

文章目录 中文评测基准C-EvalGaokaoAGIEvalPromptCBLUE 英文评测基准MMLUOpen LLM Leaderboard 中文评测基准 Awesome-Chinese-LLM&#xff1a;https://github.com/HqWu-HITCS/Awesome-Chinese-LLM 该项目收集和梳理中文LLM相关的开源模型、应用、数据集及教程等资料&#xff…

软件测试常用设计模式

设计模式的重要原则就是&#xff1a;高内聚、低耦合&#xff1b;通常程序结构中各模块的内聚程度越高&#xff0c;模块间的耦合程度就越低。 数据驱动测试&#xff1a;Data Driven Testing&#xff0c;简称DDT&#xff1b; 数据驱动指的是从数据文件&#xff08;如数据库、Ex…

RabbitMQ-基础学习

在虚拟机上安装Erlang的GCC环境&#xff0c;装erlong&#xff0c;然后安装rabbitmq 参考&#xff1a;安装说明链接 安装web端面板 创建交换机 先学习一下工作模式&#xff08;详细介绍可见官网&#xff09; 上代码 1.Hello Word模式 写在测试类中&#xff1a; Providucer T…

3 springboot更改tomcat的端口和启动时的banner

3.1 更改tomcat端口 点击resources下的application.properties。 然后&#xff0c;添加以下信息&#xff0c;即可把端口号更改为8081。 # 更改项目的端口号 server.port80813.2 更改启动时的banner 首先&#xff0c;进入网站&#xff1a;https://www.bootschool.net/ascii-art…

git切换账户问题

之前一直用另一个github账户提交代码 今天新创建了一个github账户 用这个账户git项目修改后&#xff0c;push时有问题 1 先执行下面命令&#xff0c;切换了用户 git config --local user.name “xxx” git config --local user.email “xxx” 执行 git config user.name 查看…

电脑端anconda的安装和配置

1.下载官网Anaconda | The World’s Most Popular Data Science Platform 1.1如果上述不行就去清华园源下载镜像Index of / 2.点击下载软件安装&#xff0c;按照图的安装步骤就可以了 安装完毕后点击next就可以了 3.测试是否安装配置成功 WINR键调出运行窗口&#xff0c;输入…

AI免费写作

随着科技的不断发展&#xff0c;人工智能(AI)正逐渐渗透进各个领域&#xff0c;包括以前我们认为只有人类才能胜任的创作型任务——写作。本文将通过深入浅出的方式&#xff0c;为大家剖析AI写作的具体运作机制&#xff0c;并结合案例&#xff0c;带大家一起探索AI写作的无穷可…