首页 / 新闻资讯 / 技术教程

TCP 重传与乱序:ss 命令里的网络健康信号

2026-07-19分类:技术教程顺云运营

## 概念是什么

ss 是套接字统计工具,加 i 参数后每个 TCP 连接会附带内核维护的扩展信息,其中重传计数与超时重传时间是最有诊断价值的两个读数。重传意味着数据包在途中丢失,对端没收到;乱序意味着包到达顺序与发送顺序不一致。它们是链路质量劣化最早期的信号,比业务层超时报警提前得多。

## 背后原理

TCP 靠确认机制感知丢包,发送方超时未确认就重传,重传次数累计在连接的统计里。每次重传都会把拥塞窗口减半,吞吐随之掉落,所以即使少量丢包也会显著拉低长连接的传输速率。超时重传时间由往返延迟与波动动态计算,读数偏大说明链路延迟高或抖动剧烈。

ss -ti dst 192.168.10.20
ss -ti state established '( dport = :443 )'

输出里关注几个字段:retrans 计数持续增长说明丢包在发生;rto 值反映当前的重传等待时间;rtt 与其波动值给出往返延迟的画像;cwnd 是拥塞窗口,被压制得远小于带宽延迟积就是重传拖累的结果。

## 最小实操

定期采样比单次快照有价值,把关键连接的重传数随时间记录,画出趋势。判断基准是增速而非绝对值:长连接上每小时几十次重传属于公网正常波动,短时间成百上千次增长则要警惕,内网链路上出现可感知的重传更是异常,应当排查。

## 常见错误

只看一次输出就下结论,单次快照的重传数是历史累计,无法区分刚发生与很久以前。方向性要分清:数据从本机到对端丢与本机收对端的丢,现象都体现在同一计数里,结合 mtr 双向测试才能定位丢包发生在哪一段。顺云云服务器之间内网互通的重传应接近零,任何持续增长都值得追查。

工具链的延伸用法补一句:ss 的过滤表达式很强大,按状态、按端口、按进程过滤一行搞定,配合 watch 就是简易的连接监视器。把重传采样做成定时任务落盘,与带宽曲线画在一起,网络质量的归因就有了长期证据链,出问题时回看曲线比现场猜测高效得多。

技术教程