/proc/net/tcpのパーサーを作成していますが、接続状態(4番目の列)のすべての可能な定数が何であるかを知りたいです。 0Aが聞くことを意味していることを知っていますが、Googleの結果は私に必要な残りの答えを提供しません。
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 3500007F:0035 00000000:0000 0A 00000000:00000000 00:00000000 00000000 101 0 21384 1 ffff987636718000 100 0 0 10 0
1: 0100007F:0277 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 78109 1 ffff98762c4dd000 100 0 0 10 0
2: 800AA8C0:B9CC 70FD1EC0:0016 06 00000000:00000000 03:000005EF 00000000 0 0 0 3 ffff987518bb7cf0
答え1
enum
状態内容は最初の項目に対応する。net/tcp_states.h
:
enum {
TCP_ESTABLISHED = 1,
TCP_SYN_SENT,
TCP_SYN_RECV,
TCP_FIN_WAIT1,
TCP_FIN_WAIT2,
TCP_TIME_WAIT,
TCP_CLOSE,
TCP_CLOSE_WAIT,
TCP_LAST_ACK,
TCP_LISTEN,
TCP_CLOSING, /* Now a valid state */
TCP_NEW_SYN_RECV,
TCP_MAX_STATES /* Leave at the end! */
};
現在の値は次のとおりです。
- 確立された;
- 同期が送信されました。
- SYNが受信されました。
- ピンwait1;
- ピンwait2;
- 時間の待ち時間;
- 閉鎖
- 詳しくお待ちください。
- 最後の確認;
- 聞く;
- 閉鎖
- 新しく受け取ったSYN。
ほとんどは次の状態に対応します。TCP/IP ステートマシン。