计算机网络-数据交换方式(电路交换 报文交换 分组交换及其两种方式 )

文章目录

  • 为什么要数据交换?
  • 总览
  • 电路交换
    • 电路交换的各个阶段
      • 建立连接
      • 数据传输
      • 释放连接
    • 电路交换的特点
    • 电路交换的优缺点
  • 报文交换
    • 报文交换流程
    • 报文交换的优缺点
  • 分组交换
    • 分组交换流程
    • 分组交换的优缺点
  • 数据交换方式的选择
  • 分组交换的两种方式
    • 数据报方式
      • 数据报方式的特点
    • 虚电路方式
      • 建立连接 (与电路交换类似)
      • 数据传输 (与电路交换类似)
      • 数据传输 (与电路交换类似)
      • 虚电路方式的特点
    • 数据报&虚电路
  • 小结

为什么要数据交换?

如果每两两连接,那么链路太多了。所以采用交换设备

交换设备再互相形成链路就能实现更多计算机的通信
在这里插入图片描述

总览

在这里插入图片描述

电路交换

在这里插入图片描述

电路交换的各个阶段

建立连接

首先A向其连接的交换设备A发送呼叫请求,该请求包含了源主机A和目的主机B的地址
然后交换设备A通过路由选择算法。选择下一步往哪里走,然后将A给它的呼叫请求转发给下一个节点交换设备B
然后交换设备B通过路由选择算法,。选择下一步往哪里走,然后将A给它的呼叫请求转发给下一个节点交换设备C
然后交换设备C通过路由选择算法,。选择下一步往哪里走,然后将A给它的呼叫请求转发给下一个节点交换设备D
然后交换设备D直接转发呼叫请求给B

如果B可以接收A的连接请求,就会按照原路返回发送呼叫应答

A接收到后,A和B的连接线路建立成功
在这里插入图片描述

数据传输

此时A和B是全双工的通信方式
并且链路都是之前确定的线路

释放连接

按照之前的线路A发送释放请求
B接收到释放请求后,返回一个释放应答,也按照原路返回到A,并且会依次断掉各段连接(如送到D,就断掉D和B的连接)
在这里插入图片描述

电路交换的特点

电路交换是一种通信网络中使用的交换技术,具有以下显著特点:

  1. 建立专用通路:在通信双方之间建立一个专用的通信路径,这条路径会一直保持开放状态直到通信结束。
  2. 信息传送单位:电路交换中,信息传送的最小单位是时隙(time slot),即在预先分配的时间槽内进行数据传输。
  3. 端对端通信:电路交换实现的是端对端的通信,这意味着一旦电路建立,数据可以直接在两个终端之间传输。
  4. 资源分配方式:电路交换按照某种方式动态地分配传输线路的资源,一旦电路建立,该资源就被这对通信双方独占。
  5. 应用场景:电路交换主要应用于电话通信网中,完成电话交换,已有100多年的历史。它也是最早出现的一种交换方式,并且应用非常普遍。

总的来说,电路交换的特点在于为通信双方提供一条专用的、持续的通信路径,这种方式适用于需要连续、稳定通信的场景,如传统电话通话

独占资源:建立的链路不能被其他资源所使用
适用大量的数据传输:因为需要花费一定时间建立连接,如果传输太少了,那么有点花不来
在这里插入图片描述

电路交换的优缺点

线路被独占的,所以传输直接按照线路来,所以时延小
顺序传送,无失序:相当于是流水线一样的,流水线就是线路,数据放到上面后,就传到目标主机那里(先放先到)。所以说是顺序传送,没有失序问题

电路交换的交换设备主要采用交换机

  • 缺乏数据存储能力:由于电路交换是实时建立连接的,它不具备数据存储的能力。这意味着如果通信过程中出现任何中断或错误,数据可能会丢失,而且无法像分组交换那样进行重传或纠错。
  • 难以平滑通信量:电路交换的资源被通信双方独占,即使在通信线路空闲时,也不能供其他用户使用,这导致信道利用率低。因此,当通信量波动较大时,电路交换难以实现资源的动态分配和优化,不如分组交换那样能够有效地平滑通信量。

