基本情報技術者 2016年 春期 午後 問04
イーサネットを介した通信に関する次の記述を読んで、設問1,2に答えよ。
IPネットワークにおいて、あるホストが別のホストと通信する場合、通信相手のホストのIPアドレスを指定して通信する。下位層にイーサネットを用いるときには、通信相手のホストのMACアドレス、又は通信相手のホストに到達可能なルータのMACアドレスが必要になる。しかし、IPネットワークで通信を行うアプリケーションでは、通信相手のIPアドレスやホスト名を明示的に指定することはあっても、MACアドレスを明示的に指定することはない。したがって、IPアドレスを手掛かりとして必要なMACアドレスを得るために、IPネットワークではARP(アドレス解決プロトコル)というプロトコルが用いられる。
〔MACアドレスに関する説明〕
イーサネットとIPをOSI基本参照モデルに当てはめた場合、イーサネットは物理層とデータリンク層に該当し、IPはネットワーク層に該当する。つまり、IPネットワークでの通信で取り扱うIPデータグラムを、下位層のイーサネットで送信するためには、IPデータグラムをaしたイーサネットフレームを送信する。このとき、イーサネットフレームの宛先を表すアドレスとして用いられるのがMACアドレスである。MACアドレスの長さは48ビットであり、表現可能なアドレスの個数はb個となる。
なお、ここではMACアドレスを表記する際、8ビットごとに2桁の16進数00〜FFで表し、それぞれの間はコロンで区切る。例えば、00:53:00:12:C5:8Aのように表す。
〔ARPの機能の説明〕
IPアドレスを基にMACアドレスを得るARPの機能は、問合せとして“ARP要求”を送信し、それに対する回答として“ARP応答”を受け取ることで実現される。
例えば、セグメント10.1.1.0/24において、ホストA(IPアドレス10.1.1.10、MACアドレス00:53:00:DA:C7:0B)がホストB(IPアドレス10.1.1.20、MACアドレス00:53:00:EC:17:27)宛てにIPデータグラムを送信しようとしたとき、ホストBのMACアドレスはARPによって、次のようにして得られる。
(1) ホストAは、IPアドレス10.1.1.20に対するARP要求を送信する。このとき、ARP要求はcされる。
(2) ARP要求を受け取ったホストBは、そのARP要求が自分のIPアドレスに対する問合せであることを確認すると、自分のIPアドレス10.1.1.20とMACアドレス00:53:00:EC:17:27を格納したARP応答を送信する。同じARP要求を受け取ったその他のホストは、それが自分のIPアドレスに対する問合せではないので、無視する。
(3) ホストAは、ホストBが送信したARP応答を受け取ることによって、IPアドレス10.1.1.20に対応するMACアドレスが00:53:00:EC:17:27であることが分かる。
ホストAは、ホストBのIPアドレスと得られたMACアドレスの対応付けをキャッシュする。キャッシュが破棄されるまで10.1.1.20宛てのIPデータグラムを送る際、イーサネットフレームの宛先MACアドレスとして00:53:00:EC:17:27を使用する。
設問1:
問題文を見る 本文中のに入れる正しい答えを、解答群の中から選べ。
aに関する解答群
ア:宛先として格納
イ:送信元として格納
ウ:データ部に格納
エ:プレアンブルに格納
オ:ヘッダ部に格納
bに関する解答群
ア:48
イ:254
ウ:256
エ:
オ:
cに関する解答群
ア:TCPセグメントとして送信
イ:UDPデータグラムとして送信
ウ:ブロードキャスト
エ:ホストBのMACアドレス宛てに送信
オ:ユニキャスト
模範解答
a:ウ、b:オ、c:ウ
解説
解答の導き方
この問題では、イーサネットでIPデータグラムを送るときの格納場所、MACアドレスの個数、ARP要求の送り方を順に考えます。
a:IPデータグラムをイーサネットフレームのどこに入れるか
IP(Internet Protocol:ネットワーク上でデータを届けるための通信規則)は、通信相手をIPアドレスで表します。一方、イーサネットでは、フレーム(イーサネットでデータを送る単位)の宛先をMAC(Media Access Control:イーサネットなどで機器を識別するアドレス)アドレスで表します。
本文には、イーサネットはデータリンク層、IPはネットワーク層に該当するとあります。上位の層で扱うIPデータグラムを下位の層で送るには、IPデータグラムをイーサネットフレームに入れます。入れる場所は、フレームのデータ部です。
フレームのヘッダ部には、宛先や送信元のMACアドレスなど、届けるための情報が入ります。したがって、aには「データ部に格納」のウが入ります。
b:48ビットで表せるMACアドレスの個数
本文によると、MACアドレスの長さは48ビットです。1ビットには「0」または「1」の2通りがあります。48個のビットそれぞれに2通りずつあるため、組合せの数は次のようになります。
よって、bにはオが入ります。48ビットだから個数が48個になるのではなく、48個のビットで表せる組合せの数を求める点が大切です。
c:ARP要求をどのように送るか
ARP(Address Resolution Protocol:IPアドレスを手掛かりにMACアドレスを調べる仕組み)では、ホストAはホストBのIPアドレスを知っていますが、MACアドレスはまだ分かりません。そのため、ホストBのMACアドレスを宛先に指定して送ることはできません。
そこで、同じネットワーク上の機器全体に届くように、ARP要求をブロードキャスト(同じネットワーク上の機器全体に送る方法)します。受け取った各ホストは、問合せ対象のIPアドレスが自分のものかを確認します。本文のとおり、自分宛ての問合せだと確認したホストBだけがARP応答を返します。
したがって、cには「ブロードキャスト」のウが入ります。ARP要求はTCP(Transmission Control Protocol:データを順序どおり確実に届けるための通信規則)のセグメントや、UDP(User Datagram Protocol:データを簡潔に送るための通信規則)のデータグラムとして送るものではありません。
誤りやすいポイント
-
aで「ヘッダ部に格納」を選ぶ
ヘッダ部には宛先MACアドレスなどの制御情報が入ります。IPデータグラムそのものは、イーサネットフレームのデータ部に入ります。 -
bで「48」と考える
48はビット数です。アドレスの個数は、各ビットに0と1の2通りがあることから、通りです。 -
cでホストBのMACアドレス宛てに送ると考える
ARP要求を送る時点では、そのMACアドレスが分かっていません。分からないアドレスを宛先に指定できないため、ブロードキャストで問合せます。
FAQ
Q:IPアドレスが分かっているのに、なぜMACアドレスも必要なのですか。
A:IPアドレスはネットワーク上で通信相手を指定するために使います。イーサネットで実際にフレームを届けるときには、宛先のMACアドレスも必要です。
A:IPアドレスはネットワーク上で通信相手を指定するために使います。イーサネットで実際にフレームを届けるときには、宛先のMACアドレスも必要です。
Q:ARP要求を受け取った全てのホストが応答するのですか。
A:いいえ。各ホストは、ARP要求が指定しているIPアドレスを確認します。そのIPアドレスを持つホストだけがARP応答を返し、ほかのホストは無視します。
A:いいえ。各ホストは、ARP要求が指定しているIPアドレスを確認します。そのIPアドレスを持つホストだけがARP応答を返し、ほかのホストは無視します。
Q:通信相手が別のネットワークにいる場合、どのMACアドレスを調べますか。
A:通信相手のホストではなく、そのネットワークへデータを届けるルータのMACアドレスを調べます。本文にも、通信相手のホストに到達可能なルータのMACアドレスが必要になる場合があるとあります。
A:通信相手のホストではなく、そのネットワークへデータを届けるルータのMACアドレスを調べます。本文にも、通信相手のホストに到達可能なルータのMACアドレスが必要になる場合があるとあります。
関連キーワード: ARP、MACアドレス、IPデータグラム、イーサネットフレーム、ブロードキャスト、カプセル化
設問2:
問題文を見る 次の記述中のに入れる正しい答えを、解答群の中から選べ。
図1は、ある企業の社内ネットワークの構成(一部)である。

