見出し画像

MACアドレスを教えてもらうための情報がそこに詰まっている!ARPフレーム

はい、こんにちは!松井真也です。

前回は、ARP(アドレス解決プロトコル)の概要についてご紹介しました。「IPアドレス」からLAN上の「MACアドレス」を知るためのプロトコルです。特殊なフレームを発信してアドレス解決を図るわけですが、その中身が気になりませんか?

ということで、今回は、ARPのフレーム構造についてお話ししましょう!早速見ていきましょう!

ARPフレームという特殊なフレーム

ARP(Address Resolution Protocol)は、IPアドレスをMACアドレスにマッピング(ひもづける)ためのプロトコルでしたね。

そもそも相手の宛先も分からずに、ブロードキャストするのですから、そのフレームは特殊なものになります。そのフレーム構成を徹底して覚える必要はあまりありません。これを覚えるくらいならMACフレーム、IPパケット、TCPセグメントのフィールド構成をしっかり覚える方が役に立ちます。

とはいえ、ARPの目的を達成するために、どのような情報を発信するかを知ることはイーサネットやインターネットの仕組みを理解する助けになりましょう!

ARPフレームのフィールド構成はこうだ!

ということで、ARPフレームの構成を一つ一つ見ていきます。

下図はWikipediaからありがたく引用します。いろんな表現方法がある中で、これが意外と分かりやすかったので!

  • ハードウェアタイプ (HTYPE)
    イーサネットの場合、このフィールドは「1」正確には「0x0001」(0000 0000 0000 0001と設定されます。これは、使用しているネットワーク技術を識別するためのものです。イーサネット以外もありうのでしょうが、まず覚える必要はないですね。これだけで2バイトも使うんですね。

  • プロトコルタイプ (PTYPE)
    ARPが解決しようとしているプロトコルのタイプを示します。通常のMACフレームでも登場しましたね!Ethernetフレーム内で使用されるプロトコルを指します。IPv4アドレスの場合、この値は「0x0800」(0000 1000 0000 0000)に設定されます。

  • ハードウェアアドレスサイズ (HLEN)
    MACアドレスの長さを表すフィールドです。イーサネットの場合は6オクテットですよね。ですから、6です。

  • プロトコルアドレスサイズ (PLEN)
    ネットワーク層のアドレス、この場合はIPv4アドレスのサイズをオクテットで示し、通常は4です。

  • オペレーションコード
    ARPリクエストは1、ARPリプライは2と設定されます。これにより、送信するメッセージが要求なのか応答なのかが区別されます。

  • 送信元ハードウェアアドレス (SHA) と送信元プロトコルアドレス (SPA)
    送信元のデバイスのMACアドレスとIPアドレスを含みます。ARPリクエストでは、送信者のアドレス情報がこのフィールドに格納されます。

  • 目標ハードウェアアドレス (THA) と目標プロトコルアドレス (TPA)
    ARPリプライで使用されるフィールドです。要求を受けたデバイスが自身のMACアドレスとIPアドレスを応答として送り返します。「宛先アドレス」と呼ばないあたりがちょっと新鮮ですね。MACアドレスの方は知りようがないので、すべて「0」をセットします。

ARPの動作プロセスですが、念のためさらりと振り返っておきましょう。最初にARPリクエストをブロードキャストします。このリクエストには、目標のIPアドレスが含まれ、ネットワーク上の全デバイスに送信されます。該当するIPアドレスを持つデバイスがこのリクエストを受信すると、自身のMACアドレスを含むARPリプライを送信元に直接送り返します。

これを実現するための情報が、ARPフレームにはつまっているのですね!

はい、本日はここまで。今回はARPフレームの構成についてご紹介しました。

次回は、RARPをやりましょうか。では!

この記事が気に入ったらサポートをしてみませんか?