ファイル交換のようなPtoP通信を考えます。
例えば同じLAN内の2端末で通信するときはIPアドレスがわかっていれば通信できる(違っていたらごめんなさい)と思いますが、これがインターネット経由の2端末で通信するときって、何がどうなって通信が確立するのでしょうか?
超超フレンドリーにお願いします!
何でどうして 通信するのかが不明なので
とりあえず サンプル的に ソケット通信のソースなどあげてみました。
通信は、ソケット通信が一般的だと思います。
http://www.hatena.ne.jp/1097545244#
NWのことはあまり詳しくないので、フレンドリーにお願いします! ファイル交換のようなPtoP通信を考えます。 例えば同じLAN内の2端末で通信するときはIPアドレスがわかって.. - 人力検索はてな
URLはダミーです。
インターネット上もLAN上と同じです。基本的には相手のIPアドレスとポートを識別して通信しています。
ルーターなどが挟まっている場合の多くはNAT(内部IP/ポートと外部IP/ポートを変換する仕組み)などを使って、外と内とでうまくやりとりしています。
と、こんな風な説明で分かるでしょうか。
インターネット経由の場合、相手の直接のIPアドレスはたぶんわからないですよね。いろいろな装置を経由していく中で、変換されながら、ということでしょうか?素人でごめんなさい。
http://www.hatena.ne.jp/1097545244
NWのことはあまり詳しくないので、フレンドリーにお願いします! ファイル交換のようなPtoP通信を考えます。 例えば同じLAN内の2端末で通信するときはIPアドレスがわかって.. - 人力検索はてな
URLはダミーです。
インターネットでも、IPアドレスがわからないと通信できません。
インターネットの場合、例として、www.hatena.ne.jpという名前を、IPアドレスの数字
xxx.yyy.zzz.aaaに変換します。
一般的に、その変換は全世界に公開されていますので、
インターネットでも通信できます。
説明でわからなかったら、0ポイントでいいですよ。
ありがとう。いえいえ感謝です。
どこかのwebにアクセスするときはイメージできました。
ファイル交換の場合はどうなのでしょう?URLとか相手端末の
アドレスとかわからないですよね?
Yahoo! JAPAN
urlダミーです。
初対面とフレンドリーは難しいのですが。
Internet でも同じですよ。最終的に到達するIP宛に送るのですから。winny のイメージで言うならば、といかnyの仕組みを知ってるなら簡単でそ?nyは初期ノード追加という行為で、適当に何人かお隣さんを設定して、ほしいFileを持っている宛先をお隣さんがお隣さんに、そのまたとなりに、どんどん聞いていきます。で、最終的に持っておる端末のIPを隣隣に教えていって、最初に聞いた人は、宛先IPを得ます。
nyの場合、ほかにもいろいろと工夫はされていますが、そんな感じです。
Serverがいるタイプのp2pだと、全員がまずServerにつながって、ServerでAddress一括管理です。
一般的にP2Pをするためにも相手のIPアドレスは必要になります。たとえばですが、メッセンジャーやIP電話も対話開始からはP2Pになります。
一般的な手法としては、
1.常設しているサーバーにIPアドレスを登録する仕掛けがあり、皆がそこに一度アクセスする
2.ある種のツールでは、掲示板にIPアドレスを暗号化した情報を登録し、そこを閲覧したときから相手を識別する
3.常設しているサーバーが複数ある場合もある。また、初回のアクセスのみ常設サーバーを用い、それ以後は内部で記憶しているIPアドレスを用いる場合もある。また、同じP2Pネットワーク内の他の端末の情報は、ネットワークに属している端末間で交換する仕組みも考えられる。
要点は、ソフトによってやり方は様々ですが、必ず、最初にアクセスする場所があり、そこからあとは連鎖的に他のIPアドレスを取得可能ということですね。(もちろん、そういう仕組みを作ってあれば、の話ですが。)
http://www.hatena.ne.jp/1097545244?
NWのことはあまり詳しくないので、フレンドリーにお願いします! ファイル交換のようなPtoP通信を考えます。 例えば同じLAN内の2端末で通信するときはIPアドレスがわかって.. - 人力検索はてな
ただ起動しただけでは当然通信相手がどこにいるのかは分かりませんから
アドレスを知っているPCのアドレスを設定しないといけません。
一台、もしくは数台のPCでアドレスを集中管理する方式や、
交換ソフトを起動しているPCその物がその役割を持っている分散方式があります。
あとはそこに問い合わせて通信が始まるという感じでしょうか。
どのソフトでも IPアドレスが わからないと 通信できません。
やり方としてのパターン
その1
サーバーを設け、そこに接続したクライアント同士をサーバーが つなげる。
その2
登録したIPアドレスのリストを接続してきたパソコンに渡して、そのIPアドレスにそってそれぞれ接続する。
MSNメッセンジャーなどは その1のやり方。
Winnyとかいわれるソフトは その2のやり方。
http://www6.plala.or.jp/kozai/
P2P today ダブルスラッシュ
PtoPのことが知りたかったらここでどうでしょう?
Winnyとかがどうやって他所の見ず知らずの端末と繋がっているか知りたいってことでいいのかな?
URLはダミーです。
どれがどのツールの通信方法とかは書かないけれど大きく分けて2つの接続方法があります。
1)ひとつはメインになるサーバがWebのどこかに存在していて、通信を行いたいみんなは一度そこに接続して他の現在アクセスしているコンピュータの情報を得て、PtoPを成立させる方法。
2)それとは別にうちのコンピュータはそのツールでPtoPを行っているよという情報が書かれたファイルを読み込んで、それを元に相手に繋ぎに行く方法とがあります。
この両方を組み合わせたものもあります。
PC-UNIXで最近よく使われるツールは配布元のサイトがアドレスを指定していて、そこに繋ぎに行くと他の通信をしているコンピュータがわかるようになっているものもあります。
http://www.amazon.co.jp/exec/obidos/ASIN/4798105163/qid=10975554...
Amazon.co.jp: TCP/IPの絵本 ネットワークっておもしろい!: 本: アンク
いちおうこんな本とか参考になります。
パソコンA----Aのプロバイダーのサーバー----Bのプロバイダーのサーバー----パソコンB
ってつながれているとします。
IPアドレスは、インターネット用とプロバイダー内用の2種類があって、
パソコンにはプロバイダー内用のIPアドレスのみ、
サーバーにはプロバイダー内用とインターネット用のIPアドレスがあります。
で、パソコンからサーバーにはプロバイダー内用のIPアドレス、
サーバー同士はインターネット用のIPアドレスで通信して、
パソコンAからパソコンBにつながっています。
http://japan.internet.com/webtech/20040331/6.html
Japan.internet.com Webテクノロジー - P2P の誤解:分散性とサーバー不要論(1)
P2Pを有名にしたNapsterは、サーバに各ホストのインデックスを持っていたそうですね。
その後のサーバを用意しないP2Pネットワークでも、ホストから既存のネットワークに接続して、少なくとも一時的にはネットワークの1ノードとして登録してもらう手順になると思います。
Yahoo! JAPAN
URLはダミーです。
PtoPの場合は、大きく分けると二種類方法があって、
一つは、一元集中型
もう一つは、分散型で
一元集約型は、一台の大本になるサーバが
すべての通信先のアドレスとファイルの
台帳を持っていて、
何々のファイルってどこにあるのって
聞かれれば、どこどこのマシンにあるよ
っておしえてくれてそれから通信を始め
るってやり方で、
分散型は、みんなで何々のファイルを
持ってるのは誰って台帳をみんなで
回し見しながら書き込んでいって
ほしいファイルがあればその台帳
を見てファイルを持っているマシンを
探すってやり方になります。
分散型でも、いろいろあって、
台帳を暗号化してたり、
直接通信せずに、誰々のマシンなら
知ってるよって程度の台帳にしておいて
通信の秘匿性をあげているのもあります。
フレンドリーでうれしいです!
DynDNS -- Dynamic DNS, E-Mail Delivery and Other Services
・アドレスの解決に↑を利用します。
・ダイナミックDNSサービスと言います。
・公開する側のパソコンから↑のアドレスを閲覧に行きます。
・そうすると、自分がISPから借りている世界でたった一つのIPアドレスがわかります。
・クライアント側から、先ほどのアドレスに対して接続をすると、PtoPの接続になります。
・が!ここで問題があります。
※ISPからはいつも同じアドレスを貸し出してくれない。
※Routerを利用していると、RouterのIPセキュリティツールが作用して、サーバーに接続できない。
アドレス解決に関してはdyndnsでぐぐってると
IPマスカレードについての説明をしています。
http://www.atmarkit.co.jp/fwin2k/experiments/gnutella_for_admin/...
ネットワーク管理者のためのGnutella入門 − @IT
gnutellaというP2Pソフトの説明がわかりやすく書いてあります。
インターネットでもIPアドレスを知らないと通信できないので
Winnyなどの分散型の場合伝言ゲーム状態で相手を見つけ情報を得ます。
逆にWinMXのようなのはサーバがあり、その情報が情報を知らせてくれます。
ソフトによってもちろん動作は違いますが、Aさんが持ってるファイルの名前の一覧表をある特定のサーバー上で公開して、Bさんは欲しいファイルの名前をサーバー上で探して、サーバーにリクエストを投げるとAさんのIPアドレスがサーバーから送り返されて後は1対1の交換をします。
通信にはIPアドレスとポートが必須の情報になります。で、通信するにはその情報が必要になるわけですが、上記に具体的にアプリ単位で説明があります。
winny node auto insurance online at nynode.info
WINNYの場合、一番最初の起動においてはどこかのIPアドレス(ノード)を登録しておかなければ通信相手を見つけることは出来ません。
そこで、このようなページからノードを拾って接続できるようにします。
そして、誰かとP2Pを成立させることができると、その人のノード情報からほかのノードへの情報が得られることとなるので接続が芋づる式に広がっていきます。
皆様ありがとうございました!かなり理解できました!途中からコメント全然できなくてごめんなさい!
質問の仕方が悪いかもしれないので、足りない条件は随時補わせてください。基本的にはWinnyのようなファイル交換のイメージがあって、端末と端末で通信を確立させることにおいて、その仕組みを理解しようとしています。サイトの紹介でもよいのですが、フレンドリーな言葉での説明でも嬉しいです。