当前位置: 首页 > news >正文

计算机网络——物理层(数据交换方式)

计算机网络——数据交换方式

  • 提高数据交换方式的必要性
  • 电路交换
    • 电路交换原理
    • 电路交换的阶段
      • 建立阶段
      • 通信阶段和连接拆除阶段
  • 电路交换的优缺点
  • 报文交换
    • 什么是报文
    • 报文交换的阶段
    • 报文交换的优缺点
  • 分组交换
    • 分组交换的阶段
    • 分组交换的优缺点
  • 数据交换方式的选择
  • 数据报方式
    • 数据报方式的特点
  • 虚电路方式
    • 虚电路方式优缺点
    • 数据报和虚电路的区别

今天我们继续来看数据的交换方式:

提高数据交换方式的必要性

之前,我们也了解过一些传统的数据交换方式,就是通过线路来交换,缺点也很明显,当机器的数量上升时,线路的条数会以恐怖的方式增长:
在这里插入图片描述
所以我们引入交换设备,通过交换设备,数据流通的成本就大大的下降了:
在这里插入图片描述
交换设备一多起来,就有了交换网络
在这里插入图片描述

电路交换

电路交换是一种在通信网络中用于建立端到端连接的通信方式。在电路交换中,通信路径在通话期间一直保持打开状态,即使没有数据传输也是如此。这种方式与分组交换不同,后者是在数据传输时将数据分成小块(分组),然后每个分组独立传输,并在目的地重新组装。

电路交换原理

电路交换通过在通话期间保持端到端连接来实现通信,这种连接在通话开始时建立,在通话结束时释放。这种方式适用于实时通信,如电话通话,但在数据传输方面存在一定的效率问题,因为即使在通话期间也会占用通信路径和资源。

电路交换的阶段

建立阶段

呼叫发起:通信的一方发起呼叫请求,向交换机发送呼叫信令。
在这里插入图片描述呼叫信令传输:交换机接收到呼叫请求后,在通信网络中寻找可用的通话路径
在这里插入图片描述呼叫信令处理:被呼叫方收到呼叫请求后,向交换机发送接受呼叫的信令。
在这里插入图片描述呼叫连接建立:交换机收到接受呼叫的信令后,通知呼叫方通话连接已建立,通话可以开始。
在这里插入图片描述

通信阶段和连接拆除阶段

通信阶段
当连接建立完成后,通信双方就可以开始在这条专用的物理电路上进行数据传输了。
数据在已建立的直通电路上进行透明传输,意味着数据在传输过程中不会被修改或变换格式。
这个阶段的数据传输具有低延迟、无阻塞的特点,并且数据的传输路径在整个通信过程中保持不变。

连接拆除阶段
当数据传输任务完成后,通信双方需要拆除之前建立的电路连接。
这通常涉及到发送连接释放请求,当双方确认连接可以被释放后,电路连接被拆除。
拆除连接后,释放的节点和信道资源可以被其他用户所使用,从而提高资源的利用率。
在这里插入图片描述

电路交换的优缺点

电路交换作为一种通信方式,具有其独特的优缺点。
优点
数据传输可靠且迅速:电路交换在通信双方之间建立了一条专用的物理电路,数据在这条电路上进行透明传输,不会丢失且保持原来的序列,因此传输可靠性高,延时小。
实时性好:一旦电路建立,通信双方的所有资源均用于本次通信,除了少量的传输延迟之外,不再有其他延迟,这使得电路交换具有较好的实时性,特别适用于需要实时通信的场景。
传输质量高:电路交换的连接方式是一对一的,数据传输时不需要在网络中寻找路由,因此传输质量高。
缺点
资源利用率低:电路交换的连接方式是一对一的,连接建立后,即使数据传输量较小或传输时间较短,通信线路和交换机等资源也会一直被占用,导致资源利用率低下。
连接建立时间长:电路交换在通信前需要建立连接,这个过程可能会消耗一定的时间,特别是在网络规模较大或交换设备复杂的情况下。
不适用于所有数据通信:电路交换的优势在语音通信中更为显著,而对于数据通信,特别是突发性的数据传输,电路交换可能并不适用,因为数据通信的流量和连接数量可能难以预测和控制。
无法支持多任务:电路交换的连接方式是一对一的,因此无法同时支持多个任务或用户共享同一资源。
在这里插入图片描述

