HOME»基本情報技術者平成25年秋期問題»午後問3
基本情報技術者過去問題 平成25年秋期 午後問3
⇄問題文と設問を画面2分割で開く⇱問題PDF問3 ネットワーク
インターネットプロトコルのアドレス表記に関する記述を読んで,設問1,2に答えよ。
インターネットプロトコル(IP)として現時点で広く使われているのは,IPバージョン4(以下,IPv4という)である。IPv4では,そのアドレスを表現するのに 32 ビットを使用している。単純に 32 ビットのアドレス空間を考えると,232個(約43億個)のアドレスが使用できるが,世界の人口が約 70 億人であるので一人ひとりに1個ずつのアドレスを割り当てられない。今日,インターネットに接続できる機器の数が爆発的に増えていることを考えると,IPv4のアドレスを全て使い切ってしまうのは時間の問題である。これは,"IPv4アドレスの枯渇問題"として知られている。
そこで,IPバージョン6(以下,IPv6という)が開発された。IPv6では,アドレスを 128 ビットで表す。単純に 128 ビットのアドレス空間を考えると,2128個(約3.4×1038個)のアドレスが使用でき,世界中の人に割り当てても1人当たり約a個使える計算になる。
IPv4では,32 ビットのアドレスを表現するのに 8 ビットごとに区切り,各 8 ビットの値を10進数で表し,区切りにドット(.)を使用する表記方法が用いられている。IPv6では,128 ビットを 16 ビットごとに区切り,各 16 ビット(以下,16ビットセクションという)を16進数で表し,区切りにコロン(:)を使用する。また,次の規則を使用してアドレスを表現する文字列を圧縮できる。
6to4 では,IPv4のグローバルアドレスが必要である。6to4 で使用するIPv6アドレスの最初の 16 ビットは,必ず 2002 である。続いてIPv4のグローバルアドレスをそのまま付けたbビットがIPv6アドレスのプレフィックスとなる。例えば,IPv4グローバルアドレスが 203.0.113.128 の場合,IPv6アドレスのプレフィックスは,c/bとなる。
インターネットプロトコル(IP)として現時点で広く使われているのは,IPバージョン4(以下,IPv4という)である。IPv4では,そのアドレスを表現するのに 32 ビットを使用している。単純に 32 ビットのアドレス空間を考えると,232個(約43億個)のアドレスが使用できるが,世界の人口が約 70 億人であるので一人ひとりに1個ずつのアドレスを割り当てられない。今日,インターネットに接続できる機器の数が爆発的に増えていることを考えると,IPv4のアドレスを全て使い切ってしまうのは時間の問題である。これは,"IPv4アドレスの枯渇問題"として知られている。
そこで,IPバージョン6(以下,IPv6という)が開発された。IPv6では,アドレスを 128 ビットで表す。単純に 128 ビットのアドレス空間を考えると,2128個(約3.4×1038個)のアドレスが使用でき,世界中の人に割り当てても1人当たり約a個使える計算になる。
IPv4では,32 ビットのアドレスを表現するのに 8 ビットごとに区切り,各 8 ビットの値を10進数で表し,区切りにドット(.)を使用する表記方法が用いられている。IPv6では,128 ビットを 16 ビットごとに区切り,各 16 ビット(以下,16ビットセクションという)を16進数で表し,区切りにコロン(:)を使用する。また,次の規則を使用してアドレスを表現する文字列を圧縮できる。
- 各16ビットセクションの先行する 0 を省略する。例えば,0012 は 12 になる。ただし,16ビットセクションが 0000 のときは,0 とする。
- 0 の16ビットセクションが連続する場合は,連続する2個のコロン(::)で表す。例えば,2001:0db8:0000:0000:0000:ff00:0042:8329 は 2001:db8::ff00:42:8329 と表す。ただし,:: は1か所にだけ使用できる。
6to4 では,IPv4のグローバルアドレスが必要である。6to4 で使用するIPv6アドレスの最初の 16 ビットは,必ず 2002 である。続いてIPv4のグローバルアドレスをそのまま付けたbビットがIPv6アドレスのプレフィックスとなる。例えば,IPv4グローバルアドレスが 203.0.113.128 の場合,IPv6アドレスのプレフィックスは,c/bとなる。
設問1
説明文中の に入れる正しい答えを,解答群の中から選べ。
a に関する解答群
- 4.9×1027
- 4.9×1028
- 4.9×1029
- 1.4×10117
- 1.4×10118
- 1.4×10119
b に関する解答群
- 32
- 40
- 48
- 56
- 64
- 72
- 80
- 88
- 96
c に関する解答群
- 2002::cb00:7180
- 2002:0:0:cb00:7180::
- 2002:203:0:113:128::
- 2002:cb:0:71:80::
- 2002:cb00:7180::
- 203:0:113:128::
- cb00:7180::
解答選択欄
- a:
- b:
- c:
解答
- a=イ
- b=ウ
- c=オ
解説
〔aについて〕
128ビットのアドレス空間が 2128個=3.4×1038、世界の人口が 70億人=7×109 なので、1人当たりが使用できるIPアドレス数は、
3.4×1038÷7×109≒0.49×1029=4.9×1028(個)
a=イ:4.9×1028
〔bについて〕
プレフィックスは、先頭に"2002"の16ビット、その後にIPv4アドレスが付加されたものです。IPv4のアドレス長は32ビットなので、プレフィックス全体では48ビットの長さになります。
b=ウ:48
〔cについて〕
IPv6はアドレスのビット列を16ビットごとにコロン(:)で区切り16進数で表記します。IPv4のアドレス「203.0.113.128」は、以下のように16進表記に変換できるので、
c=オ:2002:cb00:7180::
128ビットのアドレス空間が 2128個=3.4×1038、世界の人口が 70億人=7×109 なので、1人当たりが使用できるIPアドレス数は、
3.4×1038÷7×109≒0.49×1029=4.9×1028(個)
a=イ:4.9×1028
〔bについて〕
プレフィックスは、先頭に"2002"の16ビット、その後にIPv4アドレスが付加されたものです。IPv4のアドレス長は32ビットなので、プレフィックス全体では48ビットの長さになります。
b=ウ:48
〔cについて〕
IPv6はアドレスのビット列を16ビットごとにコロン(:)で区切り16進数で表記します。IPv4のアドレス「203.0.113.128」は、以下のように16進表記に変換できるので、
- 203(10)→1100 1011(2)→cb(16)
- 0(10)→0000 0000(2)→00(16)
- 113(10)→0111 0001(2)→71(16)
- 128(10)→1000 0000(2)→80(16)
c=オ:2002:cb00:7180::
設問2
表1は,IPv6アドレスの基本形と,それを最も短く表現する圧縮形の対応を示したものである。表1中の に入れる正しい答えを,解答群の中から選べ。ここで,基本形は全16ビットセクションを4桁の16進数で表現したもの(先行する 0 を省略しない)である。
d に関する解答群
- 2001:0db8:0000:0000:0000:0000:0000:0021
- 2001:0db8:0000:0000:0000:0000:0000:2:01
- 2001:0db8:0000:0000:0000:0000:0002:0001
- 2001:0db8:0000:0000:0000:0002:0001
- 2001:0db8:0000:0000:0002:0001
- 2001:0db8:0000:0000:0002:0001:0000
- 2001:0db8:0000:0000:0002:0001:0000:0000
e に関する解答群
- 2001:0db8::cd30::
- 2001:0db8::cd30:0:0:0
- 2001:0db8:0:0:cd30
- 2001:0db8:0:0:cd30::
- 2001:db8::cd30::
- 2001:db8::cd30:0:0:0
- 2001:db8:0:0:cd30
- 2001:db8:0:0:cd30::
f に関する解答群
- ::0:1
- ::0001
- ::1
- :0::1
- 0::1
- 0:0::1
- 0000::1
解答選択欄
- d:
- e:
- f:
解答
- d=ウ
- e=ク
- f=ウ
解説
IPv6の文字列圧縮規則は以下の2つです。
〔dについて〕
圧縮形が「2001:db8::2:1」の、db8,2,1はそれぞれ(1)の規則に基づき先頭の 0 が省略されているので、基本形では「0db8」「0002」「0001」という表記になります。後は「::」の部分をアドレス長が128ビット(16ビットの固まりが8つ)になるように 0 のビットの連続で埋めればよいので、
2001:0db8:0000:0000:0000:0000:0002:0001
が基本形のアドレスになります。
∴d=ウ
〔eについて〕
まず先頭に0が付いている「0db8」を「db8」に圧縮します。
次に連続した 0 を「::」に置き換える作業ですが、このアドレスでは 0 の連続が中盤部分と最後の部分で2箇所あります。「::」の省略は、アドレス中で1箇所しか使えないという制限があるので、考えられる圧縮形は次の2種類です。
∴e=ク 2001:db8:0:0:cd30::
〔fについて〕
0以外なのが最後の 0001 の部分だけなので、先頭から112ビット目までの 0 を「::」に、0001 を「1」にして連結した ::1 が圧縮形になります。
∴f=ウ ::1
- 各16ビットセクションの先行する 0 を省略する。例えば,0012 は 12 になる。ただし,16ビットセクションが 0000 のときは,0 とする。
- 0 の16ビットセクションが連続する場合は,連続する2個のコロン(::)で表す。例えば,2001:0db8:0000:0000:0000:ff00:0042:8329 は 2001:db8::ff00:42:8329 と表す。ただし,:: は1か所にだけ使用できる。
〔dについて〕
圧縮形が「2001:db8::2:1」の、db8,2,1はそれぞれ(1)の規則に基づき先頭の 0 が省略されているので、基本形では「0db8」「0002」「0001」という表記になります。後は「::」の部分をアドレス長が128ビット(16ビットの固まりが8つ)になるように 0 のビットの連続で埋めればよいので、
2001:0db8:0000:0000:0000:0000:0002:0001
が基本形のアドレスになります。
∴d=ウ
〔eについて〕
まず先頭に0が付いている「0db8」を「db8」に圧縮します。
次に連続した 0 を「::」に置き換える作業ですが、このアドレスでは 0 の連続が中盤部分と最後の部分で2箇所あります。「::」の省略は、アドレス中で1箇所しか使えないという制限があるので、考えられる圧縮形は次の2種類です。
- 2001:db8::cd30:0:0:0
- 2001:db8:0:0:cd30::
∴e=ク 2001:db8:0:0:cd30::
〔fについて〕
0以外なのが最後の 0001 の部分だけなので、先頭から112ビット目までの 0 を「::」に、0001 を「1」にして連結した ::1 が圧縮形になります。
∴f=ウ ::1