プロトコル
プロトコル
プロトコル (英:protocol) とは、通信を成功させるために、双方が見たすべき規定です。インターネットにはさまざまプロトコルが存在し、通信の安定を確保しています。
プロトコル (英:protocol) とは、通信を成功させるために、双方が見たすべき規定です。インターネットにはさまざまプロトコルが存在し、通信の安定を確保しています。
インターネットでは、通信を階層化し、それぞれの階層でプロトコルを規定しています。
例えば、TCP/IPモデルでは、まずは通信を、アプリケーション層・トランスポート層・インターネット層・物理層、の4つに階層化して考えます。
そして、それぞれの階層について、プロトコルが定義されています。
プロトコルが階層化されている設計を、プロトコル・スタック(英:protocol stack)と呼びます。
規定されたプロトコルにもとづいて、ソフトウェアが実装され、最終的に私たちへ提供されています。
ネットワークの階層化を理解するために、私たち人間の会話も、階層化してみましょう。
ここでは、会話の成立を、通信の成立と同じように考えています。
まずは、会話を成立させるためには、相手に声を届けなければなりません。
声は、音という空気の振動ですから、物理層に当たります。誰かが喉を震わせて、音を発生させ、別の誰かが耳の鼓膜で音を聞き取ります。
声が届くだけでは、まだ不十分です。私たちは会話する前に、会話する相手を判断しています。
声を出すのが物理層の役割なら、声の相手を判断するのはインターネット層の役割です。
いきなり見知らぬ他人に話しかけられたら、たとえ声が聞き取れても (物理層は問題なくとも) 、相手の判断ができずに戸惑ってしまいます (インターネット層に問題がある) 。私たちは相手の顔を見て、会話すべき相手なのかどうか、判断しています。
声が聞き取れて、会話すべき相手が正しければ、それで必ず会話が成立するでしょうか。まだ、会話が成立するとはいえません。
なぜなら、相手がどのような言語を用いるのか、明確にしなければいけないからです。
例えば、会話の途中で、日本語から外国語に、相手が言語を変化させた場合、理解できなくなる場合があります。
会話で用いられる言語が一貫しているか、確認するのが、トランスポート層の役割です。
あなたの友人 (インターネット層には問題がない) が、会話のはじめは日本語で、途中から外国語に変化した場合、トランスポート層は異常を検知します。
最後に、会話の内容がふさわしいかどうか、判断する必要があります。
例えば、あなたが「おはよう」と声を出し (物理層) 、家族に向かって (インターネット層) 、日本語で (トランスポート層) 、会話しようとします。
そうしたら、相手の返事が 「こんばんは」でした。
この場合、会話の内容が、かみ合っていません。
会話の内容に整合性があるか確認するのが、アプリケーション層の役割になります。
私たちが当たり前にしている「会話」にも、声を出す・相手を判断する・言語を選ぶ・会話の内容を整える、といういくつものプロトコルがあり、成立しています。
TCP/IPモデルを例にして、プロトコルを整理してみましょう。
TCP/IPでは、まずは通信を、アプリケーション層・トランスポート層・インターネット層・物理層、の4つに階層化して考えます。
そして、それぞれの階層について、プロトコルが定義されています。
アプリケーション層のプロトコルには、HTTP (Hyper Text transfer Protocol) が規定されています。
このHTTPの規定にもとづいて、インターネットの情報を閲覧できるように実装したソフトウェアを、ブラウザと呼んでいます。
トランスポート層のプロトコルには、TCP (Transmission Control Protcol) が規定されています。
このTCPの規定にもとづいて、データはパケットに分割されます。パケットを整理するために、ポート番号も設計されています。
トランスポート層は、データの同一性に注目します。
インターネット層のプロトコルには、IP (Internet Protcol) が規定されています。
いわゆるIPアドレスは、インターネット層における規定になります。
インターネット層はどのコンピューターと通信しているのか、通信相手に注目します。
物理層のプロトコルには、イーサネットがあります。
質問と回答を書きこむ
質問と回答