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

计算机网络基础之三种交换技术及其性能分析

一. 交换技术基础

1. 三种交换技术

  • 电路交换:用于电话网络
  • 报文交换:用于电报网络
  • 分组交换:用于现代计算机网络

2. 人类历史上的通信网络

公元前五世纪起: 邮政网络
1830s-1960s: 电报网络
1870s-1960s: 电话网络
1960s: 研发计算机网络

二. 各个交换技术的过程及优缺点

1. 电路交换

  1. 电路交换的过程:
    • 建立连接
    • 通信(一直占用通信资源)
    • 释放连接(归还通信资源)
  2. 电路交换优缺点:
    • 优点:
      • 通信前从主叫端到被叫端建立一条专用的物理通路,在全部的通信时间内,两个用户始终占用端到端的通信资源。数据直送,传输效率高
      • 电路交换更适合于低频次,大量的传输控制
    • 缺点:
      • 释放/建立连接需要额外的时间开销
      • 线路被通信双方独占,利用率低
      • 线路分配的灵活性差
      • 交换节点不支持“差错控制”(无法发现传输过程的数据错误)

计算机之间数据往往是“突发式”传输,即往往会高频次,少量的传输数据
因此,计算机网络不适合采用电路交换技术

2. 报文交换

  1. 报文交换优缺点:
    • 优点:
      • 通信前无需建立连接
      • 数据以报文为单位呗交换节点间进行存储转发,通信线路可灵活分配
      • 在通信时间内,两个用户无需独占一整条物理线路
      • 相比于电路交换,线路利用率高
      • 交换节点支持差错控制
    • 缺点:
      • 报文不定长,不方便存储转发管理
      • 长报文的存储转发时间开销大、缓存开销大
      • 报文容易出错
        存储转发: 把传输数据单元先存储进中间节点,再根据目的地址转发至下一节点

3. 分组交换

  1. 分组交换优缺点:
    • 优点:
      • 通信前无需建立连接
      • 数据以报文单位被交换节点间进行存储转发,通信线路可灵活分配
      • 在通信时间内,两个用户无需独占一整条通信线路
      • 相比于电路交换,线路利用率更高
      • 交换节点支持差错控制
    • 相比于报文交换
      • 分组定长,方便存储转发管理
      • 分组的存储转发时间开销小、缓存开销小
      • 分组不易出错,重传代价低
    • 缺点:
      • 相比于报文交换,控制信息占比增加
      • 相比于电路交换,依然存在存储转发时延
      • 报文被拆分为多个分组,传输过程可能出现失序、丢失等问题,增加处理的复杂度
  2. 分组交换过程:
    不定长报文 拆分成定长的分组;数据传输后需要对分组进行排序合并。因此 需要记录 源地址(始发位置)、目的地址(接收位置)、分组号(用于排序分组)。这些内容被记录在首部,每个分组数据都包含一个首部

三. 性能分析

电路交换报文交换分组交换
完成传输所需时间最少(排除建立/释放连接耗时)最多较少
存储转发时延较高较低
通信前是否需要建立连接
缓存开销
是否支持差错控制不支持支持支持
报文数据有序到达有序有序无序
是否需要额外控制信息是(控制信息占比最大)
线路分配灵活性不灵活灵活非常灵活
线路利用率非常高

相关文章:

计算机网络基础之三种交换技术及其性能分析

一. 交换技术基础 1. 三种交换技术 电路交换:用于电话网络报文交换:用于电报网络分组交换:用于现代计算机网络 2. 人类历史上的通信网络 #mermaid-svg-AeGvrkUbCkicFOIo {font-family:"trebuchet ms",verdana,arial,sans-serif;…...

使用python爬取网络资源

整体思路 网络资源爬取通常分为以下几个步骤: 发送 HTTP 请求:使用requests库向目标网站发送请求,获取网页的 HTML 内容。解析 HTML 内容:使用BeautifulSoup库解析 HTML 内容,从中提取所需的数据。处理数据&#xff…...

【MySQL】索引 事务

目录 一、索引 概念 作用 使用场景 使用 查看索引 创建索引 删除索引 背后的数据结构 二、事务 为什么使用事务 事务的概念 使用 开启事务 执行多条 SQL 语句 回滚或提交:rollback/commit; 事务的基本特性 原子性 一致性 持久性 隔离性 脏读 …...

平台与架构:深度解析与开发实践

