第2回では、まず、コンピューター同士が行う通信の種類について説明します。その後、Webにおいて広く利用されている「HTTP」の仕組みについて、ツールを使って実際の動作を確認しながら学びます。
この連載は「コンピューター同士の通信」をテーマにしているわけですが、ここでいうコンピューター同士の通信とは、いったいどんなことを指すのでしょうか?
シンプルにいえば、「あるコンピューターから別のコンピューターに、何らかの情報を伝える」ことだといえます。
もちろん実際にコンピューター同士の通信を成し遂げるには、各コンピューターをネットワークにつなぎ、ネットワークの構成を行い……と、さまざまな準備が必要なのですが、取りあえずそんな細かいことは全て忘れて、誰かが通信に必要な環境を用意してくれているものと考えることにしましょう。
その上で、まずはコンピューター同士が情報をやりとりするときのスタイルについて考えてみます。
コンピューター同士の通信には、自分と相手が1:1で行う通信、グループに属する複数のコンピューターに向けて行う通信、特定ネットワークの全コンピューターに向けて行う通信、などの種類があります(図1)。メールやWebなどでは、このうち「自分と相手が1:1で行う通信」を主に使用します。このような形態を「ユニキャスト」と呼びます。
1:1で行う通信では、何らかの方法で、通信の相手となるコンピューターを指定しなければなりません。この指定には「IPアドレス」を使います。
IPアドレスは、コンピューターに割り当てられる住所のようなもので、4つの数字をピリオドで区切った形(例:203.0.113.1)をしています。
インターネットに直接接続するコンピューターには、インターネット内でただ一つの、他のコンピューターとは決して重複しないIPアドレスが割り当てられます。そのため、これを指定することで、通信する相手を特定できるわけです。
通信の相手を指定するのに、IPアドレスの代わりに「ドメイン名」と呼ばれるコンピューターの名前を指定することもあります。この名前はIPアドレスと対応しているため、IPアドレスを指定するのと同じ効果があります。
また、通信相手を指定する際には、IPアドレスと一緒に「ポート番号」を指定するのが一般的です。ポート番号には、あるコンピューターが兼ね備える機能の中の、どれに接続するのかを特定する働きがあります。例えば、Webサーバーの機能は80番、メール読み出しの機能は110番というように、番号と機能の対応が世界共通で決められています(図3)。
コンピューター同士の通信では、通信の始め方として、まず相手に呼び掛け準備が整ったことを確認してから通信を始める方法と、事前の確認なしに相手へ情報を送りつける方法の二つがよく使われます。
これを人の会話に例えると、「ねえ、今お話しして大丈夫?」と確認して「うん、どうしたの?」と返事を聞いてから本題に入るか、「今度の日曜日、アウトレットに行かない?」といきなり本題に入るかのような違いとなります(図4)。
前者では、相手はおそらく本題について話を聞いてくれるでしょうが、後者では、ヘッドフォンステレオを聞いているなどの理由で、声が届かないかもしれません。ただし、前者では本題に入る前の準備に少し時間がかかるのに対し、後者では準備の手間を省いて速やかに本題に入ることができます。このように、それぞれ長所と短所があります。
メールやWebに関連する通信では、このうち「まず相手に呼び掛けて準備が整ったことを確認してから通信を始める方法」が主に使われます。
少しまとめると、コンピューター同士の通信の多くは「自分と相手が1:1」となる形で行い、相手の指定に「IPアドレス」か「ドメイン名」を、機能の指定に「ポート番号」を使用し、通信を始めるときは「相手に呼び掛けて準備が整ったことを確認してから通信を始める」スタイルをとります。これは、後で説明するHTTPも同様です。
Copyright © ITmedia, Inc. All Rights Reserved.