计算机中的速率、带宽、时延、利用率解读

2023-05-16

计算机网络的性能一般是指它的几个重要的性能指标。但除了这些重要的性能指标外,还有一些非性能特征(nonperformance characteristics)也对计算机网络的性能有很大的影响。

那么,计算机网络的性能指标分别是哪几个?

1、速率

计算机发送出的信号都是数字形式的。比特(bit)是计算机中数据量的单位,也是信息论中使用的信息量的单位。英文单词bit来源于binary digit,意思是一个“二进制数字”,因此一个比特就是二进制数字中的一个1或0.计算机网络中的速率指的是连接在计算机网络上的主机在数字信道上传送数据的速率,它也称为数据率(datarate)或(bit rate)。

速率是计算机网络中最重要的一个性能指标。速率的单位是b/s(比特每秒)(或bit/s,有时也写为bps,即bit per second)。当数据率较高时,就可以用kb/s(k=10^3=千)、Mb/s(M=10^6=兆)、Gb/s(G=10^9=吉)或Tb/s(T=10^12=太)现在人们常用更简单的但很不严格的记法来描述网络的速率,如100M以太网,而省略了单位中的b/s,它的意思是速率为100Mb/s的以太网。上面所说的速率往往是指额定速率或标称速率。

在通信领域和计算机领域,应特别注意数量单位“千”、“兆”和“吉”等的英文缩写所代表的数值。如计算机中的数据量往往用字节作为度量的单位。一个字节(byte,记为大写的B)代表8个比特。“千字节”的“千”用大写K表示,它等于2^10,即1024,而不是10^3。同样,在计算机中,1MB或1GB也并非表示10^6或10^9个字节,而是表示2^20(1048 576)或2^30(1073 741 824)个字节。在通信领域小写的K表示10^3而不是1024。但有的书也不这样严格区分,大写k有时表示1000而有时又表示1024,作者认为从概念上还是区分为好。

2、带宽

“带宽”(bandwidth)有以下两种不同的意义:

(1) 带宽本来是指某个信号具有的频带宽度。信号的带宽是指,该信号所包含的各种不同频率成份所占据的频率范围。例如,在传统的通信线路上传送的电话信号的标准带宽是3.1kHz(从300Hz到3.4kHz,即话音的主要成分的频率范围)。这种意义的带宽的单位是赫(或千赫、兆赫、吉赫等)。

在过去很长的一段时间,通信的主干线路传送的是模拟信号(即连续变化的信号)。因此,表示通信线路允许通过的信号频带范围就称为线路的带宽(或通信频带)。

(2) 在计算机网络中,带宽用来表示网络的通信线路传送数据的能力,因此网络带宽表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。在本书中提到“带宽”时,主要是指这个意思。这种意义的带宽的单位是“比特每每秒”,记为b/s。在这种单位的前面也常常加上千(K)、兆(M)、吉(G)或太(T)这样的倍数。

在“带宽”的两种表述中,前者为频域称谓,而后者为时域称谓,其本质是相同的。也就是说,一条通信链路的“带宽”越宽,其所能传输的“最高数据率”也越高。

(3) 吞吐量。吞吐量(throughput)表示在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。

显然,吞吐量受网络的带宽或网络的额定速率的限制。例如,对于一个100Mb/s的以太网,其额定速率是100Mb/s,那么这个数值也是该以太网吞吐量的绝对上限值。因此,对于100Mb/s的以太网,其典型的吞吐量可能只有70Mb/s。

请注意,有时吞吐量还可用每秒传送的字节数或帧数来表示。

3、时延

时延(delay或latency)是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。时延是个很重要的性能指标,它有时也成为延迟或迟延。

需要注意的是,网络中的时延是由以下几个不同的部分组成的:

(1) 发送时间

发送时延(transmission delay)是主机或路由器发送数据帧所需要的时间,也就是发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间。因此发送时延也叫做“传输时延”。发送时延的计算公式是:

