首页/网络/抓包与流量分析速查/握手时间作为轻量探针
丢包与时延定位60 条

握手时间作为轻量探针

TCP 握手单 RTT 且无应用逻辑:`time` 三向握手或专用工具采样即可持续监控网络质量,与业务延迟指标解耦。

用握手当轻量探针

TCP 三次握手只花一个往返、不含任何应用逻辑,用它当探针可以把网络质量从业务耗时里剥离出来。定时对目标端口做握手计时,得到的序列能直接反映链路往返延迟与丢包趋势。如果服务走 TLS,握手还能分成传输层握手与应用层握手两段,分别对应网络开销和服务端处理开销。

基本信息

探针口径time_connect(TCP 握手)、time_appconnect(含 TLS 握手)
采样方式定时多轮采集,看分布而不看单点
频率约束高频探测本身既是负载也是噪音
选择原则探针目标要与业务同路径、同机房

典型使用场景

  • 建立网络质量基线,与业务延迟指标对照分析
  • 判断业务变慢出在网络还是应用:握手稳定而总耗时上升
  • 线路或设备变更前后对比链路质量
  • 多地域、多可用区的可达性与延迟巡检
  • 作为监控告警输入,触发更细致的抓包分析

多轮握手计时

多轮握手计时
for i in $(seq 1 20); do
  curl -s -o /dev/null -w '%{time_connect} %{time_appconnect} %{time_total}\n' https://api.example.com/
  sleep 1
done
# time_connect 反映 TCP 握手,time_appconnect 是叠加 TLS 握手后的累计值,time_total 是完整请求
# 记录每轮的结果做分布分析,不要只看某一次

输出字段读法

字段含义异常时的指向
time_connectTCP 握手耗时网络往返延迟与丢包
time_appconnect叠加 TLS 握手后的累计值证书链长或握手往返偏多
time_total完整请求耗时应用处理与服务端性能
curl 退出码请求结果超时、连接被拒或解析失败
探针频率要控制。高频探测本身既是负载也是噪音,还容易触发安全设备的限速。分钟级采样配较长的观察窗口,通常比每秒一探更有说服力,也更容易解释趋势。
探针目标要选与业务同路径、同机房。跨运营商或跨机房的探针数字不能直接用来解释业务延迟,路径不同结论就不同,混用会造成误判。

排查顺序

  • 先用探针确认网络层是否稳定,与业务耗时分开看
  • 区分 TCP 握手与 TLS 握手,定位是网络往返还是服务端处理慢
  • 多地域同时采样,判断是普遍劣化还是局部路径问题
  • 与历史基线比较,而不是与其他地域横向比较
  • 把探针结论与抓包证据配对,报告里注明采样时间与频率

易错点

  • 只看单次探测结果就下结论:网络抖动需要看分布与趋势,单点毫无代表性
  • 探针与业务不同路径:数字再漂亮也无法解释业务体验
  • 把 time_connect 与 time_appconnect 混用:网络往返与服务端处理被混成一笔账
  • 探测频率过高:自身流量干扰网络,还可能被安全设备限速造成假丢包

数据来源与参考

  • curl 文档(-w 时间变量)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