疑問解決(TCP/IP)

2009/6/4

TCP/IPの世界をのぞいてみましょう。

・概要
 TCP/IPは、いわずと知れたインターネットの根本を成すプロトコルです。
・状態
 TCPは状態を持っているため、ステートフルなプロトコルです。
 (UDPはステートレスです。)
 TCPの状態を下記に列挙します。
状態 解説
ESTABLISHED 通信が確立した、接続状態
SYN_SENT 通信を接続しようとしている状態
要求SYN(Synchronize) を送信して、
応答ACK(Acknowledgement)を受け取っていない
SYN_RECV
SYN_RECEIVED
接続要求を受信している状態
要求SYNを受信した直後
FIN_WAIT1 クローズ中で切断中の状態
FINを送信後ACKを待っている
ACKの前に相手からのFINを受け取るとCLOSINGに遷移
FIN_WAIT2 ローカル側はクローズされて、リモート側の切断を待っている状態
FINに対応したACKを受信し相手からのFINを待っている
TIME_WAIT クローズ後にリモートからの切断の再送を待っている状態
しばらく経ったあと、CLOSEDに遷移
CLOSED クローズ完了状態
通常は表示されません。
CLOSE_WAIT リモート側は既に切断していて、
ローカル側のクローズを待っている状態
相手からのFINを受信
LAST_ACK リモート側もローカル側も既に切断していて、
ACKを待っている状態
ACK受信後CLOSEDへ遷移
LISTEN 接続待ち状態
CLOSING リモート、ローカルとも切断されていますが、
全てのデータが送られていない。
UNKNOWN 不明
・状態遷移
 オープン時
クライアント
(アクティブ)
サーバ
(パッシブ)
CLOSED   CLOSED
    ポートオープン
    LISTEN
  → SYNの送信  
SYN_SENT   SYN_RECEIVED
  ← ACK/SYNの送信  
ESTABLISHED    
  → ACKの送信  
    ESTABLISHED

 クローズ時(通常)
クライアント
(アクティブ)
サーバ
(パッシブ)
ESTABLISHED   ESTABLISHED
  → FINの送信  
FIN_WAIT_1   CLOSE_WAIT
  ← ACKの送信  
FIN_WAIT_2    
  ← FINの送信  
TIME_WAIT   LAST_ACK
  → ACKの送信  
    CLOSED
・単語メモ
 
さらに情報が欲しい方は、Google検索で  
Google
・TOPへ戻る
 

 

メールはこちらに