linux中的ss工具及tcp参数详解

内容分享2天前发布
0 0 0

Linux
ss
工具及 TCP 参数详解

在 Linux 系统中,
ss
工具可以用来查看网络套接字状态。使用如下命令可以查看指定端口的 TCP 连接详细信息:


ss -i -t -p sport = :<port>

其中,
-i
显示 TCP 内部信息,
-t
仅显示 TCP 连接,
-p
显示进程信息。


一、TCP 内部信息字段解释


ss -i
输出的 TCP 内部信息包含多种与拥塞控制、窗口管理、延迟和流量相关的参数。常见字段及其含义如下:

字段 含义

cubic
TCP 拥塞控制算法,本例使用 Cubic 算法。

wscale
TCP 窗口缩放因子,发送方和接收方用于调整 TCP 窗口大小。例如 9/10 表示发送方和接收方都启用了窗口缩放。

rto
Retransmission Timeout(重传超时时间),单位 ms。用于控制发送方在未收到 ACK 时等待重传的时间。

rtt
Round-Trip Time(往返时延),单位 ms。例如
8.228/0.672
表示最近 RTT 为 8.228ms,最小 RTT 为 0.672ms。

ato
Adaptive Timeout(自适应超时),单位 ms,用于动态调整发送超时时间。

mss
Maximum Segment Size,TCP 数据段中最大数据长度。

pmtu
Path Maximum Transmission Unit,路径最大传输单元。

rcvmss
接收方 MSS 值,接收方可接收的最大数据段长度。

advmss
广告 MSS,发送方向接收方广告的 MSS 大小。

cwnd
拥塞窗口大小,单位为报文段数。

ssthresh
Slow Start Threshold(慢启动阈值),控制拥塞避免阶段的拥塞窗口阈值。

bytes_acked
已确认的字节数。

bytes_received
已接收的字节数。

segs_out
/
segs_in
发送/接收的报文段数量。

data_segs_out
/
data_segs_in
发送/接收的数据报文段数量(排除控制报文段)。

send
当前发送速率,单位 Mbps。

lastsnd
/
lastrcv
/
lastack
最近发送、接收和确认的报文段序号。

pacing_rate
数据发送速率,单位 Mbps。

delivery_rate
传输速率,单位 Mbps。

app_limited
应用程序限制发送速率标识。

retrans
重传报文段数量。

rcv_rtt
接收端 RTT,单位 ms。

rcv_space
接收端可用接收窗口大小。

rcv_ssthresh
接收端慢启动门限值。

minrtt
最小 RTT,单位 ms。

二、慢启动与拥塞避免

TCP 拥塞控制主要依赖 cwnd(拥塞窗口)和 ssthresh(慢启动阈值):

慢启动阶段:当
cwnd < ssthresh
时,TCP 采用指数增长方式快速增加发送速率。拥塞避免阶段:当
cwnd >= ssthresh
时,采用线性增长,防止网络过载。

慢启动阈值
ssthresh
的初始值通常由系统默认设置,可通过以下命令查看:


cat /proc/sys/net/ipv4/tcp_slow_start_after_idle

三、重传与窗口调整

TCP 在出现丢包或超时时会调整窗口和阈值:

超时重传(RTO)


cwnd = 1

ssthresh = cwnd / 2
立即降低发送速率,防止网络进一步拥塞。

快速重传


cwnd = cwnd / 2

ssthresh = cwnd
网络轻微拥塞时的优化策略,不如超时重传激进。


四、分析和优化重点

在分析 TCP 性能和网络健康状态时,重点关注:


cwnd

ssthresh
:控制发送速率和拥塞窗口变化。延迟和丢包:通过
rtt

rto

retrans
等参数判断网络状态。发送速率
send

pacing_rate

delivery_rate
反映当前传输效率。应用程序限制
app_limited
标识是否应用程序主动限制流量。

当网络不健康或流量过大时,可通过降低
cwnd
和适当增加 RTT 来减少丢包对传输的影响,从而提高整体稳定性。


五、监控和调试工具

可以结合以下工具分析 TCP 流量与性能:


ss -i
:查看 TCP 内部状态。
/proc/net/tcp
:查看 TCP 连接及状态。
/proc/sys/net/ipv4/
:调整 TCP 拥塞控制参数,如
tcp_slow_start_after_idle

sar -n DEV
:监控网络流量。
tcpdump
/
wireshark
:抓包分析。


六、总结

TCP 性能优化依赖对
cwnd

ssthresh
及相关指标的理解和调控:


ssthresh

cwnd
决定发送窗口和拥塞控制阶段。丢包和超时触发窗口调整和重传策略。延迟 ACK、快速 ACK 等机制可以进一步优化传输延迟。结合
ss -i
和内核参数监控网络健康,有助于减少丢包和提高吞吐量。


© 版权声明

相关文章

暂无评论

none
暂无评论...