计算机网络_ 1.3 网络核心 (数据交换_报文、分组交换)

news2024/11/27 10:44:32

计算机网络_数据交换_报文、分组交换

  • 报文交换(message switching)
  • 分组交换(package switching)
  • 存储-转发(store-and-forward)
  • 传输延迟
    • 分组交换的报文交付时间
  • 分组交换 vs 电路交换


报文交换(message switching)

  • 报文:源(应用)发送信息整体。
    在这里插入图片描述
    在这里插入图片描述

分组交换(package switching)

  • 分组:报文分拆出来的一系列相对较小的数据包。
  • 分组交换需要报文的拆分与重组
  • 产生额外开销
    在这里插入图片描述
  • 统计多路复用(Statistical Multiplexing)
    在这里插入图片描述
    A & B分组序列不确定,按需共享链路 -> statistical multiplexing

存储-转发(store-and-forward)

在这里插入图片描述

  • 报文交换与分组交换均采用存储-转发交换方式
  • 区别:
    • 报文交换以完整报文进行"存储-转发"。
    • 分组交换以较小的分组进行"存储-转发"。

传输延迟

发送主机:

  • 接收应用报文(消息)
  • 拆分为较小长度为 L bits的分组(packets)
  • 在传输速率为R的链路上传输分组
    在这里插入图片描述

在这里插入图片描述

  • 报文交换延迟:
    • 报文长度为M bits
    • 链路带宽为R bps
    • 每次传输报文需要 M/R
  • 分组交换:
    • 报文被拆分为多个分组
    • 分组长度为L bits
    • 每个分组传输时延为 L/R
  • 例:
    在这里插入图片描述
    • M=7.5 Mbits
    • L=1500 bits
      • M=5000 L
    • R=1.5 Mbps
  • 报文交换:
    • M/R=7.5/1.5=5
    • 报文交付时间= 15s
    • 路由器至少需要多大缓存?A:7.5 Mbits。
  • 分组交换:
    • L/R=1500/(1.5*10^6)=1
    • 报文交付时间=5002 ms = 5.002 sec
    • 路由器至少需要多大缓存?A:1500 bits(实际要考虑其它一些情况,比如头部信息的大小等等)。

分组交换的报文交付时间

  • 报文: M bits
  • 链路带宽(数据传输速率): R bps
  • 分组长度(大小): L bits
  • 跳步数: h
  • 路由器数:n
  • T=M/R + (h-1)L/R = M/R + nL/R

分组交换 vs 电路交换


  • 在这里插入图片描述

分组交换允许更多用户同时使用网络!-> 网络资源充分共享。

  • 分组交换绝对优于电路交换?
    • 适用于突发数据传输网络
      • 资源充分共享
      • 简单、无需呼叫建立
    • 可能产生拥塞(congestion):分组延迟和丢失
      • 需要协议处理可靠数据传输和拥塞控制
    • Q:如何提供电路级性能保障?
      • 例如,音/视频应用所需的带宽保障



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/720229.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

zabbix监控部署(都是导图!)

目录 一:监控软件的作用 二:zabbix 简介 1、zabbix 概述 2、zabbix 监控原理 3、 Zabbix 6.0 新特性 (1)Zabbix server高可用防止硬件故障或计划维护期的停机 (2)Zabbix 6.0 LTS新增Kubernetes监控功…

C语言入门篇(二)

前言   续接上一篇文章,此篇继续对C语言的基础知识点进行更新。 C语言入门篇(一) 初始C语言 7. 选择语句8. 循环语句9. 函数9.1 函数的定义9.2 函数的调用 10. 数组10.1 数组定义10.2 数组的下标10.3 数组的使用 11. 操作符12.…

JAVA学习(九)

1.java锁 1.1 AtomicInteger 首先说明,此处 AtomicInteger,一个提供原子操作的 Integer 的类,常见的还有 AtomicBoolean、AtomicInteger、AtomicLong、AtomicReference 等,他们的实现原理相同, 区别在与运算对象类型…

搭建新版security-oauth2协议,流程代码详解,源码分析

前言:最近在学习搭建oauth2协议的开放平台,把搭建框架时的思路以及遇到的问题记录下来。 文章会持续更新,前期可能会比较零碎,最后会整合一起,写一篇从部署到使用、踩坑、依赖版本解决等完整文章。 使用的是Spring S…

【深度学习】深度强化学习初学者指南

一、说明 GAN(Generative Adversarial Networks)是一种深度学习模型,它由两个神经网络组成:一个生成网络和一个判别网络。生成网络学习如何生成类似于给定数据集的新数据,而判别网络则学习如何区分生成网络生成的数据和…

Linux下的基本指令

Linux下的基本指令 操作系统的概念01.adduser指令02.userdel指令03.pwd指令04.ls指令05.tree指令06.cd指令07.touch指令08.mkdir指令(重要)09.rmdir指针&&rm指令(重要)10.man指针(重要)11.cp指令&a…

