TERM GUIDE · NETWORK

TCP

「TCP」とは

TCP(Transmission Control Protocol)は、ネットワーク上でデータをできるだけ確実に相手へ届けるためのプロトコルです。
プロトコルとは、コンピュータ同士が通信するときの「決まりごと」のことです。

インターネットで使われているプロトコルの詰め合わせをTCP/IPといいます。
TCP/IPの通信では、役割ごとに4つの階層に分けて考えます。

  • アプリケーション層:Webやメールなど、それぞれのサービスで使う通信を決める層

  • トランスポート層:データをどのように相手へ受け渡すかを決める層

  • インターネット層:データをどのコンピュータまで届けるかを決める層

  • ネットワークインターフェース層:実際のネットワークを使ってデータを送受信する層

TCPは、このうちトランスポート層で使われるプロトコルです。

TCPは何をしているのか

インターネットでは、送ったデータ(パケット)が必ずそのまま相手に届くとは限りません。途中でデータの一部が失われたり、送った順番とは違う順番で届いたりすることがあります。

TCPは、そのような場合に備えて、次のような処理を行います。

  • データが相手に届いたかを確認します

  • 届かなかったデータがあれば、もう一度送ります

  • データが違う順番で届いた場合は、正しい順番に並べ直します

  • 相手が受け取れる量に合わせて、送るデータの量を調整します

このような仕組みによって、TCPは信頼性の高い通信を実現しています。

HTTP・TCP・IPの役割の違い

Webページを見るときには、HTTP、TCP、IPなど複数のプロトコルが協力して通信を行います。

HTTPは、アプリケーション層のプロトコルです。WebブラウザとWebサーバの間で、どのように要求や応答をやり取りするかを決めます。例えば、ブラウザが「このWebページを送ってください」と要求し、Webサーバがページのデータを返す、といったやり取りに使われます。

IPは、インターネット層のプロトコルです。宛先のIPアドレスをもとにして、複数のネットワークを越えてパケットを目的のコンピュータまで届ける役割を持っています。

大まかには、

HTTP → TCP → IP

という関係で通信していると考えることができます。

それぞれの役割を簡単にまとめると、

  • HTTP:「どのような内容をやり取りするか」

  • TCP:「データを正しい順序で確実に受け渡す」

  • IP:「どの宛先へデータを届けるか」

という違いがあります。

TCPとUDPの違い

TCPと同じトランスポート層には、UDP(User Datagram Protocol)というプロトコルもあります。

TCPは、データが届いたかを確認したり、届かなかったデータを再送したりします。一方、UDPは、このような処理を基本的には行いません。

TCPは、データをできるだけ正確に届けたい通信に向いています。一方、音声や動画のリアルタイム配信などでは、少しデータが欠けることよりも、通信が遅れることのほうが困る場合があります。そのような通信では、正確性は劣るけれどスピードの速いUDPが使われることがあります。

TCPは「届いたことを確認し、届かなければ再送し、順序も整えるプロトコル」です。
そして、HTTPはWebのやり取り、IPは宛先まで届ける役割だと区別すると、TCP/IPの階層の違いも理解しやすくなります。

EXAMPLE

例題

TCP · EXAMPLEオリジナル

次の文章の(ア)・(イ)に当てはまる語句の組合せとして、最も適切なものを選べ。 TCP/IPの階層モデルは、アプリケーション層、トランスポート層、インターネット層、ネットワークインターフェース層の四つに分けられる。 Webページの送受信に用いられる(ア)は、アプリケーション層のプロトコルである。また、ネットワークを越えてパケットを宛先まで届けるために用いられる(イ)は、インターネット層のプロトコルである。

  1. 0

    (ア)HTTP (イ)IP

  2. 1

    (ア)HTTP (イ)TCP

  3. 2

    (ア)TCP (イ)IP

  4. 3

    (ア)TCP (イ)UDP

解答・解説を確認

正解0.(ア)HTTP (イ)IP

解説

(ア)はHTTP、(イ)はIPである。HTTPはWebブラウザとWebサーバの間で要求と応答をやり取りするアプリケーション層のプロトコルである。IPは宛先IPアドレスに基づき、複数のネットワークを越えてパケットを届けるインターネット層の役割を担う。 HTTP/1.1やHTTP/2では、HTTPのデータをTCPが運ぶ。HTTP/3ではUDP上で動作するQUICを利用する。いずれの場合も、さらにIPがパケットを宛先へ転送する。このように各階層が役割を分担して通信を成立させている。

出典
オリジナル

PRACTICE

TCPの問題に挑戦