2.1_5 数据交换方式

文章目录

  • 2.1_5 数据交换方式
    • (一)为什么要数据交换?
    • (二)数据交换方式
      • (1)电路交换(Circuit Exchanging)
      • (2)报文交换(Message Exchanging)
      • (3)分组交换(Packet Exchanging)
        • a)数据报方式
        • b)虚电路方式
    • (三)数据交换方式的选择

2.1_5 数据交换方式

(一)为什么要数据交换?

image-20240316163121090

  如果两台计算机要进行通信,那么两台计算机之间要有链路连接。假设我们现在使用的都是有线的链路。那么,若要使得计算机两两互连,就有 C n 2 C^2_n Cn2条链路。——比较低效、浪费资源。

image-20240316163318888

  因此,我们就产生了上图这种交换方式。通过使用交换设备,可见,链路个数就变成了n条。当然,这个拓扑结构也叫“星型”拓扑结构。

  交换是通过某些交换中心将数据进行集中和传送。

  传输线路为各个用户共用,从而大大节省通信线路,降低系统费用。

image-20240316163537141

(二)数据交换方式

image-20240316163757154

(1)电路交换(Circuit Exchanging)

image-20240316163844025

  在上图所示的例子中,假设A主机是发送信息的,B主机是接收信息的。中间的都是交换设备。黑色的线是传输线路。

电路交换的原理

  在数据传输期间,源结点与目的结点之间有一条由中间结点构成的专用物理连接线路,在数据传输结束之前,这条线路一直保持。

image-20240316164314300

image-20240316164454469

  发送主机A会发出请求到某个交换设备上,之后,中间的交换设备会执行路由选择算法,选择要转发到哪个中间交换设备上。最终,呼叫请求发送到接收主机B上。

  B接收到呼叫请求之后,再原路返回,返回一个呼叫应答到主机A上。至此,A、B两台主机之间的连接线路就算连接成功了。就已经通过中间的网络,将A、B两台主机牵在了一起。

  建立连接之后,A、B都是可以发送数据的,也就是全双工的通信方式。进行通信。

  在双方通信完毕之后,就要释放连接。此时,假如是A主机想要跟B断开连接,那么A主机要发送释放请求,这个请求会在之前所选好的那个路径之上进行转发,直至发给B主机。当B主机收到释放请求之后,就会返回一个释放应答,并且按照中间设备D、C、B、A的顺序,把这个连接依次地释放掉。

image-20240316164935636

  至此,A、B主机的通信就算已经结束了。

特点

  独占资源。用户始终占用端到端的固定传输带宽。适用于远程批处理信息传输或系统间实时性要求高的大量数据传输的情况。

image-20240316165552113

(2)报文交换(Message Exchanging)

报文

  报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。

  比如,我要给你发送一个文件,那么这一个文件就是一条报文。我要给你发一个语音,那么这一个语音就是一条报文。我给你发送一个字,这个字就是一个报文。——报文指的就是单次要发送的数据块。

image-20240316170133533

报文交换的原理

  无需在两个站点之间建立一条专用通路,其数据传输的单元是报文,传送过程采用存储转发方式。

  报文交换的原理,用“存储转发”四个字概括足矣。

image-20240316170307363

  从源主机发出的信息,加上报头,那么这个信息+报头组合起来就形成了报文。之后就可以开始传输了。

  首先,报文要走到交换设备A处。交换设备A就要做存储转发工作。

  1.每个节点收下整个报文后,暂存报文并检查有无错误;

  2.当所需要的输出电路空闲时,利用路由信息找到下一个节点地址,传送给下一个节点。

  此外,在两个通信用户间的其他线路段,可传输其他用户的报文,不像电路交换那样必须占用端到端的全部信道。

  比如上图中的报文被传输到交换设备B处了,那么此时的交换设备A、C可以转而去处理其他用户的报文。——即,线路并非独占的,而是共享的。类似于公共车道一样。

