【计算机网络 | 概述5:带宽、吞吐量、时延、时延带宽积:网络性能指标一次讲清】
上一篇我们讨论了分组交换和电路交换知道了互联网会把数据切成一个个分组让它们共享网络资源。但一个问题随之而来一条网络链路到底性能如何为什么有的网络“网速很快”打开网页却仍然很慢为什么测速时的下载速度和套餐上写的带宽不一样要回答这些问题需要先理解几个最基本的网络性能指标速率、带宽、吞吐量、时延、时延带宽积、往返时延和丢包率。这些指标经常一起出现也很容易混淆。本文将从概念、公式和例子三个角度把它们串起来讲清楚。一、为什么需要网络性能指标“网络快不快”只是一个比较模糊的说法。下载文件时我们更关心单位时间能传多少数据在线游戏时我们更关心操作发出后多久得到响应视频通话时我们还会关注延迟是否稳定、是否丢包。因此评价网络不能只看一个数字而要根据场景观察不同指标指标主要回答的问题速率/带宽链路理论上每秒能传多少比特吞吐量实际每秒传输了多少数据时延一个分组从一端到另一端需要多久RTT一次往返交互需要多久丢包率发送的分组有多少没有到达链路利用率链路有多少时间处于传输状态这些指标相互关联但不能互相替代。带宽大不代表一定低延迟时延低也不代表一定能获得高吞吐量。二、速率每秒传输多少比特1.速率的概念速率也叫数据传输速率、比特率或数据率指的是网络设备或链路每秒传送多少比特的数据。公式可以写成速率 传输的数据量 / 传输所用的时间速率的基本单位是bit/s也写作b/s。常见单位包括常用的数据量单位因此网络套餐中的100 Mb/s和下载工具显示的100 MB/s不是同一个量。前者是每秒 100 兆比特后者是每秒 100 兆字节理论上需要除以 8 才能比较。2.端到端发送速率一段通信路径上的实际发送速率通常会受到多个环节的限制例如主机接口、线路和中间网络设备的接口速率。可以近似理解为数据传(发)送速率min{主机接口速率线路带宽交换机或者路由器接口速率}这就是为什么即使某条核心链路速率很高端系统的网卡或接入链路较慢时最终速率仍然上不去。三、带宽链路的“最大能力”“带宽”在计算机网络中有两种常见含义。1. 信号的频带宽度在通信领域带宽可以表示信号所占据的频率范围单位是赫兹Hz。例如一条信道能够传输的频率范围越宽通常就有更大的能力承载数据。2. 链路的最高数据传输速率在计算机网络性能指标中我们更常把带宽理解为链路能够达到的最高数据传输速率单位是bit/s。例如一条链路的带宽是100 Mb/s表示它的额定传输能力上限约为每秒 100 兆比特。需要注意带宽是能力上限不等于实际使用时的速度。实际传输还会受到拥塞、协议开销、设备性能、信号质量和服务器能力等因素影响。可以用一个简单的类比理解传播速率像汽车在公路上的行驶速度单位是m/s或km/h带宽像公路的车道数量决定单位时间能够通过多少辆车数据传输速率像车辆进入公路的速度传输的数据像公路上行驶的车辆。公路很长车辆行驶速度很快并不意味着单位时间能通过很多车辆。道路长度和道路宽度解决的是不同问题。四、吞吐量实际传了多少数据1. 吞吐量的概念吞吐量指单位时间内通过某个网络、链路或接口的实际数据量。平均吞吐量的计算公式是平均吞吐量 总传输数据量 / 总传输时间例如一个文件大小为800 Mb实际传输用了10 s那么平均吞吐量就是800 Mb / 10 s 80 Mb/s下载工具中不断变化的“当前下载速度”可以看作瞬时吞吐量一段完整下载过程结束后用总数据量除以总时间得到的是平均吞吐量。2. 带宽和吞吐量的区别带宽是最大的数据传输速率。不一定能达到这个最大的数据传输速率。实际上速率是多少这个就是吞吐量。可以理解为带宽就是吞吐量的上限吞吐量常被用于对实际网络的测量以便获知到底有多少数据量通过了网络。对比项带宽吞吐量含义链路理论上的最大传输能力实际传输达到的数据速率性质偏理论、偏额定值偏实际、偏测量值影响因素链路和设备的设计能力带宽、拥塞、协议、设备、服务器等关系通常是吞吐量的上限通常不超过瓶颈链路带宽假设一条端到端路径上有三条链路速率分别为100 Mb/s、10 Mb/s和50 Mb/s。即使两端的接入链路都很快整个传输过程的吞吐量也会受到中间10 Mb/s链路的限制。这条最慢的链路就是瓶颈链路。实际吞吐量还可能因为网络拥塞、丢包重传、协议头部开销和服务器读取速度而低于瓶颈带宽。因此“带宽越大”通常有助于提高吞吐量但不能简单地认为带宽数值就是用户最终看到的下载速度。五、时延数据到达需要多久时延指数据从网络的一端传送到另一端所耗费的时间也叫延迟或迟延。一个分组从发送端到接收端通常会经历四类时延发送时延 传播时延 处理时延 排队时延在多跳网络中每个节点和每条链路都会产生相应的时延端到端时延通常是各段时延的累加。一个分组整体的发送时延和传播时延等于总数据的发送时延1个bt的传播时延原因前面bit的传播时延和后面bit的发送和传播时延是重合的发送时延决定“把多少数据塞进线路需要多久”传播时延决定“第一个bit跑到终点需要多久”。二者不是串行累加很多次因为发送过程和传播过程会重叠。1. 处理时延分组到达路由器后路由器需要读取和解析分组首部检查差错查询路由表并决定从哪个接口转发出去。这些操作所花的时间就是处理时延。处理时延还可能包括访问控制、网络地址转换和服务质量标记等额外处理。它与设备的处理能力和当前任务有关通常没有一个简单统一的计算公式。2. 排队时延分组完成处理后如果对应的输出链路正被其他分组占用就需要在路由器的输出队列中等待。这个等待时间就是排队时延。排队时延是四类时延中变化最大的一类网络空闲时排队时延可能接近 0网络繁忙时队列变长排队时延会增加队列空间有限且持续拥塞时新到达的分组可能被丢弃。排队时延与流量强度有关。常用流量强度rho表示到达速率相对于链路处理能力的大小rho L * a / R其中L是分组大小单位为 bita是分组到达速率单位为 packet/sR是链路传输速率单位为 bit/s。当rho接近 1 时链路接近满载排队时延会明显增加当到达速率长期超过链路处理能力时队列会逐渐溢出并产生丢包。3. 传输时延传输时延也叫发送时延指发送端把一个分组的全部比特推入链路所需要的时间。计算公式是d_trans L / R其中L是分组长度单位为 bitR是链路发送速率单位为 bit/s。其中发送速率min{主机接口速率线路带宽交换机或者路由器接口速率}传输时延仅由分组大小和链路带宽决定与物理距离无关。例如一个分组长度为1500 Byte链路速率为2 Mb/sL 1500 Byte 12000 bit R 2 * 10^6 bit/s d_trans 12000 / (2 * 10^6) s 0.006 s 6 ms分组越大传输时延越长链路速率越高传输时延越短。4. 传播时延传播时延指信号在物理介质中从链路一端传播到另一端所需要的时间。计算公式是d_prop d / s其中d是链路长度单位为 ms是信号在介质中的传播速度单位为 m/s。传播速度取决于介质。例如光纤中的信号传播速度通常约为2 * 10^8 m/s。如果链路距离为1000 km传播速度取2 * 10^8 m/s则d 1000 km 10^6 m d_prop 10^6 / (2 * 10^8) s 0.005 s 5 ms传播时延取决于物理距离和介质特性与分组大小和链路带宽无关。六、传输时延和传播时延不要混淆重要理解这两个概念名字相近但关注点完全不同对比项传输时延传播时延说明把整个分组推入链路需要多久信号从一端跑到另一端需要多久公式L / Rd / s主要因素分组长度、链路速率物理距离、介质传播速度与距离关系无关距离越长通常越大与分组大小关系分组越大越长基本无关可以把分组看成一列车辆传输时延是把整列车依次放上公路所需的时间传播时延是第一辆车从公路起点行驶到终点所需的时间。即使第一辆车已经开始传播后面的车辆仍然可能还在被推入链路所以两种时延会同时存在。在上面的例子中分组的传输时延是6 ms链路的传播时延是5 ms。忽略处理和排队时延时该分组到达另一端大约需要6 ms 5 ms 11 ms七、时延带宽积链路中“正在路上的比特”有多少时延带宽积等于传播时延和带宽的乘积。时延带宽积就相当于管道的容积时延带宽积 传播时延 * 带宽它的单位是bit表示在一个传播时延内链路中可以容纳的比特数量也可以理解为链路的“比特容量”。还是把链路想象成一根管道管道长度对应传播时延管道粗细对应带宽管道容积对应时延带宽积。使用传播时延5 ms和带宽2 Mb/s计算时延带宽积 2 * 10^6 bit/s * 0.005 s 10000 bit这表示当第一个比特刚好传播到链路另一端时链路中大约有10000 bit的数据正在传播或等待离开链路。时延带宽积越大说明链路越长或带宽越高发送端为了持续“填满”链路就可能需要发送更多尚未得到确认的数据。八、RTT一次往返需要多久RTTRound-Trip Time指从发送端发出一个分组到发送端收到来自接收端的确认(接收端收到数据后立即发送确认)总共经历的时间。在互联网中往返时延还包括各中间节点的处理时延、排队时延及转发数据时的发送时延。例如客户端向服务器发送请求服务器收到请求并返回响应客户端收到响应这一整个往返过程就可以用 RTT 描述。RTT 通常包括请求方向上的传播时延响应方向上的传播时延中间设备的处理时延和排队时延接收端处理请求的时间响应数据的传输时延。可以理解成一个粗略的公式RTT 传播时延 * 2 处理时间 (不包含发送时延因为发出之后才开始计时)处理时间其实也就是上面提到的“中间设备的处理时延和排队时延”、“接收端处理请求的时间”、“响应数据的传输时延。”真实网络中的 RTT 并不一定等于单向时延的两倍。路径可能不对称服务器处理时间不同网络拥塞也会使 RTT 发生变化。九、丢包率和链路利用率1. 丢包率路由器队列的容量是有限的。当分组到达速度长期高于链路发送速度时队列会逐渐填满后续到达的分组无法被缓存只能被丢弃。丢包率可以表示为丢包率 丢失的分组数量 / 发送的分组总数量丢包还可能由传输中的比特差错、设备故障或路由异常引起。对于 TCP 等可靠协议丢包通常会触发重传进而增加时延并降低有效吞吐量。2. 链路利用率链路利用率表示一段时间内链路处于数据传输状态的比例链路利用率 有数据通过的时间 / 总时间利用率过低说明网络资源没有被充分利用利用率过高则容易导致队列增长、时延上升和丢包。因此利用率并不是越高越好网络设计需要在资源利用和服务质量之间取得平衡。十、用一次文件下载把指标串起来假设客户端从服务器下载一个文件路径上有三条链路客户端接入链路100 Mb/s核心链路10 Mb/s服务器接入链路50 Mb/s。1. 吞吐量看瓶颈端到端传输的理论吞吐量受最慢链路限制因此最多接近min(100, 10, 50) Mb/s 10 Mb/s如果网络存在其他用户、协议开销和丢包实际吞吐量还会低于10 Mb/s。2. 时延看路径和排队文件中的每个分组都需要经历发送端准备并处理分组的处理时延在发送端把分组推入链路的传输时延信号在物理介质中传播的传播时延路由器中可能产生的处理时延和排队时延。如果核心链路接近满载排队时延会变大。此时即使链路带宽没有变化用户仍然可能感觉网页打开变慢、下载速度波动明显。3. 带宽和时延分别解决什么问题增大带宽主要能够缩短大文件的传输时间提高可达到的吞吐量缩短物理距离或使用传播速度更快的介质主要能够降低传播时延减少拥塞和优化设备处理能力主要能够降低排队时延和处理时延。因此网络优化不能只盯着“提高带宽”。不同应用遇到的瓶颈不同解决方案也不同。十一、几个常见误区误区一带宽就是实际网速带宽是链路的理论最大能力吞吐量才是实际测得的数据传输速率。测速结果通常还会受到共享用户、服务器和协议开销影响。误区二带宽越大时延一定越小提高带宽可以降低传输时延但不一定降低传播时延。跨越很长距离的高速链路仍然可能有较大的传播时延。误区三传输时延和传播时延是一回事传输时延由L/R决定传播时延由d/s决定。前者是“把数据放上链路”后者是“信号在链路中传播”。误区四吞吐量高就代表交互体验好下载文件更关注吞吐量在线游戏和接口调用往往更关心 RTT 和抖动。高吞吐量不能替代低时延。十二、总结本文的核心内容可以压缩成下面几句话速率表示单位时间传输了多少比特单位通常是bit/s。带宽在本文中主要表示链路的最高数据传输速率是实际吞吐量的上限。吞吐量表示单位时间内实际通过网络的数据量端到端传输通常受瓶颈链路限制。总时延由处理时延、排队时延、传输时延和传播时延组成。传输时延使用L/R计算关注分组大小和链路速率。传播时延使用d/s计算关注距离和介质传播速度。时延带宽积等于传播时延乘以带宽表示链路中能够容纳的比特数量。RTT表示一次往返交互所需的时间实际值还会受到处理、排队和路径差异影响。高带宽、低时延、低丢包分别解决不同问题评价网络性能需要结合具体应用场景。到这里计算机网络概述部分的几个基础问题已经串联起来了网络为什么要分层数据如何在不同层次中封装互联网为什么采用分组交换以及如何评价一条网络链路的性能。接下来我们将进入物理层看看比特究竟是如何通过真实的通信介质传输的。如果这篇文章对你有帮助欢迎点赞、评论、关注、收藏。你们的支持是我前进的动力

