ネットワーク – MACアドレスの具体的な使用方法は?

ip mac-address networking routing

IPアドレスは階層化されていて、インターネット全体のルーターがパケットをどの方向に転送すべきかを把握していると理解していますが、MACアドレスでは階層化されていないので、パケット転送はできません。MACアドレスでは、階層がないので、パケット転送はできません。なので、MACアドレスはパケット転送には使われていません

理由もなくそこに座っているとは思いません。そこで質問なのですが、パケット転送の際にMACアドレスはどこで使われるのでしょうか?

  127  community wiki  None


ベストアンサー

TL;DR> MACアドレスは、イーサネットネットワーク(およびWiFiのような他の類似した規格)の低レベルのコンポーネントです。これは、デバイスがローカルの物理ネットワーク(LAN)上のマシンと通信することを可能にするもので、インターネットを介してルーティングすることはできません

対照的に、IP アドレスはインターネット全体をカバーしており、ルータは、宛先に到達するために複数のホップを必要とする場合でも、データを送信する場所を特定するために IP アドレスを使用します

もしイーサネットよりも優れた規格が見つかったとしても、MACアドレスは使わないかもしれませんが、インターネット上の他の人が聞いたことがなくても、インターネットからのIPトラフィックはそれを横切って流れる可能性があります

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

MACアドレスは、ローカルEthernet(またはwifi)ネットワークを機能させるために必要です。これにより、物理的な接続が共有されているにもかかわらず、ネットワークデバイスが直接接続されている単一のデバイスの注意を引くことができます。これは、1 つの組織内で何千ものデバイスが一緒に接続されている場合に重要になります。これらは、より広いインターネット上では何の機能も果たしません

本当にこの質問の答えを理解するには、OSI(時には7層として知られている)モデルを理解する必要があります

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

昔は、各アプリケーションは、適切な信号を生成するために、どのマシンコード命令を実行する必要があるかを正確に知っていましたが、それは、遠くのアプリケーションに到達し、デコードすることができます。すべての通信は事実上ポイント・ツー・ポイントであり、ソフトウェアは配備されるべき状況に合わせて書かれなければなりませんでした。明らかに、それは維持できませんでした

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

これを実現するために、7 層モデルでは、入れ子になった封筒のようなシステムを使用します。OS はこれを別のエンベロープに包んでネットワークドライバに渡します。ネットワークドライバはこれをさらに別のエンベロープに包んで物理ケーブルに渡します。このようにして、ネットワークドライバはこれをさらに別の封筒に包んで物理ケーブルの上に置きます

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

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

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

レイヤー4-7は、より高いレベルのプロトコルです。これらのプロトコルは、ハードウェアから離れてアプリケーションに近づいていきます。例えばTCPはIPの上にあり、メッセージが行方不明になったときに自動的に再送する仕組みを提供しています

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

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

レイヤ3はデータをIPアドレス8.8.8.8.8などを含む封筒に包み、これをレイヤ2に渡す

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

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

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

ルータはレイヤー2のエンベロープにある自分のMACアドレスに気付き、レベル2のパケットを開きます。それは、レベル3エンベロープ上のIPアドレスを見て、メッセージが次に行く必要があるところで動作します, おそらくあなたのISPでルータになろうとしている。ルータがNAT (または同様のもの)を使用している場合, それもあなたの内部IPアドレスをプライベートに保つために、この時点でレベル3エンベロープを変更することがあります.そして、レベル3エンベロープを、ISPのルータのMACアドレス宛の新しいレベル2エンベロープでラップして、そこにメッセージを送信します

外側の封筒を外し、次のステップに向けた新しい封筒に中身を包むというプロセスは、メッセージが宛先のマシンに届くまで続きます

封筒は、メッセージが最終的に意図した受信者に届くまでの間、層を登りながら引き裂かれ続けます

しかし、それはほとんど魔法のように、すべてが機能しています!

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

61  community wiki  2015-02-18


MACアドレスは何に使われていますか?

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

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

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

IPアドレスとMACアドレスはどのように連携しているのでしょうか?

IPは、イーサネットの上の層で使用されるプロトコルです。別のプロトコルの例としては、IPXがあります。IPは異なるローカルネットワークの接続を可能にし、その結果、企業ネットワークやグローバルインターネットを形成することができます

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

