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

【计算机网络笔记】数据交换之报文交换和分组交换

  • 系列文章目录
  • 报文交换
  • 分组交换
  • 存储-转发
  • 报文交换 vs 分组交换
  • 总结

系列文章目录

什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换


报文交换

报文:源(应用)发送的信息整体。比如一个文件、一张图片。

报文交换:在传输过程中以报文作为整体,一次性发送到下一个节点,比如路由器。路由器接收到完整的报文之后再发往下一个节点。

报文交换最具有代表性的应用是上世纪5、60年代使用的电报系统。


分组交换

分组:由报文分拆出来的一系列相对较小的数据包再加上头部信息形成

分组交换则是在传输过程中以分组作为整体发送。整个过程需要经过报文的拆分重组两部分。

  • 拆分:源主机把要发送的报文拆分为一个个小的数据包,然后给数据包加上头部信息形成分组
  • 重组:分组到了目的主机后,目的主机要获得完整的报文,就需要把各个小的分组所携带的报文的一部分数据合并在一起

在这里插入图片描述

在分组交换网络中,链路的共享并不是事先分配好的,具有很强的随机性,谁发的数据多,对链路的使用率就高。这种方法就称为统计多路复用,它最大的特点是按需共享链路。也就是说,需要发送数据时才去占用电路的带宽,不需要就不占用。


存储-转发

下面再介绍存储-转发(store-and-forward)的概念。

存储-转发就是先把数据分组接收过来,占存一下,然后确定从哪一个链路发出去。

报文交换与分组交换均采用存储-转发交换方式。但它们使用的交换单位不一样。

  • 报文交换以完整报文进行“存储-转发”
  • 分组交换以较小的分组进行“存储-转发”

这两种交换方式仅仅有这么小的区别,那哪种交换更好呢?下面具体介绍。


报文交换 vs 分组交换

为了评价这两种交换方式的优劣,根据它们的传输延迟(传输时延),利用时间性的问题来进行对比。

以这样一个场景为例,源主机有一系列分组需要发送,这些分组是由报文拆分而来的。每一个分组的长度是L个bit,发送的时候利用一条链路进行传输,这条链路的带宽是R bps。发送每一个分组的时候是一个比特一个比特地进行发送,从第一个分组的第一个比特发送到第一个分组的最后一个比特发送结束这段时间就称为传输延迟或传输时延。

在这里插入图片描述

为了说明问题,利用这样的网络场景来进行对比。在这个网络中,两个主机通过两个路由器互连在一起。左侧为源主机,右侧为目的主机。假设我们忽略其他时间开销,只考虑报文或者分组的传输时间,报文的拆分和重组时间也不考虑。

在这里插入图片描述

  • 如果是报文交换,每次需要把报文完整的发向下一个节点,下一个节点才可以把这个报文再向下一个节点发送。所以在这个网络中,源主机和路由器转发这个报文的时间实际上就是报文传输的传输延迟,也就是M/R

  • 如果是分组交换,区别在于要把报文进行拆分。那么作为主机或者路由器在转发每一个分组所产生的的传输延迟就是L/R。

现在给出具体的数据。报文大小是7.5M,划分为5000个分组,每个分组就是1500bit,链路带宽是1.5Mbps。下面我们来分别计算这两种交换方式所需要的时间。

