我希望在通过套接字连接发送或接收数据包时确定这些值。有没有现成的工具呢?
答案 0 :(得分: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
您可以从中检查cwnd / ssthresh值。
答案 1 :(得分:8)
我不同意尼莫给出的答案。 Wireshark(以及dumpcap,tcpdump)无法测量/记录cwnd和ssthresh,因为它们不是tcp数据报中的字段,而只是作为内核结构驻留在内核中的值。拥塞控制数据不通过线路传输,只有流量控制数据。
要监控这些值,请执行get_info
并定期对数据进行采样,或者查看tcp_probe
内核模块(请参阅:http://www.linuxfoundation.org/collaborate/workgroups/networking/tcptesting)
更新:我已经创建了一个tcp_probe模块的修补版本,可以用来监视cwnd和ssthread,参见https://github.com/Dynalon/tcp_probe_fixed
答案 2 :(得分:0)
根据“监视器”的含义,Wireshark可能会有所帮助。
另见/proc/net/tcp documentation。 (不,我没有真正遵循它;你可能需要深入了解内核资源以理解它......)
答案 3 :(得分:0)
我找到了一个可以监控这些值的工具。 http://www.umic-mesh.net/downloads/flowgrind.html