|
読み方 : ティー・シー・ピー フルスペル : Transmission Control Protocol
TCP/IP プロトコルにおいて、全二重で信頼性があり、フロー制御のあるセッション指向 (ストリーム型) の通信を行なうためのプロトコル。TCP/IP の中核ともいえるプロトコルです。OSI 参照モデルでは、トランスポート層の機能に相当します。ネットワークアプリケーションでは TCP の機能を使うことにより、ネットワークの物理的な構成やその特性なとに左右されることなく、常に確実な通信を行えることが保証されます。telnet や ftp、http など、非常に多くのアプリケーションで TCP が使われています。 TCP で提供される「信頼性のある通信」とは、通信路の一方から送ったバイトデータ列が、相手側へ正しく元の順番通りに届けられ、途中でデータの順番が入れ替わったり、データの欠落や改変 (誤り) が起こったりしない、ということを意味しています。TCP の下位層である IP 層では、2 つのノード間でのパケット送信機能は提供されていますが、そのデータが常に相手に正しく届くという保証はありません。ネットワークが混雑していれば途中でデータが消失したり、遅延によってデータの順番が入れ替わったりすることがあります。このような IP プロトコルの特性を考慮しつつ、信頼性のある通信機能を提供するのが TCP の役割です。具体的には、以下のような手法を使って信頼性を確保しています。 まず、データが相手に確実に届くことを保証するために、データを受け取った側では、必ず受信確認 (アクノレッジ) を返します。送信するデータには、あらかじめシーケンス番号という連続する番号を付けておき、受信確認としては、このシーケンス番号を返します。送信側では、返ってきたシーケンス番号を調べることにより、データがどこまで正しく相手に届いたかを認識できます。もし受信確認が返ってこなければ、どこか途中でパケットが消失したか、破棄された、もしくは相手が受信しそこねたものとして、再度データを送信します。何回か繰り返しても相手から受信確認が返ってこなければ、相手がダウンしているか、通信路が切断されたものとして、アプリケーションにはエラーを返します。 もし途中のネットワークが混んでいて遅延が大きくなっているとすると、この再送処理によって複数の同一パケットが受信側に届くことがありますが、その場合は、受信側ではすでに受信した分のデータ (これはシーケンス番号を調べればわかる) は破棄されます。 このほか TCP では、パケットを 1 つ送るたびに 1 つずつ受信確認パケットを送っていては効率が悪いので (いちいちパケットが往復しなければならないから)、複数の受信パケットに対してまとめて 1 つの受信確認で済ませるという方法も使っています。これにより、無駄なトラフィックが抑えられます。 以上のような受信確認や再送処理はすべて TCP 層の内部で行なわれ、アプリケーションからは隠蔽されています。そのため、アプリケーションでは、安心してデータを送受信できるが、その内部処理はかなり重いともいえます。そこで TCP/IP では、UDP というデータグラム指向の通信機能も用意されており、用途によって使い分けられています。
|
|
|
|
| |
| 索引 |
記号・数字,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
| |
|