5

私が求めているのは、2台のコンピューターが同じポートをリッスンし、情報のパケットがWANIPと同じポートを介してルーターに入る場合です。パケットは両方のコンピューターに送信されますか?ない?どちらか一方?

IE

コンピューター1-(内部IP)-> 192.168.1.3-(ポートをリッスン)-> 4444

コンピューター2-(内部IP)-> 192.168.1.2-(ポートをリッスン)-> 4444

コンピューター3-(接続して送信)-> 24.157.358.45:4444

パケット->コンピューター1およびコンピューター2

VB6のコードは次のとおりです。

LAN.LocalPort = 4444
LAN.Protocol = sckTCPProtocol
LAN.Listen

VB6ProfessionalのMicrosoftWinSockControl6.0でWinSockオブジェクトを使用しています

明確にする必要があることがあれば、私は喜んでいます。

4

4 に答える 4

5

ルーターは、通信が確立されていない限り、どちらのマシンにもインバウンド パケットを送信しません。

192.168.1.3 がポート 4444 から他のマシン (4.5.6.7 など) を呼び出した場合、ルーターはその外部アドレス (24.157.358.45 [sic] :5555 など) に任意のポートを割り当て、パケットを 4.5 に渡します。 .6.7. 4.5.6.7 は応答パケットを 24.157.358.45:5555 に送信します (それが認識している唯一のアドレスであるため)。ルーターはそれらを 192.168.1.3:4444 に中継します。

これは通常のプロセスですが、このスキームには、ルーターの背後にあるマシンとの通信を巧妙に確立できるようにするための詳細が多数あります。

パブリック アドレスを持つルーターの背後にあるプライベート IP アドレスを持つマシンを持つシステムは、ネットワーク アドレス変換 (NAT)と呼ばれます。かなり深いテーマです。

于 2012-11-14T01:22:02.673 に答える
4

ルーターに関する私の知識から、ポート転送が設定されていない限り、ルーターはそのポートで送信されたパケットをすべて破棄します。

ポート フォワーディングが設定されている場合、パケットを受信するように設定できるコンピュータは 1 台だけです。

于 2012-11-14T01:20:31.083 に答える
3

パケットが、ルーターの背後で実行されているサーバーとの新しい TCP 接続を確立するための受信要求である場合、ルーターには、ルーターの構成で静的に、または uPNP または SNMP を介して動的に構成された明示的なポート転送規則が必要です。 24.157.358.45:4444 の受信パケットを 192.168.1.2:4444 または 192.168.1.3:4444 にルーティングするルーター。そうでない場合、パケットは破棄されます。いいえ、両方のリッスン サーバーが同じパケットを認識しません。

TCP 接続が確立されると、ルーターはどの特定の LAN マシンがどの接続に関連付けられているかを認識し、それに応じてそれらの接続に属する着信パケットをルーティングします。

于 2012-11-14T01:30:46.980 に答える
2

前の回答は正しいです。ポート転送を有効にする必要があります。有効になっていない場合、ポート 4444 はルーターで閉じられます。

複数のサーバーがあり、現在オンになっているサーバーに転送したいようです。これは不可能です (*)。ルーターは、PC1 または PC2 がポート 4444 でリッスンしているかどうかを気にしません。ポート転送で構成されたアドレスにすべてを転送するだけです。

(*): 可能ですが、追加の作業が必要です。

解決策 1: ルーターをだまして、サーバーが 1 つしかないと思わせる。PC1 と PC2 に同じ IP アドレスを持つ仮想ネットワーク インターフェイスを与え、そのアドレスに転送します。これらのインターフェイスの 1 つだけが有効になっていることを確認してください。ネットワークに重複した IP アドレスがあると、意図しない動作が発生する可能性があります。

解決策 2: どのサーバーがオンになっているかをルーターに認識させます。どのサーバーがオンになっているかを検出し、それに応じてパケットを転送できるルーター (または別のサーバー) で実行するプログラムを作成する必要があります。Linux を使用している場合、プログラム iptables は一見の価値があります。

于 2014-03-27T15:21:48.607 に答える