Index

プロトコル

初版: 2005-06-03

もし言葉がなかったら

人は人とコミュニケーションをとることによって生きています。コミュニケーションのない人生なんて考えられないでしょう。ではここで一つ難題を与えます。もし言葉がなかったら、私たちは一体どのようにコミュニケーションをとればよいのでしょうか。あなたとお母さんが一緒に居る場面を想像してください。あなたは「おはよう」と伝えたいのですが、言葉がないので別の手段で伝えなければなりません。これではどうしようにもならないので、「拍手を 1 回する」動作は「おはよう」という意味とすることを 2 人の間で決めました。同じように「いただきます」や「おやすみなさい」も動作で表現することに決めました。

動作 意味
拍手を 1 回する おはよう
両手のひらをを合わせる いただきます
手を振る おやすみなさい
表 1: 内容を伝える動作

これであなたはお母さんと上で決めた内容について、コミュニケーションをとることができるようになりました。コミュニケーションする内容を増やしたければ、お互いで動作とその意味の決め事を増やしていけばよいだけです。それでは場面を変えて、あなたとお母さんとお父さんがいる場面を想像してください。あなたは「おはよう」と伝えるために拍手を 1 回しました。でもこれはお母さんとお父さんのどちらに伝えるために拍手を 1 回したのでしょうか。コミュニケーションをとるためにはその内容だけでなく伝えたい相手を示さなければなりません。そこで伝えたい相手を示すために次のように 3 人の間で約束事を決めました。

動作 意味
特定の相手を見ながら「内容を伝える動作」をする 見ている相手に伝える
全員を見ながら「内容を伝える動作」をする 全員に伝える
表 2: 相手を伝える動作

これであなたは伝えたい相手にコミュニケーションをとることができるようになりました。このようにコミュニケーションをとるためには、お互いに「この動作は~という意味である」という約束事がないと成り立ちません。ではここで通常に戻って言葉を使えることにしましょう。あなたが「お父さん、おはよう」と言えば、お父さんは「おはよう」と解釈してくれます。これは、「お父さん」という発音は「父親」を意味し、「おはよう」という発音は「朝の挨拶」を意味するとお互いに理解しているからコミュニケーションがとれるのです。このように言葉もお互いの間で「この発音は~という意味である」と約束が決められているからこそ成り立つのです。

コンピュータの言葉

さていよいよ本題に入ります。ネットワーク上でコンピュータが通信するためには何が必要になるでしょうか。コンピュータが通信するということは、コンピュータ同士でコミュニケーションをとるということです。もうおわかりですね。人と同じようにコンピュータ同士で約束事を決める、つまりコンピュータ同士で通じる言葉を決めればよいのです。例えばコンピュータ名が 'Child'、'Mother' そして 'Father' の 3 台のコンピュータがあるとします。そして例としてコンピュータ同士の言葉を以下のように決めます。

言葉 意味
A_GetFile コンピュータ A に「ファイルをもらいます」と伝える
B_OK コンピュータ B に「了解です」と伝える
表 3: コンピュータの言葉

早速、実際にコンピュータ同士で言葉を交わしてみます。コンピュータ 'Child' は 'Mother' に「ファイルをもらいます」と伝えるため、'Mother_GetFile' と伝えます。この言葉は コンピュータ 'Mother' と 'Father' に伝わりますが、言葉の中の宛て先のコンピュータ名を見て、'Mother' はこの言葉を受け入れ、'Father' はこの言葉を無視します。これは人の場合でも同じです。子供とお母さんが話している内容はお父さんに聞こえますが、お父さんは自分に関係のない内容なので聞き流すような場合です。

コンピュータ同士の会話 1
図 1: コンピュータ同士の会話 1

言葉を受け入れた 'Mother' は受け答えの言葉を返します。'Child' に「了解」と伝えるため、'Child_OK' と伝えます。これも 'Child' と 'Father' に伝わりますが、'Child' は受け入れ 'Father' は無視します。

コンピュータ同士の会話 2
図 2: コンピュータ同士の会話 2

これらのコンピュータが交わした言葉は例として挙げた仮想の言葉ですが、実際のコンピュータ同士でもこのように会話が行われています。

プロトコル

前節で示したように実際のコンピュータ間の通信は行われるのですが、何度も述べるように、通信 (前節では会話) するためにはお互いのコンピュータの間で取り決められた約束事 (前節では言葉) を使っている必要があります。この約束事をプロトコル (Protocol) と呼びます。代表的なプロトコルに HTTP (Hyper Text Transfer Protocol) があります。この「HTTP」という言葉を皆さんもよく目にしているはずです。Web ブラウザの URL として入力する「http://~」の「http」とは実はプロトコルの事なのです。つまり HTTP というプロトコルを使って、あなたのコンピュータと Web サイトを配信しているコンピュータが通信を行っています。このとき実際に「index.html というページを下さい」、「はい、このページです」といったやりとりが行われているのです。プロトコルには数多くの種類がありますが、どのプロトコルも「コンピュータ同士の会話」という点で同じものなのです。