C05 · 第 6 章 · 应用与测量

网络测量与故障排查

明确网络测量的端点、协议和时间范围,计算时延分位数与有效吞吐量,并结合地址、连接、ICMP 和抓包结果定位问题。

预备知识DNS、HTTP 与 TLS

本章目标

  1. 记录测量端点、方向、协议、负载和超时条件。
  2. 复算往返时间均值、中位数和最近秩分位数。
  3. 区分应用有效吞吐量与含重复数据的载荷速率。
  4. 根据证据选择分层诊断步骤并解释路径探测的限制。
页面阅读位置0%
章节未开始
本册完成进度0/6 章 · 0%
本页目录

测量对象与实验条件

网络性能测量以明确的通信起点、终点、方向和协议为条件。一次到服务器的 ICMP 探测与一次 HTTPS 文件下载经过的端口、处理程序和缓存路径可能不同,两个结果应分别记录。测量时间、设备接入方式、目标地址及负载条件也会改变结果,比较两次实验时,应固定能控制的条件并记录其余差异。

主动测量向网络发送探测数据,适合控制包长、间隔和超时;被动测量观察现有业务,能减少额外流量,但样本由业务本身决定。探测间隔过密会改变被测网络的负载,单个小包又不足以体现大文件传输的表现。选择采样方式时,先确定要解释的是交互延迟、丢失比例还是持续有效吞吐量。

RFC 2330: Framework for IP Performance Metrics

V. Paxson, G. Almes, J. Mahdavi, M. Mathis · 1998 · RFC Editor

打开官方来源

RFC 2330 为 IP 性能指标区分单次测量、样本和统计量,并讨论路径、时钟与采样条件。依据这套区分,我们应把原始观测与汇总值一起保存:平均值便于比较整体水平,分位数呈现尾部等待,超时样本说明成功响应之外的情况。只给一个没有单位和样本条件的速度数字,无法复算其含义。

往返时间的分布

往返时间包含探测报文的去程、响应处理和回程。时延样本可能因排队而明显变化,先检查时间序列,再计算统计量有助于识别周期性拥塞或偶发停顿。中位数表示一半成功样本不超过的值,较高分位数关注少数较慢响应;不同工具采用的分位数插值规则可能不同,报告时应写明规则。

二十个往返样本的统计

二十次成功探测的往返时间已经按从小到大排序,单位为毫秒:十八、二十、二十、二十一、二十一、二十二、二十二、二十三、二十三、二十四、二十四、二十五、二十五、二十六、二十六、二十七、二十八、三十、七十、九十。计算平均值、中位数和采用最近秩定义的百分之九十五分位数。

全部数值之和为五百八十五,所以平均值为 585 ms/20=29.25 ms585\,\mathrm{ms}/20=29.25\,\mathrm{ms}。偶数个样本的中位数取第十和第十一个值的平均,两者均为二十四,因此中位数为 24 ms24\,\mathrm{ms}。最近秩定义取第 ⌈0.95×20⌉=19\lceil0.95\times20\rceil=19 个样本,结果为 70 ms70\,\mathrm{ms}。

平均值高于中位数,主要受到七十和九十毫秒两个较大值影响。我们检查最高两个观测的时间位置后,才能进一步判断它们是否来自连续拥塞;排序列表本身已经丢失时序信息。因此应保留原始顺序,排序只用于统计计算。

若探测超时,工具没有获得该次完整往返时间。把超时记成零会错误降低均值,把它统一记成超时上限也改变了统计对象。较清楚的做法是分别报告发送次数、有效响应次数、超时阈值和成功样本的时延分布;是否把迟到响应计为丢失,应在实验定义中固定。

数据量与有效吞吐量

设应用在测量区间内收到的有效数据量为 BB 字节,测量时间为 TT 秒,则应用有效吞吐量为

G=8BTbit/s.G=\frac{8B}{T}\quad\mathrm{bit/s}.

开始和结束时刻应围绕同一数据范围选择。如果计时从 DNS 解析开始,得到的是包含建立连接开销的整体下载平均速率;若只统计稳定传输区间,得到的是另一种指标。两者均有用途,但比较时不能混用。缓存命中还可能导致下载没有完整经过被测链路,需要从响应和计数位置确认数据来源。

应用数据与重复传输的速率

十秒内应用完整收到一个 100 MiB100\,\mathrm{MiB} 文件。某测量点按同一时间区间统计了 125 MiB125\,\mathrm{MiB} 传输层载荷,其中包括重复传输,但不包括协议首部。求应用有效吞吐量、该测量点的载荷速率以及有效字节占比。

