わかりやすく DNS どうやって 動く
友だちの電話番号を全部覚えている人はあまりいません。たいていは連絡先から名前で探します。インターネットも同じです。コンピューターは数字の住所で互いを見つけますが、人がその数字を覚えるのは大変です。そこで、覚えやすい名前を使い、DNSがその名前を数字の住所に変えてくれます。
名前は数字より覚えやすい
前に、コンピューターは数字の住所で互いを見つけると学びました。けれども、その数字を人が覚えるのはとても大変です。
電話番号を全部覚える代わりに名前で探すように、私たちは数字の代わりに覚えやすい名前を使います。アドレスバーに打ち込むその名前を、ドメインと呼びます。
名前のカードと数字の住所のカードを押して比べます。名前はひと目で頭に入り、数字はすぐにこんがらがるので、どちらが覚えやすいかがすぐにわかります。
名前は一度見れば記憶に残りますが、数字はすぐに混ざってしまいます。人は名前を使いたく、コンピューターは数字を必要とします。二つの望みが食い違っているのです。
だから、だれかが名前を数字に変えてあげなければなりません。その仕事をするのがDNSです。
DNSに名前を尋ねる
名前でどこかへ行きたいとき、コンピューターはまずDNSに「この名前の数字の住所は何?」と尋ねます。するとDNSが「その名前の住所はこれ」と教えてくれます。
電話番号案内に名前を言うと番号を教えてくれるのと同じです。このように名前から住所を探し出すことを、名前解決、あるいは問い合わせと呼びます。
名前を一つ押すと、自分のコンピューターがDNSに質問を送り、その名前の数字の住所が答えとして返ってきます。
質問を送ると、住所がきちんと返ってきました。私たちは名前しか知らなかったのに、コンピューターが使う数字が手に入ったのです。
これで、その数字の住所に向けて本当の接続を始められます。ところで、DNSはあれほどたくさんの名前と住所を、いったいどこに書きとめているのでしょうか。
DNSは巨大な電話帳
DNSは、名前と住所の組をとてもたくさん書きとめた一覧のようなものです。電話帳を思い浮かべるとわかりやすいでしょう。名前がずらりと並び、その横に住所が書いてあります。
名前を尋ねると、DNSは一覧から合う組を探して住所を取り出してくれます。だから私たちは、名前さえ言えばよいのです。
電話帳の名前を一つ押すと、合う行が光って、その名前の数字の住所を見せてくれます。名前ごとに、住所が一つずつ組になっています。
ただし、実際のDNSは一冊の本ではありません。世界中の名前はあまりに多いので、世界の数えきれないサーバーが一覧を分担しています。
いちばん上のルートサーバーは「.com」のような末尾の名前を受け持つサーバーを教え、そのサーバーはさらに、その名前の持ち主が運営するサーバーを教えます。こうして何回か順に尋ねて、最後の答えを得ます。
とはいえ、尋ねるたびに毎回最初からこの道をたどっていては遅くなります。そこで、賢い方法が一つあります。
一度見つけたら覚えておく
一度見つけた名前と住所は、しばらく書きとめておくのが賢いやり方です。このように覚えておくことをキャッシュと呼びます。
同じ名前をまた探すときには、遠くの電話帳まで行かなくてかまいません。すぐそばに書きとめておいた記憶から、そのまま住所を取り出せるからです。だから二回目からは、ずっと速くつながります。
同じ名前を二回問い合わせます。一回目は電話帳まで行くので遅く、二回目は記憶に書きとめた住所をすぐ取り出すので速くなります。「記憶を消す」を押すと、また最初から探します。
二回目の問い合わせは、目に見えて速くなりました。電話帳まで行かず、記憶からすぐ取り出したおかげです。
もちろん、記憶はしばらくしか残りません。住所が変わることもあるので、あまり長く信じてはいけないからです。どれくらいのあいだ覚えておいてよいかは、その名前の持ち主が決めています。
それでも、その短いあいだは記憶のおかげでインターネットが速くなります。
まとめ
一言でまとめると、人は名前を、コンピューターは数字を使い、DNSが名前を数字の住所に変えてくれます。
DNSは組がいっぱいの巨大な電話帳のようなもので、一度見つけたものはしばらく覚えておくので、次はもっと速くなります。おかげで私たちは、ややこしい数字はDNSに任せて、名前だけを覚えていればよいのです。
ボタンを押すたびに、要点が一つずつ現れます。(名前 vs 数字 → DNSに尋ねる → 巨大な電話帳 → 一度見つけたら覚える)四つすべてが出そろえば、まとめは完了です。
これで、名前がどうやって数字の住所に変わるのかがわかりました。住所が手に入ったので、いよいよ相手のコンピューターにデータを送る番です。
でも、パケットのいくつかが途中で消えたり、順番が入れ替わったりしたらどうなるのでしょうか。次のレッスンでは、抜けなく、順番どおりに届けるためのしくみを扱います。