/proc/net/tcp の接続状態定数とはどういう意味ですか?

/proc/net/tcp の接続状態定数とはどういう意味ですか?

/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! */
};

現在の値は次のとおりです。

  1. 確立された;
  2. 同期が送信されました。
  3. SYNが受信されました。
  4. ピンwait1;
  5. ピンwait2;
  6. 時間の待ち時間;
  7. 閉鎖
  8. 詳しくお待ちください。
  9. 最後の確認;
  10. 聞く;
  11. 閉鎖
  12. 新しく受け取ったSYN。

ほとんどは次の状態に対応します。TCP/IP ステートマシン

関連情報