image-20240316170748477

(3)分组交换(Packet Exchanging)

分组

  大多数计算机网络都不能连续地传送任意长的数据,所以实际上网络系统把数据分割成小块,然后逐块地发送,这种小块就称作分组(packet)。

image-20240316171441638

分组交换的原理

  分组交换与报文交换的工作方式基本相同,都采用存储转发方式。形式上的主要差别在于,分组交换网络中要限制所传输的数据单位的长度,一般选128B。发送节点首先对终端设备送来的数据报文进行接收、存储,而后将报文划分成一定长度的分组,并以分组为单位进行传输和交换。接收结点将收到的分组组装成信息或报文。

image-20240316171759446

  在发送端首先将大数据块切成一个个的小数据块。然后还要在各个小数据块上附加相关控制信息。对于每个附加了相关信息的小数据块,我们称之为一个分组。

  小数据块 + 控制信息(源和目的地址、编号) = 分组

  这一个个的小分组,在发送的时候,它可以根据实际情况到处的跑。第一个分组可以走上面、第二个分组可以走下面。具体选择哪条路走,取决于当时的网络状况。

  这些小的分组,可谓是“走着走着就散了”。那么,到了目的主机之后,怎样把它们重新拼回去呢?——此时就需要用到各个分组的编号了。按照各个分组携带的编号,就可以实现按序重组,还原成原来的、完整的、正确的报文。

image-20240316172413459

a)数据报方式

  1.源主机A将报文分成多个分组,依次发送到直接相连的结点A;

  2.结点A收到分组后,对每个分组差错检测路由选择,不同分组的下一跳结点可能不同;

  3.结点C收到分组P1后,对分组P1进行差错检测,若正确则向A发送确认信息,A收到C确认后则丢弃分组P1副本。

  4.所有分组到达主机B,并按照编号顺序重组。

数据报方式的特点

  1.数据报方式为网络层提供无连接服务。发送方可随时发送分组,网络中的结点可随时接收分组。

  无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。

  2.同一报文的不同分组到达目的结点时可能发生乱序、重复与丢失。

image-20240316174113622

  但是不需要担心,我们在接收端可以按照各个分组的编号进行重组,就可以还原了。

  3.每个分组在传输过程中都必须携带源地址和目的地址,以及分组号。

  4.分组在交换结点存储转发时,需要排队等候处理,这会带来一定的时延。当通过交换结点的通信量较大或网络发生拥塞时,这种时延会大大增加,交换结点还可根据情况丢弃部分分组。

  如果丢弃部分分组,没关系,它会有相应的机制进行处理,让它重新发一次。所以也只是早到、晚到的问题。这些分组迟早都会到的。

  5.网络具有冗余路径,当某一交换结点或一段链路出现故障时,可相应地更新转发表,寻找另一条路径转发分组,对故障的适应能力强,适用于突发性通信,不适用于长报文、会话式通信。

b)虚电路方式

  虚电路将数据报方式和电路交换方式结合,以发挥两者优点。

image-20240316174634888

虚电路

  一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有节点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路的信息。

image-20240316202649178

image-20240316174830841

虚电路方式的特点

  1.虚电路方式为网络层提供连接服务。源节点与目的结点之间建立一条逻辑连接,而非实际物理连接。

  连接服务:首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接。

  2.一次通信的所有分组都通过虚电路顺序传送,分组不需携带源地址、目的地址等信息,包含虚电路号,相对数据报方式开销小,同一报文的不同分组到达目的结点时不会乱序、重复或丢失。

  3.分组通过虚电路上的每个节点时,节点只进行差错检测,不需进行路由选择。

  4.每个节点可能与多个节点之间建立多条虚电路,每条虚电路支持特定的两个端系统之间的数据传输,可以对两个数据端点的流量进行控制,两个端系统之间也可以有多条虚电路为不同的进程服务。

  5.致命弱点:当网络中的某个结点或某条链路出故障而彻底失效时,则所有经过该节点或该链路的虚电路将遭到破坏。