相关新闻

从晶振到FPGA:时钟电路设计核心要点与实战避坑指南

从晶振到FPGA:时钟电路设计核心要点与实战避坑指南

1. 项目缘起:为什么时钟电路是电子系统的“心跳”?做硬件开发这些年,我经手过不少项目,从简单的单片机小玩意儿到复杂的FPGA系统板,踩过的坑数不胜数。但要说哪个环节最容易让人“翻车”,又最容易被新手忽视…

2026/10/2 1:10:29 阅读更多 →
WebGL与WebGPU开发全攻略:从环境搭建到实战案例解析

WebGL与WebGPU开发全攻略:从环境搭建到实战案例解析

大家好,我是专注于前端图形技术的开发者。在探索 WebGL 和 WebGPU 的过程中,你是否遇到过three.webglrenderer: a webgl context could not be created这样的报错,或者纠结于如何优雅地判断设备支持性?网上资料往往零散&#xff0…

2026/10/3 9:23:34 阅读更多 →
CDGA备考与数据治理实战:从刷题到建立系统性思维模型

CDGA备考与数据治理实战:从刷题到建立系统性思维模型

1. 备考CDGA:为什么“刷题”不等于“会做题”?最近身边好几个朋友在准备CDGA(Certified Data Governance Associate)的认证考试,大家不约而同地都在到处找“重点章节练习题”和“含解析”的资料。这个现象很有意思&…