このネットワークにおいて、ホストDが、幾つかの宛先にIPデータグラムを送信しようとするとき、ホストDはARPによって送信に必要なMACアドレスを得る。ここで、ホストDがIPデータグラムを送信しようとしたとき、宛先のMACアドレスはホストDにキャッシュされていないものとする。
ホストEに対してIPデータグラムを送信しようとするとき、ホストDはdのIPアドレスに対するARP要求を送信する。
ホストFに対してIPデータグラムを送信しようとするとき、ホストDはeのIPアドレスに対するARP要求を送信する。
解答群
ア:ブリッジC
イ:ホストD
ウ:ホストE
エ:ホストF
オ:ルータG
カ:ルータH
模範解答
d:ウ、e:オ
解説
解答の導き方
この設問では、ホストDが通信相手へデータを送るとき、どの機器のMACアドレスを調べるのかを考えます。
IP(Internet Protocol:IPアドレスを使ってネットワーク上でデータを届けるための通信規約)で使うIPアドレスと、イーサネットで使うMAC(Media Access Control:イーサネット上で機器を識別するための仕組み)アドレスは、役割が異なります。ARP(Address Resolution Protocol:IPアドレスから対応するMACアドレスを調べる仕組み)は、送信に必要な相手のMACアドレスを得るために使います。
考えるときのポイントは、宛先がホストDと同じネットワークにあるかどうかです。
-
ホストE宛ての場合図1では、ホストDとホストEはどちらも「192.168.1.0/24」のネットワークに接続されています。「/24」は、IPアドレスの先頭24ビットがネットワークを表すことを示します。ここでは、DとEは同じネットワークにいると判断できます。ブリッジ(同じネットワーク内の区間を接続し、データを中継する機器)Cを通っていても、ホストDとホストEは同じIPネットワーク内にあります。そのため、DはEへ直接データを送れます。ARPで調べるのは、通信相手であるホストEのMACアドレスです。よって、dはホストEです。
-
ホストF宛ての場合ホストFが接続されているネットワークは「172.16.1.0/24」です。ホストDのネットワーク「192.168.1.0/24」とは異なるため、DはFへ直接イーサネットでデータを届けられません。この場合、Dはいったん別のネットワークへ中継するルータ(異なるネットワーク間でデータを転送する機器)へ送ります。図1でホストDと同じネットワークに接続されているルータはGです。したがって、DがARPで調べるのはルータGのMACアドレスです。IPデータグラムの宛先はホストFのままですが、DからルータGまで運ぶイーサネットフレームの宛先MACアドレスには、ルータGのものを使います。ARP要求を別のネットワークまで届けるのではなく、Dと同じネットワーク上でルータGのMACアドレスを調べるためです。よって、eはルータGです。
誤りやすいポイント
-
ホストFのMACアドレスを調べると考えてしまうIPデータグラムの最終的な宛先はFですが、Dがまず送る相手は、同じネットワーク上にある中継先のルータGです。DがARPで調べるMACアドレスは、ルータGのものです。
-
ブリッジCを中継先として選んでしまうブリッジCは同じネットワーク内の区間をつなぐ機器です。異なるIPネットワークへデータを中継する役割はありません。ホストEが同じネットワークにいるため、DはEのMACアドレスを調べます。
-
宛先IPアドレスと宛先MACアドレスを混同するホストF宛てのデータでは、IPアドレスの宛先はFです。一方、Dから最初に送るイーサネットフレームの宛先MACアドレスはルータGです。IPアドレスとMACアドレスでは、宛先が異なることがあります。
FAQ
-
Q: ホストF宛てなのに、なぜホストFのMACアドレスを調べないのですか?A: ホストFはホストDと別のネットワークにいるため、Dから直接イーサネットで届けることができません。まず同じネットワークにいるルータGへ送り、そこから先はルータが中継します。
-
Q: ルータHのMACアドレスを調べないのはなぜですか?A: ルータHはホストDと同じネットワーク上にいません。Dは同じネットワークにいるルータGへ送ればよく、ルータHへの転送はその後のルータが行います。
-
Q: ホストF宛てのIPデータグラムの宛先も、ルータGに変わりますか?A: 変わりません。IPデータグラムの宛先はホストFのままです。ルータGは、Fへ届けるために途中で中継する機器です。
関連キーワード: ARP、IPアドレス、MACアドレス、サブネット、ルータ、ブリッジ