数据直达所以如果设备类型不同,可能无法识别处理这些数据
在这里插入图片描述

报文交换

在这里插入图片描述
报文就是你单次发送给对方的东西(如发条语音给对方,语音就是报文,发条信息给对方,信息就是报文,发个文件给对方,文件就是报文)
在这里插入图片描述

报文交换流程

传送的信息+报头=报文
在这里插入图片描述
首先到交换设备A
等输出电路空闲时:应该就是可以开始找下一个节点和发送报文出去
路由信息:交换设备有路由表,根据这个表判断走哪个节点距离目的主机更近。此时发现走交换设备B比较短
在这里插入图片描述
到达交换设备B
注意报文交换方式所有线路都可以传输其他用户的报文,不是说某个线路只能由某个用户所使用。其线路对应的限制就是带宽。如果该线路传输的各个用户的报文的数据量超过带宽,此时这个线路被认为是比较繁忙的。此时会需要交换设备暂存这个报文,等线路空闲一些的时候再传(存储转发)

在这里插入图片描述
到达B
在这里插入图片描述

报文交换的优缺点

用户可随时发送报文:就是不需要等连接建立才可以发送了
动态分配路线:平滑通信量。假设A到B的数据量很多, 同时A到C的数据量比较少,且C也能到目的主机 ,此时交换设备A通过动态选择发送报文给交换设备C

注意此时第四个优点中占用信道也不是独占

报文交换之所以能够同时发往多个目的地址,主要是因为它提供了多目标服务的能力。这种能力使得一个报文可以被复制并发送到多个预定的接收者,这在电路交换中是很难实现的,电路交换中相当于把一封信传来传去。所以最后只能由一个人接收到。报文交换就相当于是可以把一封信复制然后再传给别人,所以最后可以由很多人接收到。

具体来说,以下是一些详细的解释:

  1. 存储转发机制:报文交换网络中的每个节点都有存储功能,可以暂时保存经过的报文。当报文到达一个节点时,它会先被存储下来,然后根据报文中的目的地址信息进行转发。这种机制使得报文可以在节点处被复制并发送到不同的目的地。
  2. 灵活的路由选择:报文交换允许动态路由选择,即报文在传输过程中可以根据网络状况选择最佳的路径。这种灵活性使得报文可以根据需要被发送到多个目的地,而不受固定路径的限制。
  3. 无需建立连接:与电路交换不同,报文交换不需要预先建立固定的通信路径。这意味着报文可以直接被发送到多个目的地,而不需要在发送前建立多个连接。

实时:可以理解为很快反应

在这里插入图片描述

分组交换

在这里插入图片描述

分组交换流程

此时大数据块不切割就是报文交换了
在这里插入图片描述
分组后
编号是分组编号,目的主机用来重组分组的
在这里插入图片描述
接收到第一个分组后,进行差错检测以及路由选择,假设此时选了上面的路
在这里插入图片描述
接收到第二个分组后,进行差错检测以及路由选择,假设此时也选了上面的路
在这里插入图片描述
接收到第三个分组后,进行差错检测以及路由选择,此时由于一二分组都走了上面的路,那么上面的路有些拥堵了,所以走到下面的路了
在这里插入图片描述
最后按照这样的逻辑到达目的主机后,目的主机根据编号重组

分组交换的优缺点

在分组交换中,交换节点对存储器的管理之所以可以简化为对缓冲区的管理,是因为分组长度固定,分组交换网络中的分组长度通常是固定的,这意味着每个分组所需的缓冲区大小也是固定的。这种固定的大小使得交换节点可以预先分配固定大小的缓冲区给每个到来的分组,从而简化了存储器的管理过程。

减少等待发送时间:就是说缓冲区中下一个分组等待发送前一个分组的时间比较短
分组小:出错概率自然小,重发数据量也小

分组交换适用于突发式数据通信。

