2004/08/05にjapan.internet.comに掲載されたコラムです。
前回のコラムで紹介した Kontiki は、ビジネス利用における動画コンテンツにターゲットをしぼることで、 P2P 技術のビジネス転用を実現していました。
ただ、もちろん P2P 技術がその分散性によるメリットを発揮するのは、ビジネス利用だけではありません。逆にコンシューマ向けのような不特定多数の利用者に同時に大容量のファイルを送付する際にこそ、分散によるメリットが複数出てくるとも言われています。
今回紹介するのは、そのようなコンシューマ向けの大量配信をターゲットとしている BitTorrent というアプリケーションです。
■BitTorrent の概要
BitTorrent は Bram Cohen という米国のプログラマにより開発されたフリーのアプリケーションです。日本で話題を読んだ Winny も個人で開発されていましたので、背景は似ているかもしれません。
ただ、Winny が匿名性を追求していたのに対し、 BitTorrent は匿名性は担保せず、巨大なファイルを高速にダウンロードすることにフォーカスしている点が、まず大きな違いとしてあげられます。
利用対象としては、オープンソースで開発された OS やアプリケーション、ゲームの体験版など、最初から著作権のないものをターゲットとしており、数百 MB や GB 単位の大容量のファイルで、しかも大勢の人が利用するコンテンツ配付技術を開発の中心としているわけです。
Kontiki の回にも書きましたが、コンテンツ配信においては、 P2P 技術の最も分かりやすい特徴である「分散によるコスト低減」というメリットが明確に表現できます。
1GB のファイルをサーバー型で配信した場合、同時に100人の人がサーバーにファイルを取りに来ると、 100GB ものトラフィックが発生することになります。これが P2P 型であれば、自然と負荷を分散させることができるわけです。(「P2P の誤解:大容量ファイル交換とボトルネック」を参考にしてください)。
BitTorrent では、その特徴にさらに磨きをかけています。
■BitTorrent の特徴
BitTorrent の P2P ネットワークは、とにかくいかに素早く特定のファイルを行き渡らせるかに注力されています。
もちろんメールのような数 KB のデータであれば、不特定多数の対象にファイルを配付するのは難しくありません。ここで対象となっているのは、数百 MB や GB 単位の巨大なファイルです。
クライアント/サーバー型のシステムとの比較は、前回の Kontiki のコラムで紹介しましたので、今回は通常の P2P 配信ネットワークと BitTorrent の比較を行います。
1.ファイルの大量配信に特化することで、配信を効率化
一般的に、P2P 配信において難しいのは検索部分であると言われます。ファイルがクライアントにバラバラに散らばっている状態が前提となるため、そのファイルを誰が持っているのかを素早く探す必要があるからです。 BitTorrent はこの検索部分には焦点をあてておらず、 P2P のフレームワーク自体を大容量ファイルの大量配信に特化させ、配信の効率をあげることにフォーカスしています。
2.ファイルを分割して配信することで、安定したダウンロードを実現
大容量ファイルのダウンロードにおいては、途中で回線や接続の切断によりやり直しとなる事態に頻繁に遭遇します。そこで、BitTorrent ではファイルを複数の細かいデータに分割し、複数の対象からダウンロードして後から復元するという手法を取ることで、この問題を回避しています。 Kontiki にも類似の仕組みがありましたが、このような分割配信は、インターネットのような不安定なネットワークでの大容量ファイル配信には必須の仕組みといえます。
3.ファイルを受け取ったユーザーに、並行して配信させることで分散配信を実現
上記の分割されたファイルを受け取ったユーザーは、他のファイルの受信と並行して、受け取り済みのファイルを送信するハブとして機能します。そのため同時に大勢のユーザーがファイルのダウンロードを始めても、早期に分散配信が機能します。 この仕組みにより、大量のユーザーによる大容量ファイル配信の際に、効率的に配信の負荷が分散することを実現しているのです。
(次回のコラムへ続く)