TCPコネクションの確立&切断は、3ウェイハンドシェイク(3つのパケットのやり取り)で行われます。なお、実際のデータ送信はコネクションが確立された後に行われます。
相手ホストの準備ができている場合、3ウェイハンドシェイクが行われてコネクションが確立されます。
(1)SYNパケット
最初に、フラグが「SYN」のパケットを送信します。
(2)SYN・ACKパケット
次に、相手ホストからフラグが「SYN・ACK」のパケットが返信されます。
(3)ACKパケット
最後に、フラグが「ACK」のパケットを送信します。
相手ホストの準備ができていない場合、RES・ACKパケットが返されてコネクション確立は失敗します。
(1)SYNパケット
最初に、フラグが「SYN」のパケットを送信します。
(2)RES・ACKパケット
相手ホストの準備ができていない場合、相手ホストからフラグが「RES・ACK」のパケットが返信されます。
コネクションの切断も3ウェイハンドシェイクで行われます。
(1)FINパケット
データ送信が終了すると、フラグが「FIN」のパケットを送信します。このパケットには送信データの最後の部分が含まれています。
(2)FIN・ACKパケット
その後、相手ホストのデータ送信が終了すると、相手ホストからフラグが「FIN・ACK」のパケットが返信されます。
(3)ACKパケット
最後に、フラグが「ACK」のパケットを送信します。