发送时延=数据帧长度(b)/发送速率(b/s)

由此可见,对于一定的网络,发送时延并非固定不变,而是与发送的帧长(单位是比特)成正比,与发送速率成反比。

(2)传播时延

传播时延(prop agation delay)是电磁波在信道中传播一定的距离需要花费的时间。传播时延的计算公式是:

传播时延=信道长度(m)/电磁波在信道上的传播速率(m/s)

电磁波在自由空间的传播速率是光速,即3*10^5km/s。电磁波在网络传输媒体中的传播速率比在自由空间要略低一些:在铜线电缆中的传播速率约为2.3*10^5km/s,在光纤中的传播速率约为2.0*10^5km/s.例如,1000km长的光纤线路产生的传播时延大约为5ms.

以上两种实验不要弄混。只要理解这两种事验发生的地方,就不会把它们弄混。发送时延发生在机器内部的发送器中,而传播时延则发生在机器外部的传输信道媒体上。

(3) 处理时延

主机或路由器在收到分组信息时要花费一定的时间进行处理,例如分组的首部,从分组中提取部分数据、进行差错检验或查找适当的路由等等,这就产生了处理时延。

(4) 排队时延

分组在经过网络传输时,要经过许多路由器。但分组在进入路由器后要先在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。这就产生了排队时延。排队时延的长短往往取决于网络当时的通信量。当网络的通信量很大时会发生队列溢出,使分组丢失,这相当于排队时延为无穷大。

这样,数据在网络中经历的总时延就是以上四种时延之和:

总时间=发生时延+传播时延+处理时延+排队时延

 

必须指出,在总实验中,究竟是哪一种实验占主导地位必须具体分析。先把处理时延和排队时延忽略,如有一个长度为100MB的数据块(这里的M显然不是指10^6而是指2^20,即1048 576。B是字节,1字节=8比特),在带宽为1Mb/s的信道上(这里的M是10^6)连续发送,其发送时延是 100*1048576*8/10^6=838.9s

大约要用14分钟才能把这样大的数据块发送完毕。然而,若将这样的数据块用光纤传送到1000km远的计算机,那么每一个比特在1000km的光纤上只需用5ms就能到达目的地。因此对于这种情况,发送时延占主导地位。如果我们把传播距离减小到1km,那么传播时延也会相应地减小到原来数值的千分之一。然而,由于传播时延在总时延中的比重是微不足道的,因此总时延的数值基本上还是由发送时延来决定的。

再看一个例子。要传送的数据仅有一个字节(如键盘上键入的一个字符,共8bit),在1Mb/s的信道上的发送时延是8/10^6=8*10^-6s=8us

当传播时延为5ms时,总时延为5.008ms.在这种情况下,传播时延决定了总时延。这时即使把数据率提高到1000倍(即将数据的发送速率提高到1Gb/s),总时延也不会减小多少。这个例子告诉我们,不能笼统地认为:“数据的发送速率越高,传送得就越快”。这是因为数据传送的总时延是由:总时延=发送时延+传播时延+处理时延+排队时延,四项时延组成的,不能仅考虑发送时延一项。

必须强调指出,初学网络的人容易产生这样错误的概念,就是“在高速链路(或高带宽链路)上,你应当跑得更快些”。但这是不对的。我们知道,汽车在路面质量很好的高速公路上可以明显地提高行驶速率。然而,对于高速网络链路,我们提高的仅仅是数据的发送速率而不是比特在链路上传播速率。荷载信息的电磁波在通信线路上的传播速率(这是光速的数量级)与数据的发送速率只是减小了数据的发送时延。

还有一点也应当注意,就是数据的发送速率的单位是每秒发送多少个比特,是指某个点或某个接口上的发送速率。而传播速率的单位是每秒传播多少公里,是指传输线路上比特的传播速率。

