TCPのコネクション解放に関するネットワークスペシャリスト試験午後Ⅱ形式問題
TCPのコネクション解放(FIN、ACK、TIME_WAIT、CLOSE_WAITなどの状態遷移)に関する、ネットワークスペシャリスト試験午後Ⅱ風の長文シナリオ+設問を10問用意します。 問題文は**午後Ⅱ形式(シナリオ→設問→解答→解説)**にしています。 --- TCPコネクション解放 午後Ⅱ形式問題集(10問) --- 問題1 以下は、Webサーバ(192.168.1.10)とクライアント(192.168.1.20)の間で行われたTCPセッション解放時のパケットキャプチャの一部である。 時系列は簡略化されている。 1. クライアント → サーバ : FIN, ACK 2. サーバ → クライアント : ACK 3. サーバ → クライアント : FIN, ACK 4. クライアント → サーバ : ACK 設問 (1) この通信終了の手順は、TCPの4ウェイハンドシェイクにおけるどのような流れか。 (2) 上記の状態遷移における、サーバ側がFINを送信する直前の状態は何か。 解答例 (1) 正常なTCPコネクションの4ウェイハンドシェイクによる終了手順。 (2) CLOSE_WAIT 状態。 解説 クライアントからFINが送られると、サーバはACKを返してCLOSE_WAIT状態に入り、アプリケーションが終了処理を行った後にFINを送る。その後、クライアントはACKを返しTIME_WAIT状態に入る。 --- 問題2 以下のキャプチャでは、クライアントからのFINに対しサーバがACKのみを返し、その後FINを送るまで約30秒間の遅延があった。 設問 (1) サーバがFINを送るまでの遅延の原因として考えられるアプリケーション側の要因は何か。 (2) この遅延中のサーバのTCP状態は何か。 解答例 (1) アプリケーションプロセスが終了処理(ファイル書き込みやセッション後処理)を行っている。 (2) CLOSE_WAIT。 解説 CLOSE_WAITは、受信側アプリケーションがまだ終了処理を行っている状態。TCPレベルでは接続を半分閉じた状態になる。 --- 問題3 サーバ側から先にFINを送った場合、クライアントがACKを返すまでの状態は何と呼ばれるか。 解答例 FIN_WAIT_1。 解説 FIN送信直後はFIN_WAIT_1状態。ACKを受け取...