掌握电路交换与分组交换:计算机网络的核心技术

news/2024/7/8 3:32:26 标签: 计算机网络, 网络, 服务器

网络>计算机网络是现代信息社会的基石,而交换技术是实现网络通信的核心。本文将详细介绍两种典型的交换方式:电路交换分组交换,帮助基础小白快速掌握这两种技术的基本概念和区别。


什么是电路交换?

电路交换(Circuit Switching)技术来源于电话网,它的工作原理可以通过电话机的连接方式来说明。

1. 简单连接

最简单的方式是两部电话直接用一对电线连接,如图1-6(a)所示。但当电话数量增加时,直接连接的方法需要的电线数量将会急剧增加。

2. 使用交换机

为了减少电线数量,可以使用交换机将电话机连接起来,如图1-6©所示。每部电话都连接到交换机上,交换机通过动态分配线路资源来实现任意两部电话的通信。

在这里插入图片描述

3. 电路交换的工作过程

电路交换的过程包括三个步骤:

  • 建立连接(分配通信资源)
  • 通话(一直占用通信资源)
  • 释放连接(归还通信资源)

在通话过程中,通信资源始终被占用,如图1-7所示。这种方式虽然简单,但对于计算机数据传输而言,效率较低,因为计算机数据是突发式的,线路在大部分时间里处于空闲状态。

在这里插入图片描述

  1. 优缺点
优点
  • 传输时延小:由于通信线路为通信双方用户专用,数据直达,时延非常小。
  • 实时性强:通信双方之间的物理通路一旦建立,双方可以随时通信。
  • 有序传输:数据按发送顺序传送,不存在失序问题。
  • 适用范围广:适用于传输模拟信号和数字信号。
  • 控制简单:交换设备及控制相对简单。
缺点
  • 建立连接时间长:对于计算机通信来说,平均连接建立时间较长。
  • 信道利用率低:物理通路被双方独占,即使通信线路空闲,也不能供其他用户使用。
  • 灵活性差:不同类型、不同规格、不同速率的终端难以相互通信,也难以进行差错控制。
  1. 应用场景

电路交换最早用于电话网络,两台电话之间通过专有电线连接。虽然电路交换在实时性和低时延方面具有明显优势,但由于其信道利用率低和灵活性差,在现代互联网中较少使用,更多应用于需要高实时性和固定连接的场景,如传统电话通信。


什么是分组交换?

分组交换(Packet Switching)是网络>计算机网络中主要采用的交换技术,它通过将数据分割成小的分组来传输。

1. 分组的概念

在发送报文之前,先将较长的报文划分成等长的数据段,每个数据段前加上控制信息组成一个分组(Packet),如图1-8所示。分组的首部包含了目的地址和源地址等重要信息。

在这里插入图片描述

2. 分组交换的工作过程

分组交换的过程是通过存储转发的方式实现的。分组交换机接收分组后,先存储下来,检查首部信息,按首部中的地址查找转发表,找到合适的接口转发出去,如图1-9所示。

在这里插入图片描述

  1. 优缺点
优点
  • 无需建立连接:用户可以随时发送分组,不需要预先建立通信线路。
  • 线路利用率高:通信双方不是固定占用一条通信线路,而是在不同的时间段部分占用线路,提高了线路利用率。
  • 加速传输:分组逐个传输,后一个分组的存储操作与前一个分组的转发操作可以并行,减少了传输时间。
  • 提高传输可靠性:交换节点具有路径选择功能,当某条传输线路故障时,可选择其他传输线路。
  • 减少出错几率和重发数据量:分组较短,出错几率减少,每次重发的数据量也减少。
缺点
  • 转发时延:数据进入交换节点后要经历存储转发过程,引起转发时延,网络通信量越大,时延越大。
  • 实时性较差:由于转发时延和排队等待,实时性不如电路交换。
  • 数据报服务存在问题:可能出现失序、丢失或重复分组,需要对分组按编号进行排序等工作。
4. 分组交换的挑战

分组交换也带来一些新的问题,如时延和分组丢失。分组在传输时需要排队等待,可能会造成时延,甚至因为缓存满而丢失分组,如图1-10所示。

在这里插入图片描述


电路交换与分组交换的对比

电路交换和分组交换在数据传输方式上有明显区别:

  • 电路交换:整个报文的比特流连续地从源点直达终点,如图1-11所示。
  • 分组交换:单个分组传送到相邻结点,存储后再转发,逐段占用通信资源。

电路交换适合连续传输大量数据,而分组交换更适合传输突发数据,提高了信道利用率和传输效率。


通过本文的介绍,希望基础小白能对电路交换与分组交换有一个初步的了解。这两种交换技术是网络>计算机网络的核心基础,掌握它们有助于更好地理解网络通信的原理。

文本,图片来源:《网络>计算机网络教程》第6版微课版


http://www.niftyadmin.cn/n/5536398.html

相关文章

理解 React 中的 API 封装、自定义 Hooks、组件、独立模块与 Context

在现代前端开发中,React 提供了多种方法来组织和管理代码。这些方法包括 API 封装、自定义 Hooks、组件、独立模块和 Context。理解它们的区别和联系,可以帮助我们编写更清晰、更模块化的代码。 1. API 封装 目的:处理与后端服务的通信逻辑…

状态模式在金融业务中的应用及其框架实现

引言 状态模式(State Pattern)是一种行为设计模式,它允许对象在内部状态改变时改变其行为。状态模式通过将状态的相关行为分离到独立的状态类中,使得状态转换更加明确和简洁。在金融业务中,状态模式可以用于实现交易状…

WPS中制作甘特图的详细教程

网上没几个详细说怎么在WPS中制作甘特图的,我自己整理了一下详细教程,最终效果如下图所示: 1.写好需要展示的项目相关信息,如下图所示: #####这个进度的百分比渐变效果这样设置就行了 2.现在我们需要计算已用时间和剩…

02-android studio实现下拉列表+单选框+年月日功能

一、下拉列表功能 1.效果图 2.实现过程 1&#xff09;添加组件 <LinearLayoutandroid:layout_width"match_parent"android:layout_height"wrap_content"android:layout_marginLeft"20dp"android:layout_marginRight"20dp"android…

C++ 的常见算法 之三

C 的常见算法 之三 合并merge使用实列 inplace_merge使用实列 set_difference使用实列 堆make_heap使用实列 sort_heap使用实列 合并 merge 将排序范围 [first1,last1) 和 [first2,last2) 中的元素合并到一个新范围中&#xff0c;该范围从 result 开始&#xff0c;所有元素均…

昇思25天学习打卡营第6天|linchenfengxue

​​​​​​SSD目标检测 SSD&#xff0c;全称Single Shot MultiBox Detector&#xff0c;是Wei Liu在ECCV 2016上提出的一种目标检测算法。使用Nvidia Titan X在VOC 2007测试集上&#xff0c;SSD对于输入尺寸300x300的网络&#xff0c;达到74.3%mAP(mean Average Precision)以…

Dialog设置背景透明和尺寸

class TestDialog(context: Context?,var clickListener: OnClickCallBack) : Dialog(context!!) {lateinit var binding:TestDialogBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)binding TestDialogBinding.inflate(Lay…

Feign:简化微服务通信的利器

介绍 1.1 什么是 Feign&#xff1f; Feign 是一个声明式、模板化的 HTTP 客户端&#xff0c;它简化了编写 Web 服务客户端的过程。它的主要目的是使 HTTP API 客户端的开发变得更加简单和直观。Feign 的设计理念是将 HTTP 客户端的细节隐藏在背后&#xff0c;使开发者可以专注…