IPv6アドレス
IPv6アドレスを単純化しようとしたとき、標準の規定ではIPアドレスの表現に柔軟性がある。しかし、そのために同一のIPアドレスについて複数の表現が許されることになり、特定のIPアドレスをテキストファイルやトラフィックの中から探したり、2つのアドレスが同一であるかを調べたりするのが困難になる。
IETFは、この問題を軽減するために、IPv6アドレスをテキストで表現する際の規範的なフォーマットの規定を RFC 5952 として提案した。この規定は以下の通りである。
それぞれの16ビットフィールドの先頭の0は省略する。例えば、2001:0db8::0001 は 2001:db8::1 とする。ただし、全てが 0 である16ビットフィールドは 0 とする。
0のみのフィールドは"::"で短くする。例えば 2001:db8:0:0:0:0:2:1 は 2001:db8::2:1 とする。ただし、2001:db8:0000:1:1:1:1:1 は 2001:db8:0:1:1:1:1:1 とする。
表現は、できる限り短くする。全て0のフィールドの連続で最も長い物を"::"に置き替える。同じ長さの全て0のフィールドの連続が複数ある場合は、最も左の物を"::"にする。例えば、 2001:db8:0:0:1:0:0:1 は 2001:db8:0:0:1::1 ではなく 2001:db8::1:0:0:1 となる。
十六進数の文字は常に小文字で書く。例えば、2001:DB8::1 ではなく 2001:db8::1 とする。
インタフェースにユニキャストIPv6アドレスを割り当てた後、Neighbor Solicitation(近隣要請)とNeighbor Advertisement(近隣広告)(ICMPv6のtype 135と136)メッセージを使ってそのアドレスが唯一のものであるかの確認を行う。確認を行っている間、そのアドレスは「仮」(tentative)の状態にある。
ノードは仮のアドレスの要請ノードマルチキャストグループに参加し(まだ参加していない場合)、仮アドレスを宛先、未指定アドレス(::/128)を送信元としてNeighbor Solicitationメッセージを送信する。ノードは、Neighbor Advertisementが受信できるようにするために全ホストマルチキャストアドレス ff02::1 にも参加する。
ノードが自身の仮アドレスを宛先とするNeighbor Solicitationを受信した場合、そのアドレスはユニークではない。ノードが、仮アドレスを送信元とするNeighbor Advertisementを受信した場合も同様である。アドレスがユニークであると確認できた時だけ、そのアドレスが割り当てられ、インタフェースによって使用される。
この仕組みを重複アドレス検出(DAD: Duplicate address detection)という。
IPv4互換アドレスは、IPv6移行技術の中でIPv4アドレスを表現するのに使用された。IPv4互換アドレスは、最初の(最上位の)96ビットを0とし、残りの32ビットでIPv4アドレスを表現する。2006年2月、Internet Engineering Task Force(IETF)はIPv4互換アドレスの使用を非推奨とし廃止された。IPv6アドレスを格納することのできる固定長のメンバーを持つテーブルやデータベースで、IPv4互換アドレスはIPv4アドレスを意味することになっている。
アドレスブロック 3ffe::/16 は、1998年12月に6bone(英語版)ネットワークの試験目的に割り当てられた。それ以前には、アドレスブロック 5F00::/8 がこの目的のために使用されていた。両方のアドレスブロックは2006年6月にアドレスプールに返還された。