6

Live Messenger や Google トークのデスクトップ クライアントなどのインスタント メッセージング アプリケーションを使用すると、コンピュータ間でファイルを転送できます。確かなことは言えませんが、コンピューター間で転送されるデータが Microsoft や Google の IM サーバーを経由せず、IM ソフトウェアを搭載した 2 台のコンピューターが互いに直接通信していることは確かです。クライアント間のこの直接接続が確立されているかどうか、またはどのように確立されているか、また同様のものを自分で実装する方法を考えています。

私はパーソナルネットワークでの作業経験がありますが、クライアントとサーバーの関係しか理解していません。サーバーは常にリッスンしており (ポートはファイアウォールによってブロックされていません)、クライアントはデータが必要なときはいつでもサーバーにリクエストを送信します。

4

5 に答える 5

6

「ピンホール」と呼ばれる多くのクライアントによって使用される方法があります:

私はあなたにUDPパケットを送信しますが、これは私のファイアウォールに穴を開けます(私のファイアウォールによる応答と見なされるUDPパケットをあなたが送信し、私が受信できるようにします)。そのパケットはファイアウォールによって破棄されます。

ファイアウォールに穴を開けて、UDPパケットを私に送信します。そのパケットは私に届くはずです。その時点で、別のパケットを送信してあなたに届き、ファイアウォールを介してUDPを介して通信できます。

于 2009-08-19T16:08:20.537 に答える
6

ピアツーピア VPN (仮想ネットワーク間) に少し似たHamachiというプログラムを使用しました。次に、クライアント・サーバー・アプリケーションをそのまま作成しました。これは、NAT ルーターを処理するために必要なトリックなしで、インターネット経由で接続する機能を取得するための迅速な方法でした。

「適切に」行う必要がある場合、一般的な方法の 1 つはudp ホール パンチングです。Web リクエストを送信すると、ファイアウォールは応答でデータが返されることを認識しています。秘訣は、クライアント A とクライアント B の両方がインターネット上のサーバーに接続することです。サーバーは、クライアント A がクライアント B に行った要求の詳細を渡します。また、その逆も同様です。初期接続が確立されると、メイン サーバーがなくなっても通信を継続できます。

于 2009-08-19T16:30:35.920 に答える
0

両方のクライアントがピンホールされていないファイアウォールの背後にあり、VPNソフトウェアが使用されていない場合、それらはサードパーティのサーバーを介して通信しています。限目。

于 2009-08-19T16:41:52.947 に答える
0

これを実装する場合、いくつかのオプションを検討します。

  1. ファイアウォールに特定のポートをネットワーク内の PC に転送させます。これにより、外部からサーバーに接続できます。

  2. ファイアウォールの背後にあるクライアントを、ファイアウォールの外側にある可視サーバーに接続します。

要するに、会話の少なくとも 1 つのパーティ (サーバー) が他のパーティに接続できるように、他のパーティ (サーバー) に表示される必要があります。方法に関係なく、接続が確立されると、クライアントとサーバーは問題なくやり取りできます。

于 2009-08-19T15:59:12.037 に答える
-2

ほとんどのトロイの木馬が行うことを行います。

逆接続

編集:

ファイアウォールの背後にある 2 台のマシンでは、ある種の第 3 の「プロキシ」が必要になります。

于 2009-08-19T16:23:45.027 に答える