模块零 · 全景与基础
时延、丢包与吞吐量
点网页要等很久、下载速度低、视频时断时续,可能是不同的问题。先把描述这些现象的概念分开,再学习如何计算和观察。
本章要解决的问题:点网页要等很久、下载速度低、视频时断时续,可能是不同的问题。先把描述这些现象的概念分开,再学习如何计算和观察。
本章的证据来源:概念与模型对照《计算机网络:自顶向下方法(原书第8版)》§1.4,纸书24–32页。下面的计算是给定条件下的教学示例;旧稿留下的网络测量单独标为历史记录,本次未重新采集,不能用它们确定实际路径或时延成分。
先从一个例子理解概念
你打开一个网页:第一次响应等了很久,但随后大图片下载得很快。这里的“等多久”和“每秒传多少”描述的是两件事。
时延、吞吐量与容量
时延是数据从一个位置到另一个位置所花的时间。吞吐量是单位时间内实际交付的数据量,例如下载平均达到20 MB/s。链路容量是该链路能提供的传输速率上限;网络语境中的“带宽”常用来指这个容量,例如100 Mbps。
上限和实际达到的速度不能直接画等号。还要注意单位:8 bit = 1 byte,所以100 Mbps对应12.5 MB/s;应用实际速度还可能更低。
丢包与时延抖动
丢包是某个分组没有到达接收方;时延抖动是分组时延随时间变化。同一条路径上的不同包,可能等待不同的时间。
这些指标可以分别观察,但会相互影响。例如拥塞使队列变长,也可能造成丢包;TCP的重传和发送窗口又会影响实际吞吐量。不能把它们称为互相独立。
一个包在一跳上,时间花在哪里
先用一个简单模型:路由器收到一个包,检查首部,等待出口空闲,把包发上链路,信号再传播到下一台设备。
一跳的节点时延 = 处理时延 + 排队时延 + 传输时延 + 传播时延| 成分 | 正在做什么 | 主要取决于什么 |
|---|---|---|
| 处理时延 | 检查首部、进行转发查找等 | 设备处理能力与工作负载 |
| 排队时延 | 等待输出链路可用 | 到达模式、负载、调度与队列状态 |
| 传输时延 | 把整个包的比特依次推出去 | 包长L与链路速率R,计算为L/R |
| 传播时延 | 信号从链路一端跑到另一端 | 链路长度d与传播速度s,计算为d/s |
传输是“发出这一串比特”,传播是“信号走到对面”。改变包长会改变传输时延,却不会改变同一条链路上的传播速度。
排队时延常随负载明显变化,但它不是唯一可能很大的成分。长距离链路的传播时延可以很大;低速链路发送长包的传输时延也可以很大。
给定包长,计算传输时延
假设包长1500字节,仅按这12000比特计算,不计额外链路开销:
| 给定链路速率 | L/R |
|---|---|
| 10 Mbps | 1.2 ms |
| 100 Mbps | 0.12 ms |
| 1000 Mbps | 0.012 ms |
| 10000 Mbps | 0.0012 ms |
这张表是计算结果,不是四条真实链路的测速。在更低速的链路上,传输同样的包也会花更长时间。
给定距离,计算传播时延
假设光纤中的传播速度为2×10⁸ m/s,按单程距离估算:
| 给定距离 | d/s |
|---|---|
| 1 km | 0.005 ms |
| 100 km | 0.5 ms |
| 1000 km | 5 ms |
| 10000 km | 50 ms |
这只能说明距离带来的传播成本。真实光纤路径可能绕行,实际传播速度也依介质而异;不能直接把两地地图距离当作网络路径长度。
RTT能告诉我们什么
RTT(往返时延)是一个请求到达对端并得到响应所经历的往返时间。ping显示的RTT包含去回路径及响应处理等影响,无法单独拆出上面的四种成分。
旧稿保留了以下记录,条件注明为Windows 11、无线接入、存在本机代理,日期为2026-10-13。当前项目未保留可独立复核的完整采集材料,本次没有重新测量:
| 目标 | 旧稿记录的RTT | 可以怎样读 |
|---|---|---|
192.168.31.1 | 平均1 ms,最小1、最大2 | 该次网关响应的记录 |
223.5.5.5 | 平均23 ms,最小20、最大31 | 该次公网目标响应的记录 |
1.1.1.1 | 平均83 ms,最小82、最大87 | 另一公网目标响应的记录 |
不能据此确定哪个目标在海外,也不能算出“83 ms中80 ms是传播”。 公共服务可能通过Anycast从不同节点响应;实际节点、光纤路径、去回方向和代理处理均未确认。
如果另设教学条件“去回各8000 km、速度均为2×10⁸ m/s”,传播部分可计算为80 ms。这是一个假设模型;它与83 ms接近,并不证明真实路径符合假设。
排队为什么会随负载变化
把输出链路想成一个一次处理一个包的出口。包的到达不一定均匀:即使长期平均不忙,短时间来一批包,也会排队。
先采用教材的简化条件:每个包长L比特,平均每秒到达a个包,出口速率R比特/秒。流量强度为:
ρ = aL/R这个比值比较平均到达的工作量与链路服务能力。它不能单独确定排队时延,还需要知道到达分布、包长分布、调度和缓冲条件。
- ρ小于1:出口平均能处理到来的流量,但突发到达仍会产生队列。
- 在教材讨论的随机到达、无限缓冲模型中,ρ接近1时,平均排队时延可能急剧增长。
- 若平均到达工作量持续超过服务能力,无限缓冲模型中的积压会持续增长;真实设备缓冲有限,可能溢出丢包。
不存在本章能证明的统一“80%拐点”。 真实网络的可接受利用率要结合突发性、缓冲、调度和业务时延目标评估。有限缓冲会导致丢包,不能把真实设备描述成排队时延无限增长。
丢包与重传不是同一个计数
队列溢出是丢包的一种原因,链路错误、策略过滤等也可能造成丢包。TCP重传统计还可能包含不必要的重传;ping无响应也可能是ICMP被过滤或限速。
因此不能把旧稿的TCP重传率0.354%直接当成整条路径的丢包率,更不能仅凭“低于1%”宣布网络健康。需要先明确统计口径、采样时间、路径与业务要求。
带宽延迟积:给之后的窗口学习留一个问题
假设发送方发完数据后需要等待确认。等待期间如果不能继续发送,容量再高也可能闲着。在途数据包括已发出、但尚未确认的数据。
对给定的目标吞吐量与RTT,可用下面的积估算持续发送所需的未确认数据量:
目标吞吐量 × RTT这是后续TCP窗口学习的起点,实际吞吐量还受拥塞、协议开销和端点处理等限制。
| 教学假设 | 计算 |
|---|---|
| 1.9 Gbps、RTT 2 ms | 3.8 Mbit = 475000 byte = 475 kB,约464 KiB |
| 1 Gbps、RTT 83 ms | 83 Mbit = 10375000 byte,约10.4 MB |
这里的1.9 Gbps是假设的可用速率。无线协商速率不等于端到端可用吞吐量,不能用协商值证明本机实际需要或能达到上述速度。窗口、确认与窗口缩放的具体机制在运输层再讲。
瓶颈容量与实际吞吐量
假设一条路径上三段链路的容量为1 Gbps、100 Mbps、1 Gbps:
电脑 ──1Gbps── 路由器 ──100Mbps── 运营商 ──1Gbps── 服务器
↑ 容量最小的一段若没有其他竞争或限制,持续发送的单流吞吐量可以接近100 Mbps。一般而言,路径上的最小链路容量提供一个上限,实际吞吐量还可能因其他用户共享链路、发送方限速、TCP状态或端点处理而更低。
一次网页请求耗时很久,也不能证明瓶颈一定在代理。域名解析、建连、服务器响应、排队和内容传输都可能影响总耗时,需要分别观察。
本章小结
| 结论 | 依据与条件 |
|---|---|
| 时延描述等待时间,吞吐量描述实际交付速率,容量描述上限 | 教材§1.4 |
| 一跳时延可分为处理、排队、传输和传播 | 教材的基本模型 |
| 传输时延L/R,传播时延d/s | 给定包长、速率、距离与介质 |
| 单个RTT不能拆出各类时延,也不能确定响应节点位置 | 测量范围限制 |
| 排队取决于负载及到达、服务、缓冲等条件,没有统一80%阈值 | 教材§1.4.2 |
| 有限缓冲可能溢出丢包,重传率不能直接等同路径丢包率 | 指标范围不同 |
| 目标吞吐量乘RTT可估算需要的未确认数据量 | 持续发送的简化估算 |
| 瓶颈容量限制上限,实际吞吐量可能更低 | 教材§1.4.4 |
自测题
7 题 · 先自己答,再展开对照
一个1500字节的包在100 Mbps链路上,传输时延是多少?传播时延取决于什么?
1500×8÷100000000 = 0.00012 s,即0.12 ms。传播时延取决于链路长度与介质中的传播速度。“传输时延”和“传播时延”有什么区别?
传输时延是把整串比特发上链路的时间,取决于包长和速率;传播时延是信号走到链路另一端的时间,取决于距离与传播速度。给定目标吞吐量1.9 Gbps、RTT 2 ms,未确认数据量的估算值是多少?
1.9×10⁹×0.002 = 3.8×10⁶ bit,即475000 byte、475 kB,约464 KiB。这是在给定目标速率下的估算,不是本机吞吐量测量。只知道某次ping RTT为83 ms,能证明其中80 ms是传播时延吗?
不能。RTT包含去回路径与处理等影响,实际路径和节点未确认。假设距离算得接近83 ms,不能证明该假设真实。为什么不能把80%利用率说成所有网络的排队拐点?
排队还取决于突发到达、包长、服务和缓冲等条件。教材的定性趋势不能推出统一80%阈值;真实有限队列还可能发生丢包。你有千兆宽带,但下载只有30 MB/s,列出至少三种可能的限制。
可能是无线接入有效容量低、运营商限速、共享路径拥塞、服务器出口受限、端点磁盘或CPU繁忙。30 MB/s = 240 Mbps,还要区别单位与协议开销。丢包是否一定说明线路故障?TCP重传率是否等于路径丢包率?
不一定,队列溢出、链路错误和策略等都可能造成丢包。TCP重传率的统计对象不同,且可能包含不必要重传,不能直接等同路径丢包率或据此判定健康。
参考资料与适用范围
- 《计算机网络:自顶向下方法(原书第8版)》§1.4.1–1.4.4,纸书25–32页(用户提供PDF44–51页):四类时延、排队条件、丢包与吞吐量模型。
- RFC 2681 §2:往返时延的定义和测量条件
- RFC 4786 §2:Anycast服务节点与地址的关系
- RFC 7323 §1:带宽延迟积与TCP大窗口
修订核对日期:2026-10-13。命令结果为旧稿历史观察,本次未重新实测,缺少完整采集材料的数字不作为已复核证据。计算示例均注明假设;模型结论应连同模型条件阅读。