ハーフオープンとは、通信する2つのホスト間で状態が同期していないTCP接続を指し、これは片側のクラッシュが原因である可能性があります。確立中の接続は、初期接続とも呼ばれます。同期の欠如は、 悪意のある意図によるものである可能性もあります。
TCP接続は、そのTCP接続の一方の端のホストがクラッシュした場合、または他の端に通知せずにソケットを削除した場合に、半開状態と呼ばれます。 [ 1 ] 残りの端がアイドル状態の場合、接続は無期限に半開状態のままになる可能性があります。
半開接続を引き起こすもう一つの状況は、ステートフルファイアウォールが長時間アイドル状態にある接続をタイムアウトさせた場合です。この場合、ファイアウォールは内部状態をクリアし、接続のどちらかの側からパケットが送信されると、ファイアウォールはそのパケットを破棄します。その結果、接続の両側の接続状態が矛盾することになり、半開接続が発生することがよくあります。
「半開接続」という用語は、初期段階の接続、つまり確立過程にあるTCP接続を説明するためにも使用できます。
TCPは接続を開くための3つの状態システムを採用しています。まず、発信元エンドポイント(A)が宛先(B)にSYNパケットを送信します。Aはこの時点で初期状態(具体的にはSYN_SENT)となり、応答を待ちます。Bはカーネル情報を更新してAからの着信接続を示し、チャネルを開く要求( SYN/ACKパケット)を返信します。
この時点で、Bもまた胚発生段階(具体的にはSYN_RCVD)にある。なお、Bはこの状態にBの制御外にある別の機械によって置かれたものであることに注意されたい。
通常の状況下では(意図的な障害発生時のサービス拒否攻撃を参照)、AはBからSYN/ACKを受信し、テーブルを更新し(テーブルにはAが送受信するのに十分な情報が含まれる)、Bに最終的なACKを返信します。
Bがこの最終ACKを受信すると、双方向通信に必要な情報が揃い、接続が完全に確立されます。これで両方のエンドポイントは確立状態になります。