首页/网络/网络排障速查/请求延迟分解:DNS/TCP/TLS/TTFB/传输

请求延迟分解:DNS/TCP/TLS/TTFB/传输

把一次访问的总耗时拆成五段:解析、连接、握手、首字节、传输;每段都有预期量级,超出的一段就是下一步深挖方向。

网络排障速查网络更新于 2026-10-13

延迟分解是什么

把一次访问的总耗时拆成五段:名称解析、连接建立、加密握手、首字节等待、数据传完。每一段都有大致量级可参考,明显超出预算的那一段,就是下一步该深挖的方向。分解的价值在于把「慢」变成可比较的数字:只看总耗时无法判断要改网络还是改服务端,而分段之后方向往往一眼就能看出来。它还顺带回答一个高频问题——这次访问到底慢在链路,还是慢在业务处理。

基本信息

适用平台Linux 与 macOS 用命令行请求工具;Windows 上也提供同名工具
核心手段请求工具的分段计时变量,一次请求即可拿到五段耗时
参照基准先测一次到目标的往返时延,把各阶段换算成时延倍数再看
配套手段解析耗时用解析工具对比、逐跳质量用路径探测、吞吐用压测工具
采样要求同一目标重复多次取中位,单次结果容易受抖动影响
对比原则两次请求可区分一次性开销(解析与握手)与持续问题

典型使用场景

  • 接口偶发慢:先确认是服务端处理慢还是链路握手慢
  • 首次访问慢、之后变快:多为解析与握手开销,对比第二次请求即可验证
  • 跨地域访问体验差:用时延倍数判断是否属于物理距离的必然延迟
  • 启用加密后明显变慢:看握手阶段占比,定位证书链与协商问题
  • 下载速度不达标:把传输阶段单独测,与链路标称带宽对比
  • 回归验证:优化之后重复同一组测量,确认改善量

分段测量

分段测量
curl -sS -o /dev/null -w 'dns=%{time_namelookup} conn=%{time_connect} tls=%{time_appconnect} ttfb=%{time_starttransfer} total=%{time_total}\n' https://<目标>/
ping -c 5 <目标>                              # 先取往返时延基准,用于换算各阶段
curl -sS -o /dev/null -w 'size=%{size_download}B speed=%{speed_download}B/s time=%{time_total}s\n' https://<目标>/static/big.bin   # 只测传输
for i in 1 2 3; do curl -sS -o /dev/null -w '%{time_total}\n' https://<目标>/; done   # 重复采样
curl -sS -o /dev/null -w 'ttfb=%{time_starttransfer}\n' --http1.1 https://<目标>/    # 换协议版本对比
mtr -r -c 100 -n <目标>                       # 逐跳看时延在哪一跳开始抬升
ss -tnp | grep <目标>                         # 确认连接是否复用,避免重复握手开销

阶段与判读参考

阶段常见量级参考异常指向
名称解析缓存命中时通常很低解析服务器、缓存与权威链路问题
连接建立约一个往返时延链路时延、握手报文被丢或被拦
加密握手一到两个往返时延,会话复用更快证书链拉取、协议协商、服务端处理能力
首字节等待取决于服务端处理后端慢、排队、锁等待、依赖接口慢
数据传输约等于数据量除以有效带宽带宽不足、丢包导致降速、窗口受限
连接复用后的请求省去解析与握手若仍很慢,问题在服务端或传输
连接阶段异常时先看往返时延基准:同城通常个位数毫秒,跨省会明显增加,跨国往往从百毫秒起。把绝对数字换算成时延的倍数,才看得出是链路慢还是正常范围。
同一目标测量两次能区分「一次性开销」与「持续问题」:第二次请求省掉了解析与部分握手开销,若仍然很慢,问题更可能在服务端处理或传输阶段。
对比测试要固定条件:协议版本、地址协议族、客户端出口与测试时段不一致时,两组数字没有可比性,很容易得出「改错了」的结论。

易错点

  • 把总耗时慢一律归因网络:首字节等待偏高往往是服务端处理或后端依赖慢
  • 不做往返时延基线换算,跨地域访问时把正常量级当成故障
  • 只测一次就下结论,没排除偶发抖动与首次连接的握手开销
  • 忽略协议版本差异:不同协议下的握手往返次数不同,对比测试时要固定协议
  • 把传输阶段慢直接判为带宽不足,忽略丢包与窗口限制同样会压低有效吞吐
  • 对比测试时客户端走不同地址协议族,路径质量不同,结论被带偏

数据来源与参考

  • curl 手册:-w 变量
  • Google Web 性能文档:TTFB 与网络阶段分解

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