MACアドレスの正確な用途は何ですか?


126

IPアドレスは階層的であるため、インターネット全体のルーターはパケットを転送する方向を認識しています。MACアドレスでは、階層がないため、パケット転送ができません。そのため、MACアドレスはパケット転送には使用されません。

理由もなくそこにあるとは思わない。だから私の質問は、パケット転送中にMACアドレスが正確にどこで作用するのですか?

回答:


57

TL; DR> MACアドレスは、イーサネットネットワーク(およびWiFiなどの他の類似の標準)の低レベルのコンポーネントです。デバイスはローカル物理ネットワーク(LAN)上のマシンと通信することができ、インターネット経由でルーティングすることはできません-物理ハードウェアは理論的には世界のどこにでも差し込まれる可能性があるためです。

対照的に、IPアドレスはインターネット全体をカバーし、ルーターは宛先に到達するために複数のホップが必要な場合でもデータをどこに送信するかを見つけるためにそれらを使用します。

イーサネットよりも優れた標準を見つけた場合、MACアドレスを使用しない可能性がありますが、インターネット上の他の人がそれを聞いたことがなくても、インターネットからのIPトラフィックは引き続き流れる可能性があります。

IP(たとえば、すべてのIPv4アドレスがなくなった場合のIPv6)よりも優れた標準を見つけた場合、ほとんどのイーサネットハードウェアは変更なしで新しい種類のトラフィックを運ぶことができます。

MACアドレスは、ローカルイーサネット(またはwifi)ネットワーク機能を作成するために必要です。ネットワークデバイスは、物理接続が共有されていても、直接接続された1つのデバイスの注意を引き付けることができます。これは、単一の組織内で数千のデバイスが接続されている場合に重要になる可能性があります。より広いインターネットでは機能しません。

この質問に対する答えを本当に理解するには、OSI(7層とも呼ばれる)モデルを理解する必要があります。

物理的に直接接続されていない別々のマシンで実行されている2つのアプリケーション間で通信を行うには、多くの作業が必要です。

昔は、各アプリケーションは、遠端のアプリケーションに到達し、デコードできる適切な信号を生成するために、どのマシンコード命令を実行する必要があるかを正確に知っていました。すべての通信は効果的にポイントツーポイントであり、ソフトウェアは展開される正確な状況に合わせて作成する必要がありました。明らかに、それは持続不可能でした。

これの代わりに、ネットワークの問題はレイヤーに分割され、各レイヤーはリモートマシン上の一致するレイヤーと通信する方法、およびローカルマシンでその下の(場合によっては上にある)レイヤーと通信する方法を知っていました。配置されている他のレイヤーについてはまったく知りませんでした。したがって、Webブラウザーは、トークンリング、イーサネット、またはwifiネットワークを使用するマシンで実行されているかどうかを気にする必要はありません。リモートマシンが使用します。

この機能を実現するために、7レイヤーモデルはネストされたエンベロープのようなシステムを使用します。アプリケーションはデータを作成し、オペレーティングシステムが配信するためのエンベロープにラップします。OSはこれを別のエンベロープでラップし、ネットワークドライバーに渡します。ネットワークドライバーはこれをさらに別のエンベロープでラップし、物理ケーブルに配置します。等々。

最下層のレイヤー1は物理層です。これは、ワイヤとトランジスタ、および電波の層であり、この層では、通信は主に単なるやり取りの流れです。データは物理的に接続されているあらゆる場所に行きます。CAT-5ケーブルを使用して、コンピューターのネットワークポートをスイッチに接続します。

レイヤー2はデータリンクレイヤーです。これにより、何らかの構造が提供され、エラーの検出と修正の機能、および物理的に接続されたデバイス(ここでの物理接続は実際にはwifi経由である可能性がある)がメッセージに注意を払う必要があることが示されます。これは、MACアドレスが作用する層であり、後で説明します。ただし、この層ではMACアドレスだけが可能というわけではありません。たとえば、トークンリングネットワークには、異なるデータリンクの実装が必要です。

レイヤー3はネットワークレイヤーです。これはIPが動作する層です(ネットワーク層プロトコルはこれだけではありません)。これにより、コンピューターが「ネットワーク」上の任意のマシンに到達できるメッセージを送信できるようになります。問題のマシン間を直接接続する必要はありません。

レイヤー4〜7は、より高レベルのプロトコルです。ハードウェアから遠く離れ、アプリケーションに近づきます。たとえば、TCPはIPの上にあり、メッセージが欠落したときに自動的に再送信するメカニズムを提供します。

したがって、MACアドレスはレイヤー2で機能し、物理的に相互に接続されている2台のマシンが同じ物理接続を共有する他のマシンによって無視されるメッセージを送信することを許可します。

