From: <abe...@gm...> - 2006-10-05 16:54:35
|
お疲れです。阿部です。 スカイプのサイトは見てみたよ。 もしかしたら間違ってるかもしれないけど、そのときはすいませn。 どうも松永君の記載を見ていると「UDPホール・パンチング」を間違えてないかと <前提> ノードA:グローバルIP保持 ノードB:ローカルIP(ルータ越し) 「ノードBからノードAへUDPパケットを送る場合はノードBルータにA→Bエントリが形成され ノードAからノードBへの返信UDPパケットはそのエントリを元にルータを通過し、ノードBへ届く」 上記はUDP通信として本来想定している動作であり、そのエントリ生成機能を規定外利用しているのが「UDPホール・パンチング」機能だよね? したがって上記例では対応していないルータはないはずだよ。 意図的にUDPを許可していない可能性はあるかもしれないけど、そんなプロバイダはないとおもう。そしてレオネットが対応しているかどうかはリアルタイム性を要求するネットげーを 試してみればわかるんじゃないかな?>西村君 んで、提案させてもらうと 基本的には(1)案なんだけど、 将来的に機能拡張という形で搭載と言う方向性を考えて(1)変則案を提示します。 ・新たなノード種別として「プロクシノード」を定義する。 対象ノードはポートが空けてある一般ノードすべて ポート未空ノード(以降「ノードA」)はプロキシノード(以降「ノードP」)に対し定期的に ファイルキーを登録。(キーサーバには送信しない) ノードPは自身のファイルキーと同時に自分のファイルキーとして ノードAのファイルキーをキーサーバーに代理登録。 ノードAのファイルがほしいノード(以降「ノードF」)はまずキーサーバから 持ち主がノードPと認識し、ノードPへダウンロード要求を送信します。 ノードPは自分の持っているファイルキーではないと判断すると、 ノードFに対して、TCPポートを空けて待機するように指示を出します。 ノードAは定期的にファイルキー登録要求をノードPに送信しているため、 ノードPはそのファイル登録キー登録要求の応答にあわせて、 アップロード指示をノードAに出します。(UDPとしての通常の手順) ノードAは」指示をうけるとノードFへファイル転送コネクションをとります。 これでノードA→ノードFへのファイル転送が行われます。 補足として、ノードPが扱うポート未空けノードは1台or2台くらい プロキシノードの探し方はキーサーバからランダムに検出 ・一般ノード間のやりとりだけの変更になるため、後からでも対応可能? ・一般ノードのファイルキー登録処理周辺が複雑化しそう 等ありますが、やはりほしい機能です。 ご考慮ください 06/10/05 に 松永 健太郎<ken...@ya...> さんは書きました: > 松永です。 > > 少し情報が足りないので内容を追加します。 > > 3番の案はルータがUDPホール・パンチングに対応している場合のみ可能。 > > 松永 健太郎 <ken...@ya...> wrote: > > 松永です。 > > >それって西村君とかレオネットユーザーを見捨てると言うこと? > > そうなりますね。 > 西村君の名前を出されるとかなり心苦しいところではあるけど。 > 見捨てる方向のほうが楽できると思う。 > ちょっと前に阿部君とそういう話しなかったけ? > > UDPホール・パンチングってどんなものか見てみた? > > この仕組みで、ポート開けているノードと同じような通信を > ポート開けていないノードにやらせようとすると、結構つらいことになるよ。 > > UDPホール・パンチングの何がつらいかっていうと、 > UDPホール・パンチングではルータの外側Aから内側Bに対して通信するために、まず内側Bから外側Aにパケットを投げて道を作る必要があるけど、つまり、外側から勝手に通信を始めることが出来ない。 > > これじゃ一般ノードにしても、ファイルアップロード時には、外側から要求が来るわけだから、外側から要求を受け付けるには、以下のどれかの選択に迫られるね。 > > 1.外部からの要求を受け付ける代理ノード(もちろんポートが開いている)を定義して、内側のノードは外側からの通信を受け付けるために、代理ノードはUDPホール・パンチングでコネクションを確保する。内側のノードにパケットを投げたい時には、代理ノードにパケットを投げる。代理ノードはパケットを転送する。 > > 代理ノードの候補としてはキーサーバーが考えられる。 > ファイルキーを登録する全てのキーサーバに代理登録をしておく。 > > ただし、ルータがUDPホール・パンチングに対応していなかったら、(1)の方法をとっても、外側からUDPのパケットを届けるのは不可能。 > 例えばレオネットのルータがUDPホール・パンチングに対応しているかはかなり怪しい。 > > 2. (1)と同じ MWNN$@$,!"DL?.$rTCPにする。これなら確実に通信可能。 > > 3.諦めて、ポートの内側はダウンロードオンリーする。 > > > 他にも方法は考え付くけど、上の案よりひどいので省略。 > > > 個人的な意見を言わせてもらえば、 > > 1は面倒だし、ルータが対応していないと破綻するので嫌。 > > 2は面倒な上に、普段はUDPなのに、特別ケースでTCPの通信も考えなくちゃいけないので嫌。 > > 3は内側のノードがシステムに一切貢献しないから嫌。 > < DIV>よって、ポート開けられないユーザは見捨てたい。 > 対応するとしても、ずっと後がいいです。 > > > > > > それとも、もっと簡単な実現方法考え付いてる? > 又は、上記の案のどれかと似たような仕組みを考え付いていて、それを受け入れている? > > > 阿部誠 <abe...@gm...> wrote: > 阿部です。 > > 今回のファイル共有システムでは、システム参加者全員がUDPポートを空ける方向で行きましょう。 > それって西村君とかレオネットユーザーを見捨てると言うこと? > > それはないと思うので、 > 少なくても一般ノード(キャッシュサーバ)はポート空けなしで参加可能と言うことにしましょう。 > システム管理サーバ、キーサーバはポート空け必須と言うことにしましょう。 > > 問題は、大多数がポート空けなしになる可能性だけど > ファイル交換時はノード空けなしだと接続対象が大幅に減るので問題ないと思います。 > > > 06/10/04 に 松永 健太郎 さんは書きました: > > 松永です。 > > > > >プライベートIPでの参加ノードはどう取り扱いますか? > > > > アプリケーションのプロトコルで、自分のグローバルIPをネットワーク越しのノードに問い合わせる制御を入れましょう。 > > で、通信相手に自分のIPを伝える時には、問い合わせたIPを使う。 > > 他に良さげな方法ある? > > たしか『Winnyの技術』でここらへんの内容に触れてるよ。(無くしたんだっけ?) > > > > >UDP通信ってポートを空けずに双方向通信ってできるの? > > > > UDPホール・パンチング(下記URL参照)が使えるなら、TCPと同じで片方のポートが開いてればOKです。 > > 使えないなら、両方空けている必要があるね。 > > > > 今回のファイル共有システムでは、システム参加者全員がUDPポートを空ける方向で行きましょう。 > > > > > http://www.atmarkit.co.jp/fwin2k/experiments/skype02/skype02_03.html > > > http://www.atmarkit.co.jp/fwin2k/experiments/skype02/skype02_04.html > > > > > > 関係ないけど、下のページ少し参考になるよ? > > SkypeとかGnutellaのプロトコルについて少し解説してるし。 > > > http://www.atmarkit.co.jp/fwin2k/experiments/indexpage/index.html > > > > 阿部誠 wrote: > > 阿部です。 > > > > プライベートIPでの参加ノードはどう取り扱いますか? > > UDP通信ってポートを空けずに双方向通信ってできるの? > > > > > ------------------------------------------------------------------------- > > Take Surveys. Earn Cash. Influence the Future of IT > > Join SourceForge.net's Techsay panel and you'll get the chance to share > > your > > opinions on IT & business topics through brief surveys -- and earn cash > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > _______________________________________________ > > P2p-sim-develop mailing list > > P2p...@li... > > > https://lists.sourceforge.net/lists/listinfo/p2p-sim-develop > > > > > > > > > > ________________________________ > > [10th Anniversary] special auction campaign now! > > > > > > > > > ------------------------------------------------------------------------- > > Take Surveys. Earn Cash. Influence the Future of IT > > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > > opinions on IT & business topics through brief surveys -- and earn cash > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > > _______________________________________________ > > P2p-sim-develop mailing list > > P2p...@li... > > > https://lists.sourceforge.net/lists/listinfo/p2p-sim-develop > > > > > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > P2p-sim-develop mailing list > P2p...@li... > https://lists.sourceforge.net/lists/listinfo/p2p-sim-develop > > > > ________________________________ > [10th Anniversary] special auction campaign now! > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV_______________________________________________ > P2p-sim-develop mailing list > P2p...@li... > https://lists.sourceforge.net/lists/listinfo/p2p-sim-develop > > > > > ________________________________ > [10th Anniversary] special auction campaign now! > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > _______________________________________________ > P2p-sim-develop mailing list > P2p...@li... > https://lists.sourceforge.net/lists/listinfo/p2p-sim-develop > > > |