---
title: "ARPとは？IPアドレスからMACアドレスを調べる仕組み【基本情報技術者試験】"
description: "ARPを「相手のIPアドレスから対応するMACアドレスを調べる仕組み」として整理し、DHCP・ICMP・NATとの違い、ARP要求とARP応答の流れ、FE試験での切り分け方を初心者向けに解説します。"
last_modified_at: "2026-08-10"
canonical_url: "https://stemtazoo.github.io/fe/arp/"
section: "fe"
---

## まず結論

ARP（Address Resolution Protocol）は、**相手のIPアドレスは分かっているがMACアドレスが分からないときに、対応するMACアドレスを調べる仕組み**です。

基本情報技術者試験では、次の対応を最初に押さえると選択肢を切りやすくなります。

```text
IPアドレスは分かっている
↓
MACアドレスを知りたい
↓
ARP
```

似た用語は、**何を調べる・設定する・変換するのか**で切り分けます。

```text
IP → MAC
→ ARP

IPアドレスなどを自動設定
→ DHCP

通信エラーや到達確認
→ ICMP

プライベートIPとグローバルIPを変換
→ NAT
```

## 直感的な説明

ネットワークで相手へデータを届けるとき、IPアドレスだけでなく、同じネットワーク内ではMACアドレスも使います。

初心者のうちは、次のように考えると分かりやすいです。

```text
IPアドレス
→ 相手を特定するためのネットワーク上の住所

MACアドレス
→ 同じネットワーク内で実際の届け先を指定するための機器側の識別情報
```

例えば、送信したい相手のIPアドレスが `192.168.1.20` だと分かっていても、その相手のMACアドレスが分からないとします。

そのときARPを使って、

```text
「192.168.1.20 を使っている機器は誰ですか？」
```

とネットワーク内へ問い合わせます。

該当する機器が、

```text
「私です。MACアドレスは AA:BB:CC:DD:EE:FF です」
```

と応答します。

つまり、ARPは**IPアドレスとMACアドレスの対応を調べる橋渡し**です。

## 定義・仕組み

ARPは、IPv4ネットワークでIPアドレスに対応するMACアドレスを取得するときに使われます。

基本的な流れは次のとおりです。

```text
1. 相手のIPアドレスを確認する
2. 対応するMACアドレスが分からない
3. ARP要求を送る
4. 該当する機器がARP応答を返す
5. IPアドレスとMACアドレスの対応を記憶する
6. そのMACアドレスを使って通信する
```

### ARP要求

送信元は、対象のIPアドレスを持つ機器を探すためにARP要求を送ります。

イメージとしては、

```text
このIPアドレスを持っている人は誰？
```

という問い合わせです。

### ARP応答

対象のIPアドレスを持つ機器は、自分のMACアドレスを返します。

```text
そのIPアドレスは私です
↓
私のMACアドレスはこれです
```

### ARPキャッシュ

毎回同じ相手へARP要求を送るのは効率がよくありません。

そのため、取得したIPアドレスとMACアドレスの対応を一定時間記憶します。この対応情報を保持する領域をARPキャッシュと呼びます。

```text
IPアドレス          MACアドレス
192.168.1.20   →   AA:BB:CC:DD:EE:FF
192.168.1.30   →   11:22:33:44:55:66
```

このテーマは、基本情報技術者試験のネットワーク分野と関係します。公式の出題範囲やシラバスは、[IPA：基本情報技術者試験](https://www.ipa.go.jp/shiken/kubun/fe.html) から確認できます。

## 科目Aでどう出る？

科目Aでは、複数のネットワーク用語の中から、説明に合うものを選ぶ問題が出ます。

ARPでは、問題文に次の組合せがあるかを確認します。

```text
IPアドレスが既知
＋
MACアドレスが未知
↓
ARP
```

### ARP・DHCP・ICMP・NATを切り分ける

| 用語 | 何をする？ | 問題文の手掛かり |
|---|---|---|
| ARP | IPアドレスからMACアドレスを調べる | IPは既知、MACを取得 |
| DHCP | IPアドレスなどを自動設定する | 自動割当て、ネットワーク設定 |
| ICMP | 通信状態やエラーを通知する | 到達確認、エラー通知 |
| NAT | IPアドレスを変換する | プライベートIP、グローバルIP、変換 |

特にARPとDHCPは、どちらもアドレスに関係するため混同しやすいです。

```text
ARP
→ 相手のIPはすでに分かっている
→ MACアドレスを調べたい

DHCP
→ 自分が使うIPアドレスなどを設定してほしい
```

DHCPの役割は、[DHCPとは？IPアドレスを自動で割り当てる仕組み](https://stemtazoo.github.io/fe/dhcp/)で詳しく整理しています。

NAT・NAPTとの違いは、[NAPTとは？NATとの違いとIPマスカレードの仕組み](https://stemtazoo.github.io/fe/nat-napt/)で確認できます。

## どんな場面で使う？

同じLAN内の別の機器へIPv4で通信するとき、送信先のMACアドレスが必要になる場面でARPが使われます。

例えば、PC AからPC Bへ通信するとします。

```text
PC A
IP: 192.168.1.10

PC B
IP: 192.168.1.20
```

PC AはPC BのIPアドレスを知っていても、MACアドレスをまだ知らないことがあります。

その場合、ARPでMACアドレスを確認してから通信します。

```text
PC A
↓ ARP要求
「192.168.1.20 は誰？」
↓
PC B
↓ ARP応答
「私です。MACアドレスはこれです」
```

なお、通信相手が別のネットワークにいる場合は、最終的な相手のMACアドレスではなく、まず同一ネットワーク上のデフォルトゲートウェイなどのMACアドレスをARPで調べて送信します。

## よくある誤解・混同

### ARPはIPアドレスを割り当てる？

違います。

```text
IPアドレスを自動で割り当てる
→ DHCP

IPアドレスからMACアドレスを調べる
→ ARP
```

### ARPはIPアドレスを変換する？

ARPは、IPアドレスそのものを別のIPアドレスへ変換する仕組みではありません。

```text
IP → MAC の対応を調べる
→ ARP

プライベートIP ↔ グローバルIP
→ NAT
```

### ARPは通信できるか確認する？

ARPの主な役割はMACアドレスの取得です。

通信の到達確認やエラー通知という説明なら、ICMPを疑います。

```text
相手のMACアドレスを知りたい
→ ARP

通信できるか確認したい
→ ICMP
```

### MACアドレスはインターネット全体でそのまま使う？

MACアドレスは、主に同一リンク内でフレームを届けるために使われます。

ルータを越えて通信するときは、区間ごとに使われるMACアドレスが変わります。

そのため、遠くのサーバのMACアドレスをARPで直接取得してインターネット全体を通信するわけではありません。

### ARPはIPv6でも同じように使う？

IPv6では、IPv4のARPと同じ役割をそのままARPで行うのではなく、近隣探索の仕組みが使われます。

FE試験のARP基本問題では、まずIPv4での

```text
IPアドレス → MACアドレス
```

という役割を確実に押さえることを優先します。

## まとめ（試験直前用）

- ARPは、**IPアドレスから対応するMACアドレスを調べる**
- 「IPは分かる、MACが分からない」ならARPを疑う
- DHCPはIPアドレスなどの自動設定、ARPとは役割が違う
- ICMPは到達確認やエラー通知、NATはIPアドレス変換
- 迷ったら、**何から何を求めているのか**を見る

```text
IP → MAC
→ ARP
```