IPアドレス8.8.8.8のマシンにデータを送信したいアプリケーションがあるとします

レイヤー3は、特にIPアドレス8.8.8.8を含むエンベロープにデータをラップし、これをレイヤー2に渡します。

レイヤー2はこのIPアドレスを見て、直接接続されているどのマシンがこのメッセージを処理できるかを決定します。直接接続されたIPアドレスの選択のルックアップテーブルと、そのマシンのネットワークカードの対応するMACアドレスがあります。このルックアップテーブルは、ARPと呼ばれるプロトコルを使用して構築されます。これにより、ネットワークカードは、直接接続されている他のデバイスに質問することができます。イーサネットは特別なMACアドレスFF:FF:FF:FF:FF:FFを予約します。これにより、デバイスは物理的に接続されたすべてのデバイスと通信できます。

IPアドレスがテーブルにある(またはARPで解決できる)場合、新しいヘッダーのMACアドレスでレイヤー2エンベロープのレイヤー3エンベロープをラップし、レイヤー1のハードウェアにバンドル全体を渡しますMACアドレスが一致するネットワークカードがメッセージを受信し、ネットワークドライバーがレイヤー2エンベロープを開き、特定のIPアドレスでメッセージを受信するオペレーティングシステムの部分にコンテンツを渡します。

または、IPアドレスがローカルネットワーク上にない場合、新しいエンベロープはこのネットワークインターフェイス用に構成されたデフォルトゲートウェイ(ルーターなど)のMACアドレスを持ち、ハードウェアはルーターにパケットを転送します。

ルーターは、レイヤー2エンベロープ内の自身のMACアドレスを認識し、レベル2パケットを開きます。レベル3エンベロープのIPアドレスを調べ、次にメッセージを送信する必要がある場所を特定します。これは、おそらくISPのルーターになります。ルーターがNAT(または同様の)を使用する場合、この時点でレベル3エンベロープを変更して、内部IPアドレスをプライベートに保つこともできます。次に、ISPのルーターのMACアドレス宛ての新しいレベル2エンベロープでレベル3エンベロープをラップし、そこにメッセージを送信します。

外側のエンベロープを削除し、チェーン内の次のステップにアドレス指定された新しいエンベロープで内容をラップするこのプロセスは、メッセージが宛先マシンに到達するまで続きます。

エンベロープは、メッセージが目的の受信者に到達するまでレイヤーをさかのぼるまで引き剥がされ続けます。目的の受信者は、メッセージの処理方法がわかるアプリケーションですが、どのように処理されるかわかりません。元のマシンに応答を返すために必要なすべての手順も、実際にはそこに届きませんでした。

しかし、それはすべて魔法のように動作します!

ネットワークスイッチはMACアドレスを使用してネットワークトラフィックのフローを最適化できることに注意してください。イーサネットハブはすべての着信トラフィックをすべてのポートに転送するだけですが、スイッチはパケットの宛先MACアドレスが接続されている単一のポートにのみトラフィックを転送できます。これにより、ネットワークの有効帯域幅が増加します。特定のポートをターゲットとすることにより、スイッチはネットワークの不必要なセグメントでトラフィックを転送することを回避します。スイッチは、ARPまたはパケットスニッフィングを使用して、どのデバイスがどのポートに接続されているかを識別します。スイッチは、レイヤ2パケットの内容を完全に無視します。


こんにちは!答えてくれてありがとう。私が読んだ限りでは、あなたの答えは最高です。シナリオ内にARPやNATなどの概念をさらに含めることができたら素晴らしいでしょう。
ヴィシュヌビベック

1
ARPおよびネットワークスイッチへの参照を追加しました。私は...レイヤ3機能であること、NATは、MACアドレスとは何かを持っているとは思わない
ビル・ミッチェル

@BillMichell:IPv6では、MACまたはその他のローカル(「ハードウェア」)IDを使用してIPを構成できます。
ルチアーノ

答えはコミュニティWikiです。OPの質問への回答に役立つと思われる場合は、おそらくこの追加情報を含めるように編集できます。
ビルミシェル

これにはTL; DRが必要です。
AJマンスフィールド

113

MACアドレスは何に使用されますか?

MACアドレスは、ローカルイーサネットベースのネットワークを機能させる低レベルの基本です。ローカルとは、ネットワークデバイスがケーブルまたはWiFiまたはネットワークハブまたはネットワークスイッチを介して直接接続されていることを意味します。

ネットワークカードにはそれぞれ一意のMACアドレスがあります。イーサネットで送信されるパケットは、常にMACアドレスから送信され、MACアドレスに送信されます。ネットワークアダプターがパケットを受信して​​いる場合、パケットの宛先MACアドレスをアダプター自身のMACアドレスと比較しています。アドレスが一致する場合、パケットは処理され、そうでない場合は破棄されます。

