考えていたところ、その考えが思い浮かびました。
ローカルエリアネットワーク内にホストAとBがあるとします。インターネットにルーターとホストCがあります。接続を開始するときに送信元ポートがランダムに選択されることは知っていますが、同じHost:portを開始するときに2つのホストが同じものを選択した場合はどうなりますか?
A:10123 -> C:80
B:10123 -> C:80
ルーターはどのパケットがそれぞれに属しているかをどのように知るのでしょうか?
乾杯。
ホストAとBがポート10123を選択したからといって、それがルーターが使用するポートであるとは限りません。ルータは、独自に選択した送信元ポートからホストCに接続します。したがって、接続は次のようになります。
router
+--------------------+
A:(src:10123, dest:80) -> | A:10123 -> C:43775 | -> C:80
B:(src:10123, dest:80) -> | B:10123 -> C:43776 | -> C:80
+--------------------+
私はLaurentiuと一緒にいて、ルーターはAまたはBからのIPアドレスに基づいてパケットを送信します。応答パケットは次のようになります。
Source IP: C
Source Port: 80
Destination IP: A (or B)
Destination Port 10123
ルーターはパケットを適切なホストにルーティングします。
ルーターがPATで構成されている場合、ルーターは送信パケットにNAT/PATIPと新しいランダム送信元ポートを割り当てます。
ルーターには、IPアドレスを持つルーティングテーブルがあります。特定のIPアドレスを記憶して、どのホストが要求を行ったかを見つけ、その応答パケットをその特定のホストにルーティングします。