Direct Connect ( DC ) は、ピアツーピアのファイル共有 プロトコルです。Direct Connect クライアントは中央ハブに接続し、相互にファイルを直接ダウンロードできます。Advanced Direct Connect は後継プロトコルと考えることができます。
ハブには、接続されたクライアントまたはユーザーのリストが表示されます。ユーザーはファイルを検索して他のクライアントからダウンロードしたり、他のユーザーとチャットしたりできます。
歴史
NeoModusは、1999年11月にジョン・ヘスが高校生の時にアドウェア「Direct Connect」によって資金提供を受けた会社として設立されました。 [1]
最初のサードパーティ クライアントは「DClite」と呼ばれていましたが、プロトコルのファイル共有の側面を完全にサポートすることはありませんでした。Hess は Direct Connect の新しいバージョンをリリースしましたが、接続を開始するために単純な暗号化キーが必要となり、サードパーティ クライアントがロックアウトされました。暗号化キーはクラックされ、DClite の作者は NeoModus の新しいソフトウェアと互換性のある DClite の新しいバージョンをリリースしました。しばらくして、DClite は MDI ユーザー インターフェイスを持ち、ファイル共有プロトコル用のプラグイン ( MLDonkeyに類似) を使用することを目的として、Open Direct Connect として書き直されました。Open Direct Connect もプロトコルのファイル共有の側面を完全にサポートしていませんでしたが、Javaへのポートはサポートしていました。その後、DCTC (Direct Connect Text Client) やDC++などの他のクライアントが人気を博しました。
DCDevアーカイブ[2]には、2003年から2005年にかけてのDC開発におけるプロトコル変更に関する議論が含まれています。
プロトコル
Direct Connect プロトコルはテキストベースのコンピュータ プロトコルで、コマンドとその情報は元の NeoModus ソフトウェアでは暗号化されずに平文で送信されます (暗号化はプロトコル拡張として利用できます)。クライアントは「ハブ」として機能する中央サーバーに接続します。このハブはコンテンツ検出機能を提供し、クライアントがコンテンツを転送するために相互に直接接続をネゴシエートできるようにします。この中央ハブはメタデータのみを扱うため、コンテンツ自体も提供している場合と同じ帯域幅要件はまったくありません。推定では、1000 人のユーザーを処理するには約 2.5 mbit/s の帯域幅が必要です。[3]
プロトコルの公式仕様は存在しないため、すべてのクライアントとハブ(オリジナルの NeoModus クライアントとハブを除く)は、情報をリバース エンジニアリングする必要がありました。そのため、この記事で参照されているプロトコル仕様は、不正確または不完全である可能性があります。[4]
プロトコルのクライアント サーバー (および 1 つのクライアントが「サーバー」として機能するクライアント クライアント) の側面では、接続が確立されたときにサーバーが最初に応答することを規定しています。たとえば、クライアントがハブのソケットに接続すると、ハブが最初にクライアントに応答します。
このプロトコルには、クライアントまたはハブ用のデフォルトの文字エンコードが指定されていません。元のクライアントとハブは、オペレーティング システムのエンコードではなく、ASCIIエンコードを使用します。これにより、新しいソフトウェアでUTF-8エンコードに移行できます。
ポート 411 はハブのデフォルト ポートで、412 はクライアント間接続のデフォルト ポートです。これらのポートのいずれかがすでに使用されている場合、使用可能な空きポート番号が見つかるまでポート番号が増加します。たとえば、411、412、413 が使用されている場合は、ポート 414 が使用されます。
ハブ アドレスの形式は次のとおりです: dchub://example.com[:411]。ここで、411 はオプションのポートです。
グローバルな識別スキームはありません。代わりに、ユーザーはハブごとにニックネームで識別されます。
クライアント間接続の着信要求は実際の接続にリンクできません。[5]
検索結果を特定の検索にリンクすることはできません。[6]
プロトコルでは、ユーザーを別のハブにキックまたは移動 (リダイレクト) する機能がサポートされています。ユーザーがキックされた場合、ハブはそのユーザーに特定の理由を伝える必要はなく、ユーザーをリダイレクトできる場所に制限はありません。ただし、権限を持つ別のクライアントがハブにキックするように指示した場合、そのクライアントはキックする前に通知メッセージを送信できます。ユーザーをリダイレクトする場合は、理由を添える必要があります。HTTPリファラーに相当するものはありません。
ハブは、ユーザー コマンドをクライアントに送信することができます。これらのコマンドは、単なる生のプロトコル コマンドであり、主に特定のタスクを簡素化するために使用されます。たとえば、ハブは、既定のブラウザーをトリガーして Web サイトにアクセスするユーザー コマンドを送信することはできません。ただし、ハブのルールを表示するために、コマンド「+rules」(「+」はハブにコマンドであることを示します。これは異なる場合があります) を追加することはできます。
プロトコルのピアツーピア部分は、「スロット」の概念に基づいています (求人の空きポジションの数に似ています)。これらのスロットは、特定の時点でユーザーからダウンロードできる人数を示し、クライアントによって制御されます。
クライアント間の接続では、両者が乱数を生成して、どちらが最初にダウンロードできるかを判断し、その数値が大きいクライアントが勝ちます。
ダウンロードの転送とハブへの接続にはTCP が必要ですが、アクティブ検索にはUDPが使用されます。
ユーザーが使用できるモードには、「アクティブ」モードと「パッシブ」モードの 2 種類があります。アクティブ モードを使用するクライアントは、ネットワーク上の他のユーザーからダウンロードできますが、パッシブ モードを使用するクライアントは、アクティブ ユーザーからのみダウンロードできます。NeoModus Direct Connect では、パッシブ モードのユーザーは他のパッシブ モードのユーザーの検索結果を受け取りますが、何もダウンロードできません。DC ++では、ユーザーはそれらの検索結果を受け取りません。NeoModus Direct Connect では、すべてのユーザーにクエリごとに最大 5 つの検索結果が送信されます。ユーザーが検索した場合、DC++ は、ユーザーがアクティブ モードの場合は 10 件の検索結果、ユーザーがパッシブ モードの場合は 5 件の検索結果で応答します。パッシブ クライアントにはハブ経由で検索結果が送信され、アクティブ クライアントは結果を直接受け取ります。
プロトコル区切り文字は、「$」、「|」、およびU+0020 SPACE です。プロトコルには、これらの文字 (および他のいくつかの文字) 用のエスケープ シーケンスがあり、ほとんどのソフトウェアはログイン (Lock to Key) シーケンスでそれらを正しく使用します。何らかの理由で、そのエスケープ シーケンスはDC++ 開発者によって無視され、これらの文字をユーザーが表示する場合は HTML の同等の文字が使用されます。
評価や言語パックなどの機能への関心は続いています。DC++の作者は、ADC(非公式にはAdvanced Direct Connect)と呼ばれるDirect Connectプロトコルの完全な代替も提案しました。ADCは、元のプロトコルと同じネットワークトポロジ、概念、用語を使用します。[7]
元のプロトコルと比較してプロトコルに追加された機能の 1 つの例は、共有ファイルのTiger-Tree Hashing (TTH) のブロードキャストです。この機能の利点は、ファイルが正しくダウンロードされたことを検証できることと、名前に関係なくファイルを検索できることです。
DDoS攻撃に使用されるダイレクトコネクト
このプロトコルにより、ハブはユーザーを他のハブにリダイレクトできるため、悪意のあるハブはユーザーを実際のダイレクトコネクトハブ以外の場所にリダイレクトし、事実上、分散型サービス拒否攻撃を引き起こします。ハブはクライアント間の接続でIPを変更し、潜在的な被害者を指摘する可能性があります。 [8] [9] [10]
CTMエクスプロイトは2006年から2007年にかけて表面化し、その間にDirect Connectネットワーク全体がDDoS攻撃を受けた。[11] [12]この状況により、開発者はセキュリティ問題をより真剣に受け止めるようになった。[13]
2009年2月現在、[14] [15] [16] [17] [12]攻撃を受けた側が接続ユーザーを送信しているハブを見つけられるように、クライアント向けの拡張機能が提案されました。
ダイレクトコネクトネットワーク財団
ダイレクトコネクトネットワーク財団(DCNF)は、ネットワーク内のソフトウェア、プロトコル、その他のサービスを改善することでDCネットワークを改善することを目指している、スウェーデンに登録された非営利団体です。 [18]
記事と論文
DCNFはDCに関連する記事、論文、その他の文書のリストを維持しています。[19]
参照
参考文献
- ^ Annalee Newitz (2001年7月). 「Sharing the Data」. Metro、シリコンバレーの週刊新聞。Metro Publishing Inc. 2021年1月21日時点のオリジナルよりアーカイブ。2006年10月16日閲覧。
- ^ DCDev アーカイブ 2016-12-20 にWayback Machineにアーカイブ
- ^ Fredrik Ullner (2007 年 4 月)。「NMDC のコマンドと帯域幅の推定」。DC++: Just These Guys, Ya Know?。2007 年 10 月 16 日時点のオリジナルよりアーカイブ。2007年 7 月 27 日閲覧。
- ^ 「NMDC プロトコル」。Nmdc.sourceforge.net。2017年 2 月 10 日時点のオリジナルよりアーカイブ。2016 年 12 月 4 日閲覧。
- ^ 「ADC の CTM トークン (または NMDC プロトコルがひどい理由、パート 2)」。DC++: Just These Guys, Ya Know?。2007 年 8 月。2007 年 10 月 15 日時点のオリジナルからアーカイブ。2007年 10 月 7 日に取得。
- ^ Todd Pederzani (2006 年 6 月)。「Filtering Redux」。DC++: Just These Guys, Ya Know?。2007 年 10 月 15 日時点のオリジナルよりアーカイブ。2007年 8 月 31 日閲覧。
- ^ Jacek Sieka と Fredrik Ullner (2019 年 1 月)。「ADC プロトコル」。DCNF。2020 年 12 月 1 日時点のオリジナルよりアーカイブ。2020年 12 月 21 日閲覧。
- ^ Paul Sop (2007 年 5 月)。「Prolexic 分散型サービス拒否攻撃アラート」。Prolexic Technologies Inc。Prolexic Technologies Inc。2007 年 8 月 3 日時点のオリジナルよりアーカイブ。2007年 8 月 22 日閲覧。
- ^ Robert Lemos (2007 年 5 月)。「ピアツーピア ネットワークが DOS 攻撃に利用される」。SecurityFocus。2015 年 9 月 24 日時点のオリジナルよりアーカイブ。2007年 8 月 22 日閲覧。
- ^ Fredrik Ullner (2007 年 5 月)。「分散攻撃の拒否」。DC++: Just These Guys, Ya Know?。2016 年 3 月 15 日時点のオリジナルよりアーカイブ。2007 年 8 月 22 日閲覧。
- ^ Ullner, Frederik (2008-01-17). 「DC が DDoS ツールとして使用されているという報道」 DC++: Just These Guys, Ya Know?. 2016-09-23 時点のオリジナルよりアーカイブ。2017-05-19に閲覧。
- ^ ab Fredrik Ullner (2011-07-20). 「DC が DDoS ツールとして使用されているという長い間失われていた回答」。DC++: Just These Guys, Ya Know?。2011-09-08 にオリジナルからアーカイブ。2011-07-20に取得。
- ^ Furtunã, Adrian (2008 年 7 月). 「DC++ と DDoS 攻撃」(PDF)。2016 年 11 月 9 日時点のオリジナルよりアーカイブ(PDF) 。2017 年 5 月 19 日閲覧。
- ^ Jan Vidar Krey (2009 年 2 月)。「Referral extension」。DC++ Launchpad ページ。2011 年 8 月 12 日時点のオリジナルよりアーカイブ。2009年 2 月 11 日閲覧。
- ^ Jan Vidar Krey (2009 年 2 月). 「ADCPortal wiki の紹介拡張機能」. ADCPortal.com. 2011 年 7 月 7 日時点のオリジナルよりアーカイブ。2009年 2 月 11 日閲覧。
- ^ Eugen Hristev (2009 年 2 月)。「DC++ が破損を指摘」。DC++: Just These Guys, Ya Know?。2009 年 3 月 9 日時点のオリジナルよりアーカイブ。2009 年 2 月 11 日閲覧。
- ^ Toast (2009 年 1 月)。「CTM Review と過去の誤り」。ADCPortal。2011 年 7 月 7 日時点のオリジナルよりアーカイブ。2009 年1 月 27 日閲覧。
- ^ 「DCNF - Direct Connect Network Foundation」。2016年1月25日時点のオリジナルよりアーカイブ。2016年1月7日閲覧。
- ^ Direct Connect Network Foundation: ドキュメントとリソース 2016-12-20 にWayback Machineにアーカイブ
外部リンク
- NMDC プロトコル Wiki (ミラー) 2022-04-08 にWayback Machineにアーカイブされました
- NMDC プロトコル ドキュメント[永久リンク切れ ]
- NMDC プロトコル