特別なMACアドレスがあります。たとえば、ff:ff:ff:ff:ff:ffはブロードキャストアドレスであり、ネットワーク内のすべてのネットワークアダプターをアドレス指定します。

IPアドレスとMACアドレスはどのように連携しますか?

IPは、イーサネットの上の層で使用されるプロトコルです。たとえば、別のプロトコルはIPXです。IPは、異なるローカルネットワークの接続を可能にし、企業ネットワークまたはグローバルインターネットを形成します。

コンピューターがIPアドレスxxxxにパケットを送信する場合、最初のチェックは、宛先アドレスがコンピューター自体と同じIPネットワークにあるかどうかです。xxxxが同じネットワーク内にある場合、宛先IPに直接到達できます。そうでない場合、設定されたルーターにパケットを送信する必要があります。

これまでの状況は悪化しているようです。これは、2つのIPアドレスがあるためです。1つは元のIPパケットのターゲットアドレスであり、もう1つはパケットの送信先デバイスのIP(次のホップ、最後の宛先またはルーター)。

イーサネットはMACアドレスを使用するため、送信者はネクストホップのMACアドレスを取得する必要があります。そのために使用される特別なプロトコルARP(アドレス解決プロトコル)があります。送信者は、ネクストホップのMACアドレスを取得すると、そのターゲットMACアドレスをパケットに書き込み、パケットを送信します。

ARPはどのように機能しますか?

ARP自体は、IPやIPXのようなイーサネット上のプロトコルです。デバイスが特定のIPアドレスのMACアドレスを知りたい場合、ブロードキャストMACアドレスにパケットを送信し、「IPアドレスyyyyを持っているのは誰か」と尋ねます。すべてのデバイスがそのパケットを受信しますが、IPアドレスがyyyyのデバイスのみが「It's me」というパケットで応答します。質問デバイスは回答を受信し、ARPパケットの送信元MACアドレスが使用する正しいMACアドレスであることを認識します。もちろん結果はキャッシュされるため、デバイスは毎回MACアドレスを解決する必要はありません。

ルーティング

言及するのを忘れていました。MACアドレスに基づくルーティングはありません。低レベルのイーサネットおよびMACアドレスは、同じネットワーク(ケーブルまたはワイヤレス)上のすべてのデバイスにしか到達できません。ルーターを挟んだ2つのネットワークがある場合、ネットワークAのデバイスがネットワークBのデバイスのMACアドレスにパケットを送信することはできません。ネットワークAのデバイスにはネットワークBのデバイスのMACアドレスがないため、このMACアドレスへのパケットは、ネットワークAのすべてのデバイスによって(またルーターによって)破棄されます。

ルーティングはIPレベルで行われます。ルーターが単に「IPアドレスとMACアドレスがどのように連携するか」のセクションで説明したことを実行しているだけです。ルーターは、独自のMACアドレスのパケットを受信しますが、IPアドレスは異なります。次に、ターゲットIPアドレスに直接到達できるかどうかを確認します。その場合、彼はパケットをターゲットに送信します。それ以外の場合、ルーター自体にもアップストリームルーターが構成されており、そのルーターにパケットを送信します。

もちろん、複数のルーターを構成することもできます。ホームルーターには、1つのアップストリームルーターのみが構成されますが、インターネットバックボーンでは、大きなルーターに大きなルーティングテーブルがあるため、すべてのパケットに最適な方法がわかります。

MACアドレスのその他の使用例

  1. ネットワークスイッチは、すべてのポートで見られるMACアドレスのリストを保存し、パケットを見る必要があるポートにのみパケットを転送します。

  2. ワイヤレスアクセスポイントは、多くの場合、アクセス制御にMACアドレスを使用します。正しいパスフレーズで既知のデバイス(MACアドレスは一意であり、デバイスを識別する)へのアクセスのみを許可します。

  3. DHCPサーバーはMACアドレスを使用してデバイスを識別し、一部のデバイスに固定IPアドレスを付与します。


16
回答をまだ知らない人が理解できる方法で質問に実際に回答した場合、+ 1。
ふわふわ

どうにかして素晴らしいインフォグラフィック/ダイアグラムを作成する衝動を感じずにはいられません。MAC/ IPの相互作用の方法は非常に興味深いです!
-NRGdallas

1
MACアドレスは非イーサネットデバイスのためにも使用されている、あなたは基本的にIPスタックで使用されるすべてのデータリンク層のために保持して説明した素敵な答えだけ詳細
KRISS

フォートワースのWi-FiのMACについて注意する:彼らであるが、一般的にユニークでできるデバイスを識別するために使用され、彼らは偽装しやすく、空気の上に平文で送信されます。接続で他の暗号化/認証が使用されていない場合、または他の暗号化/認証メカニズムが弱い場合(例:WEP)、攻撃者が許可されたデバイスになりすましてネットワークに参加することは非常に簡単です。
イスジ