因此,通常所说的“光纤信道的传输速率高”是指向光纤信道发送数据的速率可以很高,而光纤信道的传播速率实际上要比铜钱的传播速率还略低一点。这是因为经过测量得知,光在光纤中的传播速率是每秒20.5万公里,它比电磁波在铜线(如5类线)中的传播速率(每秒23.1万公里)略低一些。上述这个概念请读者务必弄清楚。

4、时延带宽积

把以上讨论的网络性能的两个度量一一传播时延和带宽一一相乘,就得到另一个很有用的度量:传播时延带宽积,即

时延带宽积=传播时延*带宽

如图所示表示时延带宽积。这是一个代表链路的圆柱形管道,管道的长度表示链路的传播时延(请注意,现在以时间作为单位来表示链路长度),而管道的截面积表示链路的带宽。因此,时延带宽积就表示这个管道的体积,表示这样的链路可容纳多少个比特。例如,设某段链路的传播时延为20ms,带宽为10Mb/s,算出时延带宽积=20*10^-3*10*10^6=2*10^5bit.

这就表示,若发送端连续发送数据,则在发送的第一个比特即将达到终点时,发送端就已经发送了20万个比特,而这20万个比特都正在链路上向前移动。因此,链路的时延带宽积又称为以比特为单位的链路长度。

不难看出,管道中的比特数表示从发送端发出的但尚未达到接收端的比特。对于一条正在传送数据的链路,只有在代表链路的管道都充满比特时,链路才得到了充分的利用。

 5、往返时间RTT

在计算机网络中,往返时间RTT(Round-Trip Time)也是一个重要的性能指标,它表示从发送方发送数据开始,到发送方收到来自接收方的确认(接收方收到数据后便立即发送确认),总共经历的时间。对于上述例子,往返时间RTT是40ms,而往返时间和带宽的乘积是4*10^5(bit)。在互连网中,往返时间还包括各中间结点的处理时延、排队时延以及转发数据时的发送时延。

显然,往返时间与所发送的分组长度有关。发送很长的数据块的往返时间,应当比发送很短的数据块的往返时间要多些。

往返时间带宽积的意义就是当发送方连续发送数据时,即使能够及时收到对方的确认,但已经将许多比特发送到链路上了。对于上述例子,假定数据的接收方及时发现了差错,并告知发送方,使发送方立即停止发送,但这时发送方也已经发送了40万各比特了。

当使用卫星通信时,往返时间RTT相对较长,是很重要的一个性能指标。

6-7、信道利用率和网络利用率

信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。完全空闲的信道的利用率是零。网络利用率则是全网络的信道利用率的加权平均值。信道利用率并非越高越好。这是因为,根据排队论的理论,当某信道的利用率增大时,该信道引起的时延也就迅速增加。这和高速公路上的情况有些相似。

由于在公路上的车流量很大时,由于公路上的某些地方会出现堵塞,因此行车所需的时间就会增长。网络上也有类似的情况。当网络的通信量很少时,网络产生的时延并不大。但在网络通信量不断增大的情况下,由于分组在网络结点(路由器或结点交换机)进行处理时需要排队等候,因此网络引起的时延就会增大。

如果令Do表示网络空闲时的时延,D表示网络当前的时延,那么在适当的假定条件下,可以用简单公式D=Do/1-U来表示D和Do及网络利用率U之间的关系式中,U是网络的利用率,数值在0到1之间。当网络的利用率达到其容量的1/2时,时延就要加倍。

特别值得注意的是:当网络的利用率接近最大值1时,网络的时延就趋于无穷大。因此我们必须有这样的概念:信道或网络利用率过高会产生非常大的时延。

时延与利用率的关系:

