ARPのしくみ

14.09.10 / インターネットとは? / Author:

ARPってなんだったか覚えてますか?「MACアドレスとIPアドレスの関係」でちょこっと登場しました。

ARPとは、IPアドレスからMACアドレスを調べるためのプロトコルです。

「IPアドレスとMACアドレスの関係」でも書いたように、IPアドレスは送りたい人のグループを指定しているだけなので、

実際の通信にはMACアドレスが必要です。

そのため、IPアドレスだけわかっていても、MACアドレスがわからなければ通信はできません。

IPアドレスとMACアドレスの対応はARPテーブルにかかれます。

ARPテーブルは通信するたびにキャッシュをして更新します。

ねこさんのMACアドレスがわからないようなので調べましょう。

ではどのように調べるのかというと、MACアドレスのブロードキャストアドレスを使ったARPを行います。

MACアドレスにもIPアドレスと同じようにブロードキャストアドレスが存在します。

MACアドレスもまた、すべてのビットが1なので、16進数に直すとFF:FF:FF:FF:FF:FFとなります。

このブロードキャストアドレスを使うと、同時に同じセグメントの中のコンピュータすべてと通信ができます。

では、ARPの様子をウサパケさんたちのおつかいのようすで見てみましょう。

ARPでは、コンピュータがARP要求パケットというものをMACアドレスを知りたい人のコンピュータに送ります。

このときパケットには、送信元のIPアドレスとMACアドレス、送信先のIPアドレスが書いてあります。

うさぱけっとさんたちも通信で送られるわけですから、もちろんMACアドレスが必要ですよね。

でも今回はMACアドレスがわからない。ではどうなっているのかというと、MACアドレスのブロードキャストアドレスが書かれます。

ブロードキャストアドレスはみんなと通信をする(ブロードキャストする)ためのアドレスなので、セグメントにいるみんなに送られます。

するとパケットにかかれたIPアドレスが自分のことなのかを確認します。

ねこさん宛のようですね。くまさんは僕はねこさんじゃないよ。と言ってウサパケットさんを破棄します。

パケットが自分宛てであったら、自分のMACアドレスを書き込んだARP応答パケットを送ります。

このとき、うさぱけっとさんの持ち物の中にうささんのMACアドレスが書かれていましたよね。

だからお互いのMACアドレスがこれでわかるので、ねこさんはうささんだけにデータを送ります。

つまりユニキャストです。

こうしてうささんはねこさんのMACアドレスを知ることが出来ました!

おしまい…じゃないのです!

さっき出てきたIPアドレスとMACアドレスの対応表、ARPテーブルにねこさんのMACアドレスを書いて終了です!

キャッシュされるってことですね。

ちなみに…

このARPテーブル、定期的にキャッシュがクリアされて書き直しが行われます。

なぜ書き直しをするのでしょう?

それはIPアドレスが変わりやすいものだからです。

IPアドレスは固定で使う契約をしていないと、プロバイダの方でランダムに書き換えられます。

そのため、前回のIPアドレスと今回のIPアドレスが違うなんてことが起きるため、ARPテーブルは書き換えが行われるのです。

Comments: 6

もにょもにょ // 9月 15th, 2010 - 1:38 AM

IPv6ではNDPというものの一部にこの
動作が含まれてます。

やってることは同じになります。

もにょもにょ // 9月 15th, 2010 - 1:43 AM

IPアドレスが衝突(同じIPアドレスのホストが
サブネット内に複数存在する状態)している場合、
このARPテーブルを見るとMACアドレスが
ころころ変わるのを見ることができます。

試しにどうぞw

yamauchi // 9月 15th, 2010 - 6:44 PM

よいサイトだと思いますが、とても私にはこんなページは作れません。是非続けていってください。

aico // 9月 16th, 2010 - 11:19 AM

yamauchiさん

コメントありがとうございます。
もちろん続けていくつもりです!^^これからも見に来てくださいね*

ワンセグで韓国ドラマ // 9月 27th, 2010 - 4:22 AM

このブログは、凄いですねぇ。思わずコメントしてしまいました。これからも宜しくお願いします。楽しみにしています。イラストもとっても可愛いです。

aico // 9月 29th, 2010 - 1:26 PM

ワンセグで韓国ドラマさん

コメントありがとうございます。
ありがとうございます!これからもがんばります*^^

Leave a Reply

« | »