つまり、誰かが私からファイルをダウンロードしている場合、それは私がホストであり、彼が私に接続していることを意味しませんか?
それとも私は彼に接続していますか?
いずれにせよ、私たちの1人は開いたポートが必要ですよね?
ルーターにコンピューターへのオープンポートルーティングがないのですが、接続をどのように受け入れていますか?
ルーターがUPnPをサポートしている場合、使用しているp2pアプリケーションが、開いているポートを手動で構成しなくても、ルーターのポートを開いている可能性があります。
それ以外の場合、アプリケーションがNAT traversalと呼ばれるプロセスを使用している可能性があります。これは、p2pアプリケーションやGoToMyPCやHamachiなどのリモートデスクトップアプリケーションで一般的です。このテクノロジーは、ネットワークアドレスを介して機能するように設計されています。変換。これはファイアウォールと見なされますが、プライベートネットワークがインターネット上で単一のIPアドレス(ルーターが使用するもの)を共有するための手段でもあります。
BitTorrentのようなプロトコルでは、接続の両側の一方がポート転送をオンにしている限り、オープン側が常にホストとして機能します。両側が開いている場合は、どちらかの端が「ホスト」である可能性があります。両側が閉じている場合は、接続をネゴシエートするために接続が開いているサードパーティが必要です。これはskypeのような方法です(サードパーティはスーパーノードと呼ばれます)
ここに良いブログ投稿があります skypeがスーパーノードをどのように使用し、ファイアウォールを回避するためにどのように使用するかを説明しています。
開いているポートと電話番号を比較します。
ダイヤルする電話はあるが、電話を受けるための電話番号はないことを想像してみてください。
2つのパーティが互いに話す(または1つが常に話している)場合、実際に誰がダイヤルするかは関係ありません。重要なのは、少なくとも1人が電話番号を持っていて、もう1人のパートナーが彼に電話をかけることです。
それらのいずれにも電話番号がない場合、一部のシステムではスーパーノードが使用されます。これは、それぞれから1つずつ、2つの呼び出しを受信し、それらを結合する友人である可能性があります。両者のどちらにも電話番号がない場合、これが唯一の話し方です。問題は、会話がこのスーパーノードの友人の電話回線の品質に制限されることです。
このアナロジーによって、考えられる3つのシナリオを理解しやすくなることを願っています。