web-dev-qa-db-ja.com

ルーターはどのようにしてパケットを送信するデバイスを知っていますか?

私の質問は、インターネットを介してどのように移動するかではなく、ルーターを介して特定のデバイスにどのように移動するかについてです。ホームネットワークのルーターに接続されているすべてのデバイスは、同じ外部IPを持っています。たとえば、デバイスAがページを読み込んでいて、パケットがデバイスAの外部IPを認識しており、ルーターに到達できるため、パケットが外部ソースからルーターに送信されるとします。しかし今、どのようにしてデバイスAに到達するのでしょうか。ルーターは、デバイスBではなくデバイスAにそれを送信することをどのようにして知っていますか?

これにはNATが関係していると思いますが、NATがこれを実現するために行うことの論理的な説明を探しています。

15
Dan Webster

外部サイトへの接続を開始すると、ルーターは毎回異なる送信元ポート番号を使用します...次に、その送信元ポート番号(データが返される場所)をキーとして使用して、どのマシン上にあるかを調べますリクエスト元の内部ネットワークこれはPORTアドレス変換と呼ばれます(ルーターで複数のネットワークアドレスを使用できる場合のネットワークアドレス変換とは異なります)。

11
Michael Bray

通常、ホームネットワークのすべてのデバイスは、内部アドレスが異なります(プライベートアドレス、常に192.168.0.1〜192.168.0.255)。

パケットがホームネットワーク(デバイスA:192.168.0.123としましょう)から送信されると、ルーターを通過するときに、ルーターはプライベートアドレスをルーターの外部アドレス(140.191.2.5と想定)に変換し、ルーターもこれを記録します。そのNATのマッピング。

応答が戻ると、ルーターはNATをマッピングし、元のソースがデバイスAであることを確認します。

したがって、デバイスAは最終的にパケットを受信します。

これは単なる概念です。詳しくは、wiki:NATを参照してください。

1
NCola.L