1

レイヤー 2 (イーサネット層) は、ARP プロトコルを使用して MAC アドレスを認識します。ネットワーク全体に「IP x を持つ MAC アドレスはどれですか?」という質問を送信します。それが宛先MACアドレスを認識する方法です。

しかし、レイヤ 3 (IP レイヤ) はどのようにして IP アドレスを知るのでしょうか? トランスポート層 (レイヤー 4) からは渡されません。ポート番号のみが渡されます。

私が具体的であることを願っています。前もって感謝します。

4

3 に答える 3

3

パケットに関連付けられているIPアドレスには、送信(送信元)IPと宛先IPの2つがあります。

送信IP-送信IPは簡単です。これは、パケットの送信に使用されるネットワークインターフェイスの構成パラメーターです。これは、静的に構成されているか、DHCPを介して最新のネットワークでより一般的に構成されています。

宛先IP-宛先コンピューターが送信側コンピューターに対してローカルであるかリモートであるかによって、宛先IPは少し複雑になる可能性があります。この場合、リモートとは、移行先コンピューターが移行元コンピューターと同じサブネットにないことを意味します。

リモート宛先の場合、DNSサーバーは名前<->IP解決に使用されます。DNSは、人間がwww.espn.comなどの名前を使用できるようにするものですが、コンピューターは10.5.0.1などのIPアドレスのビット表現を使用できます。DNS解決はさまざまな方法で構成できますが、基本的には、ローカルキャッシュを調べて以前の解決が存在するかどうかを確認し、要求を解決するために1つ以上のDNSサーバーにクエリを実行しない場合です。

宛先マシンが同じサブネット上のローカルの場合、ARP/RARPがMAC<->IP変換に使用されます。もう一度、新しいARP要求を作成する前に(したがってネットワーク帯域幅を使用して)、最初にキャッシュ(この場合はARPキャッシュ)がチェックされます。

これがお役に立てば幸いです。

于 2012-01-02T16:27:55.097 に答える
2

しかし、レイヤ 3 (IP レイヤ) はどのようにして IP アドレスを知るのでしょうか? トランスポート層 (レイヤー 4) からは渡されません。ポート番号のみが渡されます。

これは正しくありません。TCP または UDP には、bind()実際に IP アドレスを渡す明示的な操作があります。TCP にはconnect()、IP アドレスも渡す明示的な操作とbind()、送信元 IP アドレスがユニキャスト IP ルーティング テーブルから計算される暗黙的な操作もあります。

于 2014-10-20T09:17:35.840 に答える