web-dev-qa-db-ja.com

イーサネット/ MACアドレスが必要なのはなぜですか?

イーサネットMACアドレスが必要な理由がわかりません。すべてのコンピューターを統合ネットワークに接続し、IPアドレスを使用して通信することはできませんか?

たとえば、イーサネットには次のメカニズムがあります。

  1. IP 192.168.1.1X.1)を持つコンピューターが192.168.1.2X.2)にパケットを送信したい
  2. X.1はARPを使用してX.2のMACを取得します
  3. そのためには、X.1がネットワーク内のすべてのコンピューターにパケットを送信する必要があります。 1つだけが答えます
  4. X.1はMACを取得し、パケットを送信します

たった1つのステップを実行する方が簡単ではないでしょうか。

  1. X.1は、ネットワーク内のすべてのコンピューターにパケットを送信します。 X.2のみが処理し、他の人は無視します

補足的な質問は次のとおりです。すべてのデバイスに一意のMACアドレスがある場合、なぜIPアドレスが必要なのですか

16
user2449761

異なるネットワーク層 それらを異なるテクノロジーに交換できるようにするためにあります。

ここで話している2つのレイヤーはレイヤー2と3です。このシナリオのレイヤー2はイーサネットです-そこからMACアドレスが発生し、レイヤー3はIPです。

イーサネットはローカルレベルでのみ機能し、ブロードキャストネットワーク「データリンク」に接続されたネットワークデバイス間で機能します。一方、IPはルーティング可能なプロトコルであるため、リモートネットワーク上のデバイスをターゲットにすることができます。

これらのそれぞれの要件は異なります。イーサネットは、ネットワークデバイス間でパケットを送受信できるようにするテクノロジファミリを指定しますが、IPは、データのパケットが複数のネットワークを通過できるようにするプロトコルを定義します。

どちらも他方に依存していません。これがネットワーキングに柔軟性を与えています。たとえば、IP over Ethernetを使用してインターネットサービスに接続することを選択できますが、内部ネットワークでは、IP over ... paperを使用することを選択できます。誰かが各パケットの内容を書き留めて、それを別のマシンに物理的に渡して入力する場合。これは明らかに高速ではありませんが、IPルーティングルールを尊重する紙片を持ち歩く人であれば、IPのままです。

現実の世界では、すでに2つの異なるプロトコルを使用している異なるデータリンクプロトコルがあります(アドレス指定スキームは同じですが):802.3-イーサネットと802.11-wifi。

IPは、下にあるレイヤーが何であるかを気にしません。

同様に、IPはさまざまなネットワーク層プロトコルにスワップアウトできます(すべての参加者で発生する場合)。 [〜#〜] atm [〜#〜] など。

レイヤー2とレイヤー3の両方を含むプロトコルの作成を直接妨げるものは何もありませんが、柔軟性が低く、魅力が低く、使用される可能性が低くなります。

31
Paul

パケットを処理するか無視するかのこの決定はどこで行われますか?本当に満足できる答えはありません。

1)スイッチ内?つまり、スイッチは、どのコンピュータがどのパケットに関心があるかを決定するすべてのプロトコルを理解する必要があるということです。これにより、スイッチのコストが増加し、速度が低下するだけでなく、IPプロトコルの変更に対応するのがはるかに難しくなります。

2)イーサネットインターフェイスのハードウェアでは?さて、すべてのデータパケットがすべてのマシンに送信される必要があるため、ネットワークが非常に遅くなります。 WiFiや低速のブリッジを使用したネットワークのブリッジングなどのテクノロジーは不可能です。イーサネットを異なる速度で実行して相互運用することは不可能です。 IPv6やIPマルチキャストなどのテクノロジでは、すべてのイーサネットエンドステーションに展開するためにハードウェアを変更する必要があります。

