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 件のコメント:
コメントを投稿