前回は、皆さんが普段利用されているネットワークについて、種類や構成している機器について説明しました。今回は、ネットワークで通信をするために必要なさまざまな「約束事」を紹介しましょう。
プロトコル
ネットワーク通信において、まず押さえておいていただきたいのが「プロトコル」です。日本語では、「手順」や「規約」と訳されます。例えば、自宅の固定電話で電話をかける場合、「受話器を持つ」「発信音を確認する」「相手の電話番号をダイヤルする」という動作をします。その後、相手が出たら「もしもしと言う」という一連の作業を行います(図1)。これは電話をかける時に決まって行われる手順です。つまり、電話をかける「プロトコル」と言えます。
ネットワークで通信を行う時も、通信が成立するために必要となるさまざまな手順があります。例えば、「どのように信号を送るか」「通信をするタイミングをどうやって決めるか」「どんな情報をデータに入れて送るか」などというこまごまとした手順を決めています(図2)。この手順を守ることで、データを送る機械と、データを受け取る機械の間で、正しく通信が行えるようになります。
しかし、1つのプロトコルで、通信すべての手順を定義するというのは、少々使い勝手が悪くなります。例えば、新しい機能を追加したいなと考えた時、手順の前後関係も考えて、プロトコルを刷新する必要があります。そこで、手順の変更が行いやすいように、通信を行う役割を分け、役割ごとに手順を定義するようにしています。つまり、1つの通信を行うために、複数の「プロトコル」が存在し、それらを組み合わせて、通信が成立しているのです。
マルチベンダー環境
プロトコルについて、もう1つ考えなければならないことがあります。それは、通信機器を製造する企業がたくさんあるということです。昔は、1つの企業が製造した機器だけでネットワークを構成していました。そして、A社の通信用プロトコル、B社の通信用プロトコルといった具合で、製造企業ごとに異なるプロトコルを持っていました。
この状況では、A社とB社の機器を組み合わせたネットワークを作りたいと思ってもうまくいきません。なぜなら、異なる言語で人が会話をしようと試みているようなものだからです。お互い相手の手順を理解できず、通信は成立しません。
しかし、現在のコンピュータネットワークではこれが実現できています。なぜでしょうか?
このような複数の企業の製品で構成されている環境を「マルチベンダー環境」と言います。企業ごとに使用するプロトコルが異なると、このマルチベンダー環境は構成できません。そのため、すべての企業で共通に扱える手順、つまり共通のプロトコルが必要になります。
この共通のプロトコルを持つことを「標準化」と言います。ネットワークの世界では、この通信をするための国際的な標準として「OSI(Open Systems Interconnection)」という体系を定めました。
OSI参照モデル
OSIでは、通信のために必要な機能を階層構造で分割したモデルを定義しています。このモデルを「OSI参照モデル」といいます(図3)。
このモデルは7つの階層で構成されていて、階層番号で下から順番にレイヤ1、レイヤ2などと呼ばれるか、各階層に定められている名前(物理層、データリンク層など)で呼ばれます。そして、その層ごとにどのような役割を受け持つかが決まっています。
例えば、一番下にあるレイヤ1は物理層と呼ばれ、ケーブルなどのコネクタの形状や、電気の流し方など、ハードウェアよりの手順を定めています。上の層に行くほど、ソフトウェアに近い手順を定めることになります。そのため、通信の世界では、このOSI参照モデルを基準とし、各層の役割に基づいて、プロトコルを定義しています。
ただし、通信を行うためには7つの階層すべての役割を満たす必要があるため、複数のプロトコルを集めて、1つの通信体系を成立させています。このプロトコルの集まりを「プロトコル群」もしくは「プロトコルスイート」と呼びます。皆さんがよく耳にされるTCP/IP通信も、複数のプロトコルから構成されており、このプロトコルの集まりを「TCP/IPプロトコルスイート」と呼びます。
カプセル化と非カプセル化
データを送受信する際の手順には、それぞれ必要な情報があります。例えば、正しい相手にデータを届けるには、相手を識別する情報が必要であったり、データを受け取ったことを相手に知らせたりするといった手順を処理できる情報が必要です。
では、こうした情報は、どのように伝えられているのでしょうか。 データを相手に送信する時にデータに情報を付与して送ることで、知らせています(図4)。
データは、デバイスのソフトウェアで作成されます。OSI参照モデルでいうと、ソフトウェア処理に近いのは上位の層、つまり、アプリケーション層になります。
データを送信する場合、データは、まずこのアプリケーション層に渡されます。そして、その層で必要な情報をデータの頭に付与します。その後、1つ下の階層に「プロトコル情報+データ」の形となったデータを渡します。このような処理を「カプセル化」といいます。これを各層で繰り返し、物理層で電気信号に変換後、ケーブルを介して相手の機器に信号が届きます。
次に、データを受信した時の処理について考えてみましょう。ケーブルを介して受信した信号を、物理層で1と0の数字の列に戻します。そして、1つ上の階層に渡します。各階層では、階層ごとにカプセル化した情報を外して、読み取ります。その後、1つ上位の層にデータを渡します。この処理を「非カプセル化」といいます。これが繰り返され、最終的にソフトウェアでそのデータが処理され、通信が成立します。
このように、ネットワークでは、通信するためのさまざまな「約束事」があり、それらに基づいて情報がやり取りされているのです。
第2回のまとめ
- 通信を行う規約をプロトコルという。
- プロトコルは、役割ごとに定義されており、複数のプロトコルで1つの通信体系を構成している。これをプロトコルスイートという。
- マルチベンダー環境を成立させるには、標準化が必要である。
- 標準化のモデルとして、7つの階層で構成されているOSI参照モデルがある。
- データを送信する時、「カプセル化」が行われ、受信する時「非カプセル化」の処理が行われる。
柏谷 知美
ネットワンシステムズ株式会社 ビジネス推進本部 第1応用技術部 ネットワークアカデミーチーム所属。
インストラクター歴13年。Cisco認定インストラクターとしてネットワーク系コースを実施してきただけでなく、現在はサーバ、ストレージ、運用管理、セキュリティなど広範囲の技術分野において、オリジナル教育コースや顧客向けのカスタマイズコースの企画・開発を行っている。