1
@Rickその通り、接続の宛先IPは変更されません。しかし、引用された段落で、私はパケットの直接の宛先について話していました-それはルータかもしれません、そして、ルータは接続の間に変わるかもしれません。2番目のコメントについては、テキストを「ARPパケットのソースMACアドレス」に変更しました。それがより明確であることを願っています。
ヴェルナーヘンツェ

47

MACアドレス(メディアアクセス制御アドレス)は一般に、ネットワーク内のデバイスの識別子です。したがって、すべてのNIC(ルーター、PC、ネットワークプリンター、サーバーなどにあるネットワークインターフェイスコントローラー)にはMACアドレスがあります。一部のサーバーには複数のネットワークカードが組み込まれているため、複数のMACアドレスがあります。MACアドレスは6バイト長(6オクテット)です。左が最上位バイト、右が最下位バイトです。次の図に示すように、最初の3バイトは組織的に一意の識別子です。これは、このデバイスを製造したメーカーを示します。

組織的に一意の識別子のリストは次のとおりです。Standards.ieee.org

上記の代替手段は次のとおりです。MAC-Vendor-Lookup

一般的な既知の製造業者のいくつかの例:

  • 00-05-5D(D-Link Systems Inc.)
  • 00-09-5B(Netgear Inc.)
  • 00-E0-4C(Realtek Semiconductor Corp.)
  • 00-E0-4F(Cisco Systems Inc.)
  • 00-E0-64(サムスン電子)

最後の3バイト(3オクテット)はメーカーによってランダムに割り当てられます。

pjc50が正しく述べているように、イーサネットネットワークのMACアドレスは、スイッチがどのパケットをどこに送信するかを決定するのに役立ちます。Broadcast-MAC-Addressもあります。ff:ff:ff:ff:ff:ffはBroadcast-MAC-Addressに使用されます。MACアドレスは変更できるため、明確なデバイス識別子として使用するよう注意してください。MACアドレスは、ARP(アドレス解決プロトコル)プロトコルでも使用されます。そのため、PC Aは、独自のIPアドレス、MACアドレス、受信者のIPアドレス、および上記のブロードキャストアドレス(ff:ff:ff:ff:ffとともに、ARP要求をPC Bに送信します。 :ff)。その後、PC Bはパケットが彼に送信されたかどうかを確認します。はいの場合、PC Bは自身のMACアドレス、IPアドレス、受信者のMACアドレス、および受信者のIPアドレスを送り返します。他のデバイスはパケットを破棄します。

通常、PC AとBは両方とも、いわゆるARPキャッシュに正常な接続を保存します。PCが接続を保存する方法は、デバイスごとに異なります。IPアドレスがわからない場合は、逆アドレス解決プロトコル(RARP)でIPアドレスを取得できます。RARPを使用すると、デバイスは中央クライアントに接続し、IPアドレスを要求します。しかし、この方法は現在ほとんど使用されていません。

次のテクノロジーでは、MAC-48識別子形式を使用しています。

  • イーサネット
  • 802.11ワイヤレスネットワーク
  • ブルートゥース
  • IEEE 802.5トークンリング
  • 他のほとんどのIEEE 802ネットワーク
  • FDDI
  • ATM(NSAPアドレスの一部としての交換仮想接続のみ)ファイバーチャネルおよびシリアル接続SCSI(World Wide Nameの一部として)

4
より正確には、「すべてのデバイス(...)はMAC-アドレスを持っている。」より、すべてのNICが持つMACアドレスを。(カスタムMACアドレスを設定する機能は考慮していません。)すべてのプリンターにネットワークカードが組み込まれているわけではなく、多くのサーバーに複数のネットワークカードがあり、したがって複数のMACアドレスがあります。
CVn

2
PC-1がPC-2にパケットを送信するとしましょう。これで、スイッチはPC-1のMACアドレスのみを読み取り、テーブルに保存します。どのように機能するかについての詳細が必要な場合は、これを読みください:LANスイッチの機能 :)
Meintjes

3
もう1つのポイントは、MACアドレスが、NICが破棄するものと処理のためにプロセッサに送信するものを決定する方法であるということです。ワイヤ上で検出されたイーサネットフレームの宛先MACアドレスは、NIC MACアドレスとXORされており、結果がすべて0の場合、それはこのNIC向けのフレームです。
-bbayles

7
-1:質問は、MACアドレスとは何かではなく、MACアドレスの使用方法を尋ねました。質問に対処する回答の唯一の部分は、最後の箇条書きリストであり、詳細には触れていません。
ケビン

