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つを受信すると、クライアントはすでにこのチャンクの整合性を確認し、すぐにファイル共有に参加して、既存のチャンクを他の関係者にさらに配布できます。
オプションのパラメーター
オプション(名前付き)パラメーターは次のとおりです。
- sパラメーターは、ファイルのソースを指定します。これは、ファイル共有の代替手段です。 現在、これは通常HTTPサーバーですが、2006年の規格では、オーバーネットネットワークからファイルを受信する可能性が規定されています。 例:
ed2k://|file|AdbeRdr1001_en_US.exe|48536984|249634B84340FEB5778EC09A2A9C2B87|s=http://ardownload.adobe.com/pub/adobe/reader/win/10.x/10.0.1/en_US/AdbeRdr1001_en_US.exe|/
1つのed2kハイパーリンクにこのようなパラメーターがいくつか存在する場合があります 。
- 「p」パラメータには、ファイルチャンクのMD4ハッシュの完全なセットが含まれており、一般的なed2kハッシュよりも信頼性が高く、完全性の完全な検証が可能です。 「s」パラメーターから URL からファイルがダウンロードされ、他のed2kクライアントとの通信(チャンクのハッシュを取得する)が実行されなかった場合、このセットにより、ファイルとハッシュが一致しないことを確認するだけでなく、1つ以上の破損したチャンクを識別できます。 例:
ed2k://|file|AdbeRdr1001_en_US.exe|48536984|249634B84340FEB5778EC09A2A9C2B87| p=F9FB4A4E8EC04320AC49D0F796807795: 9159AD7B29693322F8455258F6D02B3C: A51E847EB4E2D67BD04F1AF95D0479EB: A489A6E25ADF20366E8C4BCD69DD0DA9: 3315A3CDAE777B7AE8E734161DAEFFE3|/
この例には、改行で折り返すためのスペースが含まれています。 実際のURIはスペースなしで記述されます。
- 「h」パラメーターを使用すると、ファイルの整合性をさらに制御するために、一部の最新のed2kクライアント (eMuleなど)で使用されるAICHハッシュを指定できます。 (各180キロバイトのファイルの小さな断片に対してSHA-1アルゴリズムを使用して計算され、その後、ハッシュからのハッシュは一種のツリー構造内に配置されます。パラメーター「h」はツリーの最上部で取得されたハッシュを示します。)このパラメーターの存在は衝突を引き起こします。また、送信中にファイルの整合性に違反した場合のエラー修正を簡素化し、どのチャンクが破損しているかをすばやく見つけることができます(ファイル共有のチャンク全体を再ポンプする代わりに、このチャンクの1つを復元します)。 例:
ed2k://|file|AdbeRdr1001_en_US.exe|48536984|249634B84340FEB5778EC09A2A9C2B87| h=5XYGXYHANLAEAL3Y67HVF32OOJ2HXCCP|/
この例には、改行で折り返すためのスペースが含まれています。 実際のURIはスペースなしで記述されます。
- 「f」パラメーターを使用すると、より完全なed2kハイパーリンクを含むテキストファイルの場所を指定できます。2038文字の長さを超える場合は、一部の標準およびブラウザーでURIのサイズの制限になります。 例:
ed2k://|file|AdbeRdr1001_en_US.exe|48536984|249634B84340FEB5778EC09A2A9C2B87|f=http://example.org/long.ed2k|/
現代のすべての顧客からはほとんどサポートされていないのではないかと思います。
- 「sources」パラメーターには特別な形式があります。常にリンクの最後に書き込まれ、 スラッシュ(「/」)で構成されるパラメーターが先行します。 したがって、「sources」パラメーターを理解していない(同時に、スラッシュをed2kハイパーリンクの終わりの兆候と見なす)クライアントは、それを自由に無視できます。 「sources」キーワード、コンマ、 ed2kクライアントのアドレス(またはドメイン名)およびポートが続きます。 例:
ed2k://|file|AdbeRdr1001_en_US.exe|48536984|249634B84340FEB5778EC09A2A9C2B87|/|sources,ed2k.example.net:6789,ed2k.example.org:12345|/
この例には、改行で折り返すためのスペースが含まれています。 実際のURIはスペースなしで記述されます。
このようなアドレスは長期的なものでなければならないことは明らかです。これは、永続的なIPアドレスを予約するか、ドメイン名を動的DNSにバインドすることによって実現されます。
ed2kファイルハイパーリンクの作成
ファイルサイズ(バイト単位)および1(ed2k)または2(ed2kおよびAICH)ハッシュを含む
ed2kハイパーリンクを作成するために、ファイル共有に参加したり、eMuleまたはed2k
および(または) Kadネットワーク用の別の同様のクライアントをインストールしたりする必要はありません。 SourceForge Webサイトを通じてeMule
( 125 Kb ZIP )の作成者によって配布されている単純な
LinkCreatorプログラムは、Windows(またはWine)でこのタスクに簡単に対処できます。
(続きます...)