2026/9/30 11:19:25 阅读更多 →

最新新闻

Java+MySQL实现GUI医院挂号系统:从建表到防超卖实战

Java+MySQL实现GUI医院挂号系统:从建表到防超卖实战

简介:这份资源是面向高校计算机专业学生与Java初学者的一套医院简易挂号管理系统课程设计完整源码,基于Java与MySQL开发,采用Swing或JavaFX构建图形界面,帮助读者理解桌面应用从需求分析到编码测试的完整流程。压缩包共331个文件&…

2026/10/4 11:07:42 阅读更多 →
9款AI论文软件实测:从开题报告到文献综述,一键生成毕业论文的TaoToken配置指南

9款AI论文软件实测:从开题报告到文献综述,一键生成毕业论文的TaoToken配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:07:42 阅读更多 →
OpenShell使用指南:让Windows 10/11开始菜单回归经典

OpenShell使用指南:让Windows 10/11开始菜单回归经典

如果你也跟我一样,用惯了几年前的开始菜单,大概会对现在系统自带的版本有些意见。Windows 8 把菜单变成了整屏磁贴,Windows 10 把磁贴和程序列表强行拼在一起,Windows 11 干脆把它挪到屏幕中间——功能没少,但怎么点都…

2026/10/4 11:07:42 阅读更多 →
用Python Tkinter开发反应力测试小游戏:GUI编程与事件驱动实战

用Python Tkinter开发反应力测试小游戏:GUI编程与事件驱动实战

前阵子整理电脑里的 Python 练习项目,翻到一个很早写的“测反应力”小游戏。东西不复杂,核心就一个按钮、一个计时器、几个状态切换,但确实是练Python GUI编程特别合适的入门项目。很多人一提到图形化小游戏,总觉得得用 pygame 这…

2026/10/4 11:07:42 阅读更多 →
Claude Code Skills 简介:用 SKILL.md 与 Progressive Disclosure 构建 Agent Skills

Claude Code Skills 简介:用 SKILL.md 与 Progressive Disclosure 构建 Agent Skills

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:07:42 阅读更多 →
AI工程化落地指南:从大模型到Agent的实战洞察

AI工程化落地指南:从大模型到Agent的实战洞察

1. 大模型与基础层:今天绕不开的底座话题1.1 大模型正在走向“可解释的工程化”这期日报我第一个想聊的还是大模型本身。2026年9月29日,AI圈的注意力已经从“谁家模型跑分高”转移到了“谁家模型能在生产环境里稳定跑一年”。今天在各大技术社区反复出现…

2026/10/4 11:06:42 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →