Ich bin mit der Antwort von Nemo nicht einverstanden. Wireshark (sowie dumpcap, tcpdump) sind nicht in der Lage, cwnd und ssthresh zu messen/protokollieren, da diese keine Felder in den TCP-Datagrammen sind, sondern nur Werte sind, die sich als Kernel-Strukturen im Kernel befinden. Staukontrolldaten werden nicht über die Leitung übertragen, sondern nur Flusskontrolldaten.
Um diese Werte zu überwachen, implementieren Sie entweder get_info
und die Daten regelmäßig abtasten, oder werfen Sie einen Blick auf tcp_probe
Kernel-Modul (siehe:http://www.linuxfoundation.org/collaborate/workgroups/networking/tcptesting)
UPDATE:Ich habe eine gepatchte Version des tcp_probe-Moduls erstellt, das zur Überwachung von cwnd und ssthread verwendet werden kann, siehe https://github.com/Dynalon/tcp_probe_fixed
Das Dienstprogramm ss generiert diese Ausgabe für Sockets:
# 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
Sie können die cwnd/ssthresh-Werte daraus überprüfen.