Gnutella
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "Gnutella" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2020年2月)

Gnutella(グヌーテラ、ニューテラ)はP2Pプロトコルおよびファイル共有クライアント
概要

ナップスターなどのP2Pクライアントの場合は、中央サーバが存在し、ファイルのメタデータの管理や検索サービスを提供することにより、P2Pネットワークが機能している。それに対し、グヌーテラはサーバに依存せず、純粋にピア間の通信のみでファイルの送受信などの機能を実現している。

P2Pのしくみの分類中、このようなピア間の通信のみによって機能するものをピュアP2P、ナップスターのようにサーバの仲介を必要とするものを、ハイブリッドP2Pと呼んでいる。

その他には、KaZaASkypeに使われているスーパーノード型ハイブリッドP2Pがある。
特徴

ナップスターに代表される第一世代P2P(ハイブリッドP2P)は、中央サーバに依存する為、ネットワークへのトラフィックは少ないが、耐障害性が低く、サーバがダウンしたらネットワークが形成できないという弱点があった。それに対してグヌーテラに代表される第二世代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がNullsoftのプログラムを入手して、グヌーテラプロトコルの動作原理を理解するためにリバースエンジニアリングした。彼の仕事のおかげでテキストベースのUNIXプログラムを作ったJosh Pieperや、より使いやすいGUIをもったプログラムを作ろうとしたGene KanやSpencer Kimballのような人々によってソフトウェア開発がなされることになった。
グヌーテラ第二世代

ユーザの裾野が広がるにつれ、システムの重大な問題が取り沙汰されはじめた。ネットワークはPINGリクエストで溢れかえり、同時に非常に多くの検索クエリーで高負荷になった。より高速なハブとしての役割を果たすコンピュータに接続した低速のモデムといった形でネットワークのトポロジーは非効率的だった。第一世代のソフトウェアの深刻なバグによってパケットがネットワーク上を不明確にさまよっていた。ネットワークは“本来は少数のユーザのために設計されたもので”100人単位から10,000 単位のユーザに膨張しトラブルに見まわれた。「ただ乗り」や「何も提供していないのにファイルを取り出すだけの人々」によってもユーザが探し物をするのを難しくした。

もう一度、情熱的なコミュニティーが救済に乗り出した。Bob Schmidtが初めてのホストキャッシングシステムを開発した。プログラマー達はGnutella 0.56のコードを修正し、パケットが適切に運ばれるようにTTLのバグを取り除こうとした。そして、Jorge Gonzalesはネットワークをダメにするスパマーたちからネットワークを守る行動に出た。

この時点で、物事は個人の開発者が全てをまかなうにはあまりにも複雑になっていた。彼らはコードを書き、報道やユーザやお金の工面をしなければならなかった。こういった事情で、早急に商業的な努力が介入し、「救済に乗り出す」必要が出てきた。Clip2はgnutellahosts.comを開発し、より良いホストキャッシュの実装し、いくらかナップスターのようなトポロジーをグヌーテラネットワークに組み入れて合体させるようなやり方で動く小さなサーバリフレクターを開発した。
グヌーテラ互換サーバント

名称プラットホームライセンス
Acquisition
macOSシェアウェア
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頁。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:17 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef