6.2.7 終了手続き

開設の手続きに対して終了の手続きも必要です。 終了手続きは2つのパケット交換によってなされるために、2ウェイハンドシェーク と呼ばれています。但し、これはあくまでも一つの通信方向に関しての話で、 コネクション自体は正式には双方で終了手続きが必要です。例えば、クライアント からサーバに接続していて、サーバから通信を終了したい場合には、実際に は以下のようなパケット交換を行います。

クライアント側 方向 サーバ側
  FIN,ACK
ACK  
FIN,ACK  
  ACK

但し、FIN に伴う ACK はそれまでの通信に対するACKであるのに注意して下さい。 つまり、通常のTCP のコネクションでは、最初のSYNパケット以降は全てのパケットに ACKがつくわけです。

実際、Webサーバにアクセスした場合のダンプが以下の図です。 通常、Webでのアクセスは、データ通信が終了した時点で、サーバから 接続が切られるようになっています。

\epsfile{file=tcp-fin-http}

これを見ても分かるとおり、クライアントが通信の終了を宣言しても、サーバは まだ送るべきデータが残っているかもしれないので、それぞれの側から送信終了を 切るようになっている訳です。



Noriyo Kanayama