全2071文字
PR

 TCP/IP(Transmission Control Protocol/Internet Protocol)は、インターネットや企業ネットワークで、事実上の標準技術として広く利用されている通信プロトコル群だ。インターネット・プロトコル・スイートなどとも呼ばれる。インターネットの原型となった米国の実験ネットワーク「ARPANET」のプロジェクトで開発された。

 様々なプロトコルで構成するが、その中でも中心的な役割を担うのが「TCP」と「IP」というプロトコルであることから、TCP/IPと呼ばれるようになった。

機能別に4つの階層で構成

 通信プロトコルは機能ごとに階層に分けられ、各層に属するプロトコルは他の層から独立している。プロトコルを各層に分けるメリットは、ある層のプロトコルに変更があっても、他の層に影響が及ばないことだ。

 例えば、新たなプロトコルを開発したり既存のプロトコルを改良したりしたとき、他の層に影響を与えずに差し替えや追加ができる。

 国際標準化機構(ISO:International Organization for Standardization)などが定めた「OSI参照モデル」が7層なのに対して、TCP/IPの階層モデル(TCP/IPモデル)は4層で成り立っている。TCP/IPモデルの一番下に位置する「リンク層」の役割は、同じネットワークにある機器間でデータをやりとりできるようにすることだ。イーサネットなどのプロトコルがこの階層に属している。

OSI参照モデルとTCP/IPモデルの比較
OSI参照モデルとTCP/IPモデルの比較
[画像のクリックで拡大表示]

 インターネットは、多数のネットワークがつながることで成り立っている。TCP/IPモデルの下から2番目に位置する「インターネット層」は、こうしたネットワークの相互接続を実現するための階層だ。異なるネットワーク間での通信を可能にするIPや、ネットワークの動作状態を診断するためのICMPといったプロトコルが属している。

 インターネット層のIPを使えば、複数のネットワークを経由して別のネットワークにある機器にデータを送れる。ただし、データを確実に送れるとは限らない。一部のデータが途中で失われたり、データの届く順番が入れ替わったりすることがあるからだ。信頼性が求められるアプリケーションでは、データが正しく届くように制御する必要がある。

 逆に信頼性よりも効率性を重視するアプリケーションでは、そうした制御は不要だ。また、受信側では複数のアプリケーションが動作しているので、どのアプリケーションにデータを渡すのかも制御しなければならない。

 このような制御の役割を担うのが、インターネット層の1つ上の「トランスポート層」だ。代表的なプロトコルとして、信頼性を重視する通信で使われるTCPと、効率性を重視する通信で使われるUDP(User Datagram Protocol)がある。

 TCP/IPモデルの一番上に位置する「アプリケーション層」は、アプリケーションがどんな手順でデータをやりとりするのかを定める階層だ。Webアクセスに使われるHTTP(HyperText Transfer Protocol)や名前解決に使われるDNS(Domain Name System)、メールの転送に使われるSMTP(Simple Mail Transfer Protocol)といったプロトコルがこの階層に属している。