情報あれこれ(コンピュータ関係)
直接リンクの問題


注意
 今回ネタとして取り上げているものは,「バナーの直接リンクによるネットワーク全体のトラフィック増加」,および「相手先サーバーへの負荷の増大」です。
 ただし,直接リンクそのものの是非を論ずるつもりは一切ありません。

 また,私は専門の研究員ではなく,具体的に信頼性の高いデータをもとにしての話でもありません。
 今回ここに書いたことは,あくまで私の知識の範疇での『一般論』に過ぎません。
 そのあたり,誤解のないようにお願いいたします。


・『直接リンク』とは

 今回ここで話題にしている『直接リンク』とは,次のようなものを言います。
「Webページで使用されている画像・音楽などのデータで,そのWebページが保存されているサーバーとは別のサーバーに保存されているものを参照しているもの」
 例えば,私のサイトのリンク集(バナー使用版)の中で言えば,「山之懐」とか,「STUDIO:GENKI」などのバナーが該当します。

 これに対して,「王国たまご」や「KIRITON’S BLAND」のバナーなどは,同じサーバーにデータをコピーさせて頂いているので,これは直接リンクではありません

・どうしてトラフィックが増加するのか?

 ネットワークの中で,単位時間(一定時間)内にやり取りされるデータ通信の量のことを「トラフィック」と表現していますが,一般的に言って,『直接リンク』はこのトラフィックを増大させやすいものです。
 Webページを表示するまでの流れの概略をまとめると次のようになります。
:既に表示されているページでリンクをクリック。
 または,アドレスを直接入力する。
 などの方法で,新しく表示するページのアドレス(URL,URI)を指定する。
:(ブラウザは)指定されたアドレス(正しくは,サーバーを表すドメイン名)を元に,そのページが保存されているWebサーバーのアドレス(IPアドレス)をDNSに問い合わせる。
:DNSから返されたIPアドレスを利用して,目的のWebサーバーにデータ送信要求を出す。
:目的のWebサーバーから送信されたHTMLに従って,Webページを表示

 ここで問題になるのは,「4」の場面です。
 内容がHTMLテキストだけであればそれで終わりなのですが,そのWebページにテキスト以外のデータが含まれていたら。
 具体的には,背景画像,アイコン(としての画像),リンクのバナー,BGMデータなどの指定があったらどうなるか。ということです。
 この時,直接リンクが設定されていると,その全てについて,上の流れの「2」の場面,即ち,DNSへのアドレスの問い合わせが発生します。
 直接リンクが100個あったとしても,全てが同じサーバーへのものであれば,問い合わせは1回で済みますが,今回ネタとしているような,『リンクページ』の場合には,その全てが同じと言うのはあまり起こりえないでしょう(多数ある中の,いくつかが同じサーバーということはあるにしても)。

 さて,ここでDNSについて簡単にまとめておきます。
 というより,それを抜かすとそもそもの問題の理解が不十分になってしまうと思いますので。


・DNSについて(概説)

 私たちがインターネットを利用する時,通常はWebアドレス(URL,URIとも)を利用します。これは個々のサーバーを区別するためのドメイン名と,そのサーバーの中でのフォルダ名,ファイル名を組み合わせたもので,人間にとっては分かりやすいものですが,コンピュータにとっては,実はあまり意味がありません。
 何故なら,インターネットでの通信プロトコルであるTCP/IPにおいては,個々のコンピュータ(本来はノードという。コンピュータだけとは限らない)は,『IPアドレス』によって区別されるからです。
 そこで,人間にとって都合のいいドメイン名と,IPアドレスの間を取り持つものとして,DNS(Domain Name System)が作り上げられました。
 簡単にいえば,ドメイン名とIPアドレスの対応表です。
 ところが……問題が1つあります。
 インターネット全体には大量のコンピュータが接続されています。
 それらの中には,一度接続されたらずっと接続されたままのものもあれば,頻繁に接続されたり切断されたりを繰り返すものもあります。インターネット全体は,毎日どころか,分単位,秒単位で構成が変化しているのです。
 構成が変化するという事は,当然ながらドメイン名とIPアドレスの対応関係も変化するということですから,その更新をどうするか,ということが問題となるわけです。
 また,物理的に大量のデータですから,それを1ヵ所に集めてしまうことの難しさもあります。管理上は1ヵ所で集中管理すれば楽ではあるのですが,世界中からのアクセスが集中するので,サーバーに必要とされる能力は並大抵のものではすみません。
 そう言った問題もあって,DNSは世界中であるルールに従って「データの分散管理」が行われています。
 実際にDNSに対してアドレスの問い合わせを行うときには,DNSの中の1つのコンピュータに対して行えばいいということになります。

 もっとも,問題はそれほど簡単ではありません(というか,ここから本題)。
 データが複数のDNSサーバーで分散管理されているということは,自分が問い合わせを行ったDNSサーバーの中に,そのデータが存在しないという場面が起こりうると言うわけです。
 その時,いちいちユーザーが手動で問い合わせるDNSを切り換える必要は,実はありません。
 DNSサーバー同志が相互に連絡を取り合って,最終的には必ず世界中全てのDNSサーバーのデータがチェックできるような仕組みになっています。
 しかし……このことは,わずか1つのWebアドレスに関する問い合わせであっても,世界中でDNSサーバー間の通信が発生している。ということでもあります。


