目次
クライアント ホストがダウンしており、再起動されていません。
TCP キープアライブ TCP キープアライブ メカニズム
TCP キープアライブ メカニズムを SO_KEEPALIVE
有効にするには、ソケット インターフェイスを介して設定する必要があります。
期間を定義します。この期間 (キープアライブ時間 7200 秒、2 時間) 内に接続関連のアクティビティがない場合は、TCP キープアライブ メカニズムを開始し、1 つおきの期間 (75 秒) ごとにプローブ メッセージの送信を開始します。いくつかの連続した検出パケットに対して応答が受信されない場合は、TCP 接続が切断されたと見なされます。
ホストのクラッシュ
TCP キープアライブが有効になっていない場合、クライアントはダウンしており、サーバーはクライアントのステータスを認識できません。サーバーの TCP 接続は、クライアントが再起動されるまで常に ESTABLISHED 接続状態になります。
TCP キープアライブ メカニズムが使用されず、双方がデータを送信しない場合、一方の TCP 接続は ESTABLISHED 状態になります。これは、他方の接続がまだ正常であることを意味するものではありません。
プロセスクラッシュ
TCP 接続情報はカーネルによって維持されます。サーバー プロセスがクラッシュすると、カーネルはプロセスのすべての TCP 接続リソースを再利用する必要があります。カーネルは最初の waving FIN メッセージを送信し、後続の waving プロセスもカーネル内で完了します。プロセスに参加する必要はありません。
したがって、サーバー プロセスが終了した後も、クライアントとの TCP 4 方向ウェーブ プロセスを正常に完了できます。
データ転送のシナリオ
クライアント ホストがダウンしてもすぐに再起動する
一方が再起動して前の TCP 接続メッセージを受信している限り、RST メッセージに応答して接続を切断します。
クライアント ホストがダウンしており、再起動されていません。
サーバーの時間外の再送信回数が特定のしきい値に達すると、カーネルは TCP に問題があると判断し、ソケット インターフェイスを介した TCP 接続に問題があることをアプリケーション プログラムに伝えます。サーバー上の接続が切断されます。
TCP 接続サーバーのダウンタイムとプロセス終了の概要
ネットワーク ケーブルを取り外した後、元の TCP 接続はまだ存在しますか?
ネットワーク ケーブルを取り外しても、TCP 接続のステータスには影響しません。ネットワーク ケーブルを取り外した後に双方が行ったアクションによって異なります。
ネットワークケーブルを抜くとデータ通信が始まります
サーバーからクライアントに送信されたデータ メッセージは応答を受信せず、サーバーはタイムアウト再送信メカニズムをトリガーして、応答を受信していないデータ メッセージを再送信します。
サーバーのタイムアウト再送信プロセス中にネットワーク ケーブルが再び接続された場合、クライアントは ACK 応答メッセージを返します。
再度接続されていない場合は、デフォルトで 15 回の再送信後に切断されます。
ネットワークケーブルを抜くとデータ送信ができなくなる
TCP キープアライブ メカニズムが有効になっていない場合 、クライアントがネットワーク ケーブルを取り外し、双方がデータを送信しなくても、クライアントとサーバー間の TCP 接続は常に存在します。
また、TCP キープアライブ メカニズムがオンになっている場合、クライアントがネットワーク ケーブルを取り外した後、双方がデータを送信しなくても、一定時間が経過すると、TCP は検出メッセージを送信します。
ピアが正常に動作している場合。TCP キープアライブ検出メッセージはピアに送信され、TCP キープアライブ時間がリセットされ、次の TCP キープアライブ時間の到着を待ちます。
ピアホストがダウンし、検出メッセージが到達できない場合、TCP は TCP の停止を報告します。
ネットワーク ケーブルの概要を取り出します。