1つは元のIPパケットのターゲットアドレスであり、もう1つはパケットを送るべきデバイスのIPです(次のホップ、最終目的地またはルータ)

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

ARPの仕組みは?

ARP自体はIPやIPXのようなイーサネットの上のプロトコルです。デバイスが与えられたIPアドレスのMACアドレスを知りたい場合、ブロードキャストされたMACアドレスに “Who has IP address y.y.y.y? “と尋ねるパケットを送信します。すべてのデバイスはそのパケットを受信しますが、IP アドレス y.y.y.y.y を持つデバイスだけが “It’s me” というパケットで応答します。尋ねてきたデバイスはその答えを受け取り、ARPパケットのソースMACアドレスが正しいMACアドレスであることを知ることになります。もちろん結果はキャッシュされるので、デバイスは毎回MACアドレスを解決する必要はありません

Routing

言及するのをほとんど忘れていました:MACアドレスに基づくルーティングはありません。低レベルのイーサネットとMACアドレスは、同じネットワーク(有線または無線)上のすべてのデバイスにしか到達できません。ネットワークAのデバイスはネットワークBのデバイスのMACアドレスを持っていないので、このMACアドレスへのパケットはネットワークAのすべてのデバイスによって(ルータによっても)破棄されます

ルーティングはIPレベルで行われます。単純に見て、ルータは「IPアドレスとMACアドレスはどのように一緒に動作するのか」のセクションで上で説明したことをやっているだけです。ルータは自分のMACアドレス用のパケットを受信しますが、別のIPアドレス用のパケットを受信します。そして、ターゲットIPアドレスに直接到達できるかどうかをチェックします。もしそうであれば、彼はターゲットにパケットを送信します。そうでなければ、ルータ自身も上流のルータを設定しており、そのルータにパケットを送信します

もちろん、複数のルーターを設定することもできます。あなたの家のルーターは1つの上流のルーターしか設定されていませんが、インターネットのバックボーンでは、大きなルーターは大きなルーティングテーブルを持っているので、彼らはすべてのパケットのための最良の方法を知っています

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

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

  2. ワイヤレスアクセスポイントは、アクセス制御にMACアドレスを使用することが多い。それらは、正しいパスフレーズを持つ既知のデバイス(MACアドレスは一意であり、デバイスを識別する)に対してのみアクセスを許可します

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

115  community wiki  2019-07-15


一般的にMACアドレス(Media Access Control address)は、ネットワーク内のデバイスの識別子です。したがって、すべての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(シスコシステムズ社)
  • 00-E0-64(サムスン電子)

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

pjc50が正しく述べているように、イーサネットネットワークのMACアドレスは、スイッチがどのパケットをどこに送るかを決めるのに役立ちます。Broadcast-MAC-Addressもあります。MAC-Addressは変更可能なので、デバイス識別子としての使用には注意してください。MAC-AddressはARP(Address Resolution Protocol)プロトコルでも使用されます。PC A は、自分の IP-Address、MAC-Address、受信機の IP-Address、上記のブロードキャストアドレス(ff:ff:ff:ff:ff:ff:ff)を指定した ARP-Request を PC B に送信します。その後、PCBは、そのパケットが自分に送信されたか否かを確認する。そうであれば、PCBは自分のMACアドレス、IPアドレス、受信機のMACアドレス、受信機のIPアドレスを返送する。他の機器はそのパケットを破棄します

PC AもBも通常、成功した接続をARPキャッシュに保存します。接続が成功した場合の保存方法は機器によって異なります。IPアドレスがわからない場合は、RARP(Reverse Address Resolution Protocol)を使ってIPアドレスを取得することができます。RARPでは、デバイスが中央のクライアントに連絡してIPアドレスを要求します。しかし、この方法は現在ではほとんど使われていません

以下の技術では、MAC-48 識別子フォーマットを使用しています

  • Ethernet
  • 802.11無線ネットワーク
  • Bluetooth
  • IEEE 802.5トークンリング
  • 他のほとんどのIEEE 802ネットワーク
  • FDDI
  • ATM(スイッチド仮想接続のみ、NSAPアドレスの一部として) ファイバーチャネルおよびシリアルアタッチドSCSI(ワールドワイドネームの一部として)

47  community wiki  2018-02-09


