<<第5回:ネットワークの構成を把握しよう【論理構成図・物理構成図・ネットワークインタフェース層・インターネット層・トランスポート層・アプリケーション層・TCP/IP・エンドツーエンド通信】
この記事のポイント
- トランスポート層の役割は、適切なアプリケーションにデータを振り分けること
- アプリケーション層の役割は、アプリケーションで扱うデータのフォーマットや処理手順などを決めること
アプリケーションを動かすための準備をする階層
トランスポート層とアプリケーション層
トランスポート層
私たちは当たり前のようにPCでネットワークを介した複数のアプリケーションを使っていますが、その裏ではトランスポート層が活躍しています。トランスポート層の役割は、データを適切なアプリケーションに振り分けることです。
最下層からトランスポート層までが正しく機能すると、送信元と宛先のアプリケーション間でデータの送受信ができるようになります。
TCP/IPトランスポート層に含まれるプロトコルはTCPとUDPです。例えば、TCPを利用すると、もし何らかの理由でデータが失われてしまっても、そのことを検出してデータの再送を行ってくれます。TCPにはエンドツーエンドの信頼性を確保してくれる機能もあるのです。他にも、データの分割や組み立てなども行います。
アプリケーション層
アプリケーション層の役割は、アプリケーションの機能を実行するためのデータのフォーマットや処理手順などを決めることです。単なる「0」「1」ではなく、文字や画像など人間が認識できるようにデータを表現します。基本的に人間がアプリケーションを扱うからです。
アプリケーション層に含まれるプロトコルは、HTTP、SMTP、POP3、DHCP、DNSなどなど多数あります。HTTPはお馴染みの「Google Chromel」「Microsoft Edge/Internet Explorer」などWebブラウザで利用しています。また、SMTP、POP3は「Outlook.com」「Thunderbird」など電子メールソフトで利用しています。ただ、アプリケーション層に含まれているプロトコルだからといって、必ずアプリケーションそのもので利用するためのものというわけではありません。DHCP やDNS はアプリケーションの通信を行うための準備のためのプロトコルです。
データを送受信するときのルール
次の項目のポイント
- 各プロトコルの処理を行うための制御情報をヘッダと呼ぶ
- データにヘッダを付加することをカプセル化と呼ぶ
- 付加されているヘッダを見てプロトコルの処理を行い、ヘッダを外して別のプロトコルに処理を引き渡すことを逆カプセル化と呼ぶ
- データの送信側はTCP/IPの階層を上から下にたどって各プロトコルのヘッダを付加する
カプセル化とは
プロトコルの制御情報「ヘッダ」をつける
通信の主体であるアプリケーションのデータを送受信できるようにするためには、複数のプロトコルを組み合わせる必要があります。TCP/IPでは、4つの階層のプロトコルを組み合わせます。
各プロトコルには、それぞれの機能を実現するための制御情報(ヘッダ)が必要です。例えば、データを転送するためのプロトコルであれば、ヘッダには宛先や送信元のアドレスが指定されます。各プロトコルは、データを送信するときにヘッダを付加します。ヘッダを付加することをカブセル化と呼びます。ヘッダでデータを包み込むようなイメージです。
そして、プロトコルがデータを受け取るとそれぞれのプロトコルのヘッダにもとづいた適切な処理を行い、ヘッダを外してさらに別のプロトコルに処理を引き渡します。このような動作を逆カプセル化または非カプセル化と呼びます。
物理的な信号に変換される
クライアントPCのWebブラウザからWebサーバアプリケーションへのデータの送信と転送、そして受信の様子を考えていきます。Webブラウザのデータは、まず、HTTPヘッダでカプセル化されてTCPへ引き渡されます。そして、TCPヘッダが付加され、さらにIPヘッダが付加されます。最後にイーサネットヘッダとFCS (Frame Check Sequence)が付加されて、ネットワーク上へ送信するデータの全体が出来上がります。FCSはエラーチェックのための情報です。TCP/IPの上位の階層のプロトコルから下位の階層のプロトコルのヘッダがどんどんカプセル化されて、ネットワーク上に送り出されるデータには、いろんなプロトコルのヘッダが付加されています。
そして、利用しているイーサネットの規格に応じた物理的な信号に変換して、伝送媒体へと送り出していきます。
データを受信・転送するときのルール
次の項目のポイント
- ネットワーク機器は物理的な信号を「0」「1」に変換して、それぞれの動作のためのヘッダを参照してデータを転送する
- データの受信側はTCP/IPの階層を下から上にたどってヘッダを参照してプロトコルの処理を行う
TCP/IPを利用した通信
「0」と「1」のデータに戻して転送する
伝送媒体へ送り出された物理的な信号は、宛先のWebサーバまでのさまざまなネットワーク機器によって転送されます。ネットワーク機器は、受信した物理的な信号をいったん「0」と「1」のデータに戻します。そして、それぞれのネットワーク機器の動作に応じたヘッダを参照してデータの転送を行っていきます。
各ネットワーク機器のデータの転送のしくみは、後であらためて詳しく解説します。
ヘッダで宛先を確認して受信する
Webサーバアプリケーションが動作しているWeb サーバまで物理的な信号が送り届けられてくると、「0」と「1」のデータに変換します。そして、イーサネットヘッダを参照して自分宛てのデータであることを確認します。また、FCSによってデータにエラーがないかを確認します。自分宛てのデータであることがわかったら、イーサネットヘッダとFCSを外して、IPヘデータの処理を引き渡します。IPでは、IPヘッダを参照して自分宛てのデータであることを確認します。自分宛てのデータであれば、IPヘッダを外してTCPへデータの処理を引き渡します。次にTCPはTCPヘッダを参照して、どのアプリケーションのデータであるかを確認します。TCPはTCPヘッダを外してWebサーバアプリケーションヘデータの処理を引き渡します。こうしてWebサーバアプリケーションまでデータが届けられHTTPヘッダやそのあとのデータの部分の処理を行います。
送信側と受信側は必ず決まっているわけではありません。このあとは、Webサーバアプリケーションがデータの送信側となり、Webブラウザがデータの受信側になります。通信は原則として双方向で行われるということをあらためて意識してください。
>>第7回:データの呼び方にはいろいろある【HTTPメッセージ・TCPセグメント・IPパケット・ルーティング・IPアドレス・ドットつき10進数表記】