【macOS 系列】如何调整启动台图标大小和行数

1、使用指令,这是隐藏的技巧,在控制台输入如下指令 defaults write com.apple.dock springboard-rows -int 6 defaults write com.apple.dock springboard-columns -int 8 defaults write com.apple.dock ResetLaunchPad -bool TRUE killall Dock以上表…

基于Web的智慧交通3D可视化系统

前言 城市交通是城市社会活动、经济活动的纽带和动脉,智慧交通系统对城市经济发展和人民生活水平起着极其重要的作用。 背景 随着我国城市化进程不断加快,现代城市交通问题日益受到人们的关注。特别是汽车数量的与日俱增,给城市带来了大量…

Socket介绍及使用Java实现socket通信

一、Socket概述 Socket(套接字)是计算机网络编程中用于实现网络通信的一种机制。它提供了一种编程接口,允许应用程序通过网络进行数据传输,实现不同主机之间的通信。 Socket可以看作是一种抽象的概念,用于描述网络通信…

性能监控软件的软件特色有哪些?

性能监控软件是一种专门用于监测和分析系统性能的软件工具。它可以帮助开发人员、运维人员和系统管理员追踪系统的性能瓶颈,优化系统性能,提供稳定可靠的服务,那性能监控软件的软件特色有哪些? 实时监控:性能监控软件可…

3、CCesium 第一个地图

1、将下载的CCsium库解压到指定目录如D:/install,里面有几个文件 bin:导出的dll examples:一个简单的示例 include:ccesium和第三方库的头文件 lib:搜索cceisum库的一些信息 share:一些说明 我们主要用…

allatori-JAVA代码混淆工具

Allatori是第二代Java混淆器,它为您的知识产权提供全方位的保护。 虽然大多数第二代混淆器都能提供值得信赖的保护,但我们在Allatori中开发了一些额外的功能,使代码的反向工程几乎不可能。 Allatori不仅仅是混淆,它还能最大限度…

为什么你感觉中层管理一直闲着没事干?

点击下方“JavaEdge”,选择“设为星标” 第一时间关注技术干货! 免责声明~ 切记,任何文章不要过度深思(任何东西都无法经得起审视,因为这世上没有同样的成长环境,也没有同样的认知水平同时也「没有适用于所…

eNSP的使用

目录 配置路由器 DHCP——动态主机配置协议 工作过程: 第一种场景——PC首次获取IP地址的情况 第二种场景——pc(客户都)再次获取IP地址的情况 DHCP配置: Telnet 搭建好图后 1.看广播域(路由器有几个接口就有几…

在树莓派上搭建web站点并发布互联网上线【无需公网IP】

文章目录 概述使用 Raspberry Pi Imager 安装 Raspberry Pi OS设置 Apache Web 服务器测试 web 站点安装静态样例站点将web站点发布到公网安装 Cpolar内网穿透cpolar进行token认证生成cpolar随机域名网址生成cpolar二级子域名将参数保存到cpolar配置文件中测试修改后配置文件配…

JUC--CompletableFuture下

对计算速度进行选用 import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit;public class Test4 {public static void main(String[] args) {CompletableFuture<String> a CompletableFuture.supplyAsync(() -> {try { TimeUnit.SE…

list和vector容器的插入与访问操作区别

文章目录 list插入元素和vector插入元素对比案例vector的做法list优化的做法为什么时间复杂度相同还会有性能差异 std::list和std::vector是C中的两种常见数据结构&#xff0c;它们在不同的使用场景下各有优势。 std::vector的内部实现是动态数组&#xff0c;它在连续的内存块…

weak_ptr 智能指针的使用

目录 一&#xff0c;weak_ptr 变量的定义 二&#xff0c;expired() 成员函数 三&#xff0c;lock() 成员函数 四&#xff0c;use_count() 成员函数 五&#xff0c;为什么要用 weak_ptr 一&#xff0c;weak_ptr 变量的定义 weak_ptr 对象的构造有3种方法&#xff1a; 1&am…

Python基础综合案例-数据可视化(折线图)

今天给大家带来的是Python综合实战开发的数据可视化操作 通过python实现对数据的分析、可视化 数据来源: 系统开发环境&#xff1a; 操作系统&#xff1a;win11 Python解释器版本&#xff1a;python3.10 开发工具&#xff1a;Pychram Python内置模块&#xff1a;pyecharts 1…

HarmonyOS/OpenHarmony应用开发-Stage模型应用/组件级配置

在开发应用时&#xff0c;需要配置应用的一些标签&#xff0c;例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。图标和标签通常一起配置&#xff0c;可以分为应用图标、应用标签和入口图标、入口标签&#xff0c;分别对应app.json5配置文件…