TCP/IPの階層

TCP/IPは、幅広く利用されていて現在では事実上の標準として利用されています。TCP/IPもOSI参照モデルと同様にネットワーク上の通信の仕組みを階層で考えています。ただ、OSI参照モデルよりもシンプルに以下の4階層としています。

  • アプリケーション層
  • トランスポート層
  • インターネット層
  • ネットワークインタフェース層
さらに階層を細分化して解説している例もあります。

ネットワークインタフェース層

TCP/IPのネットワークインタフェース層は、OSI参照モデルの物理層とデータリンク層に相当します。そのため、役割は次のOSI参照モデルの物理層とデータリンク層を合わせたものです。

  • データを物理的な信号に変換して伝える(OSI参照モデルの物理層)
  • 同一ネットワーク内のデータの転送を行う(OSI参照モデルのデータリンク層)

ネットワークインタフェース層の具体的なプロトコルとして、イーサネットや無線LAN(IEEE802.11)、PPPなどが挙げられます。TCP/IPを利用する上で、ネットワークインタフェース層のプロトコルを特に限定していません。ネットワークインタフェース層には、どんなプロトコルを使っていても大丈夫です。たとえば、ネットワークインタフェース層のプロトコルとして10Gビットイーサネットを利用しているサーバと無線LANを利用しているスマートフォンとの間でTCP/IPの通信が可能です。

以下の図は、ネットワークインタフェース層のプロトコルとしてイーサネットを利用している場合の例です。

図 TCP/IP ネットワークインタフェース層の役割

インターネット層

TCP/IPのインターネット層は、OSI参照モデルのネットワーク層に相当します。その役割もOSI参照モデルのネットワーク層と同じで、エンドツーエンド通信を実現します。TCP/IPで通信するPCやサーバ、ルータなどの機器をホストと呼びます。送信元ホストから別のネットワーク上の宛先ホストまでのデータを転送するのがエンドツーエンド通信です。

インターネット層のエンドツーエンドの通信を行うためには、ネットワークインタフェース層の同一ネットワーク内のデータの転送ができなければいけません。TCP/IPでもある階層が機能する前提は、その下の階層が正しく機能していることです。

インターネット層に含まれるプロトコルは、IP、ICMP、ARPなどです。なお、エンドツーエンドの通信を行うのはIPで、ICMPやARPはIPを補佐するプロトコルです。

IPにはIPv4とIPv6があります。IPv4でもIPv6でもエンドツーエンドの通信を実現するという基本的な役割は同じです。
図 TCP/IP インターネット層の役割

トランスポート層

TCP/IPのトランスポート層は、OSI参照モデルの主にトランスポート層とセッション層に相当します。OSI参照モデルのトランスポート層とセッション層の役割は以下の通りです。

  • エンドツーエンド通信の信頼性を確保する(OSI参照モデルのトランスポート層)
  • アプリケーションへデータを振り分ける(OSI参照モデルのセッション層)

TCP/IPトランスポート層に含まれるプロトコルはTCPとUDPです。TCP/IPのトランスポート層のメインの役割はOSI参照モデルのセッション層の役割と同じです。1つのホスト上には複数のアプリケーションが動作していることがあります。トランスポート層のTCPとUDPの役割は、ホストに届いたデータを適切なアプリケーションへ振り分けることです。そして、TCPはさらにエンドツーエンドの信頼性を確保する機能も備えています。つまり、TCPはOSI参照モデルのトランスポート層の機能も同時に利用できることになります。

図 TCP/IP トランスポート層


アプリケーション層

TCP/IPのアプリケーション層は、OSI参照モデルのプレゼンテーション層とアプリケーション層に相当します。OSI参照モデルのプレゼンテーション層とアプリケーション層について振り返ると、次の通りです。

  • データの表現形式を一致させる(OSI参照モデルのプレゼンテーション層)
  • アプリケーション固有の機能を実現する(OSI参照モデルのアプリケーション層)

ユーザが直接触れるWebブラウザなどのアプリケーションの機能を実現するために、さまざまなアプリケーション層のプロトコルがあります。アプリケーション同士でデータをやり取りする際の手順やフォーマット、そして、ユーザが理解できるようにデータの表現形式を決めます。

図 TCP/IP アプリケーション層の役割

アプリケーション層に含まれるプロトコルは、HTTP、SMTP/POP3、DHCP、DNSなどなど多数あります。HTTPはお馴染みのInternet Explorer、Edge、ChromeなどWebブラウザで利用しています。また、SMTP/POP3はOutlook、Thunderbirdなど電子メールソフトで利用しています。ただ、アプリケーション層のプロトコルだからといって、必ずアプリケーションそのもので利用するためというわけではありません。DHCPやDNSはアプリケーションの通信を行ううえの準備のためのプロトコルです。

以下の図は、OSI参照モデルとTCP/IPの階層の対応関係と、各階層に含まれている主なプロトコルをまとめているものです。

図 TCP/IPの主なプロトコル

TCP/IPのプロトコルは、インターネット層から上の階層に含まれているプロトコルです。ネットワークインタフェース層はTCP/IPのプロトコルではありません。ネットワークインタフェース層は、ネットワークのインフラストラクチャを構成するためのプロトコルで、TCP/IPはどんなネットワークインフラストラクチャでも利用可能です。

インターネット層からアプリケーション層に含まれるTCP/IPのさまざまなプロトコルの仕様はRFC(Request For Comment)で定められています。RFCはIETFのWebサイトで誰でも見られます。

IETF Webサイト http://www.ietf.org/

OSI参照モデルとTCP/IPにおける階層の対応付けは厳密なものではありません。OSI参照モデルのアプリケーション層、プレゼンテーション層、セッション層の3つの層をTCP/IPのアプリケーション層として対応付けている解説が多くあります。ただ、この対応付けでは、OSI参照モデルの階層の役割とTCP/IPの実際のプロトコルの動作の仕組みで説明がつかない部分が出てきてしまいます。そこで、OSI参照モデルの階層の役割とTCP/IPの階層に含まれるプロトコルの仕組みを主眼にして階層の対応付けの解説をしています。
重要なことは、通信を行うためには、機能ごとに階層化された複数のプロトコルを組み合わせて利用しているということです。

関連記事