4
写真はwikipedia:en.wikipedia.org/wiki/File : MAC-48_Address.svgから取得されます。クリエイティブコモンズの下でライセンスされている写真は、使用時に著者に帰属する必要があります。
エティエンヌ

24

これらパケット転送に使用されます。イーサネットネットワークには多くのデバイスがあり、MACアドレスはパケットを受信するデバイスを指定します。イーサネットスイッチはこれを使用して、受信パケットを送信するポートを選択します。


5
イーサネットは元々、すべてのマシンが物理的に同じメディアを共有するバスメディアであったことに注意してください(これはワイヤレスネットワークにも当てはまります)。論理的にはそのように機能します。
ローレンス

まだハブを使用しているネットワークにも当てはまります:)
Doon

今後のスイッチは、単に施設(実際にはRJ-45のLANと普及になった)私達ができると(ハブを使用するか、または802.11)それらなしでIPネットワークを持っているんです
KRISS

7

この場合、階層を忘れてください、それは非常に重要な問題ではありません。

MACアドレスは、ISO / OSIまたはTCP / IPモデルのレイヤー2(リンク層)のアドレスです。IPアドレスは、同じモデルのレイヤー3(ネットワークレイヤー)からのものです。

レイヤー2ネットワーク、たとえば一般的なイーサネットネットワークには、接続されたすべての機器が任意のエンドポイントからすべてのフレーム(レイヤー2ユニットデータ)を受信できるコリジョンドメインが存在します。ただし、ネットワーク外の誰もこれらのフレームを受信できません。MACアドレスは、これらのドメインのアドレスです。

パケットはレイヤー3ユニットのデータで、通常はIPパケットです。それらは1つ以上の衝突ドメインを通過します。IPアドレスは、このドメインのアドレスです。

スイッチはレイヤ2デバイスであり、MACアドレステーブルを使用してフレームを転送します。ルーターはレイヤー3デバイスであり、IPアドレステーブルを使用してパケットを転送します。


6

イーサネットは、通信する他のコンピューター(他のMAC)がネットワークアダプターから直接到達可能であると想定します。IPはしません。IPは、全世界の他のIPに到達でき、現在のサブネットに到達できない場合、ルーターはNATに関係なくそこに到達すると想定します。ゲートウェイの概念は、レイヤー2またはイーサネットには存在しません。

スイッチに多数のマシンが接続されており、ルーターを介して他のネットワーク/インターネットとトラフィックを交換する必要がない場合、IPを実行する必要はありません。もちろん、ほとんどすべてのOSおよびアプリケーションは、常にTCP / IPを使用することを前提としているため、アプリケーションはレイヤー2の上に独自のプロトコルを実装または提供する必要があります。

常にIPの「インターネットは本当にそれがトラフィックを得ることに関係ある意味「インターネットワーキング」という意味を覚えて以上のネットワーク、明らかにそれがある(とされる)ことができますが、ネットワークはあまりにもそのために使用。


最初の段落は完璧な答えです!イルミネーション!
ミリンドR

6

MACアドレスは物理転送で使用されます。イーサネットアダプターはIPについて何も知りません。そのため、イーサネットアダプターはMACアドレスを使用してデータパケットの受信者をアドレス指定します。

イーサネットアダプターがIPについて何かを知っている場合は、すべてのファームウェアをアップグレードして、新しいプロトコル(IPv4からIPV6など)に切り替える必要があります。

また、MACアドレスには、製造元に関する情報が含まれています。


3
ルーターはMACアドレスを使用して何もルーティングしません。IPアドレスを使用します。ハブはポートから変更されていないトラフィックをコピーしますが、トラフィックは異なるネットワークではなく同じネットワークを経由するため、これはブリッジングと呼ばれます。
ローレンス

5

IPv4のARP(アドレス解決プロトコル)またはIPv6のNDP(近隣探索プロトコル)がIPアドレスをMACアドレスに変換して、フレームを送信する一意のホストを決定するときに使用されます。


これはかなり近いですが、すべての使用法をカバーしているわけではありません。これがMACとTCP / IPの関係ですが、MACはそれ以上に使用されます。これは、-1を与えていない最初の答えです(ページの下から上へ)。
マークヘンダーソン

@マーク・ヘンダーソン批判をありがとう。さて、質問に答えようとしHow MAC addresses were used in packet transferましたが、それがイーサネットレベルにあると想定しました。そして、はい、それは簡単な答えですが、私は自分のレベルに合ったレベルで答えています:)
ジェスパージェンセン

3

他の回答を完了するには、MACアドレスがスイッチよりもルーターにとってさらに重要であると付け加えます。私は何を意味によって、より重要なことは、スイッチが存在するIPネットワークのために本当に必要はないということです。20年後(RJ-45より前)を見ると、スイッチなしでローカルIPネットワークは完全に機能しました。非ルーティングイーサネットネットワークは、単純に同じワイヤでデバイスを接続していました(たとえば、X base-Tイーサネットテクノロジーに注目してください)。

