「ed2k:// ...」形式のハイパーリンクとそのアプリケーション。 パート1:ed2kハイパーリンクのファイル形式の説明

10年以上前(インターネットアーカイブで確認できるように 、2000年9月6日)、eDonkey2000プログラムの最初のリリースが誕生し、 「ed2k:// ...」形式のハイパーリンクのアイデアと実装を世界に紹介しました。 1つ目は ファイルハッシュ2つ目は URI (リソース識別の統一された形式)、 3つ目は ファイル共有です。



6年後(2006年9月)に、RIAA弁護士は裁判所を通じてeDonkey2000の製造業者にプログラムの配信を停止させ(さらに、そのWebサイトをファイル共有違法に関する不吉な警告に置き換えました)、ハイパーリンク形式「ed2k:// ...」が継承され、今日まで広く使用されています。すべてのファイル共有プログラム、およびファイル共有ネットワークed2kまたはKadを扱うすべてのサイトでの1日 。 さらに、それ以降、この形式は2006バージョンと比較てわずかに発展しました。 これは、そこに具現化されたアイデアの壮大な力です。



「ed2k:// ...」ハイパーリンク形式を実装するプログラムの人気もかなり高くなっています。 栄光の頂点に立つeDonkey2000プログラムは、英語の単語「donkey」(「donkey」)に由来し、ロシアのユーザーを念頭に置いて、俗称「donkey」 と大人気の ブラウザ IEで同じニックネームで戦っています。 くまのプーさんについての物語から、そして、おそらく、いくつかのウェブ標準の誤った解釈における彼のロバの頑固さまで、 「ie」の転写と ロバEeyoreの名前 (アニメへの愛情と、「é」を日本の「否定」否定として理解したことは、ご存知のように広まっていませんでした。)そして、eDonkey2000のイデオロギー「heirs」の主なものは、無料のオープンソースeMuleプログラムです。 SourceForge Webサイトで最も人気のある (ダウンロード数で)製品のリスト



ファイルのハッシュ。 URI ファイル共有。 これら3つのアイデアはすべて、 「ed2k:// ...」というハイパーリンクの形式でどのようにまとめられましたか?



3つのソース、3つのコンポーネント...



ファイルのハッシュは、各ファイルを長い(マルチビット)であるがハッシュと呼ばれる小さな数に一致させることができる数学的プロセスです。 さらに、ファイル内の小さな変更でさえ、この数(ハッシュ)の大きな変更につながるため、原則として、異なるハッシュは異なるファイルに対応します。 もちろん、ハッシュの数は非常に大きい(たとえば、 160ビットハッシュの場合は約2 160 )ので、衝突(つまり、同じハッシュを持つファイルのペア)が可能です。 ただし、めったにありません。 したがって、ハッシュアルゴリズムに数学的に証明された暗号強度がある場合(つまり、既知のハッシュに対応するファイルを取得するのが計算上困難な場合、またはハッシュが同じである2つの異なるファイルを取得する場合でも)、ファイルハッシュを一意の識別子として使用できますファイルコンテンツ (同時にファイルコンテンツの整合性をチェックする手段として)。



