首页/网络/网络排障速查/ss -i:拥塞窗口与 RTT 诊断

ss -i:拥塞窗口与 RTT 诊断

ss -i 输出内核 tcp_info:拥塞算法、cwnd、rtt/rttvar、rto、ssthresh、重传计数,是判断单条 TCP 为什么慢、为什么断的直接证据。

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

ss -i 给出内核视角的连接画像

套接字查看工具加上信息选项后,会输出内核为这条传输层连接维护的统计信息:拥塞控制算法、拥塞窗口、平滑往返时延与其偏差、重传超时、慢启动阈值、重传次数以及路径最大传输单元等。它是判断「单条连接为什么慢、为什么卡住」最直接的证据来源,因为这里读到的不是测量推断,而是内核实际的运行状态。分析时的关键是别只看一个字段,窗口、时延与重传要一起看。

基本信息

适用平台Linux iproute2 的 ss,内核需提供对应统计接口
常用组合-t 传输层、-i 信息、-n 不做解析,可再配合表达式过滤
关键字段拥塞算法、拥塞窗口、往返时延与偏差、重传超时、重传次数、路径最大传输单元
扩展字段加 -e 可看到套接字编号、用户标识等,便于对应到进程
分析原则窗口、时延与重传必须联合判读

典型使用场景

  • 单条连接吞吐上不去:确认是拥塞窗口受限还是丢包压制
  • 连接卡住不动:看重传计数与超时定时器状态
  • 抖动分析:对比往返时延偏差与业务侧感知
  • 验证参数生效:确认拥塞算法与窗口缩放是否按预期工作
  • 定位大包问题:读取路径最大传输单元并与接口配置核对

TCP 详情

TCP 详情
ss -tin state established '( dport = :443 )' | head -40
# cubic wscale:7,7 rto:204 rtt:0.62/0.31 mss:1448 pmtu:1500
#   cwnd:10 bytes_sent:1201 bytes_acked:1202 segs_out:9 segs_in:8 retrans:0/0
ss -tine state established '( dport = :3306 )' | head -20   # 带扩展字段,便于对应进程
ss -ti state established | grep -o 'retrans:[0-9]*/[0-9]*' | sort | uniq -c   # 重传分布

关键字段判读

字段含义判读
拥塞窗口可发送但未确认的数据上限长期停在很小值说明被丢包或限速压着
时延与偏差平滑往返时延与其波动偏差大即抖动明显,影响实时业务
重传超时等待重传的时间明显高于往返时延说明在等重传
重传计数本连接重传次数与超时放弃数持续增长指向链路丢包
路径最大传输单元路径探测结果小于接口值说明路径中有限制
窗口缩放窗口放大因子为较小值说明窗口受限,吞吐上不去
加上扩展字段选项还能看到套接字编号与用户标识等,可把连接与进程、文件描述符对上号。

易错点

  • 用 ping 测到的时延推断传输层表现:传输层受窗口与拥塞控制约束,两者不能互换
  • 看到拥塞窗口小就归因应用慢:先确认重传与接收窗口是否受限
  • 只采样一次就下结论:该输出是瞬时状态,需要多采样观察趋势
  • 忽略窗口缩放字段:实际可用窗口是窗口值与缩放因子的乘积

数据来源与参考

  • man 8 ss(iproute2)
  • Linux 内核 tcp_info 结构说明

相关工具

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