IPv4アドレスのクラス判定で境界値をどう見る?
基本情報技術者試験 平成29年度春期 午前 問34 / ネットワーク › 通信プロトコル
過去問にチャレンジ
IPv4アドレス 128.0.0.0 を含むアドレスクラスはどれか。
- ア
クラスA
- イ
クラスB
- ウ
クラスC
- エ
クラスD
会話形式の解説
講師クラスフル方式での判定です。まず、第1オクテット、つまり最初の区切りの数値に注目します。
受験者最初は128ですね。クラスAとクラスBの境目だった気がするので、どちらに含まれるか迷います。
講師クラスAの範囲は0~127、クラスBは128~191です。128はどちらの範囲に入りますか。
受験者128はクラスBの最初の値です。クラスAの上限127を超えています。
講師そのとおりです。したがって、正解はクラスBです。
受験者残るクラスCとクラスDも、最初の数値で外せますか。
講師はい。クラスCは192~223、クラスDは224~239です。どちらも128を含みません。
受験者範囲を忘れたときは、2進数でも確かめられますか。
講師128を2進数にすると10000000です。先頭2ビットが「10」なので、クラスBと確かめられます。
受験者境界の値なので、127までがクラスA、128からがクラスBと確認するのですね。
講師はい。境界にある値は、範囲の端を含めて照合すると判断できます。
まとめ
クラスフル方式では、IPv4アドレスの第1オクテットからクラスを判定できます。クラスAは0~127、クラスBは128~191なので、128.0.0.0はクラスBです。クラスCは192~223、クラスDは224~239で、いずれも128を含みません。128を2進数にしたときの先頭2ビット「10」からも、クラスBと確認できます。
解答・解説
正解はイです
この問題のテーマ
IPv4アドレスの第1オクテットから、クラスフル方式でのアドレスクラスを判定する問題です。
解き方の考え方
先頭の数値である128を取り出し、各クラスの第1オクテットの範囲と照合します。128はクラスBの範囲の最初の値です。2進数では10000000で、先頭2ビットがクラスBを表す「10」になることでも確かめられます。
選択肢ごとの解説
- ×ア クラスAクラスAの第1オクテットは0~127です。問題の128はその上限を超えるため、クラスAには入りません。
- ○イ クラスBクラスBの第1オクテットは128~191です。128.0.0.0の先頭の数値は128なので、この範囲に入り、イが正解です。
- ×ウ クラスCクラスCの第1オクテットは192~223です。問題の128はこの範囲より小さいため、クラスCには入りません。
- ×エ クラスDクラスDの第1オクテットは224~239です。問題の128はこの範囲より小さいため、クラスDには入りません。
POINT
- クラスフル方式では、IPv4アドレスの先頭のビット列でクラスを区別します。
- 第1オクテットを見れば、この問題の各選択肢を範囲で照合できます。
- 範囲の境界にある値は、どちらの範囲に含まれるかを確認します。
