2013年12月3日火曜日

ARPとは何だ!?

今回はARP(Address Resolution Protocol)についてです。

ARP自体は少し調べてみればなんとなくわかる思いますが、ザックリとまとめてみました。
要するにTCP/IPで通信するにはIPアドレスの他にMACアドレスが必要で、IPアドレスからMACアドレスを調べるためにARPというプロトコルがあります。

ARPには以下の2種類があります。
・ARPリクエスト(要求)
・ARPリプライ(応答)

ARPの仕組みは、ARPリクエストをするノード(※1)は同一ネットワーク上の全てのノードに対してARPリクエストを送ります(※2)。
ARPリクエストを受け取ったノードは、ARPパケットの目標IPが自分宛てだった場合、ARPリクエストをしたノードにだけARPリプライを送ります(※3)。
ARPパケットの目標IPが自分宛てではなかったノードはパケットを破棄します
 ※1:ノードとはネットワークを構成するコンピュータや通信機器の事
 ※2:ブロードキャスト
 ※3:ユニキャスト

ARPパケットの中身はこんな感じです。

■ARPリクエスト
【イーサネットヘッダ】
宛先MACアドレス    ブロードキャスト(「FF:FF:FF:FF:FF:FF」)
送信元MACアドレス   ARPリクエストしたノードのMACアドレス
フレームタイプ     0x0806(固定)→ARPを示す
 【ARPパケット】
 制御情報        プロトコル等<ネットワーク種類:0x0001(固定)→Ethernet/プロトコル:0x0800→IP/ハードウェアアドレス(MAC)長さ:0x06固定/プロトコルアドレス(IP)長さ:0x04(固定)>
 動作コード       0001(固定)→ARPリクエストを示す
 送信元MACアドレス   ARPリクエストしたノードのMACアドレス
 送信元IPアドレス    ARPリクエストしたノードのIPアドレス
 目標MACアドレス    わからないため「00:00:00:00:00:00」や「FF:FF:FF:FF:FF:FF」にしておく
 目標IPアドレス     調べたいノードのIPアドレス

■ARPリプライ
【イーサネットヘッダ】
宛先MACアドレス    ARPリクエストしたノードのMACアドレス
送信元MACアドレス   ARPリプライしたノードのMACアドレス
フレームタイプ     0x0806固定→ARPを示す
 【ARPパケット】
 制御情報        プロトコル等<ネットワーク種類:0x0001(固定)→Ethernet/プロトコル:0x0800→IP/ハードウェアアドレス(MAC)長さ:0x06固定/プロトコルアドレス(IP)長さ:0x04(固定)>
 動作コード       0x0002(固定)→ARPリプライを示す
 送信元MACアドレス   ARPリプライしたノードのMACアドレス
 送信元IPアドレス    ARPリプライしたノードのIPアドレス
 目標MACアドレス    ARPリクエストしたノードのMACアドレス
 目標IPアドレス     ARPリクエストしたノードのIPアドレス


以上です。

0 件のコメント:

コメントを投稿