TCP
TCP は、コンピューター間で信頼性の高いデータのフローを実現しますが、その実装はきわめて複雑です。TCP は、パケットの順序とデータの再構築、エラー検出と復旧、輻輳制御とパフォーマンス、タイムアウト、再転送など、他にもたくさんのことを管理します。ただし、アプリケーションが確認するのはポート間の双方向接続のみで、送受信されるデータは正しい順序で転送されることを前提にできます。
TCP自体を実装するのは大変だけど、それを利用するアプリケーション層はその複雑さの影響を受けることなく恩恵だけを受けられる。ステキ。
https://gyazo.com/71be8696ac7ce619df54c6a39ad2d2ee
Transmission Control Protocol
トランスポート層で信頼性のある通信を実現してくれるやつ。
トランスポート層で信頼性を保証するための通信コスト(時間とか計算リソースとかネットワークリソースとか)を払いたくないときはUDPを使うといい。