一方、IPネットワークはルーティングをサポートするために発明され、MACおよびIPアドレス指定スキームに依存しています。

IPネットワークでパケットをルーティングするということは、ターゲットマシンに直接アクセスできない場合、最初に最終IPターゲットに近い別のマシン(ゲートウェイ)に送信されることを意味します。

ネットワークパケットヘッダーに関しては、ゲートウェイに送信されるパケットは、イーサネットレベルヘッダーのターゲットとしてゲートウェイのMACアドレスを持ち、IPレベルヘッダーは変更されないことを意味します。

また、MACアドレスは通常、今日ではMAC-48(物理デバイスアドレス)またはEUI-48(論理デバイスアドレス)のいずれか、またはより大きなネットワークで使用される8バイトのEUI-64アドレスを意味することにも注意してください。歴史的に、MACはXeroxによってイーサネットテクノロジー用に発明され、後にデバイスを識別する必要がある他のネットワークトランスポートテクノロジー(802.11、Bluetooth、FibreChannel、BlueTooth)に再利用されました。

前述したように、イーサネットの代わりに別のレイヤー2を使用できますが、ほとんどはネットワーク識別子としてMACアドレスを使用し、基になるMAC / IP通信スキームが保持され、ARPを使用できます。私の知る限り、すべてのIPスタックは、MACアドレスとIPアドレス間の対応表に依存しています。

非IPスタックには、他の種類のデバイスノード識別子がいくつかあります。たとえば、X.25はMACアドレスではなく、接続ごとに確立された仮想チャネルに依存します。または、ATMデバイスはSNPAを使用してATMネットワークで識別されます。ただし、X.25もATMもIPスタックではありません(また、ATMでも、SNAの一部としてMACアドレス形式を使用します。これは、ATMのIPアドレスとほぼ同じです)。


ルーターはMACアドレスを気にしません。少なくとも2つのNICのそれぞれへのサブネットの割り当ては重要ですが、実際にはMACアドレスは重要ではありません。IPからMACなどのトラフィックではなく、あるIPから別のIPにトラフィックを転送(コピー)します。
ローレンス

4
@ultrasawblade、あなたの声明は馬鹿げています。ルーターがイーサネットネットワークに接続されている場合、イーサネットプロトコルを使用して通信する必要があります。IPパケットは、イーサネットフレームにカプセル化されます。つまり、すべての**直接イーサネットホスト**システムのMACアドレスを知ることが絶対に必要です。レイヤー3デバイスは、レイヤー3プロトコルで魔法のように通信するだけではなく、レイヤー2プロトコル内にレイヤー3プロトコルをカプセル化する必要があります。これは、レイヤー1メディアで送信されます。
ゾレダチェ

3
私はあなたの最初の文に同意しません-それらはスイッチよりもルータにとって「より重要」ではありません-それらはイーサネットネットワーク全体を通して等しく重要です。
マークヘンダーソン

1
基礎となるレイヤー2を完全に異なるものに置き換えることができますが(何がわからないのですが)、IPは引き続き同じように機能します。IPプロトコル(レイヤー3)は、個々のホストがMACまたは他のスキームによってアドレス指定されているかどうかを気にしません。もちろん、IPからMACへのマッピングを維持する必要があります-しかし、ARPが本当にレイヤー3またはレイヤー2に「属する」かどうかを知ることは困難です。 /レイヤ2プロトコルが何であるかを知る必要があります。
ローレンス

2
@マーク・ヘンダーソン:私は年をとっているため、周りにスイッチがなかった頃を覚えています。IPネットワークがスイッチなしで機能できる重要な機器ではありません。スイッチは、単に既存のデータネットワークレイアウトを使用していました。現在、それらが遍在している場合、RJポイントツーポイントテクノロジーが古いバスに取って代わります。つまり、スイッチを機能させるためのMACアドレスは発明されていません。一方、IPネットワークはルーティングのために考案されたため、MACとIPの関係は重要です。
クリス

2

切り替え前の時代(ハブ)を思い出してください。

人がコンピュータの場合、MACアドレスは名前です。

多くの人(コンピューター)が同じ電話をしているふりをします。全員が同時に話しています。

あなた(1台のコンピューター)はこのおしゃべりのすべてを聞きますが、誰かがあなたの名前(あなたのMACアドレス)を文(パケット)の始めで言うまで、何を聞くべきかわかりません。

"FRED, THERE IS ICE CREAM!"

もちろん、放送アドレスに送信された文章も聞きます。それを誰かが叫んでいると考えてください、

"EVERYONE, THERE IS ICE CREAM!"

