IPv6のアドレスは128ビットである。このアドレスの書き表し方として、RFC 4291 で定められているものはどれか。
- ①8ビットずつ16個に区切り、10進数で表してドット(.)でつなぐ
- ②16ビットずつ8つに区切り、10進数で表してドット(.)でつなぐ
- ③16ビットずつ8つに区切り、16進数で表してコロン(:)でつなぐ
- ④32ビットずつ4つに区切り、16進数で表してハイフン(-)でつなぐ
答えと解説を見る
正解は「16ビットずつ8つに区切り、16進数で表してコロン(:)でつなぐ」。例:2001:db8:0:0:8:800:200c:417a。
なぜ
128÷16=8なので、区切りは8つになる。16ビットは16進数でちょうど4桁(0000〜ffff)で表せる。区切りの先頭の0は省略でき、0だけの区切りが続く所は、コロン2つ(::)で1回だけまとめて書ける(例:2001:db8::8:800:200c:417a)。一方、IPv4は32ビットを8ビットずつ4つに区切り、10進数で表してドットでつなぐ。
ひっかけ注意
・「8ビットずつ16個に区切り、10進数で表してドット(.)でつなぐ」…IPv4の書き方をIPv6に当てはめた誤り。8ビットずつ10進数とドットで書くのはIPv4(32ビット、区切りは4つ)
・「16ビットずつ8つに区切り、10進数で表してドット(.)でつなぐ」…区切り方は正しいが、数の表し方とつなぐ記号が違う。16ビットは16進数でちょうど4桁(最大ffff=10進数で65535)
・「32ビットずつ4つに区切り、16進数で表してハイフン(-)でつなぐ」…区切りの長さが違う。ハイフン区切りは、MACアドレス(48ビット)を16進数2桁ずつ6つに分けて書くときに使われる