在这里插入图片描述

  • 按照报文交换方式:源主机在0时刻发送报文,大小是7.5M, 链路带宽是1.5Mbps,那么5s(7.5/1.5)后报文就已经被送到了第一个路由器了。第5s 开始第一个路由器就可以向第二个路由器发送报文。以此类推,再经过5s,报文就到达目的主机了方式。在这个例子中,采用报文交换需要15s的时间能够报文把源主机成功地传输到目的主机。现在我们考虑一个问题,例子中的路由器需要多大的缓存?答案是7.5M的缓存,因为它至少要把报文完整的存储下来后才能向下转发。那么如果报文的大小特别大,那也就意味着中间路由器的缓存也必须相应的特别大。

  • 按照分组交换方式:源主机将报文拆分成5000个分组,每个分组的大小是1500bit。源主机0时刻开始发送第一个分组,这个分组只经过1ms就传输到了第一个路由器,那么从1ms开始,第一个路由器向第二个路由器发送第一个分组,同时源主机向第一个路由器发送第二个分组。继续,从2ms开始,第二个路由器向目的主机发送第一个分组,同时第一个路由器向第二个路由器发送第二个分组,同时源主机向第一个路由器发送第三个分组。那么第3ms的时刻,第一个分组到达目的主机,第二个分组到达第二个路由器,第三个分组到达第一个路由器。这个过程一直持续下去,4999ms的这个时刻,4999号分组在第一个路由器(这么理解:第一的分组在第1ms的时刻到达第一个路由器,第二个分组在第2ms的时刻到达第一个路由器,那么第4999ms的时刻,4999号分组就在第一个路由器,那么同时也能推出源主机此时的分组是5000号、第二个路由器的分组是4998号)。再经过3ms,5000号分组也就是最后一个分组到达目的主机。此时是5002ms,也就是说源主机花了5.002s的时间将所有分组发送到目的主机,此时目的主机对分组进行重组就得到了报文。那么我们现在继续考虑路由器缓存的问题,它只需要1500bit的缓存空间就可以工作了,这比报文交换中7.5M的缓存小多了。

在上面这个例子中,采用报文交换使用了15s,采用分组交换使用了5.002s。为什么呢?因为在分组交换中,每个路由器之间可以并行工作,而报文交换中,它们是串行的。所以由于这个主要原因,分组交换技术在现在的计算机网络以及大部分数据网络中广泛使用。

对刚才的场景进行扩展,得出下面关于分组交换中报文交付时间的一般性结论:报文交付时间=报文传输延迟+最后一个分组经过每个路由器的传输延迟之和

在这里插入图片描述

总结

分组交换相较于报文交换有很多优点。比如传输速度快、对路由器的缓存能力要求不高。因此在现代计算机网络中,基本都使用的是分组交换。

相关文章:

【计算机网络笔记】数据交换之报文交换和分组交换

系列文章目录报文交换分组交换存储-转发报文交换 vs 分组交换总结 系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 报文交换 报文:源(应用)发送的信息整体。比如一个文件、一…...

【广州华锐互动】利用VR开展细胞基础实验教学有什么好处?

在科技发展的驱动下,虚拟现实(VR)技术已被广泛应用于各个领域,包括教育和医学。尤其是在医学教育中,VR技术已成为一种革新传统教学模式的有效工具。本文将探讨使用VR进行细胞基础实验教学的优势。 首先,VR技…...

基于SSM+Vue的咖啡销售系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…...

L2-026 小字辈

本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号,…...

linux 查看系统版本

命令:lsb_release -a 可能遇到的问题: 问题1: 报错:command not found: lsb_release原因:系统没有安装 lsb_release解决方案:sudo apt-get install lsb-release 问题2: 报错: Tra…...

Python实现PDF转换文件格式

最近工作中经常遇到收到其他人提供的pdf文档,想要编辑修改下或者复制部分内容比较困难,想通过现有的pdf工具软件转换文档格式,基本都要充钱,为了免费实现pdf转换工具,网上查了下相关技术方案,整理了下代码&…...

【Ceph Cluster】完全删除Ceph集群

注意:在执行这些步骤之前,请确保你已经备份了所有重要的数据,并且你明白这些步骤将永久删除 Ceph 集群。 停止 Ceph 服务: systemctl stop ceph.target卸载 Ceph 包:卸载 Ceph 相关的软件包,使用你的 Linux…...

4.Vue-Vue调用第三方接口

题记 用vue调用第三方接口,以下是全部代码和操作流程。 寻找第三方接口网站 推荐:免费API - 提供免费接口调用平台 (aa1.cn) 下面的代码以下图中的接口为例 安装axios模块 在终端输入以下命令: npm install axios 调用第三方接口代码 调…...

大语言模型在推荐系统的实践应用