平台与架构:深度解析与开发实践 1. 什么是平台与架构? 平台(Platform):指操作系统或运行环境,例如 linux、windows、darwin(macOS)、android 等。架构(Architecture&…...

【Springboot+JPA】存储过程Procedure使用及踩坑记录

SpringbootJPA存储过程调用 存储过程实现1.表结构2.上报数据分页查询2.1先查出总条数2.1.1 创建存储过程2.1.2 实体类声明存储过程2.1.3 仓库方法绑定存储过程2.1.4 服务调用存储过程 2.2返回分页数据2.2.1 创建存储过程2.2.2 实体类声明存储过程2.2.3 仓库方法绑定存储过程2.2…...

<template>标签的作用,在构建可复用 UI 片段时如何应用?

大白话标签的作用&#xff0c;在构建可复用 UI 片段时如何应用 <template>标签的作用 在前端开发里&#xff0c;<template>标签可是个超棒的工具。它就像是一个“代码仓库”&#xff0c;可以把一些 HTML 代码片段存起来&#xff0c;而且这些代码片段在页面刚加载…...

Android Compose框架的值动画(animateTo、animateDpAsState)(二十二)

深入剖析 Android 框架的值动画&#xff08;animateTo、animateDpAsState&#xff09; 一、引言 在构建富有交互性和吸引力的 Android 应用界面时&#xff0c;动画起着至关重要的作用。值动画作为 Android 动画体系中的重要组成部分&#xff0c;能够为各种 UI 元素的属性变化…...

Gunicorn+Eventlet无法收到SocketIO发送的消息

GunicornEventlet无法收到Socketio发送的消息 介绍问题分析**1. 确保正确安装依赖库****2. 检查 Gunicorn 启动命令****3. 配置 Flask-SocketIO 的异步模式****4. 检查库版本兼容性****5. 确认 emit 的调用方式****6. 客户端连接检查** 如何使用多个workers?**1. 为什么不能直…...

【江协科技STM32】软件SPI读写W25Q64芯片(学习笔记)

SPI通信协议及S为5Q64简介&#xff1a;【STM32】SPI通信协议&W25Q64Flash存储器芯片&#xff08;学习笔记&#xff09;-CSDN博客 STM32与W25Q64模块接线&#xff1a; SPI初始化&#xff1a; 片选SS、始终SCK、MOSI都是主机输出引脚&#xff0c;输出引脚配置为推挽输出&…...

基于 Vue 3 的PDF和Excel导出

以下是基于 Vue 3 Composition API 的完整实现&#xff0c;包括 PDF 和 Excel 导出。 一、PDF 导出 (Vue 3) 安装依赖 在项目中安装相关库&#xff1a; npm install html2canvas jspdf Vue 3 代码实现 <template><div><div ref"pdfContent" cla…...

Git+Fork 入门介绍

git 分区理解 fork安装 从路径下去拿软件时&#xff0c;注意先拉到本地。经验来看&#xff0c;fork直接安装会出不可思议的问题。 fork操作 安装&#xff0c;注意设置好名字&#xff0c;如果之前安装的同学&#xff0c;名字没有写好&#xff0c;重新安装设置好名字。 clone操…...

Windows系统安装Node.js和npm教程【成功】

0.引言——Node.js和npm介绍 项目描述Node.js基于Chrome V8引擎的JavaScript运行环境&#xff0c;使JavaScript可用于服务器端开发。采用单线程、非阻塞I/O及事件驱动架构&#xff0c;适用于构建Web服务器、实时应用和命令行工具等npmNode.js的包管理器与大型软件注册表。拥有…...

Axure RP9.0 教程:左侧菜单列表导航 ( 点击父级菜单,子菜单自动收缩或展开)【响应式的菜单导航】

文章目录 引言I 实现步骤添加商品管理菜单组推拉效果引言 应用场景:PC端管理后台页面,左侧菜单列表导航。 思路: 用到了动态面板的两个交互效果来实现:隐藏/显示切换、展开/收起元件向下I 实现步骤 添加商品管理菜单组 在左侧画布区域添加一个菜单栏矩形框;再添加一个商…...

科技赋能|ZGIS综合管网智能管理平台守护地下城市生命线

地下管网作为城市公共安全的重要组成部分&#xff0c;担负着城市的信息传递、能源输送、排涝减灾等重要任务&#xff0c;是维系城市正常运行、满足群众生产生活需要的重要基础设施&#xff0c;是城市各功能区有机连接和运转的维系&#xff0c;因此&#xff0c;也被称为城市“生…...

react中useRef和useMemo和useCallback

memo &#xff1a; 被memo包裹的组件&#xff0c;会浅层比较 props,不会深度比较&#xff0c;如果浅层比较相同&#xff0c;就不会重新渲染组件 默认是&#xff0c;无论怎么&#xff0c;都会重新渲染一遍子组件&#xff0c;&#xff0c; useMemo&#xff1a; 包裹一个函数&am…...

如何保证LabVIEW软件开发的质量?

LabVIEW作为图形化编程工具&#xff0c;广泛应用于工业测控、自动化测试等领域。其开发模式灵活&#xff0c;但若缺乏规范&#xff0c;易导致代码可读性差、维护困难、性能低下等问题。保证LabVIEW开发质量需从代码规范、模块化设计、测试验证、版本管理、文档完善等多维度入手…...

如何快速解决 Postman 报错?

介绍一些 Postman 常见的报错与处理方法&#xff0c;希望能够对大家有所帮助。 Postman 一直转圈打不开的问题 Postman 报错处理指南&#xff1a;常见报错与解决方法...

基于数据挖掘从经验方和医案探析岭南名医治疗妇科疾病的诊疗和用药规律

标题:基于数据挖掘从经验方和医案探析岭南名医治疗妇科疾病的诊疗和用药规律 内容:1.摘要 背景&#xff1a;岭南地区独特的地理环境、气候条件及人文风俗使该地区妇科疾病具有一定特点&#xff0c;岭南名医在长期临床实践中积累了丰富的治疗经验。目的&#xff1a;基于数据挖掘…...

Android Launcher3 HotSeat文件夹创建禁止方案全解析

一、技术背景与实现原理 在Android 13 Launcher3定制开发中&#xff0c;需屏蔽HotSeat区域的文件夹创建功能。该功能涉及的核心事件处理流程如下&#xff1a; 复制 [拖拽事件] -> [Workspace.onDrop()] -> [CellLayout.performReorder()]└─> [createUserFolderIf…...

springboot body 转对象强验证属性多余属性抛错误

在Spring Boot中&#xff0c;当使用RequestBody注解来接收HTTP请求中的JSON数据并将其转换为Java对象时&#xff0c;Spring默认会忽略额外的属性。这意味着如果发送的JSON包含一些目标对象中没有定义的属性&#xff0c;Spring不会报错&#xff0c;这些额外的属性会被简单地忽略…...

C++手撕共享指针、多线程交替、LRU缓存

1. 共享指针 #include <atomic> #include <iostream>template <typename T> class sharedptr { private:T *ptr;std::atomic<size_t> *count;public:sharedptr(T *p) : ptr(p), count(new std::atomic<size_t>(1)) {}sharedptr(const sharedptr…...

Flask(三)路由与视图函数

在 Flask 中&#xff0c;路由 (Route) 是将 URL 地址映射到特定的视图函数 (View Function) 的机制。视图函数处理用户请求&#xff0c;并返回 HTTP 响应。理解路由和视图函数是构建 Flask 应用的基础。 3.1 路由的基本概念 Flask 使用 app.route() 装饰器来定义路由。以下是…...

c++中cpp文件从编译到执行的过程

C 文件从编写到执行的过程可以分为几个主要阶段&#xff1a;编写代码、预处理、编译、汇编、链接和运行。以下是每个阶段的详细说明&#xff1a; 1. 编写代码 这是整个过程的起点。程序员使用文本编辑器&#xff08;如 VSCode、Sublime Text 或其他 IDE&#xff09;编写 C 源…...

蓝桥杯1463:货物摆放问题详解——数学思维与代码优化

目录 一、题目分析与数学建模 二、直接暴力法的局限性 三、优化策略&#xff1a;因数分解与三元组枚举 步骤 1&#xff1a;收集所有因数 步骤 2&#xff1a;三元组枚举优化 四、代码实现与优化技巧 五、复杂度分析与性能提升 六、总结与拓展思考 关键点总结 拓展思考…...

C++ 多线程简要讲解

std::thread是 C11 标准库中用于多线程编程的核心类&#xff0c;提供线程的创建、管理和同步功能。下面我们一一讲解。 一.构造函数 官网的构造函数如下&#xff1a; 1.默认构造函数和线程创建 thread() noexcept; 作用&#xff1a;创建一个 std::thread 对象&#xff0c;但…...

如何设计一个处理物联网设备数据流的后端系统。

一、系统架构设计 物联网设备数据流的后端系统通常包括以下几个主要组件: ①设备数据采集层:负责从物联网设备收集数据。 ②数据传输层:负责将设备数据传输到后端系统。 ③数据处理层:实时或批量处理传输到后的数据。 ④存储层:负责存储设备数据。 ⑤API层:提供外部…...

【QT5 多线程示例】信号量

信号量 【C并发编程】&#xff08;八&#xff09;信号量 QT中的信号量类是QSemaphore&#xff0c;用法与C标准中的std::counting_semaphore类似。不同的是&#xff0c; QSemaphore无法指定最大计数。为了限定最大计数&#xff0c;可以采用两个QSemaphore信号量。下面使用一个…...

深入理解 Spring Boot 应用的生命周期:从启动到关闭的全流程解析

引言 Spring Boot 是当今 Java 开发中最流行的框架之一&#xff0c;它以简化配置和快速开发著称。然而&#xff0c;要真正掌握 Spring Boot&#xff0c;理解其应用的生命周期是至关重要的。本文将深入探讨 Spring Boot 应用的生命周期&#xff0c;从启动到关闭的各个阶段&…...

【算法笔记】图论基础(一):建图、存图、树和图的遍历、拓扑排序、最小生成树

目录 何为图论图的概念 图的一些基本概念有向图和无向图带权图连通图和非连通图对于无向图对于有向图 度对于无向图对于有向图一些结论 环自环、重边、简单图、完全图自环重边简单图 稀疏图和稠密图子图、生成子图同构 图的存储直接存边邻接矩阵存边邻接表存边链式前向星存边 图…...

SpringMVC 请求与响应处理详解

引言 在 Java Web 开发中&#xff0c;SpringMVC 作为 Spring 框架的重要模块&#xff0c;提供了强大的请求和响应处理机制。本文将深入探讨 SpringMVC 中请求和响应的处理方式&#xff0c;结合实际案例&#xff0c;帮助开发者更好地理解和应用这些功能。 一、SpringMVC 请求处…...