如图所示,一些拥有较大主干网的ISP通常控制它们的信道利用率不超过50%。如果超过了就要准备扩容,增大线路的带宽。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机中的速率、带宽、时延、利用率解读 的相关文章

  • BundleFusion那些事儿

    背景 xff1a 前面几篇博客中写了很多关于BundleFusion的东西 xff0c 主要包括bundlefusion的论文阅读笔记 xff0c sens数据集的生成等 xff0c 经过最近几天的工作 xff0c 我对bundlefusi
  • BundleFusion代码框架讲解

    背景 xff1a 前面用了几篇文章来记录和总结了 xff0c 我在研究bundlefusion过程中遇到的一些问题以及解决方法 xff0c 本来想实现给bundlefusion输入先验轨迹 xff0c 然后让其根据给定的轨迹进行重建 xff
  • 相机和镜头选型需要注意哪些问题

    背景 xff1a 最近需要优于项目需求需要对工业相机和镜头进行选型 xff0c 于是我就开启的学习相机之旅 xff0c 虽然我一直在做机器视觉方向 xff0c 但是我对相机的了解还是很少 xff0c 我想正好趁这次机会好好学习一下 如果有错
  • Ubuntu18.04上下载安装使用sogou输入法

    下载地址 xff1a 搜狗输入法Linux官网 首页 安装设置网址 xff1a 搜狗输入法Linux官网 安装指导 这样Ubuntu下工作就更加方便了
  • ros rviz显示rosbag中的图像和imu数据

    一 rosbag相关的指令 1 rostopic list 列举出系统中正在发布的ros 话题 2 rosbag record a 录制系统中所有正在发布的ros 话题 3 rosbag record topic1 topic2 o bag
  • 双目测距误差评估

    我修完产假回来上班了 xff0c 被分到了割草机项目组 xff0c 机遇与挑战并存 xff0c 我啥也不会 xff0c 但是这次扛下来也许就蜕变了呢 xff0c 也许我是想多了 xff0c 管他呢 xff0c 有问题咱就解决 xff0c 有
  • ORB-SLAM2中四叉树管理特征点

    当从图像金字塔中的每一层图像上提取特征点之后 xff0c 都要先用四叉树技术对这些特征点进行管理 该类中定义了四叉树创建的函数以及树中结点的属性 bool bNoMore xff1a 根据该结点中被分配的特征点的数目来决定是否继续对其进行分
  • 在Ubuntu 16.04 上安装和卸载matlab 2018b(Install and uninstall matlab 2018b on ubuntu)

    1 安装2018b可以参考下面两篇文章 https www ph0en1x space 2018 04 23 ubuntu matlab https blog csdn net qq 32892383 article details 796
  • 研究相机和IMU坐标系变换

    刚开始录制的数据时没有考虑相机和IMU之间的坐标变换 xff0c 但是后来发现跟踪效果不好 xff0c 去查验imu数据时 xff0c 发现 xff0c 我采集保存的imu数据格式没有和euroc数据集中的imu数据保存格式统一 xff0c
  • 飞控简析-从入门到跑路序章

    一 序言 茫茫天数此中求 xff0c 世道兴衰不自由 万万千千说不尽 xff0c 不如推背去归休 本人搞飞控差不多两年了 xff0c 从一开始什么都不懂的真 小白 xff0c 到现在的高级小白 xff0c 我已经经历了太多太多 因为感觉飞控
  • 新手到黑客的最全入门路径图(附全部学习资料下载)!

    点击上方 程序人生 xff0c 选择 置顶公众号 第一时间关注程序猿 xff08 媛 xff09 身边的故事 01 入门介绍
  • 飞控简析-从入门到跑路 第二章PX4的位置控制(2)

    1 control auto 说完control manual xff0c 接下来我们在看看control auto control auto是用来处理自动控制的函数 xff0c 即把航线任务转换为期望位置 函数位于Mc pos contr
  • 嵌入式项目研发到量产的流程

    本篇文章讨论嵌入式产品的设计到量产的一个完成流程 xff0c 以车联平台TBox设计为例 流程简述 1 xff09 需求方提需求 xff0c 项目组对需求进行分析 2 xff09 项目组给出设计草案和产品概念模型 3 xff09 设计产品原
  • 我的三种时间对齐方法

    要对齐一段时间内两组时间密度不一样的数据 xff0c S组是4000个时间节点 xff0c G组是20000多个时间节点 xff0c 这里展示了三种方法 xff1a 1 快速扫描算法 xff0c 设置时间精度为0 005s xff0c n的
  • postman后置脚本编写

    参数关联 xff1a 上一个接口返回token xff0c 如何传到下个接口中 xff1f 则需要写后置脚本来获取 1 打开登录接口 xff0c 在Tests区域编写javasscript脚本解析返回response对象 xff0c 从js
  • vscode代码拉取、提交

  • Docker“Got permission denied while trying to connect to the Docker daemon socket“

    问题 我在进行docker pull bestwu qq操作的时候报了错误 xff1a Got permission denied while trying to connect to the Docker daemon socket at
  • USB接口如何检测到设备的插入

    当插座上没有接设备时 xff0c D 43 和D 被15K的电阻下拉到低电平 xff0c 当有设备接入时 xff0c 例如一个U盘设备插入usb接口 xff0c vbus如果是3 3V xff0c 那么对于D 43 的点平则是一个高电平 x
  • 1.gazebo启动与界面介绍

    gazebo启动与界面介绍 1 启动gazebo ubuntu环境下使用ctrl 43 alt 43 t快捷键打开命令行 xff0c 在命令行中直接输入gazebo即可启动gazebo 2 界面介绍 看图 参考官网介绍
  • 程序媛有话说丨35岁的我是如何成功转型,给职场迷茫的师兄师姐师弟师妹

    点击上方 程序人生 xff0c 选择 置顶公众号 第一时间关注程序猿 xff08 媛 xff09 身边的故事 我 82 年出生在中国的一个二线城市 xff0c 毕业于一个三流大学的计算机专业 父母都是国有企业的一般职工 xff0c 没有什么