イーサネットネットワーク上にはいくつかのデバイスがあり、MACアドレスはどのデバイスがパケットを受信するかを指定します。イーサネットスイッチは、受信したパケットをどのポートに送るかを選択するために使用します

24  community wiki  2013-07-24


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

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

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

パケットは、レイヤ3の単位データであり、典型的にはIPパケットである。それらは、1つ以上のコリジョンドメインを通過する。IPアドレスは、このドメイン内のアドレスである

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

7  community wiki  2013-07-24


イーサネットは、話したい相手のコンピュータ(相手のMAC)がネットワークアダプタから直接到達可能であることを前提としています。IPはそうではありません。IPは、全世界のどのIPにも到達できることを前提としており、現在のサブネット上で到達できない場合は、NATに関係なく、ルーターがそこまで運んでくれることを前提としています。レイヤ2やイーサネットにはゲートウェイという概念は存在しません

もしあなたがスイッチに接続されたいくつかのマシンを持っていて、ルータを介して他のネットワークやインターネットとトラフィックを交換する必要がないのであれば、あなたは本当にIPを起動して実行する必要はありません。もちろん、アプリケーションはレイヤー2以上のプロトコルを実装するか、提供しなければなりません

IP の「インターネット」は「インターネットワーキング」という意味で、ネットワークよりもネットワーク間のトラフィックを得ることに関係していることを常に覚えておいてください

6  community wiki  2013-07-24


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

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

また、MACアドレスには、その中のメーカーについての情報があります

6  community wiki  2015-02-18


IPv4のARP(Address Resolution Protocol)やIPv6のNDP(Neighbor Discovery Protocol)が、IPアドレスをMACアドレスに変換して、フレームを送信すべき固有のホストを決定する際に使用します

5  community wiki  2013-07-24


他の方の回答を補足すると、MACアドレスはスイッチよりもルータの方が重要だということです。私はより重要であることを意味するものは、スイッチは存在するIPネットワークのために本当に必要ではないということです。Ilあなたは20年前にさかのぼって見てください(RJ-45の前に)ローカルIPネットワークは、非ルーティングされたイーサネットネットワークは、単に同じワイヤ上のデバイスを接続していたスイッチなしで完全に働いていた, (例えば、Xベース-Tイーサネット技術に見ている)

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

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

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

また、MACアドレスは通常、MAC-48(物理デバイスアドレス)またはEUI-48(論理デバイスアドレス)、あるいは大規模なネットワークで使用される8バイトのEUI-64アドレスのいずれかを意味することに気づくべきである。歴史的にMACは、イーサネット技術のためにゼロックスによって発明され、後にデバイスを識別する必要がある他のネットワークトランスポート技術(802.11、Bluetooth、ファイバチャネル、BlueTooth)のために再利用されました

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

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

3  community wiki  2013-07-25


スイッチ前の時代(ハブ)に思いを馳せてみてください

人がコンピュータであれば、MACアドレスはその人の名前になります

たくさんの人(コンピュータ)が同じ電話をしていると思ってください。みんなが同時に話しています

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

"FRED, THERE IS ICE CREAM!"

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

"EVERYONE, THERE IS ICE CREAM!"

より多くの人(コンピュータ)が電話会議に参加するようになればなるほど、フィルタリングしなければならないものが増えていきます。技術の進歩とスイッチのおかげで、一人の人間(コンピュータ/MAC)と直接話すことができるようになりました

IPは基本的なアナロジーでは非常によく似ていますが、MACアドレスの上に機能やレイヤーが増えています。OSIモデルのレイヤ2とレイヤ3はそれぞれです

2  community wiki  2013-07-24


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

複数の送信者と受信者が同じ配線を共有し、メッセージは特定の受信者に送られ、発信者も特定しなければならないため、すべてのハードウェアバスにはアドレッシングが必要です

I2C、PCI、イーサネットなど、あらゆるものに対応しています

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

2  community wiki  2013-07-24


昔のネットワークは共有バスでした。ネットワークに接続された各デバイスは、同じ線に接続されていました、あるいはハブに接続されていました

当時のネットワークソフトウェアはもっとシンプルでした。すべてのデバイスには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  community wiki  2013-07-24


根本的な違いは、MACは製造時にメーカーが割り当てているのに対し、IPアドレスは接続時に割り当てていることです

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

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

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

-1  community wiki  2013-07-24


タイトルとURLをコピーしました