web-dev-qa-db-ja.com

IPからMACアドレスへの変換が必要なのはなぜですか?

TCP/IPプロトコルを使用するネットワークで、IPアドレスがMACアドレスに変換されるのはなぜですか。

つまり、すべてのデバイスがそのIPを知っているのに、なぜさらにMACアドレスを使用し、IP番号をアドレスとして直接使用しないのでしょうか。

9
user32569

主な違いは、IPアドレスはネットワークプロトコルであるIPによって使用され、MACアドレスはイーサネットリンク層(2)プロトコルによって使用されることです。 IPはさまざまなレイヤー2プロトコルで実行できるため、「メディアアクセス」機能は含まれていません。 IP over Serialライン、イーサネット、DSl、ISDNなどを実行できます。

たとえば、DHCPはイーサネットを介して動的IPアドレスを提供します。 DHCPサーバーは、PCにIPアドレスを割り当てることができるようにMACアドレスを必要とします。

TCP/IPは Ethernet で使用されるため、MACアドレスを使用します。

5
Jakob Borg

これを確認する別の方法は、逆の質問をすることです。ハードウェアにすでにMACアドレスが割り当てられているのに、なぜIPアドレスが必要なのですか。

これは、 Security Now ポッドキャスト( HTMLトランスクリプト )のエピソード#29で説明されています。

MACアドレスを使用すると、コンピューターは1台のマシンと直接通信できます。しかし、そこに到達する方法を知るためには、パケットをそこにルーティングする必要があります。各コンピューターにグローバルMACアドレスルックアップテーブルを設定することは現実的ではありません。

一方、IPアドレスは階層的に編成されています。私たちのコンピューターは、LAN上にあるIPアドレスを判別し、残りはLANのゲートウェイ(ホームルーターなど)に送信されます。 LANを離れた後、後続のルーターはIPアドレスを確認し、パケットを別のルーターにルーティングします。最終的に、LAN上に宛先IPアドレスを持つルーターは、MACアドレスを識別し、パケットを宛先コンピューターに送信できます。

4
Doug Harris

これらは、ネットワークスタック内のさまざまなレイヤー用です。 MACアドレスはイーサネットネットワーク層に関するものであり、IPアドレスはIP層に関するものです。イーサネットがないためにMACがないSLIPのようなさまざまなトランスポートでIPを使用できます。必要に応じて、IP overEthernetとは異なるプロトコルを使用することもできます。

考えてみれば、SLIP接続を介してダイヤルインすると、1つのIPパケットは、MACが関連付けられていない状態で始まり、インターネットを介して最終的なIP宛先に転送されるときに、あるルーターから別のルーターにホップするときに別のMACを持つ可能性があります。

3
Ukko

MACアドレスは、マシンに固有であり(通常、ネットワークカードにはMACアドレスが含まれています)、変更されないことが保証されていますが、任意のマシンでIPアドレスを再定義できます。

さらに、パブリックIPアドレスは、ネットワークアドレス変換を使用して会社全体で共有できるため、パブリックIPアドレスがマシンまたは人と1対1で対応することは保証されません。

3
Robert Harvey

私はあなたの質問に別の質問で答えることができます:あなたは電話番号を持っています、それでなぜあなたは社会保障番号/国民識別番号が必要なのですか?

言い換えれば、それらは異なる目的を果たします。 1つはあなたが誰であるか(SSN、MAC)を識別するためのものであり、もう1つはあなたに連絡する方法(電話番号、IPアドレス)を定義するためのものです。

さらに、MAC(異なるタイプのリンク層)がない場合にインターネット上の誰かに連絡できるのと同じように、SSN(たとえば別の国)がない場合に電話で誰かに連絡することができます。 。リンク層が異なれば、データパケットの宛先と送信元を識別する方法も異なります。

3

[〜#〜] ip [〜#〜] は、OSまたはネットワークカードのドライバソフトウェアで定義されているか、ネットワークから提供されており、動的に変更できます。 [〜#〜] mac [〜#〜] は、ネットワークカード、つまりハードウェアの識別子です。それらの間には1対1の関係はありません。

1
Tomas Aschan

あなたの質問は非常に正当なものです!真実は、理論的にはIPのみのシステムを作成し、MACアドレス指定システムを必要とせずにうまく機能できるということです。データリンク層は、MACフィルタリングを無視し、この機能をネットワーク層に任せて、独自のIPアドレスに従ってフィルターで除外することができます。このようなシステムは、UART(例:RS232)ポートを介したデバイスのリンクに基づくネットワークなど、過去に存在していました。明らかに、これらのネットワークインターフェイスは、MACアドレスやその他の形式の一意の物理的なID。ただし、デバイスが各デバイスに許可されている所定の数を超えるIPアドレスを取得しないようにする方法がないため、DHCPサーバーなどによってIPアドレスを一元的に割り当てることは悪夢のようになります。 、各デバイスを明確かつ個別に識別することは困難です。少なくともサブネットワーク内で一意であるMACアドレスは、一意の識別トークンとして機能します。もちろん、デバイスにIPアドレスを個別に割り当てることで問題を解決できる場合がありますが、ネットワーク上に多数のデバイスが存在するため、そのようなスキームを確立して維持することは非現実的になります。

0
user315745

あなたはそれがあなたのローカルネットワークにないのでstackoverflow.comのMACアドレスを知りません。 MACアドレスは、チェーン内のネクストホップの識別子として使用されます。 「IP」は、パケットを送信する方向(次に使用するゲートウェイ)のヒントを持つプロトコルで使用されます。

0
baloo

リンク層での通信にはMACアドレスが必要なため(IPアドレスはIP層の1つ上の層で使用されます)。

0
riwalk

例を見てみましょう

あなたが会社での仕事に応募する場合..彼らはあなたの身元を知らなくてもあなたにそれを与えますか?確かにそうではありません....あなたの実際の身元証明はMacアドレスです

そして、あなたが入社すると、彼らはその会社の従業員の間で通信するために別の従業員IDを与えます。これはIPアドレスです。

会社を変更した場合、従業員IDは変更できますが、実際の情報(年齢、名前など)は変更できません。

0
user294441