分组交换技术通过将数据划分为多个小的、等长的数据段,并在每个数据段前加上必要的控制信息作为首部,形成了一个个分组。这种机制使得分组交换网络能够高效地处理突发性数据流量。以下是分组交换适用于突发式数据通信的几个原因:

  1. 资源利用效率高:分组交换不需要预先占用整条通信链路的资源,只有当分组在某段链路上传送时才占用该段链路的资源。这意味着在没有数据传输时,链路资源可以被其他通信所使用,从而提高了资源的利用效率。
  2. 灵活性强:分组交换采用存储转发技术,允许交换机将接收到的分组暂时存储下来,在目的方向路由上排队,等待转发。这种机制使得网络能够更好地适应流量的波动,即使在突发流量情况下也能保持较高的传输效率。
  3. 适应性好:由于分组短小,分组交换特别适用于计算机之间的突发式数据通信。在突发式通信中,数据往往是不连续的,分组交换能够快速响应这种不连续性,实现数据的快速传输。
  4. 容错能力强:分组交换网络中的每个分组都包含有完整的地址信息和控制信息,这使得即使部分分组在传输过程中丢失或出错,也能够独立重传或修正,而不会影响整个数据流的传输。
  5. 优先级管理:分组交换网络可以根据分组的紧急程度为不同的分组分配不同的优先级,紧急数据可以得到即时传送,非常适合突发性紧急数据的传输需求。

尽管分组交换在处理突发式数据通信方面具有优势,但它也存在一些缺点,如存储转发时延和结点交换机需要更强的处理能力。不过,这些缺点并不妨碍分组交换成为现代通信网络中处理突发式数据通信的有效方式。

分组交换的传输时延之所以比报文交换的时延少,主要是因为分组交换采用了较小的数据单元进行传输。具体来说,分组交换的优势在于:

  1. 更小的传输单元:分组交换将数据分割成较小的分组(数据包),这些分组相对于完整的报文来说更短,因此传输时间更快。
  2. 并行处理能力:由于分组是独立的,它们可以在网络中的不同路径上并行传输,而不必等待整个报文传输完毕,这样就减少了传输延迟。
  3. 缓冲区管理效率:分组交换中,分组长度固定,这使得缓冲区更容易管理,交换机可以快速地处理和转发分组,减少了在节点的处理时间。
  4. 排队时延降低:在分组交换中,由于分组较小,即使网络流量较大,分组在队列中的等待时间也会相对较短,这降低了排队时延。
  5. 容错能力:分组交换允许单个分组独立处理,如果发生错误,只需重传出错的分组,而不是整个报文,这也有助于减少整体的传输时延。

总的来说,分组交换通过将数据分成小的单元进行传输,不仅提高了网络的传输效率,还减少了传输时延,使其成为现代通信网络中广泛采用的一种数据传输方式。

当分组交换采用数据报服务:具体来说,数据报服务是分组交换的一种形式,它不要求在数据传输前建立固定的通信路径。在这种服务中,每个分组都独立选择路由,可能通过不同的路径到达目的地。这种方式的优点在于其灵活性和快速性,因为它不需要预先建立和维护一个固定的通信路径。然而,这也带来了一些挑战,比如分组可能会失序、丢失或重复,需要在目的节点重新组装成原始报文。

在这里插入图片描述

数据交换方式的选择

可以看到报文交换需要等到报文都到达下一个节点后下一个节点才可以进行相应处理,而分组交换不需要,其当前节点发送下一个分组的同时,上一个发送的分组到达的节点也可以发送该分组到达下一个节点。所以可以看出分组交换时延比报文交换更小

时延小:所以适合突发式的数据通信的快速处理
在这里插入图片描述

分组交换的两种方式

数据报方式

在这里插入图片描述

数据报方式的特点

之前说的分组交换都是按照数据报方式
同一报文到达目的会乱序重复与丢失等相关情况,所以需要分组编号来对应处理

在网络通信中,交换节点可能会丢弃部分分组,这种情况通常发生在网络拥塞或故障时。当交换节点的缓存空间不足,无法存储更多的分组时,它可能会根据一定的策略丢弃部分分组,以保持网络的正常运行。

丢弃分组可能会对数据传输造成一定的影响,如导致数据丢失、传输延迟增加等问题。因此,在设计网络系统时,需要考虑到这种情况,并采取相应的措施来应对。