電話会議に参加する人(コンピューター)が増えるにつれて、フィルターで除外する必要があります。高度な技術とスイッチにより、私たちは1人の人(コンピューター/ MAC)と直接話をすることができたので、ノイズをすべて除去する(そしてより多くの帯域幅を解放する)ために一生懸命働く必要はありません。

IPは基本的な例えで非常に似ていますが、MACアドレス指定の機能とレイヤーがより多くあります。OSIモデルのレイヤー2および3 それぞれ。


事前に切り替えられた日を思い出す必要はありません。MACアドレスは生きており、現在、イーサネットアダプターを離れるすべてのパケットで使用されています。
マークヘンダーソン

本当です。しかし、それは類推に役立ちます。また、NICは同じように動作します。
ランディジェームズ

2

「バス」(イーサネットネットワーク)には複数のアドレスが接続されているため、MACアドレスが必要です。送信者は、受信者を識別することができるだけでなく、受信者を識別する必要もあります。

複数の送信者と受信者が同じワイヤを共有し、メッセージが特定の受信者に送られ、発信元の送信者を識別する必要があるため、すべてのハードウェアバスはアドレス指定が必要です。

I2C、PCI、イーサネット、名前を付けます。

ハードウェアレベルのアドレスは特定の物理ネットワークに対してのみローカルであるため、インターネットワークには複数のアドレス(IPアドレスとハードウェアアドレス)があります。データグラムはネットワークからネットワークへ移動するときに、ネットワークレベルのアドレスを保持する傾向がありますが、途中でハードウェアアドレスを何度も変更します。一部のネットワークを経由する場合、ハードウェアアドレスがまったくない場合があり、他のネットワークではイーサネットMACではないハードウェアアドレスを持つ場合があります。(もちろん、ネットワークアドレスはNATゲートウェイによって書き換えられますが、ハードウェアアドレスはパケットがルーターを通過するたびに削除され、異なるアドレスに置き換えられます。)


1

昔は、ネットワークは共有バスでした。同じワイヤまたはハブに接続された各ネットワークデバイスは、送信したすべてのパケットがネットワーク上のすべてのデバイスで受信されることを意味していました。

ネットワーキングソフトウェアはその時より簡単でした。すべてのデバイスにはMACアドレスがあり、一意であることが保証されています。他のものである必要はありませんでした。同じネットワーク上の2つのデバイスが同じアドレスを持たないことを確認するだけでした。

デバイスが別のデバイスと通信したい場合、受信者のMACアドレスを含むパケットを送信し、受信者はそれをネットワークから選択します。他のすべてのデバイスはそれを無視します-MACアドレスにアドレス指定されていません。

時間が経つにつれて、人々はネットワークにあまりにも多くのデバイスを接続し、トラフィックに追いつくことができなかったため、ネットワークを分離し始め、スイッチで2つのネットワークを接続しました。これらのスイッチには、各ネットワークのどこにどのMACアドレスがあるかを示す巨大なテーブルがありました。1つのネットワークで他のネットワークのMACアドレスにアドレス指定されたパケットを見た場合、他のネットワークにメッセージをコピーします。ただし、すべてのメッセージをコピーするのではなく、他のネットワークに送信する必要があるメッセージだけをコピーします。

これにより、輻輳が緩和され、より多くのデバイスをネットワーク化でき、より全体的なトラフィックを処理できるようになりました。これはパケット交換ネットワークです。

しかし、すべての問題を解決したわけではなく、1つの大きな欠点がありました。スイッチテーブルが大きくなると、ネットワークが遅くなりました。5,000台のマシンをすべてスイッチと相互接続された50の異なるネットワークに接続した場合、各スイッチは5,000個のすべてのMACアドレスを学習し、それに基づいてパケットをルーティングする必要がありました。

大学などのさまざまな機関の人々がネットワークを接続することを望み、必要なテーブルが膨大になるまで、それは大したことではありませんでした。今日数十万個のMACアドレスを追跡することは大したことではないように思えますが、1970年代には、スイッチはコンピューター自体であり、メモリと速度が制限されていました。百は問題でした。

ソリューションはIPネットワークに行き、ルーターを使用していました。これは、MACアドレスベースのスイッチドパケットネットワークの上に構築されます。パケットには、生データではなく、IPパケット(パケット内のパケット)が含まれています。

現在、大規模なネットワークはルーターで接続されています。これらは、MACアドレスを持つパケットを見つけるまで待機してから、IPパケットを取り出してIPアドレスを調べます。次に、IPパケットを新しいMACアドレスの受信者を含む別のパケットに再ラップして、新しいネットワークに送信します。そのMACアドレスは、おそらく新しいネットワーク上の別のルーターに対するものですが、IPアドレスを持つマシンでもある可能性があります。