3)ソフトウェアでは?まあ、これはコンピュータがはるかに多くのネットワークインターフェイス割り込みを処理しなければならないので、コンピュータをはるかに遅くします。上記のすべてのブリッジング、VPN、およびWifiの懸念も問題になります。

これらはすべて、IPがないとイーサネットを使用できなくなり、IPを変更するにはイーサネットの変更が必要になることを意味します。うん。

関心の分離は良好です。

8
David Schwartz

IPアドレスとMACアドレスは、 インターネットプロトコルスイート の異なるレイヤーで動作します。 MACアドレスは、レイヤー2の同じブロードキャストネットワーク内のマシンを識別するために使用され、IPアドレスは、異なるネットワーク全体のマシンを識別するためにレイヤー3で使用されます。

コンピューターにIPアドレスがある場合でも、すべてのレイヤーが基盤となるレイヤーを使用しているため、同じネットワーク上の他のマシンを見つけるにはMACアドレスが必要です。前述のページには、プロトコルスイートを詳細に説明するいくつかの優れた図があります。

3
vembutech

イーサネットネットワークはサイズが大きくなるため、輻輳の問題に直面します。この順番でネットワークが詰まり、遅延が発生する可能性があります。これは、サブネットの概念を導入した要因の1つです。ただし、サブネットの場合、パケットが1つのサブネット内のマシンから別のサブネット内のマシンに移動できるようにするには、ルーターと呼ばれる追加のエンティティが必要です。

イーサネットケーブルがまたがる距離は、特定の制限を超えると送信の成功を制限する可能性があるため、もう1つの大きな懸念事項です。これは、ハブ/リピーターの形でさらに新しいエンティティをもたらしました。

すべての通信メカニズムが通信にMACアドレスを使用するわけではないことに注意してください。 PPP&HDLCは、識別にMACアドレスを使用しません。

また、一部のネットワークはイーサネットを使用しないことに注意してください。トークンリングネットワークには、別のデータリンク層が必要です。

ネットワークBのデバイスのMACアドレスを介してアドレス指定することにより、ネットワークAからネットワークBのデバイスにパケットを送信すると、ネットワークA自体にドロップされます。ネットワークAとネットワークBの間にルーターがある場合でも、ルーターはMACアドレス宛てのパケットを受信することで動作するため、ルーターはパケットをドロップしますが、IPアドレスは異なります。

上記のシナリオから、さまざまなローカル/プライベートネットワークのためにインターネットがフラットネットワークではないことは非常に明白です。ソースと宛先の間にさまざまなネットワークエンティティもあります。

インターネットはフラットネットワークではないため、MACアドレスはすべての種類の通信に使用されるわけではなく、一部のネットワークではイーサネット以外の異なるデータリンク層が必要です。ノードの場所に関係なく、目的のノードにルーティングするためのIPアドレスが必要です。ネットワーク層で実現されます。

また、 https://stackoverflow.com/questions/26290069/arp-vs-ip-why-do-we-need-both で同様の議論を参照してください

2

他の人が説明しているように、ローカルネットワークの輻輳制御にはレイヤー2プロトコルが必要です。レイヤー3は、ネットワーク間のルーティングとアドレス指定に使用されます。

そうは言っても、有効な質問は次のようになります。両方のレイヤーが同じアドレス指定スキームを使用できないのはなぜですか。

最初の答え:他の人が述べたように、これによりL2やL3テクノロジーを切り替えることができ、すべてが引き続き機能します。

2番目の回答:レイヤー2プロトコルでIPアドレスを使用することに全員が同意した場合でも、レイヤー2用とレイ​​ヤー3用の2つのIPアドレスを使用する必要があります。なぜですか。 NATing。コンピューターにパブリックIPアドレスがある場合、L2アドレスとL3アドレスは同じである可能性があります。ただし、NATtingを使用する場合、L2アドレスとL3アドレスは異なります。