本文从应用视角出发,尝试把大语言模型中的一些长处放在推荐系统中。 01 背景和问题 传统的推荐模型网络参数效果较小(不包括embedding参数),训练和推理的时间、空间开销较小,也能充分利用用户-物品的协同信号。但是它的缺陷是只能利用数据…...

第三章 交换技术及应用

目录 3.1 port-vlan技术 3.1.1 VLAN概述 3.1.2 VLAN划分方法——Port-VLAN 3.1.3 Port-VLAN工作原理 3.1.3 Port-VLAN配置 3.2 port-vlan仿真演示 3.2.1 实验背景 3.2.2 实验目的 3.2.3 实验设备 3.2.4 实验步骤思维导图 3.3 tag-vlan技术 3.3.1 问题分析 3.3.2 T…...

地震勘探原理部分问题解答

1、二维/三维(陆地/海洋)地震勘探,炮点(激发点)和检波点(接收点)的排布位置如何?画图作答? (1)陆地地震勘探 二维陆地地震野外采集:震…...

两个步骤轻松搞定批量合并视频

你是否曾经有过批量合并视频的需求,但是却苦于不知道如何下手?今天,我将为你介绍一个简单易行的方法,只需两个步骤,让你轻松实现批量合并视频。 第一步:下载并打开固乔智剪软件 首先,你需要下载…...

VR虚拟现实在室内设计仿真教学中的应用演示

1. 虚拟实景漫游:利用VR技术,学生可以通过戴上VR头盔来进入一个虚拟的室内环境中,感受真实的空间氛围。他们可以自由移动和观察,感受室内设计的效果。这样的体验可以增强学生的想象力和空间感知能力,提高他们的设计水平…...

Python操作串口通信

Python操作串口通信 注意Linux下先要修改串口的权限: sudo chmod 777 /dev/ttyUSB0 以下是python代码: # codingutf-8 # 包:pyserial,pymysql # 权限:sudo chmod 777 /dev/ttyUSB0 import serial # import pymysql …...

图详解第四篇:单源最短路径--Dijkstra算法

文章目录 1. 最短路径问题2. 单源最短路径--Dijkstra算法算法思想图解如何存储路径及其权值代码实现调式观察打印最短路径Dijkstra算法的缺陷 3. 源码 1. 最短路径问题 最短路径问题: 从带权有向图(求最短路径通常是有向图)G中的某一顶点出发…...

CRMEB多商户商城系统阿里云集群部署教程

注意: 1.所有服务创建时地域一定要选择一致,这里我用的是杭州K区 2.文件/图片上传一定要用类似oss的云文件服务, 本文不做演示 一、 创建容器镜像服务,容器镜像服务(aliyun.com) ,个人版本就可以 先创建一个命名空间 然后创建一个镜像仓库 查看并记录镜像公网地址…...

Java第三方登录封装工具类

Java中可以使用第三方登录来简化用户登录流程,常见的第三方登录如QQ、微信、微博等。下面是一个Java封装第三方登录的工具类: import java.io.IOException; import java.util.HashMap; import java.util.Map;import org.apache.http.client.ClientProto…...

BUUCTF学习(四): 文件包含tips

1、介绍 2、hackBar插件安装 教程: Hackbar插件安装-CSDN博客 3、解题 php://filter/readconvert.base64-encode/resource要读取的文件 ?filephp://filter/readconvert.base64-encode/resourceflag.php Base64 在线编码解码 | Base64 加密解密 - Base64.us 结束...

德国人工智能公司【Kodex AI】完成160万欧元融资

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,总部位于德国柏林的人工智能公司【Kodex AI】今日宣布已完成160万欧元融资。 本轮融资由Signals VC领投,Techstars、德意志银行等天使投资者参与,其中包括:most AI首席执行官…...

LeetCode 2 两数相加

题目描述 链接:https://leetcode.cn/problems/add-two-numbers/?envTypefeatured-list&envId2ckc81c?envTypefeatured-list&envId2ckc81c 难度:中等 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...