情報処理安全確保支援士 2018年 秋期 午前2 問19
問題文
クラスDのIPアドレス(224.0.0.0~239.255.255.255)に関する記述として、適切なものはどれか。
選択肢
ア:DHCPサーバが見つからないときの自動設定アドレスに使用される。
イ:IETFでの実験用アドレスとして予約されており、一般には使用されない。
ウ:UDPなどを用いるマルチキャスト通信で使用される。(正解)
エ:小規模なネットワークでプライベートアドレスとして使用される。
🔒 解説は解答すると表示されます
クラスDマルチキャストアドレス【午前2解説】
正解の理由
IPアドレスのクラス分け(クラスフル)は歴史的なものですが、範囲の定義は今も基礎知識として重要です。224.0.0.0〜239.255.255.255はクラスDに割り当てられ、マルチキャスト通信(複数の受信者へ同一パケットを効率的に送る)に用いられます。したがって、選択肢の中では ウ「UDPなどを用いるマルチキャスト通信で使用される。」が正しい選択です。マルチキャストは主にUDPベースで利用されますが、原理としては特定のアドレス範囲を使って複数受信者に配信する仕組みを指します。
解法ステップ
- クラスごとの使途を押さえる(A,B,Cはホスト向け、Dはマルチキャスト、Eは予約/実験用)。
- 各選択肢を上の分類に照らし合わせる:
- DHCP自動割当(APIPA)は169.254.0.0/16 → クラスDではない。
- 実験用はクラスE(240.0.0.0〜255.255.255.255) → クラスDではない。
- マルチキャストはクラスD(224.0.0.0〜239.255.255.255) → 該当。
- プライベートアドレスはRFC1918の範囲(10/8, 172.16/12, 192.168/16) → クラスDではない。
- 範囲と用途が一致する選択肢を選ぶ(ウ)。
選択肢別の誤答解説
- ア: 「DHCPサーバが見つからないときの自動設定アドレスに使用される。」
- 誤り。DHCPが見つからないときの自動割当(APIPA/Link-local)は 169.254.0.0/16(IPv4)であり、クラスDではありません。
- イ: 「IETFでの実験用アドレスとして予約されており、一般には使用されない。」
- 誤り。実験・将来利用のために予約されているのはクラスE(240.0.0.0〜255.255.255.255)です。クラスDはマルチキャスト用で広く利用されます。
- ウ: 「UDPなどを用いるマルチキャスト通信で使用される。」
- 正しい。クラスD(224.0.0.0〜239.255.255.255)はマルチキャストに割り当てられており、IGMP等で参加管理し、主にUDPストリームで用いられます。
- エ: 「小規模なネットワークでプライベートアドレスとして使用される。」
- 誤り。プライベートアドレスは RFC1918 の範囲(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)であり、クラスDとは別です。
よくある誤解
- 「マルチキャスト=ブロードキャスト」と混同する
- ブロードキャストは同一サブネットの全ノードへ送る仕組み(例: 255.255.255.255、あるいはサブネットブロードキャスト)。マルチキャストは特定のグループに対して効率的に配信する仕組みです。
- 「マルチキャストは必ずTCPで使う」と誤解する
- マルチキャストは接続指向のTCPとは基本的に合わないため、UDPを使うことが一般的です(ただし応用的に別のトランスポートを組み合わせることは可能です)。
- 「クラスEが 240.0.0.0〜255.255.255.254 だ」との誤表記
- 正しくは 240.0.0.0〜255.255.255.255 です(末尾の .255 まで含む)。
補足コラム
- クラスD内でも用途別の小区分があります。代表例:
- 224.0.0.0/24: リンクローカル(ルータを越えない制御用マルチキャスト、例: 224.0.0.1 は全ホスト)。
- 232.0.0.0/8: SSM(Source-Specific Multicast、RFC 4607)用。
- 239.0.0.0/8: 管理スコープのローカル・マルチキャスト(サイトローカル等、管理者が限定的に利用)。
- マルチキャスト実運用では IGMP(ホスト側の参加制御)や PIM(ルータ間のマルチキャストルーティング)等のプロトコルが必要です。
- 実例(Pythonでマルチキャストグループに参加するソケット):
import socket
import struct
MCAST_GRP = '224.0.0.1'
MCAST_PORT = 5007
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
sock.bind(('', MCAST_PORT))
mreq = struct.pack("4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
while True:
data, addr = sock.recvfrom(1024)
print('Received from', addr, data)
FAQ
Q. マルチキャストはインターネット全体で普通に使えますか?
A. 多くのISPはインターネット全体のマルチキャストを一般提供していないため、グローバルに配信するのは制約が多いです。サイト内やVPN、専用ネットワークでの利用が一般的です。
A. 多くのISPはインターネット全体のマルチキャストを一般提供していないため、グローバルに配信するのは制約が多いです。サイト内やVPN、専用ネットワークでの利用が一般的です。
Q. マルチキャストとユニキャストでどちらが帯域効率が良いですか?
A. 同一データを多数の受信者に送る場合、マルチキャストは送信側の負荷とネットワーク帯域を大幅に節約できます(中継ノードで複製されるため)。
A. 同一データを多数の受信者に送る場合、マルチキャストは送信側の負荷とネットワーク帯域を大幅に節約できます(中継ノードで複製されるため)。
Q. クラスEは絶対に使われないのですか?
A. クラスE(240.0.0.0〜255.255.255.255)は実験/予約用として位置づけられています。実運用で一般的に使用される範囲ではありません。
A. クラスE(240.0.0.0〜255.255.255.255)は実験/予約用として位置づけられています。実運用で一般的に使用される範囲ではありません。
関連キーワード: IPv4、マルチキャスト、クラスD、クラスE、APIPA、プライベートアドレス、IGMP、PIM、SSM、ブロードキャスト

\ せっかくなら /
情報処理安全確保支援士を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

