日付:2000/7/1
この文章について | ネットワークの動作概要 | Physical Layer:物理層 | Media Access Control SubLayer | Logical Link Sublayer | Network Layer | Transport Layer
URL-DNS例えば私のサイトのトップページにアクセスしようと思えば、(リンクされているページから飛ぶのではなければ)ブラウザの窓に以下の文字列を打ち込む必要がある。
http://homepage3.nifty.com/GOtsubo/index.html
これは一体なんなのか。そしてこれを打ち込まれた機械の側では一体なにをするのか。前に書いたことと多少重複するが書いてみよう。
まず最初のhttp://は、「これからhttpというプロトコルで話しをするぞ」という印である。であるからこの部分は場合によっては
「ftp://」
だったり
「https://」だったりもする。
「/GOtsubo/index.html」
というのは、目的とするマシン(とりあえず)の上の、文字列で指定されるファイルをさしている。では、その間に挟まれる
homepage3.nifty.com
というのはなんなのか。
通信を行なうからには通信の相手先を指定する必要がある、ということはNetwork layerとTrasnport layerのところで述べた。(ちなみにhttpというからにはTCPで指定するところのポート番号は80である)
この指定のためのデータは「IPアドレス」と呼ばれる。ビット数で言えば32ビット。8ビットずつ4桁に区切り、各8ビットを10進法であらわした記載がよくされる。例えば
198.137.240.100とか(これはWhite houseのIPアドレスである)
210.154.64.130は2進で11010010 10011010 01000000 10000010
さて、きっと世の中にはこの4桁の数字を記憶する事に喜びを覚えている人間もいると思うのだが(そして私の想像を超える数で)たいていの人間にとってはこうした数字というのは覚えにくい。というわけで、
ホストに人間が覚えやすい名前(server, www, ns)をつけ、それをホスト名と呼ぶが、他の組織でも同じ名前をつけることがあり得るので区別するためにドメイン名を利用する。すなわち、JPNICのWWWサーバには、ドメイン名nic.ad.jpをつけて、ホストのフルネームにあたるwww.nic.ad.jpを定義することで、簡単に世界で唯一な名前をつけることができる。このフルネームを「完全なドメイン名」(Fully Qualified Domain Name)と呼ぶ。
さて、このドメイン名なるものについては、おそらく10年前には想像もできないほどの変化が生じている。当時この名前が価値を持つようになるとは誰が考えただろう。おそらくこのドメイン名の付けなどについては今後もあれこれ変化していくに違いない。というわけで、細かい説明(例えば.comとか.ne.jpとかはなにを意味しているのか、どうやてつけるのか)はあっさり省略してしまう。ここで書きたいのは、そうした政治及び社会の動きとはまったく関係ないコンピューターの事情である。つまり人間が覚えやすい名前をつけるのは人間様の勝手であるが、どうしたってそのコンピュータまでパケットを送ろうと思えば、32のビット列に変換する必要がある。これはどうやって行われるのか。また変換された後、32のビット列をどうやってルーティングに用いるのか、という問題である。ではまずドメイン名の変換から。
Domain Name System (DNS)
ドメイン名からIPアドレスの変換は基本的に変換テーブル-つまるところは電話帳のようなものだが-を参照することによって行われる。と簡単に言葉で済ませられるほど話しは簡単ではない。このテーブルを仮にどっかに持ったとしてもその数は膨大になり、かつしょっちゅう変更が行なわれるわけだ。おまけに一個所でそんなテーブルを持ってしまったら、世界中のコンピューターがインターネットにアクセスするたびに
「おーい。このドメイン名のIPアドレスをおしえてくれや」
と問い合わせる事になり、偉いさわぎになる。
とはいってもInternetが最初に動き始めたころは、事情がかなり違っていた。
(http://www.cs.wpi.edu/~cs513/f99cew/week10-transport/week10-transport.html参照)このドメイン名とIPアドレスの対応表は、hosts.txtというファイルに納められており、追加をするときには管理者に依頼、管理者はhosts.txtをアップデートし、全てのホストに配る、という運用を行なっていたようだ。
しかしながらインターネットが爆発的に普及するにつれ(正直言えば1992年の日本で-たった8年前だ-Internet接続を認めさせるのにどれだけ苦労したかを思えば、現在の状況を爆発的といっても問題はなかろう)そうした方法では対処できなくなった。そこで開発されたのがDomain Name Systemという階層的で分散した電話帳ひきのしかけである。
なぜ階層的というか。ドメイン名が[.]で区切られた一連の文字列であることを思い出そう。これらはだてに区切られているわけではない。