1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#! stap -p4
global send_bytes, recv_bytes, ports, src_ips, rtos, state, mss, ssthresh, cwnd
function print_report()
{
printf("%d\t%d\t%d\t%s\t%d\t%d\t%d\t%d\t%d\n",
send_bytes,recv_bytes,ports,src_ips,rtos,mss,ssthresh,cwnd,state);
}
probe tcp.sendmsg {
ports = inet_get_local_port(sock)
src_ips = inet_get_ip_source(sock)
rtos = tcp_get_info_rto(sock)
}
probe tcp.recvmsg {
cwnd = tcp_get_info_snd_cwnd(sock)
mss = tcp_ts_get_info_rcv_mss(sock)
ssthresh = tcp_ts_get_info_snd_ssthresh(sock)
state = tcp_ts_get_info_state(sock)
}
probe tcp.sendmsg.return {
if (size > 0) {
send_bytes += size
}
}
probe tcp.recvmsg.return {
if (size > 0) {
recv_bytes += size
}
}
probe tcp.disconnect {
log("tcp disconnect")
}
probe timer.ms(2000) {
print_report()
}
|