5.3 ネットワークサービス

ここまではCNSというLANについて見てきました.ではインターネットのような広域なネットワークはどうなっているのでしょうか.

インターネットと言えば多くの人はWebページを閲覧することを連想するかもしれません.これもインターネットで提供されているサービスの一つと言えます.私達がWebページを閲覧する時,情報はインターネット上のあちこちを順々に経由し,最後に目的地に到達します.例としてSFCから遠く離れた慶應義塾大学三田キャンパスのWebページを見る場合をtracerouteコマンドを使って調べてみましょう.

% traceroute www.keio.ac.jp
traceroute to www.mita.keio.ac.jp (131.113.193.15), 64 hops max, 44 byte packets
 1  gw2-v25-1.sfc.keio.ac.jp (133.27.24.2)  0.232 ms  0.193 ms  0.174 ms
 2  fw1-1.sfc.keio.ac.jp (133.27.3.12)  0.220 ms  0.209 ms  0.199 ms
 3  bb-hiyoshi7-core1-sfc2.bb.keio.ac.jp (131.113.0.34)  1.752 ms  1.680 ms  1.662 ms
 4  bb-mita-grad-core1-mita2.bb.keio.ac.jp (131.113.0.52)  3.446 ms  3.342 ms  3.275 ms
 5  mby0-ul1.mita.keio.ac.jp (131.113.199.66)  3.468 ms  3.448 ms  3.444 ms
 6  mcw0.mita.cc.keio.ac.jp (131.113.193.15)  3.358 ms  3.274 ms  3.264 ms

これがあなたのコンピュータから三田キャンパスのWebページ(ウェブサーバ)までの情報の伝達の様子を表しています.数字の横一行が途中で通ったところを表しています.なんだかよく分からない文字が並んでいますが,いくつもの場所を経由して目的地に辿り着いているイメージは感じ取れたでしょうか.

このようにインターネット上で情報が行き交う場合,情報は出発地と目的地以外にもたくさんの場所を経由して伝えられています.このため世界規模のインターネットではその情報をちゃんと伝えるために様々な仕組みや決まりごとがあります.

● 練習問題

先生の指示に従って,この他の場所に対してもtracerouteコマンドを実行し,どのようになるのか観察してみましょう.

IPアドレス

インターネットに繋がったコンピュータは,それぞれがどのコンピュータなのかを識別するものが必要です.そのためインターネットではそれぞれのコンピュータを区別するIPアドレス(IP Address)という番号が振られることになっています.先ほどのtracerouteコマンドの結果出てきた,()の中の数字がIPアドレスです.

現在のIPアドレスは,133.27.4.121というふうに,0〜255までの数字を4つ組み合わせて表現しているので,256×256×256×256 = 4,294,967,296通りのコンピュータを識別することができます.

現在のIPアドレスは0〜255までの数字を4つ組み合わせた4桁ですが,これでは足りなくなる恐れがあるので,新しいIPv6という6桁のIPアドレスも開発されています.この6桁のIPアドレスによって地球上のほぼ全てのものが識別可能と言われています.

試しに自分が今使っているコンピュータのIPアドレスを調べてみましょう.調べるためには nslookup コマンドを使います.

% nslookup zux001
Server:  ns0.sfc.keio.ac.jp
Address:  133.27.4.121

Name:    zux001.sfc.keio.ac.jp
Address:  133.27.24.12

IPアドレスはインターネットに繋がるコンピュータならばどれにでも振られている番号ですが,その振られ方には主に以下の2通りがあります.

IPアドレス振り当ての様子

ホスト名

インターネット上のコンピュータの名前がIPアドレスと言う数字では覚えるのが大変ですね.そこでこのIPアドレスとは別にホスト名(host name)という名前をコンピュータに付け,それとIPアドレスを対応させるということをしています.5.2でみなさんは hostnameコマンドを使って自分のコンピュータ名を調べましたがあれはホスト名を調べていたことになります.

コンピュータによっては同じIPアドレスに対して複数のホスト名を持っているものもあります.

ホスト名は一つのネットワークの中で重ならないようにつけます.しかしインターネットを構成しているネットワークでは,他のネットワークに同じ名前のコンピュータがある可能性があります.そこでインターネット内でコンピュータを指定する時は,後ろにドメイン名(domain name)というものを付けます.例えば,SFC 内の zux001 というホストはインターネット内では zux001.sfc.keio.ac.jp とします.これが正式なホスト名です.

先ほどホスト名からIPアドレスを調べたように,IPアドレスからホスト名を調べることもできます.この場合も nslookupコマンドを使います.

% nslookup 133.27.24.12
Server:  ns0.sfc.keio.ac.jp
Address:  133.27.4.121

Name:    zux001.sfc.keio.ac.jp
Address:  133.27.24.12

サーバとクライアント

コンピュータネットワークを使ってサービスを行う方式の代表的なものに,サーバ/クライアント方式があります.サーバ(server)は,ネットワークを通じて他のコンピュータから要求を受け,それを処理するコンピュータやプログラムのことです.そしてクライアント(client)はサーバに要求を出し,サーバが提供しているサービスを受ける側のことを言います.

サーバ・クライアントモデル

手紙のやりとりを例にして,もう少し詳しく見てみましょう.今,古くからの友達に久しぶりに手紙を書くことを考えます.

  1. まず,あなたは文面を考え,手紙を実際に書きます.
  2. その後,封筒に友達の住所を書きます.
  3. そして,切手を貼って,郵便ポストに投函します.
  4. 郵便ポストに入れられた手紙は,郵便局へと集められて,手紙に書かれた住所のところへと届けられます.

ここで,手紙を書いたあなたが,クライアントです.そして,手紙を届けてくれる郵便局がサーバです.あなたが受けているサービスというのは,「手紙を届けてもらう」というものです.

プロトコル

先ほどの手紙の例を考えて見ましょう.手紙のやりとりには,「手紙に切手を貼る」,「住所を書く」などという約束事があります.これをしないと手紙は相手には届かない,つまりサービスは受け付けられなかった,ということになります.こういった通信における約束事をプロトコル(protocol)といいます.

1.5 電子メールの仕組みででてきたSMTPやPOPといったもの,それから先ほどのDHCPもプロトコルの一つで,それぞれがメールの送信,受信,IPアドレスの自動振り当てなどの際の決まりごとを表しているように,ネットワークのいろいろなレベルで,いろいろなプロトコルが使われます.

ネットワーク上で提供されているサービスには様々なものがあり,それぞれのサービスにサーバとクライアントが存在します.例えばDHCPサーバの場合,ラップトップコンピュータがクライアントであり,IPアドレスを自動で振り当てるというのがサービス,そしてDHCPサーバがサーバとなります.