・問題総括

 ここまで来ると,だいたいお分かりでしょうか。
 1つのページを表示する場合,通常DNSへの問い合わせは1回(そのページが保存されているWebサーバーについての問い合わせ)で済むところが,複数のWebサーバーについての問い合わせが必要であり,結果としてネットワーク全体でのトラフィックが増加する。
 ということです。

 ただし,冒頭にも書きましたように,あくまで一般的な話です。
 昨今のインターネットでのセキュリティに関する記事を読んでいる限りでは,直接リンクによるDNSへの問い合わせ増加の問題よりも,ワームに感染してのトラフィック増加のほうが遥かに問題のように思いますが……。


・直接リンクによる相手先サーバーへの負荷

 大ざっぱに言えば,DNSの負荷と似たようなところがあります。
 話の展開の都合上,「aaa.co.jp」というWebサーバー上にある,「link.htm」というページを表示するものとします。
 この場合,アドレスは「aaa.co.jp/link.htm」となります。
 このページを表示する場合,当然ながら「aaa.co.jp」というドメイン名をもつWebサーバーにアクセスして,データを転送してもらう必要があります。

 ここで,link.htm の中に,「bbb.co.jp」というサーバーの「banner.png」というファイル(アドレスは「bbb.co.jp/banner.png」)への直接リンクが含まれていたらどうなるか。を考えてみましょう。

 この場合,「aaa.co.jp/link.htm」へのアクセスが1回あるごとに,「bbb.co.jp/banner.png」へもアクセスが行われることになります。つまり,Webサーバー「bbb.co.jp」へのアクセスが発生するわけです。

 同じように,「ccc.co.jp」というWebサーバー上の「links.htm」というページにも,「bbb.co.jp/banner.png」への直接リンクが含まれていたら,こちら(ccc.co.jp/links.htm)へのアクセス1回ごとに,「bbb.co.jp」へのアクセスが発生します。

 さて,それでは次のような条件を考えてみましょう。
 aaa.co.jp/link.htm へのアクセス10回
ccc.co.jp/links.htm へのアクセス10回

 この条件だけを見ると,「bbb.co.jp」へのアクセスは無関係のようにも思えますが,上に述べたように,直接リンクが設定されているために,実際の各サーバーへのアクセス回数は次のようになります。
 Webサーバー「aaa.co.jp」へのアクセス10回
Webサーバー「ccc.co.jp」へのアクセス10回
Webサーバー「bbb.co.jp」へのアクセス20回


・まとめ

 要するに,直接リンクをしているページが1つ増えると,そのページへのアクセス数と同じ数だけ,直接リンク先のサーバーへのアクセスが自動発生する。ということです。
 実際に転送が必要なデータ量は,バナー画像1つでもせいぜい3〜5KB程度のものではありますが,データ量よりも転送要求の回数のほうが本質的に問題です。
 DNSのようにインターネット全体に影響するものではないにしても,特定のサーバーに対する負荷の集中ということで,問題としてはどっちもどっち……らしいです。
 DNSのように,インターネットシステムの根幹に関わるような部分であれば,それだけシステムの多重化などでそれなりの対障害耐性を供えているでしょうが,民間のプロバイダのWebサーバーとなると,かならずしもそれだけの負荷に対応できるかという事は難しい面もあるのではないでしょうか。
 勿論,サーバーを運用している以上,ある程度の対障害耐性は考慮のうちでしょうが,そもそもの問題規模(どの程度アクセスが集中するか)が予想できないだけに厄介でしょう。

 ただ……これが原因でサーバーがダウンしたというような話はさすがに聞きませんが……。
 ですから,あくまで一般論です。
 サーバー側で対処ができないようであれば,利用規定などの形でユーザーに提示されるハズですし,少なくともそうなっているサーバーを見たことはないので……。

前のページに戻る    次のページに進む
   目次(コンピュータ関係)ページへ   

はじめに 自己紹介 趣味の世界 お気に入り
ブログ
注:別サイトです
情報あれこれ いただきもの 更新履歴
リンク集 2次創作作品集 離れ(自作CG集)