5

NAT の特定のシナリオに興味があります。NAT の下でグローバル IP アドレスを共有する 4 台のコンピューターがあるとします。NAT ボックスは、要求を転送するコンピュータを知るために内部記録を保持していることを理解しています。しかし、コンピューター #2 でファイルをダウンロードしようとしているとしましょう。そして、コンピューター #1、#3、および #4 で、私は普通に Web を閲覧しているとしましょう。ブラウザーがそのファイルを取得するために TCP 接続を開始するとき、ブラウザーはどのコンピューターにファイルを渡すかをどのように判断するのでしょうか? つまり、4 台のコンピューターのそれぞれがポート 80 を使用して Web を閲覧していますよね? NAT のレコードは、どの「ポート 80」がどのコンピュータに属しているかをどのように区別しますか?

4

2 に答える 2

15

インターネット上のそれぞれの固有の TCP 接続は、4 つの数字-で構成されています{source IP, source port, destination IP, destination port}

NAT ゲートウェイ (GW) はこれを変換し{GW public IP, GW-mapped port, destination IP, destination port}て、外部ルーターがこの特定のゲートウェイにパケットを返すことを認識します。また、これらのマッピングされたポートのソース IP とポート番号へのマッピングを の行に沿って保持し{GW-mapped port -> {source IP, source port}}ます。これにより、応答パケットを送信する内部マシンを特定できます。

于 2010-05-23T05:10:58.523 に答える
5

「http のポート 80」という概念は、このようには機能しません。コンピューターが Web を閲覧する場合、サーバーのみがポート 80 を使用し、クライアントはランダムなポート番号を使用します。サーバーは、クライアントから提供された宛先ポートを添付して応答します。ポート 80 は、Web サーバーのドアをノックするためだけのものです。

NAT が行うことは、送信元ポートが重複しないように、これら 4 台のコンピューターすべてを外部パケットに変換することです。NAT がパケットを受信すると、接続されている宛先ポートを変換できるかどうかを確認し、可能であれば LAN に変換します。

于 2010-05-23T05:13:00.857 に答える