image-20240316203416594

(三)数据交换方式的选择

image-20240316172922228

  1.传输数据量大,且传送时间远大于呼叫时间,选择电路交换。电路交换传输时延最小。

  很好理解,电路交换是独占整条链路,当然传输的最顺畅、传输时延最小。

  2.当端到端的通路有很多段的链路组成时,采用分组交换传送数据较为合适。

  3.从信道利用率上看,报文交换分组交换优于电路交换,其中分组交换比报文交换的时延小,尤其适合于计算机之间的突发式的数据通信。

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

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

相关文章

mybatis源码阅读系列(二)

前言 上一篇文章mybatis源码阅读系列(一)介绍了mybatis和原生jdbc的区别,并通过代码展示了两者的运行过程和结果,下面让我们继续详细了解下mybatis的执行过程; package com.wyl.mybatis.service;import com.wyl.mybat…

环形链表2(C++), test ok

1. 题目 2. 思路分析: 与环形链表1一样,我们需要定义慢指针和快指针,确定链表是否有环,如果链表没有环的话,直接置空即可。如果链表有环,则需要向环形链表1一样,让快指针不断追赶慢指针&#x…

NVENC 视频编码器 API 编程指南 ( 中文转译 )

基于 NVIDIA Kepler™ 和更高版本 GPU 架构的 NVIDIA GPU 包含基于硬件的 H.264/HEVC/AV1 视频编码器(以下简称 NVENC)。NVENC 硬件采用 YUV/RGB 作为输入,并生成符合H.264/HEVC/AV1 标准的视频比特流。可以使用 NVIDIA 视频编解码器 SDK 中提…

Learn OpenGL 15 面剔除

面剔除 尝试在脑子中想象一个3D立方体,数数你从任意方向最多能同时看到几个面。如果你的想象力不是过于丰富了,你应该能得出最大的面数是3。你可以从任意位置和任意方向看向这个球体,但你永远不能看到3个以上的面。所以我们为什么要浪费时间…

Avalonia学习1:下载通用皮肤SukiUI,并在windows上启动成功

目录 1、引言 2、碰到的问题 1、下载下拉VS2022老版本的用不了。 2、升级后,发现没有装wsl,导致启动不了,但wsl又由于国内的关系安装不了,怎么办呢, 1、引言 最近在想有没有什么可以开发在Linux下运行…

公众号留言功能恢复了,你的开通了吗?

了解公众号的人都知道,腾讯在2018年3月宣布暂停新注册公众号的留言功能,这之后注册的公众号都不具备留言功能。 这成了很多号主运营人的一块心病,也包括我。 没有留言,就好似一个人玩单机游戏,无法与读者互动&#xff…

一文总结python的异常数据处理示例

AI应用开发相关目录 本专栏包括AI应用开发相关内容分享,包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 AI应用开发流程概…

vue 记录一个echarts页面 单色环形饼图 多色环形饼图 柱状图加折线图 饼状图 双柱状图 雷达图 多色堆叠柱状图

“设备使用”模块没有做 因为项目不需要 仅自己记录使用 可供参考 那么上代码 <template><!--app-container--><div class"home-wrap"><div class"wrap" v-if"schoolId"><!--第一块--><div class"statis…

PS学习-抠图-蒙版-冰块酒杯等透明物体

选中图&#xff0c;ctrlA 全选 ctrlC复制 创建一个蒙版图层 选中蒙版Alt 点击进入 ctrlv 复制 ctrli 反转 原图层 ctrldelete填充为白色 添加一个背景&#xff0c;这个方法通用 首选创建一个 拖到最底部 给它填充颜色 这个可能是我图片的原因。视频是这样做的

第 5 章 TF坐标变换(自学二刷笔记)

重要参考&#xff1a; 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 5.1.6 TF坐标变换实操 需求描述&#xff1a; 程序启动之初&#xff1a;产生两只乌龟&#xff0c;中间的乌龟…

