この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "Gnutella"
Gnutella(グヌーテラ、ニューテラ)はP2Pプロトコルおよびファイル共有クライアント。 ナップスターなどのP2Pクライアントの場合は、中央サーバが存在し、ファイルのメタデータの管理や検索サービスを提供することにより、P2Pネットワークが機能している。それに対し、グヌーテラはサーバに依存せず、純粋にピア間の通信のみでファイルの送受信などの機能を実現している。 P2Pのしくみの分類中、このようなピア間の通信のみによって機能するものをピュアP2P、ナップスターのようにサーバの仲介を必要とするものを、ハイブリッドP2Pと呼んでいる。 その他には、KaZaA や Skypeに使われているスーパーノード型ハイブリッドP2Pがある。 ナップスターに代表される第一世代P2P
概要
特徴
製作者の「核戦争でも生き残れるように設計されたもの(Gnutella is designed to survive nuclear war)」や、「万一、ニューヨークに核爆弾が投下されたとしても、(それ自体はたいへんなことだが)ニューヨーク以外の『グヌーテラ友達』によってグヌーテラネットは維持されるだろう」といった言葉が、グヌーテラネットワークの特徴をよく表している。 グヌーテラネットワーク上で交わされているメッセージは、PING、PONG、PUSH、QUERY、QUERY_HITの以上である。 中央サーバが存在しないグヌーテラにおいて、最初に接続するときに何処に問い合わせるのか?という問題が出てくる。グヌーテラ第一世代では、ノード情報を掲示板などで入手する方法が採られていたが、グヌーテラ第二世代になって、GWC(GWebCache)というブートストラップサーバーにより各ノードと接続する方法がとられた。 接続においては、グヌーテラサーバントはまずPINGという接続要求を出す。それに対して、接続相手はPONGという信号を返して、ハンドシェイクを行い接続が完了する。 検索はグヌーテラネットワークで行っており、ファイルを求めるサーバントは、QUERYをグヌーテラネットワークに送信し、ヒットしたクエリがQUERY_HITとして検索結果に表示される。 グヌーテラでの、ファイルの転送はHTTPプロトコルで行われている。ファイルの転送は、QUERY_HIT識別子に含まれる、IPアドレスやポート番号などによってファイルの所有者にHTTPでの転送命令を出す。また、ファイル所有者がファイアウォール下にいるサーバントの場合は、PUSH識別子を出し、相手サーバントがHTTPでの転送命令を出す。 2000年、AOL社の一部門であるNullsoftで、当時社員だった Justin FrankelとTom Pepper 2000年3月14日、二人はNullsoftのサーバー上にプログラムをダウンロードできる形でアップロードした。この出来事はスラッシュドットで告知されたため、その日の内に数千人がソフトをダウンロードした。ソースコードについては、後ほどGPLライセンスの元で提供する予定だった。 翌日、AOLは法的問題を理由にプログラムの提供を中止し、さらにNullsoft部門にプロジェクトを中止させた。しかしこの措置によっても、グヌーテラを止めることはできなかった。 数日後には、リバースエンジニアリングによってプロトコルは解析され、それを元にグヌーテラ互換のオープンソースクローンが登場した。現在でも、様々なグループが グヌーテラ 互換クライアントの開発を続けている。 シャットダウンから間もなくして、Brian Mayland ユーザの裾野が広がるにつれ、システムの重大な問題が取り沙汰されはじめた。ネットワークはPINGリクエストで溢れかえり、同時に非常に多くの検索クエリーで高負荷になった。より高速なハブとしての役割を果たすコンピュータに接続した低速のモデムといった形でネットワークのトポロジーは非効率的だった。第一世代のソフトウェアの深刻なバグによってパケットがネットワーク上を不明確にさまよっていた。ネットワークは“本来は少数のユーザのために設計されたもので”100人単位から10,000 単位のユーザに膨張しトラブルに見まわれた。「ただ乗り」や「何も提供していないのにファイルを取り出すだけの人々」によってもユーザが探し物をするのを難しくした。 もう一度、情熱的なコミュニティーが救済に乗り出した。Bob Schmidt
グヌーテラの仕組み
接続
検索
転送
開発の経緯
グヌーテラ第一世代
グヌーテラ第二世代
この時点で、物事は個人の開発者が全てをまかなうにはあまりにも複雑になっていた。彼らはコードを書き、報道やユーザやお金の工面をしなければならなかった。こういった事情で、早急に商業的な努力が介入し、「救済に乗り出す」必要が出てきた。Clip2はgnutellahosts.comを開発し、より良いホストキャッシュの実装し、いくらかナップスターのようなトポロジーをグヌーテラネットワークに組み入れて合体させるようなやり方で動く小さなサーバリフレクターを開発した。 名称プラットホームライセンス
グヌーテラ互換サーバント
Acquisition
AcqlitemacOSGNU GPL
BearShareMicrosoft Windowsシェアウェア en:Closed source
PhexJavaGNU GPL
CabosJavaGNU GPL
CocoGnutRISC OSフリーウェア
GnucleusMicrosoft WindowsGNU GPL, GNU LGPL
GTK-GnutellaUNIXGNU GPL
LimeWireJavaGNU GPL
mlDonkey
MorpheusMicrosoft Windowsen:Closed source
MutellaUNIXGNU GPL
PoisonedmacOSGNU GPL
QtellaLinuxGNU GPL
ShareazaMicrosoft WindowsGNU GPL
SymellaSymbian OSGNU GPL
XNapJavaGNU GPL
XFactormacOSGNU GPL
関連項目
Cabos
Freenet
LimeWire
Peer to Peer
Perfect Dark
Profes
Share
WinMX
Winny
ヌテラ - 北米や欧州で人気のあるスプレッド(パンなどに塗る食品)。Gnutellaの語源とされるものの一つ(GNU + Nutella)。Gnutella の名前は GNU と Nutella から付けられたとされる[1]。
脚注・出典^ GLYN MOODY 小山祐司監訳『ソースコードの反逆』株式会社アスキー、2002年6月11日、365頁。