如何监视TCP连接的cwnd和sstresh值?

Bru*_*uce 9 linux tcp

我希望在通过套接字连接发送或接收数据包时确定这些值.有没有现成的工具呢?

Pop*_*eye 10

SS实用程序将生成此输出插座:

# ss -i
State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port   
ESTAB      0      2054000          1.2.3.4:34069          1.2.3.5:ssh     
     htcp wscale:11,11 rto:247 rtt:47/0.75 ato:40 cwnd:1542 ssthresh:742 send 380.1Mbps rcv_rtt:14 rcv_space:64240
Run Code Online (Sandbox Code Playgroud)

您可以从中检查cwnd/ssthresh值.


Dyn*_*lon 9

我不同意尼莫给出的答案.Wireshark的(以及dumpcap,tcpdump的)不能够测量/记录的拥塞窗口和慢启动阈值的,因为这些都不在TCP数据报字段,但仅是驻留在内核内核结构内的值.拥塞控制数据不通过线路传输,只有流量控制数据.

要监视这些值,请get_info定期实现和采样数据,或者查看tcp_probe内核模块(请参阅:http://www.linuxfoundation.org/collaborate/workgroups/networking/tcptesting)

更新:我创建了tcp_probe模块的一个补丁版本,可用于监测拥塞窗口和ssthread,看到https://github.com/Dynalon/tcp_probe_fixed