URI (リソースを識別する統一された形式)の考えは、1994年にURL(リソースをアドレス指定する統一された形式)、つまりファイル(またはファイルではなく、別のリソース)のアドレスを記録する方法で1994年に生まれましたリソースの場所を理解できました。 その後(1994年6月にRFC 1630を作成)、 バーナーズリーは単一形式のアドレス指定のアイデアを一般化し、単一形式の識別のアイデアを定式化しました。たとえば、識別子urn:isbn:0-395-36341-1は国際標準ブック番号(国際標準どの本が意図されているを明確かつ明確に示すための書籍番号(ISBN)。



eDonkey2000 作成者であるJed McCalebは、 ハッシュ (ファイルのコンテンツの一意の識別子)がそのファイルのURIを記述するための完璧なベースであることに気付きました。 ファイルの入手の問題については、答えはp2pファイル共有です。これは、1999年6月にNapsterの登場によりShawn Fanningによって最初に実装された、グローバルネットワークのユーザー間での自動検索とそれに続くデータの直接転送です。 ハッシュを使用すると、eDonkey2000は一度に2つの方法でNapsterを超えることができました。 最初に、ファイルはネットワーク上でハッシュによって検索されたため、ファイルの名前を変更しても見つからないことはありませんでした(Napsterでは、名前とサイズの情報のみがクライアントから検索サーバーに転送されましたが、ファイルの内容について)、 2番目に、ファイル受信者は、他の複数のネットワーク参加者(Napsterのような参加者からではなく)からファイルのフラグメントを収集できますが、ハッシュによって整合性がチェックされているため、ファイルの整合性を確認できます。



ファイルリンク



Adobe Reader Xの配布例を使用して、ファイルを指す典型的なed2kハイパーリンクがどのよう見えるかを示します。
ed2k://|file|AdbeRdr1001_en_US.exe|48536984|249634B84340FEB5778EC09A2A9C2B87|/
      
      





この例では、形式が次のようになっていることがわかります。

 ed2k://|file||||=|/
      
      





MediaWikiテンプレート(Wikipediaなど)と同様に、 ed2kハイパーリンクは、 縦棒で区切られた一連の値で構成されています。 最初は常にURIスキーム( "ed2k://")で 、最後はスラッシュ( "/")です。 2番目は、リンクのタイプを示すキーワードです。 ファイルed2kハイパーリンクの場合、 これは常に「ファイル」です。 厳密な順序でファイル名、ファイルサイズ(バイト単位) ファイルのed2kハッシュが続き、その後に「name = value」という形式のオプションパラメータが続きます



URIに常にあるように、ファイル名には、必須の16進バイトエンコーディングの対象となる補助文字を含めることができます。 たとえば、スペースは「%20」という形式で書き込まれ、ロシア語の文字「k」 は「%D0%BA」 という形式で書き込まれます (UTF-8では、 2バイトに対応します)。



ed2kハッシュは、MD4アルゴリズムを使用して、複数のファイル共有参加者からのファイルの異なる断片の前述の受信を可能にする方法で計算されます。
ウィキペディアによれば、この目的のために、大きなファイルはそれぞれ9,500キロバイト(9,728,000バイト)の等しいチャンクと小さなサイズの最後のチャンクに分割され、その後各チャンクに対して128ビットの MD4ハッシュが計算されます。 (ファイルサイズが9500キロバイトの倍数である場合、最後のチャンクは空と見なされますが、それからのMD4ハッシュは計算されます。)その後、受信したMD4ハッシュはエンドツーエンドで結合され、独自のMD4ハッシュがed2kファイルハッシュになります。 ファイル全体のサイズが9500キロバイトより小さい場合、そのMD4ハッシュファイルのed2kハッシュになります。
ファイル共有プロトコルは、クライアントすべてのチャンクのMD4ハッシュのリストを交換するように設計されています。 したがって、一般的なed2kハッシュを使用すると、このリストの妥当性を確認できます。 そして、ファイル共有を通じて他のファイル共有参加者からそのような9,500 KBのファイルチャンクの少なくとも1つを受信すると、クライアントはすでにこのチャンクの整合性を確認し、すぐにファイル共有に参加して、既存のチャンクを他の関係者にさらに配布できます。



オプションのパラメーター



オプション(名前付き)パラメーターは次のとおりです。

ed2kファイルハイパーリンクの作成



ファイルサイズ(バイト単位)および1(ed2k)または2(ed2kおよびAICH)ハッシュを含むed2kハイパーリンクを作成するために、ファイル共有に参加したり、eMuleまたはed2k および(または) Kadネットワーク用の別の同様のクライアントをインストールしたりする必要はありません。 SourceForge Webサイトを通じてeMule 125 Kb ZIPの作成者によって配布されている単純なLinkCreatorプログラムは、Windows(またはWine)でこのタスクに簡単に対処できます。



(続きます...)



All Articles