Если вас не устраивает вывод состояния из внешнего наблюдения (отслеживание пакетов), вам придется обрабатывать код ядра: добавить несколько операторов журнала в код перехода, перекомпилировать ядро ..
/ usr / src / linux-source-2.6.32 / net / ipv4 # head -n 250 tcp.c |grep -n "^ [^ a-zA-Z0-9] * TCP_" |sed "s | ^. * (TCP_ [A-Z0-9 _] ). | \ 1 |"|пока читаешь S;do echo -e "\ n $ S:";grep -l $ S ./* |tr '\ n' '';сделанный ;echo
TCP_SYN_SENT: ./af_inet.c ./tcp.c ./tcp_input.c ./tcp_ipv4.c ./tcp_output.c
TCP_SYN_RECV: ./inet_connection_sock.g ./.c ./tcp.c ./tcp_input.c ./tcp_ipv4.c ./tcp_minisocks.c
TCP_ESTABLISHED: ./datagram.c ./raw.c ./tcp.c ./tcp_input.c./tcp_ipv4.c ./udp.c
TCP_FIN_WAIT1: ./tcp.c ./tcp_input.c
TCP_FIN_WAIT2: ./tcp.c ./tcp_input.c ./tcp_minisocks.c ./tcp_timer.c
TCP_CLOSING: ./tcp.c ./tcp_input.c
TCP_TIME_WAIT: ./inet_diag.c ./inet_timewait_sock.c ./tcp.c ./tcp.cput.c ./tcp_ipv4.c ./tcp_minisocks.c
TCP_CLOSE_WAIT: ./tcp.c ./tcp_input.c
TCP_LAST_ACK: ./tcp.c ./tcp_input.c
TCP_CLOSE: ./af_inet.c ./inet_connection_sock.c ./inet_hashtables.c ./raw.c ./tcp.c ./tcp_cong.c ./tcp_input.c ./tcp_ipv4.c ./tcp_output.c ./tcp_timer.c ./udp.c