一种常见的方法是在分组中加入序列号和校验和等信息,以便在接收端检测和修复丢失的分组。此外,一些网络协议还提供了重传机制,允许发送方在未收到确认信息时重新发送分组。
在这里插入图片描述

虚电路方式

与电路交换的方式很像
在这里插入图片描述

建立连接 (与电路交换类似)

呼叫请求和呼叫应答都是一个分组
转发到下个节点,下个节点根据路由算法再转发到下一个节点
主机B接收到后,再按原路返回到呼叫应答
在这里插入图片描述
在这里插入图片描述

数据传输 (与电路交换类似)

传输的是分组,每个分组不需要携带目的地址等信息,因为连接建立后,线路固定了,只能沿路线走

此时数据传输时每个分组携带的虚电路号:标识哪条线路

数据传输 (与电路交换类似)

主机A发送释放请求,主机B返回释放应答,并且逐段释放虚电路

虚电路方式的特点

电路交换是物理连接,而虚电路是逻辑连接。具体分析如下:

  • 电路交换:是一种在通信双方之间建立专用物理通路的通信方式。这种连接是物理的,因为它涉及到实际的物理线路,这些线路在通信过程中被独占,直到通信结束。电路交换的特点是面向连接,即在数据传输之前需要建立一个固定的物理路径,这个路径在整个通信过程中保持开放和不变。
  • 虚电路:是一种在网络中建立的虚拟连接,它并不涉及物理线路的独占。虚电路通过在网络中的多个节点之间建立一系列的逻辑关联来实现,这些逻辑关联可以看作是在物理网络之上的“虚拟”路径。虚电路的连接是临时性的,会话结束后,这种连接就会被释放,而且一条物理线路可以支持多条虚电路的逻辑连接。

链路依然是共享的,虚电路不是独占的,不像电路交换那样
在这里插入图片描述

数据报&虚电路

数据报和虚电路的可靠性保证机制不同,具体如下:

数据报的可靠性保证:

  • 用户主机保证:在数据报服务中,网络层提供的是尽最大努力交付的服务,不保证分组的可靠传输。因此,可靠性通常由用户主机来保证。这意味着用户需要自己处理分组的出错、丢失、重复和失序问题。例如,通过在高层协议(如TCP)中实现确认、重传和排序机制来确保数据的完整性和顺序性。
  • 完整地址:每个数据报分组都包含终点的完整地址,这使得每个分组都可以独立路由,增加了网络的灵活性。但是,这也意味着每个分组都需要携带额外的路由信息,这会增加开销。

虚电路的可靠性保证:

  • 网络保证:虚电路服务是面向连接的,网络负责维护这条逻辑上的连接,通常能提供较为可靠的数据传输。一旦建立连接,所有分组按照同一路由进行传输,网络中的节点会维护这个连接的状态,从而保证了数据传输的可靠性和顺序性。
    短的虚电路信号:在虚电路中,连接建立后,每个分组只需使用
  • 短的虚电路号来标识自己,减少了头部开销。同时,由于分组沿相同的路径传输,网络可以提供流量控制和差错控制,进一步提高了通信的可靠性。

总的来说,数据报服务的可靠性主要依赖于用户主机的处理,而虚电路服务的可靠性则由网络本身来保证。

数据报和虚电路在差错处理和流量控制方面具有不同的机制和策略。

数据报的差错处理和流量控制:

  • 差错处理:在数据报服务中,每个分组都是独立传输的,因此差错处理通常是由目标主机来负责的。目标主机需要对每个收到的数据报进行差错检测,通常使用校验和或CRC检查。如果发现错误,数据报将被丢弃,并可能要求重传。重传的策略取决于高层协议,如TCP会使用确认和超时机制来实现可靠的传输。
  • 流量控制:数据报服务本身并不提供流量控制机制。流量控制通常是由高层协议实现的,例如TCP通过滑动窗口机制来控制数据的发送速率,以适应网络的拥塞情况和接收方的处理能力。