报文交换

什么是报文

报文(Message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。它包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。报文也是网络传输的单位,传输过程中会不断的封装成分组、包、帧来传输,封装的方式就是添加一些信息段,这些以一定格式组织起来的数据就是报文头,里面包含了报文类型、报文版本、报文长度、报文实体等信息。
在这里插入图片描述在这里插入图片描述

报文交换的阶段

报文交换可以概括为以下几个阶段:
报文生成: 在通信的起始端,数据被分成独立的消息或报文。这些报文通常包含了发送方到接收方所需的信息,如数据内容、目标地址等。
路由选择: 当报文离开起始端时,网络设备(如路由器)会根据报文中的目标地址信息来选择下一跳的路由。这一步是确保报文能够通过网络中的合适路径到达目的地的关键。
报文传输: 报文沿着选定的路径通过网络传输,经过各个中间节点,直到到达目的地。在传输过程中,报文可能会经历存储、转发和路由决策等过程。
报文接收与重组: 当报文到达目的地时,目的端的设备接收到报文,并将多个报文按照顺序重组成完整的消息或数据流。
报文处理: 目的端设备对接收到的报文进行处理,可能涉及解析报文内容、执行应用层协议操作等。
应用处理: 最终,接收端的应用程序或用户处理接收到的数据,完成通信过程。
在这里插入图片描述

报文交换的优缺点

报文交换作为一种通信范式,具有以下优点和缺点:

优点
灵活性: 报文交换具有灵活性,因为每个报文都可以根据当前网络状况选择最佳的路径进行传输。这使得网络能够更好地适应变化的流量需求和网络拓扑。
无连接: 报文交换是无连接的,每个报文都是独立处理的,不需要在发送前建立连接或预留资源。这降低了网络开销,并提高了网络的效率。
适应性: 报文交换适用于不同类型的通信,包括短消息、数据文件、多媒体内容等,因为它能够根据数据类型和网络状况选择合适的传输路径。
容错性: 报文交换具有较强的容错性,因为即使网络中的某些节点或链路发生故障,报文仍然可以通过其他可用路径传输到目的地。
资源共享: 报文交换可以在网络中共享资源,多个报文可以同时在同一链路上传输,提高了网络的利用率。
缺点
处理开销: 报文交换中每个报文都需要在节点上进行路由选择和转发,这可能会增加网络节点的处理开销和时延,尤其在网络负载较重时。
报文重组: 在接收端,如果报文分散在不同的路径上传输,需要对接收到的报文进行重组,这可能会增加处理复杂性和延迟。
网络拥塞: 当网络流量过大时,报文交换可能会导致网络拥塞,影响数据传输的效率和性能。
安全性: 报文交换中的报文在传输过程中可能会受到窃听、篡改或伪造的风险,因此需要额外的安全机制来保护数据的安全性和完整性。
不适用于实时性要求高的应用: 由于报文交换中报文的传输路径可能不确定以及存在处理延迟,因此不适合对实时性要求较高的应用,如语音通话和视频会议等。
在这里插入图片描述

分组交换

分组交换其实就是把报文交换中的报文切分成了更小的单元。
在这里插入图片描述

分组交换的阶段

在分组交换中,数据传输通常包括以下几个阶段:
封装阶段(Encapsulation):
在发送端,数据被分割成较小的数据包或分组。
每个数据包被封装成特定的数据格式,通常包括了数据部分以及控制信息,如源地址、目标地址、序列号等。
传输阶段(Transmission):
分组被发送到网络中,并沿着预定的路由路径传输。
分组在网络中的传输可能会经过多个中间节点(如路由器),每个节点根据分组中的目标地址信息来决定下一跳的路由。
转发阶段(Forwarding):
在每个中间节点,分组被接收并转发到下一个节点,直到到达目的地。
转发过程涉及路由选择和数据包的缓存、转发等操作,以确保分组能够沿着正确的路径到达目的地。
接收阶段(Reception):
在接收端,分组被接收并进行处理。
如果数据包分散在不同的路径上传输,接收端可能需要对接收到的分组进行重新组装以恢复原始数据。
解封装阶段(Decapsulation):
接收端对接收到的分组进行解封装,提取出原始的数据部分以及控制信息。
解封装阶段可能包括对数据的检验和验证,如校验和或数据包的完整性检查。

同时为了保证收到的数据报可以拼成完整的数据,发送端为每个数据报分配唯一的序列号,接收端收到数据报后发送确认信息给发送端。如果发送端收到确认信息,就知道该数据报已经被成功接收,如果未收到确认信息,发送端会重新发送数据报。

分组交换的优缺点

分组交换是一种常见的网络通信方式,它具有许多优点和一些缺点,下面是它们的概述:

优点
灵活性: 分组交换网络可以灵活地适应不同的数据传输需求,支持多种数据类型和多种应用。
资源共享: 分组交换网络中的资源(如带宽)可以根据需要动态分配和共享,提高了网络资源的利用率。
可扩展性: 分组交换网络可以通过增加节点或链路来扩展网络规模,以满足日益增长的通信需求。
冗余路由: 分组交换网络中通常存在多条可用的路径,即使其中一条路径发生故障,数据仍然可以通过其他路径进行传输,提高了网络的可靠性。
适应性: 分组交换网络能够适应不同的网络拓扑结构和通信环境,包括局域网、广域网和互联网等。
缺点
延迟: 分组交换网络中,数据包需要经过多个节点的转发和处理,这会引入一定的传输延迟,影响了实时性应用的性能。
丢包: 在分组交换网络中,数据包可能会在传输过程中丢失或损坏,需要采取额外的措施(如重传)来保证数据的可靠性。
网络拥塞: 当网络负载过高时,可能会导致网络拥塞,影响数据传输的速度和质量。
安全性: 分组交换网络中的数据包在传输过程中可能会被窃听、篡改或伪造,需要采取加密和认证等措施来保护数据的安全性。
配置和管理复杂性: 分组交换网络的配置和管理需要一定的技术和资源,包括路由器、交换机、协议配置等,可能会增加网络运维的复杂性和成本。
在这里插入图片描述

总的来说,分组交换网络具有灵活性、可扩展性和资源共享等优点,但也面临延迟、丢包、网络拥塞和安全性等挑战。在设计和运维分组交换网络时,需要综合考虑这些因素,并采取相应的措施来优化网络性能和提高数据传输的可靠性。

数据交换方式的选择

数据交换方式的选择取决于具体的通信需求和网络环境。在常见的三种数据交换方式中,电路交换、报文交换和分组交换各有其优缺点和适用场景。
电路交换是一种实时性强的通信方式,适用于数据量大的情况,如电话通信。它通过建立物理通路来确保数据的实时传输,通信时延小,有序传输,没有冲突。然而,电路交换在建立连接时间长,线路独占使得线路使用效率低,灵活性差,且没有差错控制能力。
报文交换则适用于轻量级或间歇式的网络负载,以及无需建立连接的场景。它采用存储转发方式,动态分配线路,线路可靠性和利用率较高,支持多目标服务。但是,报文交换存在存储转发时延,且报文大小不定,需要网络结点有较大缓存空间。
分组交换结合了报文交换和电路交换的优点,适用于中等或稍重的网络负载。它将大的数据块分割成小的数据块(分组)进行传输,每个分组都有首部标明地址,交换机根据首部中的地址信息将分组转发到目的地。分组交换具有线路可靠性高、利用率高、存储管理容易等优点。但是,它相对于报文交换开销较大,且有一定的时延。
在选择数据交换方式时,需要考虑数据的实时性要求、传输量大小、网络负载情况、差错控制能力等因素。例如,对于实时性要求高的交互式传输,电路交换可能更合适;对于轻量级或间歇式的网络负载,报文交换可能更经济高效;而对于需要灵活分配线路和较高可靠性的场景,分组交换可能更为适用。
在这里插入图片描述

综上所述,数据交换方式的选择应根据具体需求和网络环境进行权衡,选择最适合的方式以确保数据的可靠、高效传输。

数据报方式

数据报方式是一种无连接的数据传输方式,**其特点是在分组传输前不需要在源主机与目的主机之间预先建立连接。每个数据报都独立地选择传输路径,并可能通过不同的路径到达目的主机。**这种方式具有灵活性高、动态性好的优点,适用于突发性通信或需要动态选择路径的场景。
在数据报方式中,源主机将报文划分成多个分组,并依次发送到直接相连的通信控制处理机(结点)。每个结点接收到分组后,会进行差错检测和路由选择,并根据路由信息将分组转发到下一个结点。由于每个分组都独立地选择路径,因此不同的分组可能通过不同的传输路径到达目的主机。
数据报方式的传输延迟较大,因为每个分组都需要独立地进行路由选择和传输。此外,由于不同分组可能经过不同的路径,它们在目的主机处可能出现乱序、重复和丢失的现象。因此,数据报方式通常适用于对传输延迟要求不高的突发性通信,如电子邮件、文件传输等。
在这里插入图片描述

数据报方式的特点

数据报方式的特点主要体现在以下几个方面:

无连接服务:数据报方式为网络层提供无连接服务。发送方可以随时发送分组,而网络中的节点也可以随时接受分组。这意味着在数据传输之前,源主机与目的主机之间不需要建立连接。
独立选择传输路径:源主机发送的每一个分组都可以独立选择一条传输路径。这意味着不同的分组可能通过不同的路径到达目的主机,增加了传输的灵活性。
分组可能出现乱序、重复与丢失:由于分组独立选择路径,它们在目的主机处可能会出现乱序、重复和丢失的现象。因此,接收方需要对接收到的分组进行处理,以确保数据的完整性和正确性。
包含源地址和目的地址:每个分组在传输过程中都必须携带源地址和目的地址以及分组号。这有助于网络节点正确地将分组转发到目的主机。
传输延迟较大:由于分组独立选择路径,且可能经过不同的传输节点,导致传输延迟较大。这种特点使得数据报方式更适用于突发性通信或对实时性要求不高的场景。
对故障的适应能力强:当网络中的某个节点或链路出现故障时,数据报方式可以绕开故障区域,选择其他路径进行传输。这种特点使得数据报方式具有较好的容错性和可靠性。
在这里插入图片描述

总的来说,数据报方式具有灵活性高、动态性好的优点,但同时也存在传输延迟大、可能出现乱序和丢失等问题。在选择数据交换方式时,需要根据具体需求和网络环境进行权衡。

虚电路方式

虚电路方式是一种面向连接的数据传输方式,具有以下主要特点:

连接建立:在数据传输之前,源节点与目的节点之间会建立一条逻辑连接,即虚电路。这种连接不是物理连接,而是逻辑上的连接,用于确保数据的有序传输。
分组传输:一旦虚电路建立,所有的数据分组都会按照已经建立的路径顺序通过网络进行传输。由于路径是预先确定的,分组在网络终点不需要重新排序,从而减小了分组传输的时延,降低了分组丢失的可能性。
路由选择简化:在虚电路上,每个节点只需要进行差错检测,而不需要进行路由选择。这简化了节点的处理过程,提高了传输效率。
流量控制:虚电路方式支持对两个数据端点的流量进行控制,确保数据的平稳传输。
灵活性:每个节点可以与多个节点之间建立多条虚电路,每条虚电路支持特定的两个端系统之间的数据传输。这种灵活性使得虚电路方式可以适应不同的数据传输需求。
在这里插入图片描述

虚电路方式优缺点

虚电路方式作为一种面向连接的数据传输方式,具有其独特的优缺点。

优点
可靠性高:虚电路方式在数据传输前会建立一条逻辑连接,数据分组按照连接路径顺序传输,确保了数据的完整性和一致性,降低了分组丢失和乱序的风险。
有序性保障:由于数据分组在虚电路上按照发送顺序传输,到达目的节点时不会出现乱序现象,这有助于接收端对数据进行正确的解析和处理。
简化路由选择:在虚电路方式中,每个节点无需进行复杂的路由选择,只需进行差错检测,这简化了节点的处理过程,提高了传输效率。
流量控制支持:虚电路方式允许对两个数据端点的流量进行控制,这有助于避免网络拥塞和数据丢失,确保数据的平稳传输。
缺点
建立连接耗时:在数据传输之前,虚电路方式需要建立逻辑连接,这可能需要一定的时间和资源。对于短小的数据传输任务,建立连接的开销可能显得相对较高。
故障敏感性:虚电路一旦建立,当传输路径中的某个节点或链路发生故障时,整个虚电路都可能受到影响,导致数据传输中断。尽管现代网络中的虚电路方式提供了重连接功能,但故障恢复仍然需要一定的时间。
灵活性受限:虚电路方式在数据传输过程中通常固定使用一条路径,这在某种程度上限制了网络的灵活性。当网络拓扑结构发生变化时,可能需要重新建立虚电路。
在这里插入图片描述

综上所述,虚电路方式在提供可靠、有序的数据传输方面具有显著优势,但同时也存在建立连接耗时、故障敏感性和灵活性受限等缺点。在选择是否使用虚电路方式时,需要根据具体的应用场景和需求进行权衡。

数据报和虚电路的区别

数据报和虚电路是两种不同的数据传输方式,它们在网络通信中各有特点和适用场景。以下是它们之间的主要区别:

连接的建立
虚电路方式在数据传输前需要在源主机与目的主机之间建立一条逻辑连接。这条连接在数据传输期间持续存在,直到数据传输完毕后再释放。这种连接方式确保了数据按照预定的路径和顺序进行传输。
数据报方式则不需要建立连接。每个数据报都独立地选择路径进行传输,无需在发送方和接收方之间建立和维护连接。
分组传输
在虚电路方式中,数据分组沿着预先建立的虚电路进行传输。由于路径是固定的,分组到达目的地时不会出现乱序现象。
数据报方式中,每个数据报都独立选择路径,因此不同的数据报可能通过不同的路径到达目的地,可能导致分组乱序。
可靠性
虚电路方式通过连接建立、路径选择和流量控制等机制,提供了较高的可靠性。一旦连接建立,数据按照预定的路径传输,减少了数据丢失的风险。
数据报方式虽然不需要建立连接,但每个数据报都包含源地址和目的地址等信息,使得每个数据报可以独立地进行路由选择。这种方式在某些情况下可能导致数据丢失或重复,但通常适用于对实时性要求较高或数据量较小的场景。
适用场景
虚电路方式更适合于传输大量数据或对数据传输顺序有严格要求的场景,如文件传输、语音通话等。
数据报方式则更适用于少量数据或实时性要求较高的场景,如即时通讯、在线游戏等。
在这里插入图片描述

综上所述,数据报和虚电路在连接的建立、分组传输、可靠性和适用场景等方面存在明显的区别。在实际应用中,需要根据具体的需求和网络环境来选择合适的数据传输方式。

相关文章:

  • Task-balanced distillation for object detection用于
  • 编译原理-实现识别标识符的词法分析器——沐雨先生
  • ARM 汇编指令:(七) STM/LDM多寄存器加载/多存储指令
  • Python的Selenium库中的模块、类和异常的汇总
  • react可视化编辑器 第一章 拖拽
  • C语言如何进⾏字符数组的连接?
  • 2023年中国抗DDoS市场规模现状及竞争格局,公有云抗DDoS是主要增长点
  • 数学建模--MATLAB基本使用
  • Day39:安全开发-JavaEE应用SpringBoot框架Actuator监控泄漏Swagger自动化
  • 科研绘图一:箱线图(添加贝赛尔曲线)
  • 获取扇区航班数
  • Linux-网络基础
  • 【解惑】离线版本的软件如何实现“授权验证”和“使用有效期”验证的
  • iPhone 的健康数据采用的是 FHIR 传输格式
  • RK3568平台开发系列讲解(基础篇)内核是如何发送事件到用户空间
  • java取消线程实例
  • Python_OOP
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • 工作中总结前端开发流程--vue项目
  • 计算机常识 - 收藏集 - 掘金
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 前端性能优化--懒加载和预加载
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 找一份好的前端工作,起点很重要
  • ionic异常记录
  • 湖北分布式智能数据采集方法有哪些?
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • (¥1011)-(一千零一拾一元整)输出
  • (1)(1.9) MSP (version 4.2)
  • (30)数组元素和与数字和的绝对差
  • (4.10~4.16)
  • (42)STM32——LCD显示屏实验笔记
  • (三)elasticsearch 源码之启动流程分析
  • (三)uboot源码分析
  • (一)80c52学习之旅-起始篇
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .gitattributes 文件
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .Net Web项目创建比较不错的参考文章
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .Net各种迷惑命名解释
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [Android Studio] 开发Java 程序
  • [C++] Boost智能指针——boost::scoped_ptr(使用及原理分析)
  • [Excel VBA]单元格区域引用方式的小结
  • [Java] IDEA Scala环境搭建
  • [Java] 什么是IoC?什么是DI?它们的区别是什么?
  • [javaSE] GUI(事件监听机制)
  • [JS]数据类型