随机推荐

  • AI时代的思维方式

    2017年5月23日 xff0c 百度联盟大会在重庆召开 xff0c 李彦宏发表演讲 xff0c 阐释AI 时代的思维方式 xff1a 手机还会长期存在 但移动的机会不多了 From think Mobile to think AI 软硬结
  • dubbo超时重试和异常处理

    dubbo超时重试和异常处理 参考 xff1a https www cnblogs com ASPNET2008 p 7292472 html https www tuicool com articles YfA3Ub https www
  • 语音信号的短时傅里叶分析

    语音信号的短时傅里叶分析 文章目录 语音信号的短时傅里叶分析概述短时傅里叶变换短时傅里叶的取样率时域取样率频域取样率总取样率 语音信号的短时综合滤波器组求和法快速傅里叶变换求和法 语谱图宽带语谱图的典型谱型窄带语谱图的典型谱型窄带语谱图的典
  • 5分钟教你搞定一个超详细超简单的图形化界面(Java图形化界面设计之容器(JFrame))

    第一步 xff1a 创建一个maven项目 第二步 xff1a pom xml文件导入相关依赖 第三步 xff1a 写代码啦 xff0c 写完后直接运行即可 第四步 xff1a 程序运行起来啦 第一步 xff1a 创建一个maven项目 第
  • openMP使用

    openMP使用 项目需要对程序的运行进行加速 xff0c 在不考虑更换硬件的前提下 xff0c 考虑采用多线程对代码进行优化 xff0c 以下记录学习过程 处理器采用大疆秒算2 C xff0c CMakeList配置参考这篇博客 xff1
  • VSCode git工具

    之前都是老老实实用命令行敲命令 xff0c 其实VSCode自带得git工具已经非常方便 命令行提交代码 首先先介绍之前在命令行 ubuntu终端 xff0c windows git bash here 操作 xff1a 工程路径下 xff
  • vscode给docker内部的的ros工程代码打断点

    背景 打断点debug虽然不能直观看到变量在时间轴上的整体变化曲线 xff0c 但是其针对某一帧问题数据 xff0c 暂停后一步步单步执行监视每个变量的变化 xff0c 方便直观的判断每一步逻辑的正确性 xff0c 即使这个变量结构再复杂也
  • js中onclick()获取当前点击对象的属性值

    HTML span class token operator lt span a type span class token operator 61 span span class token single quoted string st
  • layui上传文件loading加载动画

    jquery layui 开始请求打开layui加载动画 所有请求结束后关闭layui加载动画 ajaxSetup 方法为将来的 AJAX 请求设置默认值 ajax请求中有一个beforeSend方法 xff0c 用于在向服务器发送请求前执
  • 微信小程序事件bindtap实现页面跳转

    index wxml通过bindtap 61 34 getUrl 34 设置一个名为getUrl事件 lt view class 61 34 tab con 34 gt lt view class 61 34 newsinfo 34 bin
  • 程序员找工作的个人经验教训以及注意事项

    点击上方 程序人生 xff0c 选择 置顶公众号 第一时间关注程序猿 xff08 媛 xff09 身边的故事 忽然间想到如果要找工作的话 xff0c 需要注意一些什么问题 没毕业的 xff0c 刚刚毕业的 xff0c 刚刚工作的都可以借鉴一
  • JavaScript逻辑运算与或非

    逻辑运算 amp amp 与 或 非 javascript中的逻辑运算两边的操作数 xff0c 可以是任意类型的任意值 默认布尔值 xff1a 当参与逻辑运算或判断语句中时 xff0c 任意类型的任意值都有一个默认的布尔型的值 与运算 xf
  • PHP面试题

    PHP知识 php反转字符串的三种方法 1 把分割字符串到一个数组中 xff0c 然后遍历拼接 xff1a lt php function joinStrrev str if strlen str lt 61 1 return str ne
  • tp6实现商城后台登录功能

    后台登录逻辑 1 没有登录状态 xff0c 访问后台页面都应该跳转到登录页 已经登录状态 xff1a 1 访问登录页面 xff0c 应该跳转到后台首页 解决方案 xff1a 后台登录拦截 xff1a 1 传统common base php控
  • Jenkins环境部署

    简介 Jenkins是一款开源 CI amp CD 软件 xff0c 用于自动化各种任务 xff0c 包括构建 测试和部署软件 Jenkins 支持各种运行方式 xff0c 可通过系统包 Docker 或者通过一个独立的 Java 程序 J
  • Nginx中Return指令使用

    Return指令使用 1 返回状态码 return 404 location test set name 39 user123 39 return 404 name curl i http 192 168 56 10 test 2 返回字符
  • MySQL触发器

    介绍 触发器是与表有关的数据库对象 xff0c 指在 insert update delete 之前或之后 xff0c 触发并执行触发器中定义的SQL语句集合 触发器的这种特性可以协助应用在数据库端确保数据的完整性 日志记录 数据校验等操作
  • 制作composer包提供sdk扩展

    目录 1 初始化包 2 将代码推送到github远程仓库 3 为写好扩展包打上tag标签标记当前代码版本 4 将包发布到包管理平台 初始化包 xff0c 生成 Creates a basic composer json file in cu
  • Go环境搭建与IDE开发工具配置

    安装Go语言编译器 Go语言编译器 61 编译器 61 将源代码编译为可执行程序 61 源代码 61 程序员使用高级语言所书写的代码文件 61 高级语言 61 c c 43 43 go 61 机器语言 61 0和1构成 xff0c 机器能直
  • 计算机中的速率、带宽、时延、利用率解读

    计算机网络的性能一般是指它的几个重要的性能指标 但除了这些重要的性能指标外 xff0c 还有一些非性能特征 xff08 nonperformance characteristics xff09 也对计算机网络的性能有很大的影响 那么 xff