虚电路的差错处理和流量控制:

  • 差错处理:虚电路服务提供了更可靠的通信方式。一旦建立连接,所有分组按照同一路由进行传输,网络中的节点会维护这个连接的状态,并进行差错检测。如果某个分组出现错误,网络可以采取适当的行动,如请求重传或报告错误。这种机制确保了数据传输的可靠性和完整性。
  • 流量控制:虚电路服务通常提供流量控制机制,以确保发送方不会超过接收方的处理能力或网络的容量。这可以通过一些技术来实现,如缓冲区管理和窗口机制。例如,发送方可能会根据从接收方接收到的反馈信息调整数据的发送速率。

总的来说,数据报和虚电路在差错处理和流量控制方面有不同的策略和机制。数据报依赖于目标主机和高层协议来进行差错处理和流量控制,而虚电路则由网络本身提供这些功能。

在这里插入图片描述

小结

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出 diffusion(4):pytorch 实现简单 diffusion

1. 训练和采样流程 2. 无条件实现 import torch, time, os import numpy as np import torch.nn as nn import torch.optim as optim from torchvision.datasets import MNIST from torchvision import transforms from torch.utils.data import DataLoader from torchvision.…

基于Redis的高可用分布式锁——RedLock

目录 RedLock简介 RedLock工作流程 获取锁 释放锁 RedLock简介 Redis作者提出来的高可用分布式锁由多个完全独立的Redis节点组成,注意是完全独立,而不是主从关系或者集群关系,并且一般是要求分开机器部署的利用分布式高可以系统中大多数存…

基于ncurse的floppy_bird小游戏

1. 需求分析 将运动分解为鸟的垂直运动和杆的左右运动。 2. 概要设计 2.1 鸟运动部分 2.2 杆的运动 3. 代码实现 #include <stdio.h> #include <ncurses.h>#include <stdlib.h> #include <time.h>int vx 0; int vy 1;int bird_r; int bird_c;int…

2023年算法CDO-CNN-BiLSTM-ATTENTION回归预测(matlab)

2023年算法CDO-CNN-BiLSTM-ATTENTION回归预测&#xff08;matlab&#xff09; CDO-CNN-BiLSTM-Attention切诺贝利灾难优化器优化卷积-长短期记忆神经网络结合注意力机制的数据回归预测 Matlab语言。 切诺贝利灾难优化器Chernobyl Disaster Optimizer (CDO)是H. Shehadeh于202…

力扣题集(第一弹)

一日练,一日功;一日不练十日空。 学编程离不开刷题&#xff0c;接下来让我们来看几个力扣上的题目。 1. 242. 有效的字母异位词 题目描述 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数…

详解OpenHarmony各部分文件在XR806上的编译顺序

大家好&#xff0c;今天我们来谈一谈编程时一个很有趣的话题——编译顺序。我知道&#xff0c;一提到编译可能大家会感到有点儿头疼&#xff0c;但请放心&#xff0c;我不会让大家头疼的。我们要明白&#xff0c;在开始写代码之前&#xff0c;了解整个程序的编译路径是十分有必…

[晓理紫]每日论文分享(有中文摘要,源码或项目地址)--大模型、扩散模型、视觉语言导航

专属领域论文订阅 VX 关注{晓理紫}&#xff0c;每日更新论文&#xff0c;如感兴趣&#xff0c;请转发给有需要的同学&#xff0c;谢谢支持 如果你感觉对你有所帮助&#xff0c;请关注我&#xff0c;每日准时为你推送最新论文。 为了答谢各位网友的支持&#xff0c;从今日起免费…

【国产MCU】-认识CH32V307及开发环境搭建

认识CH32V307及开发环境搭建 文章目录 认识CH32V307及开发环境搭建1、CH32V307介绍2、开发环境搭建3、程序固件下载1、CH32V307介绍 CH32V307是沁恒推出的一款基于32位RISC-V设计的互联型微控制器,配备了硬件堆栈区、快速中断入口,在标准RISC-V基础上大大提高了中断响应速度…

Unity3d实现简单的战斗

使用u3d实现一个简单的战斗demo&#xff0c;记下学到的知识点&#xff0c;以备后查。 1.判断鼠标是否点中制定物体 if (Input.GetMouseButton(0)) {Ray ray Camera.main.ScreenPointToRay(Input.mousePosition);if (Physics.Raycast(ray, out RaycastHit hit)){//坐标转换Ve…

Docker 安装篇(Ubuntu)