最後のコメント:誰もがメッセージを受信し、非受信者がそれらを無視すると言うとき、あなたはWiFiについて話している。有線イーサネットは、もはやそのようには機能しません。以前は同軸ケーブルを使用していたが、後にハブを使用したときもそうだった。スイッチは、メッセージ/パケットを適切なポートにのみ送信します(それらに対して攻撃を実行してテーブルを飽和させない限り)。

2
cabad

MACアドレスとIPアドレスは、さまざまな目的でさまざまな ネットワーク層 で動作します。いずれかのレイヤーを取り除くと、問題が発生したり、混乱が生じたり、物事が機能しなくなったりする可能性があります。

[〜#〜] ipx [〜#〜] しか話せない古いハードウェア(たとえば、100万ドルのCNC旋盤)があるとしましょう。あなたのIPのみのネットワークでは、誰がどのようにそれに話しかけるでしょうか?または、構成されていないコンピューターを新しいネットワークに接続していると言います。 MACアドレスがない場合、 DHCPサーバー はどのIPアドレスを使用するかをコンピューターにどのように伝えることができますか?

バックボーンスイッチへの4つのギガビット接続を備えたサーバーがあるとしましょう aggregated 単一の仮想接続に。 MACのみのネットワークで、サーバーのアドレスは何ですか?または、コンピュータが PPPoAモデム 経由で接続されていて、MACアドレスがないとします。どうすれば誰でもそれに接続できますか?

0
Mark

私も同じような考えを持っていました。しかし、私はあなたがMAC層を必要としていることに気づきました。切り替え用でもありません!

やむを得ない問題は、IPプロトコルだけでなく、IPについて話していても、IPv4とIPv6があるということです。ネットワークデバイスはどのようにしてそれがどれであるかを知るのですか?したがって、ブートストラップレイヤーとしてMACが必要です。そのプロトコルフィールドには次のレイヤーがあり、MACを介して何が伝送されるかがわかります。

0
XYZ

うーん、これは機能するようになったのではないかと思います(私は実際にMACアドレスの割り当てを/ done /行っています)。ただし、これが行われていれば、IPv6用の新しいハードウェアを購入する必要があり、重複はなかったでしょう。ですから、全体として、私はその結果が好きではありません。

0
Joshua

[〜#〜] i [〜#〜] IPの略はインターネットワーキングプロトコルです。

つまり、IPは全世界のすべてのネットワーク間で一意である必要があります。

IPアドレスは文字通りグローバルであると想定されています。トラフィックを9.9.9.9に送信すると、9.9.9.9が物理的にどこにあるか、または9.9.9.9が物理的にどのネットワーク上にあるかに関係なく、9.9.9.9がどこにでも到達するはずです。

(これは、NATのために多少壊れています。TCP/ IPが発明されたときNATは元の計画の一部ではなく、IPv6が不要になったところまで普及するまでは、「ハック」です。 。ふりNATこの答えを理解するために存在しません。)

MACアドレスは、ホストが存在するローカルネットワークでのみ一意であると想定されています。同じローカルネットワーク上にないもの間の通信を許可するようには設計されていません。したがって、MACアドレスには物理的な制限がありますが、IPアドレスにはそのような制限はありません。

TCP/IPは、次の概念に基づいています。

  • システムがルーターを介さずに直接相互に通信できるローカルネットワークがある
  • あるネットワーク上のコンピューターが別のネットワーク上のコンピューターと通信したい場合があり、そのためにルーターが必要です。

上記の2つの概念が適用されない別の基本的なメカニズムが存在する場合、IPとMAC​​は現在のように必要ありません。

同じローカルネットワークの外部にあるマシンと絶対に通信する必要のないプロトコルなどを設計している場合は、MACアドレスを使用することをお勧めします。 ATA over Ethernetプロトコルは、セキュリティの目的でインターネット経由ではなく、同じネットワーク上でATAドライブを共有できるように設計されているため、このようなプロトコルだと思います。

0
LawrenceC