スマホでもパソコンでも、毎日インターネットを使っています。
でも、サイトの名前(URL)を入力してからページが出るまでの一瞬に何が起きているかは、ふだん目に見えません。
この記事では、その一瞬に起きていることを順番に追いかけます。
そして最後に、ここで説明したとおりのことが自分のパソコンでも起きていると、自分の画面で確かめる方法を紹介します。読んで終わりにしないための節です。
目次
インターネットとは何か──3つの条件が決められている

インターネットは「世界中のコンピュータがつながった巨大なネットワーク」と説明されることが多く、それ自体は間違いではありません。
ただ、その言い方だと会社の中だけのネットワークと区別がつきません。どちらも「コンピュータがつながったもの」だからです。
実は、インターネットという言葉には、よく引かれる公式な定義があります。1995年10月24日にアメリカの連邦ネットワーク評議会(FNC)が全会一致で可決した決議で、次の3つを満たすものを指すとしています。
- IPという決まりにもとづく、世界でひとつしかない住所のまとまりによって、論理的につながっている
- TCP/IP、またはそれと互換のある決まりで通信できる
- その通信のしくみの上に乗るサービスを、提供したり、使ったり、使えるようにしたりしている(公開のものでも、非公開のものでもかまいません)
1つ目の「世界でひとつしかない」が、社内ネットワークとの決定的な違いです。決議の原文では a globally unique address space based on the Internet Protocol (IP) と書かれています。
会社の中だけのネットワークにも住所はあります。ただしその住所はその会社の中でだけ通用するもので、同じ番号がよその会社でも使われています。社内ネットワークとインターネットを分けているのは、3つのうちのこの1つ目です(残る2つは、社内ネットワークでも満たしていることがあります)。
2つ目は言葉が通じることです。世界でひとつの住所を持っていても、やり取りの手順が違えば話になりません。そして3つ目は、その上に実際にサービスが乗っていること。ここで「公開のものでも、非公開のものでもかまわない」と書かれているのが大事なところで、インターネットは「誰でも見られるもの」だけを指すわけではありません。ログインが必要なサービスも、条件を満たしていればインターネットの一部です。
この決議の全文は、インターネット協会(ISOC)が公開している A Brief History of the Internet に収録されています(著者にはインターネットの設計に関わった技術者が名を連ねています)。
インターネットでWebページが表示されるまでに起きていること

ブラウザにサイトの名前を入力してからページが出るまでは、大きく3つの段階に分かれます。

見落とされがちですが、やり取りする相手は1台ではありません。見たいページを持っているサーバーの前に、もう1台べつのサーバーとやり取りしています。
① 名前から住所を調べる
私たちが入力するのは network-beginners-handbook.com のような名前です。
ところが通信の相手を指定するのに使われるのは、名前ではなくIPアドレスという番号です。そこでパソコンは、まず「この名前は、どの番号のことか」を調べます。この問い合わせに答えるのがDNSサーバーです。
なぜわざわざ問い合わせるのか。「全部の対応表を最初から持っておけばいいのでは」と思うかもしれません。実際、昔はそうしていました。
かつては、名前と番号の対応を HOSTS.TXT という1つのファイルにまとめ、それぞれのコンピュータが取ってくる方式でした。
DNSの仕様書である RFC 1034 は、この方式が続かなくなった理由を3つ挙げています。筆頭は、新しい版を配るのに使われる帯域が proportional to the square of the number of hosts in the network(ネットワーク上のホスト数の二乗に比例する)こと。台数が10倍になれば、配るのに使う通信量は100倍になります。
残る2つは、各組織が自分たちの名前を管理していたのに、変更を反映させるには大元がファイルを書き換えるのを待つしかなかったこと、そして用途が広がり、汎用の名前サービスが必要になったことです。
つまり、量の問題だけではありませんでした。1か所にまとめて配る方式をやめ、聞かれたら答える方式に変えた——それがDNSです。
② 住所あてに「このページをください」と送る
番号がわかったら、パソコンはその番号を持つ相手に「このページのデータをください」と要求を送ります。
このとき、要求はひとかたまりで飛んでいくのではなく、パケットという小さな単位に分けて送られます。そして、あなたのパソコンから相手のコンピュータまで一直線につながっているわけでもありません。家のルーター、契約している回線の事業者、その先の事業者……と、いくつもの機器を経由して運ばれていきます。
途中の機器は、宛先の番号を見て「次はこっち」と渡していくだけです。全体の経路をどこかが管理しているわけではありません。
③ 返事が返ってきて、画面ができあがる
要求を受け取った相手のコンピュータは、求められたデータを送り返します。返事も同じようにパケットに分かれて、いくつもの機器を経由して戻ってきます。
受け取ったパソコンは、届いたパケットを元の順番に組み立て直し、その中身をもとにページを描きます。ここまでが、アドレスを入力してからページが出るまでの一瞬に起きていることです。
1ページ表示するのに、この往復は1回では終わりません。文章、画像、デザインの指定などがそれぞれ別に取り寄せられるため、同じことが何度も繰り返されています。
インターネットの動きを、自分の画面で確かめる

