IPv6的地址长度是128位(bit)。
将这128位的地址按每16位划分为一个段,将每个段转换成十六进制数字,并用冒号隔开。
例如:2000:0000:0000:0000:0001:2345:6789:abcd
这个地址很长,可以用两种方法对这个地址进行压缩,
前导零压缩法:
将每一段的前导零省略,但是每一段都至少应该有一个数字
例如:2000:0:0:0:1:2345:6789:abcd
双冒号法:
如果一个以冒号十六进制数表示法表示的IPv6地址中,如果几个连续的段值都是0,那么这些0可以简记为::。每个地址中只能有一个::。
例如:2000::1:2345:6789:abcd
单播地址(Unicast IPv6 Addresses)
可聚合的全球单播地址(Aggregatable Global Unicast Addresses)
可在全球范围内路由和到达的,相当于IPv4里面的global addresses。前三个bit是001
例如:2000::1:2345:6789:abcd
链路本地地址(Link-Local Addresses)
用于同一个链路上的相邻节点之间通信,相当于IPv4里面的169.254.0.0/16地址。Ipv6的路由器不会转发链路本地地址的数据包。前10个bit是1111 1110 10,由于最后是64bit的interface ID,所以它的前缀总是FE80::/64
例如:FE80::1
站点本地地址(Site-Local Addresses)
对于无法访问internet的本地网络,可以使用站点本地地址,这个相当于IPv4里面的private address(10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16)。它的前10个bit是1111 1110 11,它最后是16bit的Subnet ID和64bit的interface ID,所以它的前缀是FEC0::/48。
值得注意的是,在RFC3879中,最终决定放弃单播站点本地地址。放弃的理由是,由于其固有的二义性带来的单播站点本地地址的复杂性超过了它们可能带来的好处。它在RFC4193中被ULA取代。
唯一的本地IPv6单播地址(ULA,Unique Local IPv6 Unicast Address)
在RFC4193中标准化了一种用来在本地通信中取代单播站点本地地址的地址。ULA拥有固定前缀FD00::/8,后面跟一个被称为全局ID的40bit随机标识符。
未指定地址(Unspecified address)
0:0:0:0:0:0:0:0 或者::
当一个有效地址还不能确定,一般用未指定地址作为源地址。未指定地址不能作为一个目标地址来使用。
回环地址(Loopback address)
回环地址::1用于标识一个回环接口,可以使一个节点可以给自己发送数据包。相当于IPv4的回环地址127.0.0.1
兼容IPv4的地址(IPv4-compatible address)
形如 ::w.x,y.z,这里的w.x.y.z是IPv4公共地址的十进制点号表示法,用于IPv6/IPv4节点们(同时支持)在使用仅支持IPv4的网络上用IPv6的协议进行通信。
RFC4291中废弃了对这类地址的使用。
IPv4映射地址(IPv4-mapped address)
形如::FFFF:w.x.y.z,这里的w.x.y.z是IPv4公共地址的十进制点号表示法,用于一个仅支持IPv4的节点表现为一个IPv6的节点
6over4地址
[64bit-prefix]:0:0:WWXX:YYZZ,其中的WWXX:YYZZ是w.x.y.z IPv4公共地址的十进制点号表示法,用于一个使用6to4协议的隧道机制的节点。
6to4地址
2002:WWXX:YYZZ:[SLA ID]:[Interface ID],用于表示一个使用6to4协议的隧道机制节点。
多播IPv6地址(Multicast IPv6 Addresses)
前8个bit为1111 1111,
其中FF01::到FF0F::的多播地址是保留专用地址
FF01::1 节点本地范围所有节点多播地址
FF02::1 链路本地范围所有节点多播地址
FF01::2 节点本地范围所有路由器多播地址
FF02::2 链路本地范围所有路由器多播地址
FF05::2 站点本地范围所有路由器多播地址(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)