問題
問題文
出典:独立行政法人大学入試センター 公開問題「平成30 年告示高等学校学習指導要領に対応した令和7年度大学入学共通テストからの出題教科・科目 情報サンプル問題」 https://www.mext.go.jp/content/20211014-mxt_daigakuc02-000018441_9.pdf |
次の先生と生徒(Kさん)の会話文を読み,空欄(サ) ~ (セソ) に当てはまる数字をマークせよ。
Kさん:先生,今読んでいるネットワークの本の中に 192.168.1.3/24 という記述があったのですが,IP アドレスの後ろに付いている「/24」は何を意味しているのですか?
先 生:それは,ネットワーク部のビット数のことだね。
Kさん:ネットワーク部ってなんですか?
先 生:IPv4 方式の IP アドレスでは,ネットワーク部によって所属するネットワークを判別することができるんだ。例えば IP アドレス 192.168.1.3/24 の場合,ネットワーク部のビット数は 24 で,IP アドレスを二進法で表した時の最上位ビットから 24 ビットまでがネットワーク部という意味だ。図で表すと次のようになり ,ホスト部を 0 にし た もの をネットワークアドレス と呼 び192.168.1.0/24 と表すんだ。
Kさん:ここに書いてあるホスト部ってなんですか?
先 生:このネットワークに接続するコンピュータなどに割り当てる固有の番号のことだよ。
Kさん:この場合は,番号が 3 ということですか?
先 生:その通りだ。 (サ)ビットで表される数のうち,0 にしたものはネットワークアドレスとして使用されるし,すべてのビットが 1 である 255 は管理目的で使用するため,このネットワークにはホスト部として 1~254 までの 254 台のネットワーク機器を割り当てることができるんだ。この考え方でいくと,ネットワーク部のビット数を変えることで,同じアドレスでもネットワークの規模を変えることができるんだよ。例えば,192.168.1.3/(シス)が割り当てられているコンピュータが接続するネットワークには,何台のネットワーク機器が接続できるかな?
Kさん:0 とすべてのビットを 1 にしたものが利用できないから,256×256-2 で65,534 台ですか。
先 生:そうだね。一見同じようなアドレスでもネットワークの規模が異なることになるね。では,172.16.129.1 と 172.16.160.1 が同じネットワークに属していると考えるとネットワーク部のビット数は最大何ビットにすることができるかな?
Kさん:二進法で表して最上位ビットから同じところまでだから,最大(セソ)ビットということですか。
先 生:よく理解できたようだね。
解答
- (サ)の解答 8
- (シ)の解答 1、(ス)の解答 6
- (セ)の解答 1、(ソ)の解答 8
解説
さて、今日は「IPアドレス」について学んでいくよ。IPアドレスはインターネット上で、コンピュータやデバイスを識別するための「住所」のようなものなんだ。まず、ネットワーク部とホスト部の関係について学んでいこう。そして、サブネットマスクを使って、どのようにネットワークを分割し、効率的に管理する方法も説明するよ。
黒板
IPアドレスの仕組みとその役割
なおや君、今日の授業は「IPアドレス」についてだよ。聞いたことあるかい?
「IPアドレス」は、インターネット上の「住所」って聞いたことがあるよ。
その通り。手紙を送るときには相手の住所が必要なのと同じように、インターネットでも、情報を送りたい相手がどこにいるのかを指定するために、このIPアドレスが必要なんだよ。
なるほど。じゃあ、その住所はどうやって表されるの?
じゃあ、まずはIPアドレスの中身を見てみよう。IPアドレスは本当は32ビットの2進数で表されているんだよ。例えば、「11000000101010000000000100000001」のような感じだ。
えっ、そんな長い数字になるんだ!それだと、なんだか分かりにくいよね。
そうだね。だから、IPアドレスは8ビットずつに区切って、4つのまとまりとして表示しているんだ。先ほどの例では「11000000.10101000.00000001.00000011」になるよ。
区切りが入ったので、ちょっとはわかりやすくなったけれど、やっぱり長いね。入力したり読んだりする気にはなれないな。
そうだね。8ビット単位で10進数表記すると、「192.168.1.3」のようになる。
やっと、覚えられる数字になった。人間にとって2進数はつらい。
グローバルIPアドレスとプライベートIPアドレス
ところで、IPアドレスには大きく2種類あるんだ。1つは「グローバルIPアドレス」、もう1つが「プライベートIPアドレス」だよ。
グローバルとプライベート?なんで2つに分ける必要があるの?
グローバルIPアドレスっていうのは、インターネット全体で一つしかない「唯一無二の住所」みたいなものなんだ。例えば、ネットで調べ物をすると、そのリクエストを送る相手のウェブサイトには、グローバルIPアドレスが割り当てられている。これがあるから、世界中のどこからでも同じウェブサイトにアクセスできるんだよ。
なるほど!じゃあ、みんな一つずつIPアドレスを持ってるってこと?
そうだね。でも、実は全世界で使えるIPアドレスには限りがあるんだ。だから、そのままだと足りなくなっちゃう。そこで登場したのが「プライベートIPアドレス」なんだよ。これは、ある範囲内、たとえば家庭や学校のネットワーク内だけで使えるIPアドレスなんだ。
ふーん、家や学校の中ではプライベートIPアドレスを使って、外のインターネットに出るときはグローバルIPアドレスに変えるんだね。
そうそう、その通り!プライベートIPアドレスを使えば、一つのグローバルIPアドレスで家の中や学校の中の複数のデバイスを管理できるんだ。そして、外部のインターネットにアクセスする時だけグローバルIPアドレスが使われる。これで、限られたIPアドレスをうまくやりくりしてるんだよ。
「ネットワーク部」「ホスト部」
プライベートIPアドレスは便利だけれども、32ビットのIPアドレスは、1つの組織で使うには数が多すぎるよね。学校にも、学年やクラスとかにわかれているように、IPアドレスもグループ分けした方が扱いやすいんだ。
ふーん。それはそうな気もするけれど、どうやってIPアドレスをグループ分けするの?
いい質問だね。IPアドレスは「ネットワーク部」と「ホスト部」に分けることで、グループ分けをしているんだよ。
「ネットワーク部」と「ホスト部」?
学校を「学年」「クラス」分けて、誰がどこにいるかを管理しているように、IPアドレスでも「どのネットワークに属しているのか」と「そのネットワーク内でどのデバイスか」を区別しているんだ。
へぇ、つまり「学年」がネットワーク部で、「クラス」がホスト部みたいな感じか。でもどこまでが学年で、どこからがクラスなのかわからないけど、何か決まりがあるの?
サブネットマスクの仕組み
いいところに気付いたね!実はどこまでがネットワーク部で、どこからがホスト部なのかを決めるために「サブネットマスク」というものが使われるんだ。
サブネットマスク?また新しい言葉が出てきた。
ネットワークとホストを区別するためのルールだと思えばいいよ。具体的には、「/」の後に続く数字で区切りを示すんだ。たとえば、「192.168.1.3/24」と書くと、IPアドレスの最初の24ビットがネットワーク部を表しているって意味なんだ
8ビットごとに区切ってあるから、最初の3つまでの区切り、つまり「192.168.1」までが「ネットワーク部」で、残りの「3」がホスト部ということ?
そうそう!。ホストというのは、ネットワークにつながっている個々のコンピュータやデバイスのことなんだ。つまり、「192.168.1.3/24」なら、「192.168.1」というネットワークの、
「3」というコンピュータを指しているんだよ。
でも、サブネットマスクなんてややこしいものを使わなくても、どこまでがネットワーク部とかって固定すればよいんじゃないの?
ネットワーク部のビット数を増やすと、ホスト部に割り当てられるビット数が減る。逆に、ネットワーク部のビット数を少なくすると、ホスト部が多くなって、たくさんのデバイスを接続できるんだ。だから、ネットワークの規模によって、サブネットマスクの数字を調整しているんだよ。
ネットワークアドレス
さて、ここまででサブネットマスクとネットワーク部については理解できたと思うけど、次は「ネットワークアドレス」について説明するよ。さっきの例、「192.168.1.3/24」を使って考えてみようか
ネットワークアドレス?またまた新しい言葉が出てきた。
今までの知識で理解できるはずだから、心配しなくて大丈夫。ネットワークアドレスは、そのネットワーク全体を表すアドレスなんだ。
ネットワーク全体?つまり、さっきの学校のクラスと生徒の例で考えると、ネットワークアドレスはクラス全体といった感じ?
そうそう!。だから、特定のホストは表さないので、ホスト部のところは0になる。
たとえば「192.168.1.3/24」の場合、ネットワークアドレスは「192.168.1.0」ということ?
その通り。難しくないでしょ?
サブネットマスクを用いたネットワークアドレスの算出
そうだね、その通り。でも、どうして「192.168.1.0」になるのかをサブネットマスクを使って詳しく説明するね。
今までの説明でよかったのに、またサブネットマスクが出てくると、またややこしくなる・・。
サブネットマスクは「/24」の場合、10進数だと「255.255.255.0」となるんだ。2進数に変換すると「11111111.11111111.11111111.00000000」だね。
サブネットマスクとうのは、いろんな表現があるんだね。
そう。ここでは2進数のものを使うね。ネットワークアドレスを求めるには、IPアドレスとサブネットマスクで「論理積計算」というものをするんだ。
論理積?
論理積演算は、IPアドレスとサブネットマスクをビット単位で比較して、両方が「1」のときだけ「1」になる演算なんだよ。「192.168.1.3」は2進数で「11000000.10101000.00000001.00000011」だよね。そして、サブネットマスクは「11111111.11111111.11111111.00000000」だ。これらの論理積計算を行うとどうなる?
最初の24ビットはそのままで、最後の8ビットはすべて「0」になる。つまり「11000000.10101000.00000001.00000000」ということですか?
その通り。これを10進数に戻すと「192.168.1.0」になるわけだよ。だから、ネットワークアドレスは「192.168.1.0」になるんだ。
ホスト数の計算
ふーん、じゃあネットワーク部が24ビットだと何台のコンピュータつなげられるの?
いい質問だね。ネットワーク部が24ビットだと、ホスト部は8ビットになるよね。8ビットの2進数で表せる数は何通りかわかる?
「2の8乗」で256通だね。256台が正解かな?
惜しい。実は、全てが0のアドレスと、全てが1のアドレスには特別な使い方があるんだ。だからコンピュータのIPアドレスとして使えるのは0と255を除く、1~254までの値になるんだ。
つまり254台だね。
その通り!
試験問題の解答
設問(サ)
IPアドレス192.168.1.3/24の場合、(サ)ビットで表される数が、ホストに部として割り当てられる |
じゃあ、今までの内容を踏まえて、この問題を一緒に解いてみようか。「192.168.1.3/24」の「/24」って何を意味するかはもう分かるよね?
うん、/24っていうのは、ネットワーク部が24ビットで構成されているって意味だよね。つまり、「192.168.1」までがネットワーク部で、残りの「3」がホスト部なんだよね。
その通り!ここで(サ)の空欄には、ホスト部のビット数が何ビットかを表す数を入れる必要があるんだけど、IPアドレス全体の32ビットから、ネットワーク部の24ビットを引いた値が該当する。
つまり、8ビットですね。
設問(シ)(ス)
192.168.1.3/ (シス)が割り当てられているコンピュータが接続するネットワークには、256×256-2で65,534 台のネットワーク機器が割り当てられる。 |
これは、ネットワーク部のビット数が変わることで、接続できるホスト数が変わるってことだよね。Kさんが「256×256-2で65,534台」って言っているけれど、ここにヒントがありそうだね。
鋭い、じゃあホスト部は何ビットになるかな?
256×256というのは8ビット×8ビットだから、ホスト部が16ビットということ?
ちゃんと理解しているね。じゃあ、ネットワーク部は何ビットになるかな?
IPアドレスは全部で32ビットだから、32-16で16ビットで良いんじゃないかな?
正解!
設問(セ)(ソ)
172.16.129.1 と172.16.160.1 が同じネットワークに属していると考えるとネットワーク部のビッ ト数は最大(セソ)ビットにすることができる。 |
ここでは「172.16.129.1」と「172.16.160.1」が同じネットワークに属しているかどうかを考えるんだ。この場合、IPアドレスを二進数で比べて、最上位ビットから何ビットが同じかを調べる必要があるね。
「172.16.129.1」と「172.16.160.1」だったら、「172.16.」までが同じだから16ビットじゃないの?
そう答えちゃう気持ちはわかるけれど、それは10進数で見ているからで、ここでは元の2進数で考えなければいけないんだ。
え?10進数を2進数にまた戻すの?そんなの無理!
そうだね、慣れないと難しく感じるかもしれないけど、手順を覚えると意外と簡単なんだ。10進数を2進数に変換する方法を、まずは分かりやすく説明するよ!準備はいい?
うん、お願いします!
OK。じゃあ、次のステップで説明するね。まず、変換したい10進数を2で割るんだ。割り算の結果を確認して、余りを記録する。余りは0か1だよ。
ふむふむ
次に、割り算の商をまた2で割って、また余りを記録する。この作業を、商が0になるまで繰り返すんだ。最後に、余りを下から順に並べて、それが2進数の表現になるんだよ。
うーん、何が何だか分からなくなりました。
言葉ではわかりにくいから、実際に計算してみよう。
はい、よろしくお願いします。
まず、「129」を2進数に変換してみるね。手順通りに進めるよ。129を2で割っていくと・・・
これで、余りを下から順に並べると「129」は 10000001 になるんだ。これが2進数で表した「129」だよ!
おお!意外とシンプルだね!割り算を繰り返して余りを並べるだけなんだ。
じゃあ次は「160」をやってみよう。
はい。こんな感じですか?
これを下から順に並べると、「160」は 10100000 ですね
その通り。「172.16.129.1」と「172.16.160.1」を2進数で比べてみて、共通の部分は何ビットかな?ちなみに10進数の172は、2進数で表すと10101100、10進数の16は2進数では00010000だよ。
こんな感じですか?ここで共通なのは先頭から18ビットですね。なので、正解は18ビットですね。
よくできたね。IPアドレスは、数字の羅列に見えるけど、こうしてビットで区切ることで、ネットワークの規模や接続できるデバイスの数が変わってくるんだ。しっかり覚えておくと、ネットワークの管理や構成がもっと簡単に分かるようになるよ。
なるほど、IPアドレスって奥が深いんだね。でも、サブネットの仕組みを使えばネットワークを効率的に分けられるし、しっかり管理できるってことが分かりました!
まとめ
問題
「クイズをスタート」のボタンをクリックすると、5問出題します。さあチャレンジ!
編集者ひとこと
IPアドレスと、サブネットマスク、ネットワークアドレスについて、しっかり理解していないと解答できない問題です。業務では自分で、2進数に変換するようなケースは少ないですが、一度自分の手で変換してみれば、同じような問題が出題されても自力で解けると思います。頑張って手を動かしてみましょう。
<RANKING>
高校教育ランキング