web-dev-qa-db-ja.com

MACアドレスの正確な使い方は何ですか?

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

私はそれが理由なくそこにあるとは思わない。それで、私の質問は、パケット転送の間にMACアドレスが正確にどこに関与するかということです。

126
Vishnu Vivek

TL; DR> MACアドレスは、イーサネットネットワーク(およびWiFiなどの他の同様の標準規格)の下位レベルのコンポーネントです。物理的なハードウェアは理論的には世界中のどこにでも接続される可能性があるので、それらはデバイスがローカルの物理ネットワーク(LAN)上のマシンと通信することを可能にし、インターネット経由でルーティングすることはできません。

対照的に、IPアドレスはインターネット全体をカバーし、宛先に到達するために複数のホップが必要な場合でも、ルーターはそれらを使用してデータの送信先を判断します - ただし、ローカルネットワークの物理ハードウェアとのインターフェースには役立ちません。

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

IPよりも優れた標準(たとえば、すべてのIPv4アドレスがなくなった場合のIPv6)が見つかった場合、ほとんどのイーサネットハードウェアは変更せずに新しい種類のトラフィックを伝送でき、残りのほとんどは簡単なソフトウェア/ファームウェアアップデートで修正できます。

MACアドレスは、ローカルイーサネット(またはwifi)ネットワーク機能を実現するために必要です。物理的な接続が共有されていても、ネットワークデバイスが直接接続された単一のデバイスの注目を集めることを可能にします。これは、単一の組織内で何千ものデバイスが接続されている場合に重要になる可能性があります。それらはより広いインターネット上では機能しません。

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

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

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

これの代わりに、ネットワーキングの問題は層に分割されました、そして各層はどのようにリモートマシン上のマッチング層と話すか、そしてそのローカルマシン上でその下の層(そして時には上)と通信する方法を知っていました。トークンリング、イーサネット、またはWiFiネットワークを使用しているマシン上でWebブラウザが動作しているかどうかを気にする必要はなく、ハードウェアを知る必要もないことは間違いありません。リモートマシンが使用します。

これを機能させるために、7層モデルでは入れ子状の封筒のようなシステムを使用しています。アプリケーションはデータを作成し、それをオペレーティングシステムが配信するための封筒にラップします。 OSはこれを別のエンベロープでラップしてネットワークドライバに渡します。ネットワークドライバはこれをさらに別のエンベロープに包み込み、それを物理的なケーブルの上に置きます。等々。

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

Layer 2はデータリンク層です。これは、あるものに構造を提供し、いくつかのエラー検出および訂正能力を提供し、どの物理的に接続されたデバイス(ここでは物理的な接続は実際にはWi-Fiを介してもよい)に関するメッセージに注意を払うべきです。これはMACアドレスが機能する層であり、後でそれに戻ります。しかし、MACアドレスがこのレイヤで唯一の可能性ではありません。たとえば、トークンリングネットワークでは、異なるデータリンクの実装が必要です。

Layer 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と呼ばれるプロトコルを使用して構築され、ネットワークカードは他の直接接続されているデバイスに質問します。イーサネットは、デバイスがall物理的に接続されたデバイスと通信できるようにする特別なMACアドレスFF:FF:FF:FF:FF:FFを予約しています。

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

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

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

外側の封筒を取り除き、内容をチェーンの次のステップに向けられた新しい封筒に入れるというこのプロセスは、メッセージが宛先マシンに届くまで続けられます。

メッセージが最終的に目的の受信者に届くまで、エンベロープは切り取られ続け、目的の受信者に届きます。メッセージはそこに着いたわけではなく、実際に応答を元のマシンに戻すために必要なすべてのステップもありませんでした。

しかし、それはすべて魔法のように、すべてうまくいきます!

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

57
Bill Michell

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

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

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

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

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

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

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

1つは元のIPパケットのターゲットアドレス、もう1つはパケットの送信先となるデバイスのIPアドレスです(ネクストホップ、最後のどちらか一方)。宛先またはルータ)。

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

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

ARP自体はIPやIPXのようにイーサネット上のプロトコルです。デバイスが特定のIPアドレスのMACアドレスを知りたい場合、ブロードキャストMACアドレスに「だれがIPアドレスy.y.y.yを持っていますか?」と尋ねるパケットを送信します。すべてのデバイスがそのパケットを受信しますが、IPアドレスy.y.y.yを持つものだけが「それは私です」というパケットで応答します。質問側デバイスは回答を受け取り、送信元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アドレスを割り当てます。