ここまでの説明は、読むだけなら「そういうものか」で終わってしまいます。
ですが①と②は、Windowsに最初から入っているコマンドを使えば、自分の画面で実際に見ることができます。特別なソフトを入れる必要はありません。
名前から住所が引かれるところを見る
①でDNSサーバーに問い合わせている場面は、nslookup というコマンドで自分でも実行できます。実際に動かすと、こう出ます。

下2行が答えです。入力した名前に対して、実際に返ってきた番号が出ています。ブラウザが裏でやっているのと同じ問い合わせを、自分の手で1回だけやってみるということです。
上の Server: は、その答えを返したDNSサーバーです。ここが UnKnown と出ることがありますが、異常ではありません(名前が引けなかっただけで、番号は表示されています)。
いくつもの機器を経由するところを見る
②で「いくつもの機器を経由して運ばれる」と書いた部分は、tracert というコマンドで確かめられます。

目的の相手にたどり着くまでに経由した機器が、上から順に1行ずつ並びます。1行目は家の中の機器で、そこから先は契約している事業者の機器へと進んでいきます。「一直線につながっているわけではない」という説明が、行数として目に見える形になります。
⚠ 上の例では、3行目から8行目まで Request timed out. が並んでいます。これは途中の機器が「応答しない」設定になっているだけで、通信が止まっているわけではありません。現に9行目から応答が戻り、10行目で目的のサーバーに届いています。
どこまで並ぶかは環境によって変わります。結果の詳しい読み方は下の記事にまとめました。
どちらも、書式と結果の読み方はそれぞれの記事にまとめてあります。コマンドを開く場所から知りたい場合は、下の記事から読んでください。
インターネットの仕組みに出てくる3つの用語
ここまでの説明に出てきた言葉のうち、よく一緒に語られるのが IPアドレス・プロトコル・クライアントとサーバー の3つです。それぞれ、①で調べていた番号、やり取りの手順を決めた約束事、②③に出てきた要求する側と応える側の分担にあたります。
また、②で「途中の機器が宛先を見て次へ渡す」と書きましたが、この役をしているのがルーターです。家にある機器も、tracert の1行目に出てきたものがそれにあたります。
なお、こうしたやり取りを役割ごとに段に分けて整理した考え方がOSI参照モデルです。この記事が実際の通信の順番を追ったのに対し、あちらは仕事の分け方を扱っています。
まとめ
インターネットは、ただ「つながっているもの」ではありません。FNCの決議は、世界でひとつしかない住所のまとまりで結ばれていることを条件の1つに挙げています。社内ネットワークとの違いはここにあります。
そしてページが表示されるまでには、①名前から住所を調べ、②その住所あてに要求を送り、③返事が返ってきて画面ができる、という3つの段階があります。
①と②は、nslookup と tracert で自分の画面でも確かめられます。説明を読んで納得するのと、自分の環境で同じことが起きているのを見るのとでは、残り方が違います。ぜひ一度、手元で動かしてみてください。








