IP(Internel Protocol) は、TCP、UDP、ICMP に対して、 パケット配送の機能を提供する下位のプロトコルです。
![]() |
![]() |
サーバ | クライアント | |||
関 数 | ステータス | ステータス | 関 数 | |
CLOSED | CLOSED | |||
socket()/bind()/listen() → | ||||
LISTEN | ||||
← socket()/connect() | ||||
SYN_SENT | ||||
SYN_RECV | ||||
ESTABLISHED | ESTABLISHED | |||
accept() → | ||||
: | : | |||
← read()/write() | ||||
read()/write() → | ||||
: | : | |||
← close() | ||||
CLOSE_WAIT | FIN_WAIT_1 | |||
(CLOSING) | ||||
close() → | LAST_ACK | FIN_WAIT_2 | ||
TIME_WAIT | ||||
CLOSED | CLOSED |
ソケットのクローズは、サーバ、クライアントどちらからでも可能です。
通常クライアントが先にクローズしますが、
サーバが先にクローズした場合は、CLOSE_WAIT/FIN_WAIT_2
のステータスは、上記の図とは逆になります。
状態値 | 説 明 | 注 |
---|---|---|
CLOSED | クローズ中です。ソケットは未使用です | |
LISTEN | 着信する接続を待っている状態です | |
SYN_SENT | 接続を確立中です | *1 |
SYN_RECV | 接続の最初の同期をとっています | *2 |
ESTABLISHED | 接続が確立しました | |
CLOSE_WAIT | 遠隔でシャットダウンし、 自分側のソケットがクローズするのを待っている状態です | *3 |
FIN_WAIT_1 | ソケットをクローズします。接続をシャットダウンします | *1 |
CLOSING | ソケットをクローズし、遠隔シャットダウンします。 その後、肯定応答をまちます | *1 |
LAST_ACK | 遠隔シャットダウンし、クローズします。 その後、肯定応答をまちます | *1 |
FIN_WAIT_2 | ソケットをクローズし、遠隔シャットダウンをまちます | *1 |
TIME_WAIT | クローズ後、遠隔シャットダウン再送信を待っています | *4 |
*1 | 通常この状態にあるのは短時間で見ることはできません |
---|---|
*2 | 通常この状態にあるのは短時間で見ることはできませんが、 SYN flood 攻撃されたとき現れます。 |
*3 | 通常この状態にあるのは短時間で見ることはできません。 詳細は、CLOSE_WAIT とはを参照してください。 |
*4 | この状態のセッションが多数ある場合は、
tcp_time_wait_interval をチューニングする必要があります。 詳細は、TIME_WAIT とはを参照してください。 |
![]() |
![]() |
![]() |
![]() |