2

最近、私がプレイしている mmorpg のポートを転送する必要がないことに気付きました。

人々がオンラインでプレイできるゲームに取り組もうと考えており、質問がありました。

常にデータを送受信している双方向ソケット接続を考えると、なぜこれが当てはまるのでしょうか? 彼らのサーバーは、私に接続するために私のファイアウォールを通過する必要はありませんか?

4

5 に答える 5

5

TCP クラッシュの教訓: TCP は双方向プロトコルです。問題は、少なくとも 1 つのホストが開始する必要があることです。MMORPG 内では、自分のコンピューターがサーバーとして機能することは決してないため、誰もそれに接続する必要はありません。ゲームの状態に関するすべての情報は、公開 IP アドレスを持つ会社の公開サーバーを介して渡されます (そして、私の説明を混乱させるために、実際にポート転送を使用している可能性があります... しかし、きれいなネットワーク内部を見る必要はありません。 、プロキシ、およびその他の魔法。)

とにかく、Stackoverflow に接続するときは、サーバーからデータを要求する 1 つのアウトバウンド接続を作成し、その同じ接続を介してデータを受信します。ゲームの代わりにウェブサーバーのみを使用した、まったく同じシナリオ。

于 2009-12-29T19:52:01.780 に答える
2

UPnPを使用すると、多くのルーターに取り組むことができます。ルーターの背後にないサードパーティにアクセスできる場合は、NAT パンチスルーもあります。

いずれにせよ、ポート フォワーディングは、サーバー (または P2P 関係の送信者) として機能する場合にのみ必要です。クライアントはポートを転送する必要はありません。

于 2009-12-29T19:51:55.443 に答える
1

データも入ってきますが、Web にアクセスするためにポートを転送する必要もありません。

発信 TCP 接続を確立すると、NAT ルーターは接続をテーブルに配置します。これにより、データが入ってくると、LAN 内のどのマシンにパケットを送信するかがわかります。

于 2009-12-29T19:50:13.807 に答える
1

誰もが TCP に言及していますが、NAT は UDP にも機能します。最初の発信 UDP パケットは、その送信元ポートを内部 IP アドレスに関連付けます。NAT デバイスは、そのポートへの着信トラフィックを内部ネットワーク上の正しいホストに転送します。

于 2009-12-29T19:53:46.640 に答える
0

つまり、コンピューターが最初に接続 (アウトバウンド) を要求すると、ルーターは、データを戻す必要があると仮定して、自動的にポートを開きます。しかし、あなたのコンピュータが要求することなく、リモート ユーザがあなたのコンピュータに接続できるようにしたい場合、ルーターは通常、パケットの送信先がわからないため、パケットを破棄します (要求されていないため)。したがって、代わりに、ポート N で非請求パケットをコンピュータに配信するようにルーターに指示する必要があります。

別の回答を追加して申し訳ありませんが、すでに受け入れられていることは知っていますが、個人的には、この単純な説明よりも他の回答の方がわかりにくいことがわかりました。

于 2010-01-23T21:04:51.773 に答える