TCPプロトコルスタック

TCPプロトコルは、コネクション指向で信頼性のある通信を保証する。TCPプロトコルは以下のような特徴を持つ。

  1. UDPはアプリケーションからもパケットを意識しなければなならいが、 TCPではアプリケーションからは通信データは単なる バイトストリームとして扱うことができる。 send,recv入出力インターフェイス部で吸収している。
  2. UDPでは、受信側が受け取ったパケットの順序は、 送信側のパケットの送出した順序であるとは限らないが、 TCPでは保証する。TCPプロトコル内部で正しい順に並びかえる。
  3. UDPはパケットロストが発生するが、TCPではパケットのロストは 発生しない。UDPプロトコルレベルでは送信側からは相手に パケットが届いたかどうかを確認する手段を持っていない。 しかし、TCPプロトコルではパケットを受信した場合、 それに対する応答パケットを送り返すメカニズムになっている。 これにより送信側では一定時間以上待っても応答パケットが 返信されて来ない場合、ネットワーク上の何処かでパケットが ロストしたと判断し、同じパケットの再送信を行う。
  4. TCPはプロトコルレベルでのフロー制御メカニズムを備えている。 受信側は(自マシンの能力に見合った)受信許容データ量(windowと呼ぶ) を送信側に通知し、送信側はその値を越えて一度に送信しないように 制御する。また、送信側が自主的に転送量を抑制するメカニズムも 実装されている。

下図は大雑把な流れを示す。

img99.gif

 

(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST
1