图省事一般采用第一种 一、 直接采用apt安装 apt install docker.io查看 /usr/lib/systemd/system/docker.service ubuntu默认守护进程用的&#xff1a;fd:// ps -ef | grep docker root 775237 1 0 11:14 ? 00:01:07 /usr/bin/dockerd -H fd:// --cont…

Python qt.qpa.xcb: could not connect to display解决办法

遇到问题&#xff1a;qt.qpa.xcb: could not connect to display 解决办法&#xff0c;在命令行输入&#xff1a; export DISPLAY:0 然后重新跑python程序&#xff0c;解决&#xff01; 参考博客&#xff1a;qt.qpa.xcb: could not connect to displayqt.qpa.plugin: Could …

Mysql-事务(隔离级别,事务底层原理,MVCC)

什么是事务&#xff1f;有哪些特性&#xff1f; 事务&#xff1a;事务指的是逻辑上的一组操作&#xff0c;组成这组操作的各个单元要么全都成功&#xff0c;要么全都失败。 事务特性&#xff1a; 原子性&#xff08;Atomicity&#xff09;&#xff1a; 原子性是指事务是一个不…

window下如何安装ffmpeg(跨平台多媒体处理工具)

ffmpeg是什么? FFmpeg是一个开源的跨平台多媒体处理工具&#xff0c;可以用于录制、转换和流媒体处理音视频。它包含了几个核心库和工具&#xff0c;可以在命令行下执行各种音视频处理操作&#xff0c;如剪辑、分割、合并、媒体格式转换、编解码、流媒体传输等。FFmpeg支持多…

探索Java中最常用的框架:Spring、Spring MVC、Spring Boot、MyBatis和Netty

目录 前言 Spring框架 Spring MVC框架 Spring Boot框架 MyBatis框架 Netty框架 结语 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊聊探索Java中最常用的框架&#xff1a;Spring、Spring MVC、Spring Boot、MyBatis和Netty&#xff0c;希…

解锁Web3:数字未来的大门

随着科技的不断推进&#xff0c;我们正站在数字时代的新门槛上。Web3&#xff0c;作为互联网的下一个演进阶段&#xff0c;正在逐渐揭开数字未来的面纱。本文将深入探讨Web3的本质、对社会的影响以及在数字时代中所扮演的关键角色。 什么是Web3&#xff1f; Web3是互联网发展的…

Mysql 更新数据

MySQL中使用UPDATE语句更新表中的记录&#xff0c;可以更新特定的行或者同时更新所有的行。基本语法结构如下&#xff1a; UPDATE table_name SET column_name1 value1,column_name2 value2,……, column_namen valuen WHERE(condition); column_name1,column_name2,……,…

嵌入式学习 Day13

一. 指针总结 1.指针概念 a.指针 --- 地址 ---内存单元编号 b.指针 --- 数据类型 ---指针类型 不同语境: 定义一个指针 //指针类型的变量 打印某个变量的指针 //指针 --地址 2.指针变量的定义 基类型 * 变量名 a.基类型 …

Python爬虫解析库安装

解析库的安装 抓取网页代码之后&#xff0c;下一步就是从网页中提取信息。提取信息的方式有多种多样&#xff0c;可以使用正则来提取&#xff0c;但是写起来相对比较烦琐。这里还有许多强大的解析库&#xff0c;如 lxml、Beautiful Soup、pyquery 等。此外&#xff0c;还提供了…

【C/C++ 02】希尔排序

希尔排序虽然是直接插入排序的升级版本&#xff0c;和插入排序有着相同的特性&#xff0c;即原始数组有序度越高则算法的时间复杂度越低&#xff08;预排序机制&#xff09;&#xff0c;但是是不稳定排序算法。 为了降低算法的时间复杂度&#xff0c;所以我们需要在排序之前尽…

美化背景(拼图小游戏)

package Puzzlegame.com.wxj.ui;import javax.swing.*; import javax.swing.border.BevelBorder; import java.util.Random;public class GameJframe extends JFrame { //游戏主界面 //创建一个二维数组//目的&#xff1a;管理数据//加载图片的时候&#xff0c;会根据二维数组中…