114
Werner Henze

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

これが組織的にユニークな識別子のリストです: Standards.ieee.org

上記に代わるものがあります。 MAC-Vendor-Lookup

よく知られている製造業者のいくつかの例:

  • 00-05-5D(株式会社ディーリンクシステムズ)
  • 00-09-5B(Netgear Inc.)
  • 00-E0-4C(Realtek Semiconductor Corp.)
  • 00-E0-4F(シスコシステムズ)
  • 00-E0-64(サムスン電子)

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

Pjc50が正しく述べているように、イーサネットネットワークのMACアドレスはスイッチがどのパケットをどこに送るべきか決定するのを助けます。ブロードキャストMACアドレスもあります。 Broadcast-MAC-Addressには、ff:ff:ff:ff:ff:ffを使用します。 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(ワールドワイドネームの一部として)
47
Meintjes

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

24
pjc50

この場合階層を忘れる、それはそれほど重要な問題ではありません。

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

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

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

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

7
logoff

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

イーサネットアダプタがIPについて何か知っているならば、私たちは新しいプロトコル(IPv4からIPV6のような)に切り替えるためにすべてのファームウェアをアップグレードしなければなりません。

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

6
Uwe Plonus

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

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

IPの「インターネット」は常に「インターネットワーキング」を意味することを忘れないでください。これは、トラフィックの取得に実際に関係していることを意味しますbetweenネットワーク以上inネットワーク)そのためにも使用されます。

6
LawrenceC

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

5
Jesper Jensen

他人の答えを完成させるために、私は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アドレスとほぼ同じです)。

3
kriss

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

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

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

あなたは(1台のコンピュータ)このおしゃべりをすべて聞いていますが、聞き取るべきものがわかりません。誰かがあなたの名前(あなたのMACアドレス)をセンテンス(パケット)の冒頭で言っているまでは。

"FRED, THERE IS ICE CREAM!"

もちろん、ブロードキャストアドレスに送信された文も聞きます。ただ叫んでいる人だと考えて

"EVERYONE, THERE IS ICE CREAM!"

より多くの人(コンピュータ)が電話会議に参加するにつれて、より多くの人を除外する必要があります。テクノロジーの進歩とスイッチのおかげで、私たちは一人の人(コンピュータ/ MAC)と直接話すことができたので、そのようなノイズをすべて排除する(そしてより多くの帯域幅を解放する)のは難しくなりました。

IPは基本的な類推において非常に似ていますが、MACアドレス指定の上にさらに多くの機能と層があります。 OSIモデル のレイヤー2と3。

2
Randy James

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

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

I2C、PCI、イーサネット、あなたはそれを名前を付けます。

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

2
Kaz

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

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

あなたの機器が他の機器と通信したい場合は、受信者のMACアドレスを含むパケットを送信し、受信者はそれをネットワークから選択します。他のすべてのデバイスはそれを無視するでしょう - それは彼らのMACアドレスに向けられませんでした。

時間の経過とともに人々はネットワークに接続するデバイスが多すぎてトラフィックに追いつくことができなくなったため、ネットワークを切り離し始め、2つのネットワークをスイッチで接続しました。これらのスイッチには巨大なテーブルがあり、各ネットワークのどこにどのMACアドレスがあるのか​​を示しています。あるネットワーク上のパケットが他のネットワーク上の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パケットを送信した場合、私のマシンはそれをルーターに送信することを認識しているので、ルーターのMACアドレスを含むパケットの中に入れます。それはルータがあるネットワークにぶつかるまで私のネットワーク内で再びローカルに切り替えられ、それからルータはそれを取り出し、IPパケットを引き出し、IPパケットを調べ、そしてインターネットの知識に基づいて、それは別のルータにそれを送ります目的のルーターまたは宛先コンピューターのMACアドレスを含むパケットにそれをラップする別のネットワーク。

私がこれまでに説明したこと、そしてすべてがうまくいくようにするための本当に興味深いアルゴリズムとプロトコルについての詳細はたくさんありますが、それは今日でもMACアドレスが私たちのためにすることの基本的な物語です。

1
Adam Davis