热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

计算机网络:数据交换的三种方式及其比较

文章目录数据交换电路交换(circuitswitching)报文交换(messageswitching)分组交换(packageswitching)分组交换与报文交换分组交换与电路

文章目录

      • 数据交换
        • 电路交换(circuit switching)
        • 报文交换(message switching)
        • 分组交换(package switching)
      • 分组交换与报文交换
      • 分组交换与电路交换

数据交换

网络核心主要解决的问题是如何将数据从源主机通过网络核心送达目标主机,
现代计算机网络采用的主要技术是数据交换,
随着网络规模的扩大,计算机间不可能直接相连(O(N2)),
因此引入专用于数据转发的交换设备,
各主机与交换设备相连,且交换设备互连形成交换网络
源主机发送的数据先传递给交换设备,通过交换网络转发至目的地

交换

  • 动态转接
    交换设备的交换指动态转接,指交换设备可将端口按需要在物理上或逻辑上动态地连接
  • 动态分配传输资源
    计算机网络中的交换注重于如何在传输中动态地分配传输资源

电路交换(circuit switching)

最典型的电路交换网络:电话网络
电路交换分为三个阶段

  • 建立连接(电路建立)
  • 数据传输
  • 释放连接(拆除电路)

电路交换的特征:资源独占
采用电路交换的通信中,通信双方独占其使用的通信资源
即使没有数据在传输,第三方也无法使用这个闲置资源
《计算机网络:数据交换的三种方式及其比较》
资源独占并不是指独占整个通信链路,通信链路可以通过各种多路复用技术共享

报文交换(message switching)

报文交换广泛应用于上世纪五六十年代至七十年代的电报通信

  • 将要发送的数据整体作为报文,如 一个文件,以报文为单位进行传输
  • 采用存储+转发的交换方式

分组交换(package switching)

  • 与报文交换相同,采取存储+转发的交换方式
  • 将报文分成若干个小的分组,以分组为单位进行传输
  • 需要将报文拆分重组,且每个分组需要添加分组头(存储分组的元信息),
    产生额外开销
  • 多个分组间可以并行传输
  • 又称为统计多路复用(statistical multiplexing)

《计算机网络:数据交换的三种方式及其比较》
《计算机网络:数据交换的三种方式及其比较》
如上图所示,分组交换网络中,同一通信链路的多个用户可以在同一时间段内
共享所有带宽,且需要发送的数据越多,占用的平均带宽越多
因此,这种按需共享通信资源的复用方式又称为统计多路复用

分组交换与报文交换

分组交换与报文交换均采用存储转发交换方式,主要区别在于发送数据的单位
用传输延迟的概念来比较两种交换方式

  • 传输延迟(传输时延、发送延迟、发送时延)= 数 据 长 度 链 路 传 输 速 率 {\large\frac{数据长度}{链路传输速率}}

设报文大小为 M,分组大小为 L(分组头的影响忽略不计),链路传输速率为 R
需要经过 N 个路由器(交换设备),示意如下
《计算机网络:数据交换的三种方式及其比较》
对于报文交换:
    总发送时延 = 发送时延 × N = N M R \large\frac{NM}{R} RNM
对于分组交换:
    总发送时延 = 分组发送时延 × (N-1) + M R \large\frac{M}{R} RM = ( N − 1 ) L R \large\frac{(N-1)L}{R} R(N1)L + M R \large\frac{M}{R} RM
易知

       ( N − 1 ) L R \large\frac{(N-1)L}{R} R(N1)L < ( N − 1 ) M R \large\frac{(N-1)M}{R} R(N1)M

即发送延迟上分组交换节省的时间约为

       ( N − 1 ) ( M − L ) R \large\frac{(N-1)(M-L)}{R} R(N1)(ML)

两种交换传播时延相同,因此 分组交换交付时间 <报文交换交付时间
可以说分组交换在传输时间上明显优于报文交换

另一方面,由于存储转发的交换方式,对于报文交换与分组交换来说,
路由器(交换设备)所需要的缓存分别至少为 M 和 nL,n 为同时存在于交换节点的分组数量
因此,在交换节点缓存容量的要求上,分组交换也优于报文交换

分组交换与电路交换

现代计算机网络主要为分组交换网络(Internet
现代电话网络仍然使用电路交换
早已成熟、广泛使用的电路交换技术与分组交换相比各有优势

如,N 个用户共享一个1Mbps通信链路的场景:
假设每个用户活动时需要 100kb/s 的带宽
假设每个用户的平均活动时间10%
《计算机网络:数据交换的三种方式及其比较》
若采用电路交换:
无论用户活动与否,都独占通信需要使用的资源
因此电路交换方式可以满足 1Mbps / 100Kbps = 10 个用户

若采用分组交换:
对于 35 个用户,大于 10 个用户同时活动的概率小于 0.0004
因此可以向 35 个用户提供服务

因此,分组交换允许更多用户同时使用网络,从而使网络资源充分共享
相对于电路交换,分组交换更加简单(无需呼叫建立连接),资源共享更充分

但是分组交换就一定优于电路交换吗?

分组交换适用于突发数据传输网络(间歇性数据传输
电路交换适用于实时数据流传输

分组交换在某些方面难以提供电路级性能保障,如音/视频应用
且可能产生网络拥塞(congestion):分组延迟和丢失

因此,分组交换网络需要一些协议保证数据可靠传输和进行拥塞控制

2020/4/22


推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • JVM 学习总结(三)——对象存活判定算法的两种实现
    本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
author-avatar
无味18_380
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有