应用有效字节为 100×220 B=104857600 B100\times2^{20}\,\mathrm{B}=104857600\,\mathrm{B},所以 G=8×104857600 bit10 s=83.88608 Mbit/sG=\frac{8\times104857600\,\mathrm{bit}}{10\,\mathrm{s}}=83.88608\,\mathrm{Mbit/s}。测量点的载荷速率为 8×125×220 bit10 s=104.8576 Mbit/s\frac{8\times125\times2^{20}\,\mathrm{bit}}{10\,\mathrm{s}}=104.8576\,\mathrm{Mbit/s},两个计数的比值为 100/125=80%100/125=80\%。

这个百分比只比较已说明的载荷计数,尚未包括以太网、IP 或 TCP 首部,不能当作完整物理链路利用率。重复字节可能由重传产生,也可能受采集位置和去重方式影响;验证结论时应检查包序号与抓包范围,避免把同一帧在两个接口上的记录再次合并。

分层检查通信故障

故障排查首先确认本机接口状态、地址、掩码和默认路由,再验证所选下一跳。二层地址解析失败时,优先检查同一广播域中的连接和配置;域名查询失败时,分别检查解析器可达性与具体响应。若目标地址已知且传输连接建立成功,问题范围进一步缩小到 TLS、应用请求和服务端处理。

每一步应使用与假设相匹配的观测。浏览器报告证书错误时,反复测试 ICMP 往返时间无法解释证书名称;文件下载在固定大小处中断时,则应检查对应连接的重传、超时、应用日志及大小限制。一次改变一个配置,复测相同请求并记录差异,能减少多项同时修改造成的判断困难。

测试公共服务时,还要考虑负载均衡、缓存和地址变化。两个请求可能由不同节点处理,尤其在 IPv4 与 IPv6 同时启用的环境中,应记录实际连接地址与协议。只要地址、协议或请求内容发生变化,就应把它视作新的测量条件,不能直接把结果差异归因于某一个网络运营者。

ICMP 与路径探测

RFC 792: Internet Control Message Protocol

J. Postel · 1981 · RFC Editor

打开官方来源

ICMP 提供错误报告和诊断消息。常见的 ping 发送回显请求并等待回显响应;traceroute 类工具逐渐增加逐跳限制,利用途中设备返回的超时消息观察路径。RFC 792 定义 IPv4 的相关控制消息和字段,工具具体使用 UDP、ICMP 或 TCP 探测则取决于实现和选项。

中间路由器可以对控制消息限速,路径也可能因多路径转发而变化。某一跳显示超时,但后续跳或业务仍然成功,表示该观测点没有按预期返回诊断响应;仅凭这个现象无法判定该节点丢弃了全部转发流量。相邻跳的往返时间差还包含不同回程和处理时间,不宜直接解释成两台设备之间的传播时延。

抓包提供更细的协议字段,但捕获到的内容取决于接口、过滤器和硬件卸载方式。分析发送端抓包中的校验和时,需要确认校验是否将在网卡上补齐;分析报文大小时,也需留意分段和接收合并。遇到与线速上限或协议长度不相容的结果,应先核对计数点与单位,再判断网络行为。

测量结果的复算练习

以下练习中的时间、样本范围和统计方法均已给定。解答时保留原始数据对应的单位,并说明结果描述的是成功样本还是全部尝试;对诊断题目,写出已有证据支持的范围与下一项需要观测的量,避免把一次测量推广到所有时段和协议。

练习

发送一千次探测,每次等待上限为一秒,在相应期限内收到九百八十次有效响应。按这个截止规则计算未响应比例,并列出复现实验还需说明的条件。

查看解答

按一秒截止规则,未收到有效响应的次数为 1000−980=201000-980=20,样本比例为 20/1000=2%20/1000=2\%。还应报告超时阈值、探测间隔及是否计入迟到响应。

练习

样本为十、二十、三十、四十、五十毫秒。按最近秩定义,百分之九十分位数是多少?为什么报告中需要注明分位数算法?

查看解答

最近秩位置为向上取整 0.9×50.9\times 5,即第五个样本,所以为 50 ms。其他采用插值的定义可能得到不同结果,因此需给出所用规则。

练习

两秒收到二十 MB 有效内容,这里的 MB 使用十进制。有效吞吐量是多少?若文件大小实际标注为二十 MiB,结果如何变化?

查看解答

有效数据为 20×106×8 bit=160000000 bit20\times10^6\times8\,\mathrm{bit}=160000000\,\mathrm{bit},除以 2 s 得 80 Mbit/s。若原单位为 MiB,同样数字对应的字节数会更大,结果为 83.88608 Mbit/s。

练习

一次路径探测的第三跳显示超时,第四跳及最终目标正常响应。能否据此断定第三跳完全中断?给出与现有观测相容的原因和下一步检查。

查看解答

中间节点可能限制或不发送诊断响应,也可能存在不同探测路径。后续节点及目标成功说明至少这些探测经过的转发路径仍有连通性;应使用实际业务协议复测,并比较多个时段和探测方式。