style_prompt本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
令和5年度 秋期 ネットワークスペシャリスト 午前Ⅱ 問1 IPv6アドレスの表記規約
IPv6アドレスの簡略化ルールに基づき、連続するゼロの省略や先頭ゼロの削除といった表記上の規約を正確に適用する能力を問う。
【問題】
次のIPv6アドレスを、RFC 5952 “A Recommendation for IPv6 Address Text Representation” の推奨規約に従って表記したものはどれか。
2001:0db8:0000:0000:0001:0000:0000:0001
ア 2001:db8::1:0:0:1 イ 2001:db8:0:0:1::1 ウ 2001:db8::1::1 エ 2001:db8:0000:0000:1:0000:0000:1
【解説】
IPv6アドレス(128ビット)は16ビットごとにコロン(:)で区切り、16進数で表記する。RFC 5952では、表記の一意性を保つために以下の推奨ルールが定められている。
各フィールドの先頭にある「0」の省略 各16ビットのブロックにおいて、先頭にある連続する「0」は省略しなければならない(例:
0db8→db8)。ただし、すべてが「0」の場合は「0」を1つ残す。「::」によるゼロブロックの短縮 値が「0」である連続したブロックを「::」に置換できる。
最も長く連続する部分を置換する。
連続する長さが同じ場合は、左側(前方)のブロックを優先して置換する。
「::」は1つのアドレス内で1度しか使用できない。
英字の小文字表記 a〜fの英字は小文字で表記する。
本問の変換プロセス:
各ブロックの先頭の0を削除:
2001:db8:0:0:1:0:0:1連続する「0」のブロックを特定:
3・4番目のブロック(2連続)
6・7番目のブロック(2連続)
ルールに従い、左側の連続ブロックを「::」に置換:
2001:db8::1:0:0:1
graph TD
A[2001:0db8:0000:0000:0001:0000:0000:0001] --> B["先頭の0を削除"]
B --> C[2001:db8:0:0:1:0:0:1]
C --> D{"0連続の長さ比較"}
D -->|前半2個 / 後半2個| E["ルールの適用: 左側優先"]
E --> F[2001:db8::1:0:0:1]
【選択肢の吟味】
| 選択肢 | 判定 | 解説 |
|---|---|---|
| ア | 正解 | RFC 5952の規約(先頭0の削除、最左の最長ゼロ連続の置換)を正しく適用している。 |
| イ | 不適切 | 連続するゼロの長さが等しい場合、後方ではなく前方のブロックを「::」にする必要がある。 |
| ウ | 不適切 | 「::」を1つのアドレス内で2回使用することは禁止されている(一意性が失われるため)。 |
| エ | 不適切 | 先頭の「0000」を「0」に、または「0001」を「1」にするなど、不要なゼロの省略が不十分である。 |
【ポイント】
各ブロックの先頭の「0」は必ず省略する
「::」は1回限り。最長の連続ゼロを置換し、長さが同じなら左側を優先する
アルファベットは小文字で表記する(推奨ルール)

