目次 | 索引 |
---|---|
これまでの授業では、HTMLについて学び、ディレクトリの利用法を考えました。 残りの時間で、ネットワークの仕組み、特に「なぜホームページが見られるのか」について説明します。 ネットワークの仕組みに詳しくなったからといって、高度なホームページが作成できるわけではありません。 「ホームページが見られない」といったトラブルに対処するときや、ホームページ関連のシステム管理に関わるようになったとき、ネットワークに関する知識が重要になるのです。
インターネット ( The Internet )とは、世界中の組織のネットワークどうしを相互接続して構成された、世界規模のネットワークです。 インターネットと対比して、組織内のネットワークを LAN (Local Area Network)とよびます。
ネットワークに接続しているコンピュータを ホスト ( host )とよびます。 ネットワークを相互接続する機器を ルータ ( router )とよびます。
今、インターネットを経由して、ホスト A からホスト B へデータを伝送したいとします。 ホスト B がホスト A と同一のネットワークにあるときは、データは直接ホスト B に伝送されます。 そうでなければ、データはルータ R1 に伝送されます。 それぞれのルータには、 経路表 ( routing table )とよばれるリストが格納されています。 ルータ R1 では、経路表にしたがって、ホスト B にたどり着きそうなルータ R2 が決定されます。 そして、データはルータ R1 から R2 に伝送されます。 ルータ R2 でも、経路表にしたがってルータ R3 が決定され、データは R3 に伝送されます。 いくつかのルータを経由して、やがてデータはホスト B のあるネットワークにたどり着きます。 最後に、ホスト B にデータが伝送されます。
コンピュータは、ソフトウェアが稼働してはじめて機能することに注意してください。 上記の話は、ホスト A で稼働しているソフトウェアが、ホスト B で稼働しているソフトウェアにデータを伝送するときの様子です。
データを伝送するソフトウェアには、データを提供することが主であるソフトウェアと、データを要求することが主であるソフトウェアがあります。 提供する側のソフトウェアを サーバ ( server )とよび、要求する側のソフトウェアを クライアント ( client )とよびます。
WWWでは、クライアントはNetscapeなどのWWWブラウザです。 サーバは、WWWサーバとよばれるソフトウェアです。 インターネットを経由して、WWWブラウザとWWWサーバがデータを交換することで、世界中のホームページが見られるのです。
例えば、情報処理センターでシドニー大学のホームページを見ようとして、Netscapeの「場所:」入力欄に
http://www.usyd.edu.au/
と入力したとします。 このときNetscapeは、シドニー大学のホストで稼働しているWWWサーバにむけて、要求データ(このURL)を送信します。 いくつかのルータを経由して、WWWサーバは要求データを受信します。 WWWサーバは、要求データを処理し、提供データ(シドニー大学のホームページのHTMLドキュメント)を決定します。 そして、情報処理センターのホストで稼働しているNetscapeにむけて、提供データを送信します。 再びいくつかのルータを経由して、Netscapeは提供データを受信します。 Netscapeは、提供データを処理し、シドニー大学のホームページを描画します。
ここで、ルータは単にデータを交換しているだけであることに注意してください。 インターネットでデータを処理するのは、ホストで稼働しているソフトウェアなのです。
インターネットで伝送されるデータは、 パケット とよばれる単位を持っています。 つまり、(大きな)データを伝送するとき、送信側のソフトウェアはデータをそのまま送信するのではなく、データをパケットに分割し、一つ一つのパケットを送信します。 そして、受信側のソフトウェアは、受信したパケットを統合し、元のデータに復元するのです。
データをパケットに分割することにより、インターネットが誰かに占有されることがなくなります。 もし、巨大なデータがそのまま送信されたならば、ルータは長い時間をかけてそのデータを伝送することになります。 その間、他のデータは受け付けられませんので、長い時間にわたって他のデータが伝送できなくなってしまいます。 巨大なデータをたくさんのパケットに分割すれば、ルータはそれらのパケットを伝送するすきに、他のデータ(のパケット)を伝送できるのです。
インターネットを構成するホストには、固有の番号が割り当てられています。 これを、 IPアドレス ( IP address )とよびます。 ここでIPとは、 インターネットプロトコル ( Internet Protocol )の略です。 プロトコルという用語は、通信規約という意味で使われています。 IPアドレスとは、インターネットの通信規約に基づく、ホストを区別する番号だと言えます。 インターネットでは、IPアドレスの重複は許されません。
例えば、東京女子大学のWWWサーバのホストのIPアドレスは、
202.11.169.5
です。 IPアドレスの書式は、0から255までの範囲の数をドット(.)で区切って4つ書き並べたものです。 ビットの概念を知っていれば、0から255までの数は8ビットで表されることに気づくと思います。 IPアドレスは32ビットで表されます。 前述のIPアドレスを2進数で表すと、
11001010 00001011 10101001 00000101
となります。
現在、インターネットを構成するホストは日を追って増えています。 新しいホストには、まだ使われていないIPアドレスを割り当てる必要があります。
IPアドレスの重複を避けるため、IPアドレスの割り当てを行っている管理組織があります。 ただし、この管理組織は一台一台のホストにIPアドレスを割り当てているわけではありません。 この管理組織は、会社、学校、プロバイダなど、インターネットを構成する組織(ネットワーク)ごとに、まだ使われていないIPアドレスの範囲を割り当てています。 そしてIPアドレスの範囲をもらった組織は、自分の組織のホストに、自分の組織の判断で、その範囲からIPアドレスを順次割り当てます。
大きな会社などでは、管理組織からもらったIPアドレスの範囲を細分して部 に割り当て、各部はさらに細分して課に割り当てるといったことも行われています。 このようにして、IPアドレスが重複しないようにしています。
IPアドレスの範囲指定は、例えば32ビットの最初の24ビットは決められていて、残りの8ビットは組織に任されるといった、IPアドレスの2進表現に基づいて行われます。 仮に東京女子大学がこのように指定されたとしますと、学内では
11001010 00001011 10101001 00000000
から
11001010 00001011 10101001 11111111
まで、すなわち202.11.169.0から202.11.169.255までの256個のIPアドレスが使えるということです。 (範囲の両端には特別な意味がありますので、実際は254個です。)
ネットマスク ( netmask )とは、IPアドレスの32ビットのうち、どのビットが固定され、どのビットが任意なのかを表す番号です。 上記の例ですと、最初の24ビットが固定(1)、残りの8ビットが任意(0)ですので、
11111111 11111111 11111111 00000000
すなわち255.255.255.0となります。
IPアドレスのビットの固定部分は、組織(ネットワーク)を表していると考えられます。 つまり、ビットの固定部分とホストのIPアドレスを比較すれば、そのホストがそのネットワークのものかどうかが分かります。 このIPアドレスの構造は、ルータの経路表でも利用されます。 データの行き先が同じネットワークのホストでしたら、伝送するルータも同じです。 従って、経路表は、データの行き先がホスト H1 ならばルータ R1 へ、ホスト H2 ならばルータ R2 へ、…といった巨大なリストである必要がなくなります。 ビットの固定部分を登録することにより、データの行き先がネットワーク N1 ならばルータ R1 へ、ネットワーク N2 ならばルータ R2 へ、…といったコンパクトなリストにできるのです。
東京女子大学に割り当てられているIPアドレスの範囲が、仮に前述の通りだとしますと、学内には254台しかホストが置けないことになります。 この問題は、プライベートIPアドレスを用いると解決できます。 プライベートIPアドレス ( private IP address )とは、以下の特別な範囲の中のIPアドレスです。
IPアドレス | ネットマスク |
---|---|
10.0.0.0 | 255.0.0.0 |
172.16.0.0 | 255.240.0.0 |
192.168.0.0 | 255.255.0.0 |
プライベートIPアドレスでないIPアドレスは、 グローバルIPアドレス ( global IP address )とよばれます。
プライベートIPアドレスは、IPアドレスの管理組織に割り当てられなくても自由に使えるIPアドレスです。 ただし、そのまま使いますと、インターネットでIPアドレスが重複する可能性があります。 一般的には、組織を代表するホストにグローバルIPアドレスを割り当て、その他のホストにプライベートIPアドレスを割り当てます。 組織内で通信するときは、IPアドレスは重複しませんので、とくに工夫は要りません。 組織外と通信するときは、あたかも代表となるホストが外部と通信しているように見せます。 このようにしますと、たとえ同じプライベートIPアドレスが複数の組織で使われていましても、代表となるホストのIPアドレスは異なりますので、通信に混乱は生じないのです。
インターネットを構成するホストには、IPアドレスという固有番号がついていることを知りました。 しかし、IPアドレスは人間にとっては覚えにくいものです。 できれば、ホストに名前をつけ、その名前でホストを指定したいところです。 このためには、次の問題を解決する必要があります。
前者はドメインという概念によって、後者はDNSという仕組みによって実現されています。
ドメイン ( domain )とは、一言で言えばホストの集まりです。 ドメインは、階層構造を持ち、その構造は普通木で表されます。 ドメインには、階層構造を反映した名前(ドメイン名)がつきます。
例えば、usyd.edu.auはドメイン名です。 これは、オーストラリア(au)の、教育機関(edu)の、シドニー大学(usyd)を表します。 シドニー大学のWWWサーバのホストにwwwと名前をつけた場合、このホストはwww.usyd.edu.auという名前で指定できます。 なお、www.usyd.edu.auはホスト名ですが、これもドメイン名と考えます。 つまり、ホストを一つ集めたドメインと言うわけです。
| +---+----+-+---+---+ | | | | | com edu ... au jp ... | +---+---+ | | edu ... | +---+----+--------+ | | | usyd utas ... | | +--+--+ +--+--+ | | | | | | www ... www ...
基本的に、各ドメインにはドメイン名の管理組織が存在します。 より下のドメインのことは、そこの管理組織に管理を委任します。 例えば、edu.auドメインの管理組織は、オーストラリアに大学が新設されたときには、申請されたドメイン名をedu.auの下に登録します。 しかし、シドニー大学に学科が新設さたときは、何もせずusyd.edu.auドメインの管理組織に管理をまかせます。
この、階層構造を反映したドメイン名と、委任の仕組みによって、インターネットで一意となる名前が簡単に用意できます。 例えば、オーストラリアのタスマニア大学(utas.edu.au)で、あるホストにwwwという名前をつけることは、タスマニア大学のみの判断でできます。 そして、このホスト名はwww.utas.edu.auなので、シドニー大学のホストと名前が衝突することはないわけです。
ホスト名からIPアドレスを割り出すには、どこかのホストにその対応表を登録しておけばよさそうです。 しかし、ドメイン名をどうつけるかは、基本的に各ドメインの管理組織に委任されていますから、その対応表もドメインごとに設置されることになります。 このばらばらの対応表を組み合わせ、ホスト名からIPアドレスを割り出す(名前解決といいます)仕組みを DNS (Domain Name System)とよびます。 DNSのサーバソフトウェアをDNSサーバ、またはネームサーバとよびます。
例えば、情報処理センターで、Netscapeの「場所:」入力欄に
http://www.usyd.edu.au/
と入力したとします。 このとき、ホスト名www.usyd.edu.auの名前解決までには、次のようなやり取りが行われます。
ドメインの階層の上から順番に解決していることに注意してください。 ただし、このやり取りは最悪の場合です。 実際には、情報処理センターのネームサーバがauドメインのネームサーバのホストのIPアドレスを知っていたり、auドメインのネームサーバがusyd.edu.auドメインのネームサーバのホストのIPアドレスを知っていたりしますので、もっと能率よく名前解決が行われます。
今日は、レポート課題を出す代りに、授業内容に関するアンケートを行います。 以下の質問に答え、回答をkonishi@twcu.ac.jpあてにメールで送ってください。 メールには、学生番号、氏名、科目名、授業の日付け(6/27)を明記してください。 アンケートに回答すれば、今日の授業に出席したものと見なします。
http://www.twcu.ac.jp/の他に、
http://www.東京女子大学.jp/でもアクセスできるようになります。 日本語のドメイン名には、日本語を使う人にとっては分かりやすく覚えやすいというメリットがあります。 一方、日本語を使わない人にとっては読み書きできない文字列であるという問題点があります。 日本語のドメイン名に関する、この他の利点と欠点について、自由に議論してください。 なお、現在のソフトウェアは、ドメイン名は英数字とハイフンの並びであると仮定しています。 従って、ソフトウェアの内部では、日本語の文字を符号に置き換えた文字列(例えば
http://www.--6771-4eac-5973-5b50-5927-5b66.jp/)として処理されることになります。