2017-04-14 3 views
0

同じモデムに接続されているか、同じISPからインターネットに接続されている2台のコンピュータAとBがあるとします。私はGoogleで検索するとき "私のIPアドレスは何ですか?"これは、コンピュータAとB 14.141.56.230の両方で同じIPアドレスを示しています。私は送信者がコンピュータAにデータを送ろうとしているとしたら、モデムかルータがこのパケットがコンピュータBではなくコンピュータBに属していることを認識するかどうか知りたいのですが、両方ともgoogleによると同じIPアドレスを持っています。パケットが送信者から受信者に転送される方法

+2

私はあなたがサーバーフォールトでこれを尋ねるべきだと思う、スタックオーバーフローはプログラミングのためです。 – Jer

+0

OSIは、どのような形や形でも使用していません。それで、[タグ:オシ]はそれに関係するナージャのことがあります。 – EJP

答えて

0

これはNATの役割です。外部サーバはAまたはBに直接接続できません:AまたはBはサーバに最初に接続する必要があるため、NATは外部サーバが受信したパケットを処理する方法を認識します。

特に、thisは興味深いものになるはずです。

プライベート(内部)ネットワーク上のコンピュータが外部ネットワークへのIPv4パケットを送信し、NATデバイスは、のソースフィールドに内部IPアドレスを置き換えますパケットヘッダー(送信者のアドレス)とNATデバイスの外部IPアドレスPATは、利用可能なポートのプールからポート番号を接続に割り当て、このポート番号を送信元ポートフィールド(ポストオフィスボックス番号とよく似ています)に挿入し、パケットを外部ネットワークに転送します。その後、NATデバイスは、内部IPアドレス、元の送信元ポート、および変換された送信元ポートを含む変換テーブルにエントリを作成します。同じ接続からの後続のパケットは、同じポート番号に変換されます。

AがAのルータRに到達すると、Rはパケットの送信元IPを変更し、ポートPを割り当てて送信しますEは、このポートPをAに割り当てたことを記憶しています。EがポートPのRに応答すると、ルータはこれを逆変換してAに転送します。

これは、 。 Aは接続を開始する必要があります。ここで、AとEの両方がNATの背後にあるケースを考えてみましょう。どちらも接続を開始する必要があり、直接接続することはできません。その解決策を見つけるには、TCP hole punchingを調べる必要があります。

+0

詳細を説明してください – vivek

関連する問題