TCPスリーウェイハンドシェイクとフォーウェイティアダウンのデモ
TCPの接続確立と切断の完全なプロセスを学ぶために、スリーウェイハンドシェイクとフォーウェイティアダウンのプロセスを視覚化
クライアント
状態:
CLOSED
サーバー
状態:
CLOSED
ネットワーク
TCP接続状態の説明
ハンドシェイク状態
- LISTEN: サーバーが接続待ち
- SYN_SENT: クライアントがSYNを送信
- SYN_RCVD: サーバーがSYNを受信しSYN+ACKを送信
- ESTABLISHED: 接続確立
ティアダウン状態
- FIN_WAIT_1: クライアントがFINを送信
- CLOSE_WAIT: サーバーがFINを受信
- FIN_WAIT_2: クライアントがサーバーのFINを待機
- LAST_ACK: サーバーが最後のACKを待機
- TIME_WAIT: クライアントがタイムアウトを待機
- CLOSED: 接続終了
ハーフオープン接続状態
ハーフオープン接続は、TCP接続確立中の中間状態を指し、主にSYN_SENTとSYN_RCVD状態が含まれます。これらの状態の接続は完全に確立されておらず、ネットワーク攻撃の対象となりやすい状態です。
一般的なハーフオープン接続の問題
SYN Flood
SYNフラッド攻撃:攻撃者が多数のSYNパケットを送信してハンドシェイクを完了せず、サーバーリソースを枯渇させる
Server Not Responding
サーバー無応答:サーバーがSYNを受信後にSYN+ACKを返信せず、クライアントがSYN_SENT状態のまま
Client Not Responding
クライアント無応答:サーバーがSYN+ACKを送信後にACKを受信せず、サーバーがSYN_RCVD状態のまま
Network Issues
ネットワークの問題:ネットワークの遅延やパケットロスによりハンドシェイクプロセスが中断し、接続がハーフオープン状態のまま
