ルーターはどのデバイスにパケットを送信するのかをどのようにして知るのですか?[複製]


15

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

これにはNATが関係すると思いますが、NATがこれを達成するために何をするかについての論理的な説明を探しています。


具体的な回答はできませんが、ルーターはリクエストの送信先と送信者を追跡します。外部ソースが応答すると、ルーターはどのデバイスが最初に外部ソースに接続しようとしたかを確認し、そのデバイスに応答を転送します。さらに情報が必要な場合は、NATを調べてください。
ジャックハンフリーズ

この質問はSuperuser.comに属している
TimothyP

回答:


11

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


1
これはTCP接続などを説明しますが、一部のアプリケーションはコネクションレスです。UDPパケットはどうですか?1台のデバイスでサーバーをホストしている場合、接続にTCPを使用していても、サーバーがどのデバイスに接続されているかをルーターが認識しないと接続を初期化できません。

1
UDP接続の場合、通常、特定のデバイスへのルーティングに使用できるルーターのポートを事前に定義する必要があります。これはルーターの「ポートフォワーディング」機能であり、着信UDPパケット(発信メッセージまたは新鮮な着信パケットのいずれか)と着信TCPパケット(たとえば、代わりにリモートクライアントによって開始されたパケット)のいずれにも使用できます。自分のPCの。)
マイケルブレイ

1

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

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

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

そのため、デバイスAは最終的にパケットを受信します。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.