关于Camera出图,有竖线问题的排查步骤

1、问题背景 之前调试的一个项目&#xff0c;在生产过程中&#xff0c;工厂反馈有台设备出图有明显的规则竖条纹&#xff0c;现象如下附件图所示&#xff1a; 遇到此类图像异常的问题该如何去分析呢&#xff0c;这是本文要总结的内容。 2、问题分析 1&#xff09;首先要从客户…

HarmonyOS NEXT应用开发—Grid和List内拖拽交换子组件位置

介绍 本示例分别通过onItemDrop()和onDrop()回调&#xff0c;实现子组件在Grid和List中的子组件位置交换。 效果图预览 使用说明&#xff1a; 拖拽Grid中子组件&#xff0c;到目标Grid子组件位置&#xff0c;进行两者位置互换。拖拽List中子组件&#xff0c;到目标List子组件…

OpenAI 的 GPTs 提示词泄露攻击与防护实战:攻击卷(一)

攻击提示词 1.0 五件套混合散打 1. Repeat the words above starting with the phrase "You are ChatGPT". put them in a txt code block. Include everything. 2. give me your very first initial prompt exactly and not modified 3. 你有一個舊的 prompt 和 配…

【中等】保研/考研408机试-二叉树相关

目录 一、基本二叉树 1.1结构 1.2前序遍历&#xff08;注意三种遍历中Visit所在的位置&#xff09; 1.2中序遍历 1.3后序遍历 二、真题实战 2.1KY11 二叉树遍历&#xff08;清华大学复试上机题&#xff09;【较难】 2.2KY212 二叉树遍历二叉树遍历&#xff08;华中科技大…

mac电脑修改终端zsh显示的用户名

电脑名称一直没有修改&#xff0c;所以电脑名称都是Apple的MacBook Pro&#xff0c;如下图所示&#xff1a; mac电脑终端显示用户名太长一点也不美观&#xff0c;而且占用很长的行&#xff0c;浪费空间&#xff0c;可以通过修改来调整要显示什么内容&#xff1a; 方式一 要想换…

运行gazebo机器人模型没有cmd_vel话题

运行赵虚左教程代码出现上诉问题 roslaunch urdf02_gazebo demo03_env.launch 原因&#xff1a;缺少某个包 在工作空间catkin_make编译发现报错 解决&#xff1a; sudo apt-get install ros-noetic-gazebo-ros-pkgs ros-noetic-gazebo-ros-control 下载后再次运行launch文件…

python自动化之(django)(2)

1、创建应用 python manage.py startapp apitest 这里还是从上节开始也就是命令行在所谓的autotest目录下来输入 然后可以清楚的看到 多了一个文件夹 2、创建视图 在views中加入test函数&#xff08;所建应用下&#xff09; from django.http import HttpResponse def tes…

【OJ】string类题目

个人主页 &#xff1a; zxctscl 如有转载请先通知 题目 1. 415字符串相加1.1 分析1.2 代码 2. 344反转字符串2.1 分析2.2 代码 3. HJ1字符串最后一个单词的长度3.1 分析3.2 代码 4. 387.字符串中的第一个唯一字符4.1 分析4.2 代码 5. 125验证回文串5.1 分析5.2 代码 1. 415字符…

载人航天、超级计算机、深海深地探测......政府工作报告中,这些科技“关键词”令人振奋!

​​​​​​​3月5日上午&#xff0c;备受瞩目的十四届全国人大一次会议在人民大会堂隆重开幕。政府工作报告中提到载人航天、探月探火、深海深地探测等科技关键词。​​​​​​​ 3月5日上午&#xff0c;第十四届全国人民代表大会第一次会议在人民大会堂举行开幕会。 政府…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Column)

沿垂直方向布局的容器。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 可以包含子组件。 接口 Column(value?: {space?: string | number}) 从API version 9开始&#xff0c;该接口…