web-dev-qa-db-ja.com

IPアドレスの代わりにMACアドレスをローカル通信(ARP)に使用するのはなぜですか?

理解できません。ローカルネットワーク内のすべてのデバイスに一意のローカル IPアドレスがある場合でも、MACアドレス(ARP)を使用してデータを交換するのはなぜですか。同じローカルネットワーク上のデバイス?

MACアドレスを使用する代わりに、ローカルネットワーク通信にローカルIPアドレスを使用しないのはなぜですか?

ルーターがサブネットマスクのためにIPアドレスをインターネットの外部に送信する必要がある場合、ルーターが知っていることを私は知っていますが、これは正しいですか?

1
xsss

ご存知かもしれませんが、MACアドレスとIPアドレスは、 ISO/OSIスキーム または TCP/IPスイート の異なるレイヤーに存在します。これらのレイヤーの背後にある概念を理解していることを確認してください。

IPレイヤーとリンクレイヤーの両方を使用している主な理由は、歴史的な理由であることに注意してください。これは主に、IPアドレスが1)動的であり、2)処理がはるかに便利だからです。ここに 興味深い最近の記事 この歴史にもっと光を当てます。もちろん、それは異なっていたかもしれませんが、インターネットは数十年にわたって進化し、ほとんどの場合下位互換性がなければならなかったので、最初から最高のデザインを思いつくことができたわけではありません。

同じローカルネットワーク上のデバイス間でデータを交換するために、なぜまだMACアドレスを使用しているのか疑問に思っていますか?理由:

  1. これは、同じリンクに接続されているデバイス(イーサネットなど)を実際に明確にアドレス指定できる唯一の方法です。
  2. すべての通信とにかくリンク層(MAC)を通過する必要があります

階層化された通信モデルのため、プロトコルが動作するのと同じ層でのみエンドポイントをアドレス指定できることを理解する必要があります。たとえば、TCP接続は、特定のIPアドレスとポート番号を持つリモートサーバーのみをアドレス指定できます。同時に、TCPは、基盤となるIPルーティングがどのように機能するか。言い換えると、TCPは、IPプロトコルが接続データを処理する方法を気にせず、ステアリングできません。IPプロトコルについても同じことが言えます。データを物理的に送信する場所を決定することはできませんが、MAC層があるため、決定する必要はありません。

IPプロトコルは実際、ネットワーク上の特定のデバイスを一意にアドレス指定するために使用されますが、スイッチが実際にデータを物理的に送信する場所(またはMACアドレスキャッシュがある場合はデバイス自体)を決定するときは、変換する必要がありますそのIPアドレスからそのIPアドレスが割り当てられたMACアドレスへ。

IPv6が提供する大規模なアドレス空間では、IPv6は動的割り当てを提供し、割り当てられたすべてのアドレスが一意であることを保証できるため、MACアドレスはもう必要ないと主張できますが、いくつかの理由があります(リンク先の記事で説明されています)。上記)、それは私たちが今日取り組んでいるものではありません。

1
slhck

これは、イーサネットの設計方法が原因です。まず、イーサネットは他のプロトコルを使用できることを理解してください(そしてインターネットが登場する前は頻繁に使用していました)。

IP(V4)アドレスしかない場合、単純で順序付けられた方法でルーティングを実装するのは非常に難しいため、LAN内の他のシステムを見つけるのは非常に困難になります。

IpV4は、さまざまなネットワークトポロジで機能するように設計されています。ハードウェアから抽象化することで、MACアドレスを使用すると、他のトポロジのサポートがはるかに簡単になります。

0
davidgo