今日のネットワークでは、ハブとバスはめったに見られません(メディアが本質的に共有されているワイヤレスネットワークを除く)。

私のマシンにはさまざまなアルゴリズムとプロトコルがあるため、ネットワークの設定方法がわかります。

ローカルネットワーク上のマシンにIPパケットを送信すると、マシンは正しいMACアドレスを持つパケット内にそれを配置します。スイッチはローカルで正しいネットワークに切り替え、正しいMACアドレスを持っているため、宛先のマシンがそれを受信します。IPパケットを取り出し、IPアドレスもそのIPアドレスに対応していることを再確認し、それに応じて行動します。

インターネット上の他の場所にあるマシン宛てのIPパケットを送信する場合、私のマシンはルーターに送信することを知っているので、ルーターのMACアドレスを持つパケットの中に入れます。ルーターがオンになっているネットワークに到達するまでネットワーク内で再びローカルに切り替えられ、ルーターがそれを取得し、IPパケットを引き出し、IPパケットを調べ、インターネットの知識に基づいて、別のルーターに送信します別のネットワーク、目的のルーターまたは宛先コンピューターのMACアドレスでパケットにラップします。

私が詳細に説明した多くの小さな詳細と、すべてが機能する本当に興味深いアルゴリズムとプロトコルがいくつかありますが、それは今日でもMACアドレスが何をするのかという基本的な話です。


1
順調にスタートしましたが、相互接続ネットワークについて話し始めた途中で失くしました。スイッチは90年代まで一般的ではありませんでしたが、ルーティングはその20年前に存在していました。
マークヘンダーソン

-1

根本的な違いは、製造時にMACが製造時に割り当てられ、接続時にIPアドレスが割り当てられることです。

MACは、ネットワーク接続する前にデバイスを識別するために使用できるため、必要です。ただし、静的に割り当てられているため、ランダムに分散されているため、複数のネットワークを介した効率的なルーティングには適していません(これを行うと、地球上のすべてのデバイスに、地球上の他のすべてのデバイスへの巨大なルーティングテーブルが必要になります) )。したがって、IPアドレスは接続時に割り当てられ、割り当てられた方法でより効率的な長距離ルーティングが可能になるため、IPアドレスが必要です(IPを使用すると、ほとんどのデバイスは隣接ネットワークを知るだけで済みます)。

IPアドレスしかない場合、IPアドレスが割り当てられていないデバイスは、どのメッセージが自分宛てかを知ることができません。このDHCPが、ほぼ同時にアドレスの割り当てを要求している他の誰かではなく、あなた向けであるとどのように判断しますか?

もちろん、MACはパケット送信の他の部分にも使用されますが、これらの使用のほとんどは偶発的であり、少なくとも理論的には動的に割り当てられた番号(IPアドレスなど)に置き換えることができます。


単にMACアドレスの使用を継続しなかった理由について+1 。
deed02392

3
最初の段落は技術的に正しいですが、それは根本的な違いではありません。根本的な違いは、MACはイーサネットに属し、IPはTCP / IPに属していることです。複数のレイヤー2プロトコル(ATMなど)でTCP / IPを実行できますが、Ethehetで実行されるのはTCP / IPだけではありません。「ネットワークに接続する前」というものはありませんが、「DHCPからIPアドレスを取得する前」があります。しかし、その後もMACは使用されます。OSIモデルの別のレイヤーに置かれているためです。最後の段落はまったく間違っています- ネットワーキングではMACアドレスに代わるものはありません
マークヘンダーソン

@MarkHenderson:私のポイントは、イーサネットとIP to TCP / IPに属するMACは、ほとんど歴史的な事故だということです。理論的には、インターネットスタック全体をゼロから再設計(およびOSIおよび他のネットワークとの互換性を無視)すると、工場で割り当てられた番号(MACなど)のほとんどの使用を動的に割り当てられた番号(IPなど)に置き換えることができますが、動的に割り当てられた番号を取得する前に送受信する必要があるパケットが多数あるため、工場で割り当てられたグローバルに一意の識別子が必要です。
ライライアン

@MarkHenderson:IMO、MACがレイヤー2でIPがレイヤー3だからMACとIPが必要だと言っているのは、「インターネットをそのように設計したから必要だ」と言っているのと同じです。何でも。私がここで答えているのは、問題の性質のために工場で割り当てられた識別子と動的に割り当てられた識別子の両方が必要な理由であり、どちらもなしでインターネットスタックに伴うものです(動的に割り当てられたIDなしのルーティング効率の損失と工場で割り当てられたIDがない場合、動的IDを割り当てる前にデバイスを一意にアドレス指定します)。
ライライアン

@LieRyan、実は私たちは私たちのPCのMAC変更することができますアドレスを.......
Pacerier
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.