Imony Project
FlashBox
トップページImonyとは

Imony

Imonyとは

ImonyとはFreenetとWinnyの意志を継いだPureP2Pソフトです。実用的であるという証明をするため画像共有機能を標準搭載します。2007年より開発する予定です。

Imonyの存在意義

開発言語、オープンソース

FreenetのようなJavaを採用するようなことはなく、Winnyと同じくネイティブコンパイルできる様にします。またマルチプラットフォームを実現するために全体にわたってwxWidgetsを採用する予定です。

効率

Freenetは目的の物の存在場所がわからないために取得効率が悪いという欠点があります。加えて大容量になった場合は集まる確率が下がります。それを改善するべく色々と工夫をこらします。手法に関してはImonyで使用する分散ハッシュテーブルに詳細を載せています。
※ここでの「存在場所がわからない」というのは「所持者がわからない」という意味ではなく、取得先がわからないという点を言います。

通信

ImonyはIXへの負荷を減らし、輻輳を減らすことを目的としています。現在のP2Pは近くのホストと遠くのホストの二つの選択肢があった場合も、接続する可能性は均等になっています。これを改善し出来る限りIXへの負荷の低減します。またUDPを余裕を持って使う事により輻輳の低減をし、独立したパケットにより返答の必要をなくすことを予定しています。
※少し距離を考えている面のあるP2Pもあります(Napsterなど)。しかしこれはPINGをいくつか投げている点で無駄なパケットが発生してしまっています。

匿名性

たとえ作者にでも通信内容が見られないことが目標です。ファイルの断片(256KBブロック)しか存在しない状態にすればよりもっと強力な撹乱が可能になるのではないかという予測に基づき、さらなる匿名性の充実をします。

転送時にIDを知らせないことに注意してください。なぜなら中継は近いIDを使用するという特性を利用して中継かどうかの判別を困難にする必要があるからです。もちろんのことながらIDが無くてもIP:Portさえあれば通信は可能です。

また通信開始時に公開鍵さえも送信する事はありません。相手の公開鍵はあらかじめ手に入れておく必要があります。ですので初期ノードリストには公開鍵も含むことになります。詳細に関してはImonyで使用するRSA公開鍵をご覧下さい。

中継による匿名性向上、通信負荷改善

Winnyでは主にリアルタイムな中継をしています。Imonyではトラフィック上の無駄となる可能性の高い(パケットの損失率の高い)Winnyのようなリアルタイムな中継は予定していません。かわりに誰が中継しているかをある程度予測可能な固定型の中継を予定しています。中継用ファイルが発生するのは初期拡散時か、ファイル位置情報が一定以上になった時だけです。中継先は出来る限りファイルIDハッシュと近い所にします、そうすればファイルブロックのリクエスト後にすぐに転送開始可能になり通信量の改善となるからです。

P2P Core(P2P Net+P2P File)+GUI

P2P Core(P2P Net+P2P File)+GUIにわけることで開発効率を上げます。セキュリティーソフトにひっかからないように暗号化されたTCP/IPで相互に通信をを行い画像共有ソフトを実現します。基本的に問題のない部分(通信制限個所以外)はソースを公開します。
  • P2P Core(CUI)…IPv6対応の匿名なP2P通信に特化したソフトとして公開します。共有できる物は数GBまでのデータです(ただし100MBまでを推奨します)。内部では通信用と再構築用にわけられています。
  • GUI…検索、結合、入力、出力(表示)を行い、共有データをP2P Coreへ送信するソフトです。