【てぃーしーぴー】
TCP とは?
最終更新:
💡 受信確認と再送で、順序のあるデータの流れを支える
アプリケーション間で、データを順序のあるバイト列としてやり取りする通信プロトコル。受信確認や再送で信頼性を提供するが、障害時には通信が失敗することもある。
📌 このページのポイント
TCPなら必ずデータが届くの?
ACKが返れば、相手の処理は終わったの?
ACKは相手のTCPがどこまで受信したかを示す確認応答だよ。一つずつ「届いた?」と質問する仕組みではないし、受信したアプリの処理完了も示さない。注文の受付完了などは、アプリ側の応答で確認する必要があるんだ。
UDPとはどう違うの?
接続するときの3ウェイハンドシェイクって?
通常の基本例では、開始側がSYNを送り、相手がSYNとACKを返し、開始側がACKを返すよ。双方のシーケンス番号を確認するためのやり取りなんだ。図はこの基本例で、再送や同時に接続を始める場合は省略しているよ。
送りすぎないための仕組みもある?
もっと詳しく知りたい人へ
一回送ったデータが、一回で受け取れるの?
TCPはバイト列を扱い、アプリが送った一回ごとのメッセージの区切りは保たないよ。複数回の送信がまとまったり、一回の送信が分かれたりするので、アプリ側で長さや区切りを決めて読み取るんだ。
TCPなら通信内容も暗号化される?
TCP自体は暗号化や相手の認証を提供しないよ。内容を守るには、TLSなど別の仕組みを組み合わせる。信頼性のある転送と、通信の機密性は区別しよう。
まとめ:ざっくりこれだけ覚えればOK!
「TCP」って出てきたら「受信確認と再送で、順序のあるデータの流れを支える通信ルール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Transmission Control Protocol」 = 伝送制御プロトコル
💬 Transmissionは「送信・伝送」、Controlは「制御」、Protocolは「取り決め・ルール」。送信を制御するルールという意味だよ