連載第10回
TCP/IPアレルギー撲滅ドリル【下位レイヤ編】

arpはネットワークで何を「叫ぶ」?

福永勇二
インタラクティブリサーチ
2005/3/2


素朴な疑問
MACアドレスの正体
1 MACアドレスって何ですか?
2 MACアドレスを見てみたいのですが
MACアドレスとIPアドレス
3 データのあて先に使うのはIPアドレスじゃないのですか?
4 MACアドレスとIPアドレスの関係を例で説明してください
5 どちらに統一できないのですか?
6 ネットワークの動作で説明してください
IPアドレスからMACアドレスを見つけ出す
7 対応表を使えば簡単じゃないですか?
8 対応表を使わない方法にはどんな方法がありますか?
9 arpの動作は?
10 ネットワークで「叫ぶ」ってどういう意味?
arpパケットの構造
11 arpパケットの中身を教えてください
12 arpパケットを見るときの注意点は?
 MACアドレスの正体

 今回は「MACアドレス」を足がかりに、IPアドレスとの関係や、両方をつなぐ懸け橋として非常に重要な働きをしている「arp」というプロトコルにスポットライトを当てて行きます。普段は目が行きにくい部分ですが、なかなかどうして、そこにはIPパケットを送り届けるのに欠かせない働きが隠れています。

・MACアドレスって何ですか?

 PCに付いているネットワークポートは、ほぼ間違いなくイーサネットと呼ばれる規格を使ったものです。イーサネットの回路には、1つ1つ異なる番号が割り振られていて、世界に2つと同じ番号はありません。この番号をMACアドレスと呼びます。

 ほかのPCと重なることがないことから、MACアドレスを指定することでPCを特定することができます。「アドレス」という名前が付いているのもこのためです。

 イーサネットを流れる情報には、それを届ける先のコンピュータのMACアドレスが書いてあります。コンピュータは、ネットワークを流れていく情報をずっと見ていて、自分のMACアドレスが書いてある情報があったら、それを取り込みます。

・MACアドレスを見てみたいのですが

 MACアドレスは電子的に書き込まれているので、通常は外から見えません。しかし、イーサネットカードや無線LANカードなどでは、そのどこかに印刷されていることが多いようです。例えば、00-0D-0B-26-37-3Eのように書かれています(-の代わりに:で区切ることもあります)。また、すでにWindowsコンピュータで使っている場合は、コマンドプロンプトを開いて、ipconfig /allと入力すると、「Physical Address」の欄にMACアドレスを見つけることができます。

 MACアドレスとIPアドレス

・データのあて先に使うのはIPアドレスじゃないのですか?

 IPアドレスは、いくつものネットワークがつながっている中で、相手を指し示すために考え出されたアドレスです。IPアドレスは、そのパソコンをつないでいるネットワークによって変わります。

 一方、MACアドレスは、実際にデータを送るときに、物理的なデータの相手先を示すために必要なアドレスです。実際にデータを届けるネットワークカード同士は、MACアドレスであて先を指定します。直接つながっている相手だけ区分できればよいので、いくつものネットワークがつながっている状況などは考慮していません。

 といっても、なかなか分かりにくいと思うので、少し例を使って説明してみましょう。

・MACアドレスとIPアドレスの関係を例で説明してください

 少し乱暴な例えかもしれませんが、MACアドレスとIPアドレスの関係は、役職と個人名の関係に似ています。

 例えば、ある書類のあて先に「総務部 設備課長 様」と書いてあるとします(図1)。この書類を送った人は、設備課長が誰だか知らなくても構いません。一方、この書類を受け取った総務部では、この書類を誰かに届けなければなりません。幸い、総務部では設備課長が「山本一郎」さんであることは分かっています。そこで、この書類は山本一郎さんに届けられます。

図1 役職名のあて先でも、配るときは姓名がキー

 このように、書類を届ける最終段階では、人間を区別する「姓名」を頼りに、情報を届けなければなりません。しかし、ほかから届く情報には、「姓名」とは全く別のあて先の表し方「役職名」だけ書いてあれば十分です。

 つまり、「姓名」には最終的にモノを届けるために相手を識別する働きがあり、「役職名」にはそんな細かいことには関与せず、より大きな目的を果たすための働きがあるということができます。

 この関係になぞらえて、MACアドレスには「姓名」に、IPアドレスには「役職名」に似た役割があると考えると、少しその関係が分かりやすくなるかもしれません。

・どちらに統一できないのですか?

 これも上の例で考えてみましょう。山本さんは次の人事異動で「経理部 資材課長」になるかもしれません。もし役職名に統一するとしたら、山本さんは異動があるたびに改名しなければなりません。それはあまりにも不合理です。

 反対に、すべて姓名に統一しても、あまりいいことは起きません。例えば会議のケースを考えてみましょう。役職抜きで姓名で呼び合うと、誰がどんな役割をしているのか一目で判別できなくなります。新入社員などは大混乱するでしょう。

 このようにいろんな場合を考えると、どちらかの呼び名に統一するのは至難の業であることが分かります。「山本一郎」と「総務部 設備課長」という呼び名には、それぞれ別の働きがあって、場面場面で、両方を使い分けたり、必要な場合には両方を結び付けて使うのが、一番うまいやり方なのです。

・ネットワークの動作で説明してください

 実際の配送を例に、もう少し具体的にIPアドレスとMACアドレスの働きを考えてみましょう。IPアドレスを使った配送の方法は、下位レイヤ編の連載第7回 「『アイピー』ってなんですか?」で説明しましたので、まずはこれに照らしながら話を進めます。

 MACアドレスが登場するのは、同じネットワークの中でのデータの配送です。図でいうと、例えば、ネットワークAにつながっているコンピュータ1から2への配送がこれに当たります コンピュータ1が2に情報を送るとき、プログラムではデータのあて先をコンピュータ2のIPアドレスで指定します。そこでコンピュータ1は、あて先であるコンピュータ2のIPアドレスを手掛かりに、コンピュータ2のMACアドレスを探し出します。次に、その見つけ出したMACアドレスを使って、あて先のコンピュータに実際に情報を送り届けています。この様子を図2に示します。

図2 IPアドレスのあて先でも、配るときはMACアドレスがキー

 ちなみに、コンピュータ1からコンピュータ5にデータを送りたくて、その中継のためにコンピュータ2にデータを送るときも、これと同じような方法でコンピュータ2にデータを届けています。

 ここでこういう疑問がわく方も多いでしょう。「IPアドレスとMACアドレスはどうやって対応付けているのか?」。実は、これが今回のお話のキモです。arpは、この対応付けのためのプロトコルです。

TCP/IPアレルギー撲滅ドリル【下位レイヤ編】(10)目次
1  MACアドレスの正体/MACアドレスとIPアドレス
2  IPアドレスからMACアドレスを見つけ出す
3  arpパケットの構造

関連リンク
  連載:TCP/IPアレルギー撲滅ドリル【超実践編】(上位レイヤ編)
連載:インターネット・プロトコル詳説

連載:ルータの仕組みを学ぼう
ホストのネット接続は正しく行われているか? 〜netstatによるネットワーク設定の確認〜


「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間