IPv6寻址(一)——IPv6地址空间


IPv6的地址空间

IPv6最显著的特征就在于它的巨量的地址空间。IPv6采用128位的地址长度,是IPv4的四倍。当地址长度为32位时,最多可有2^32或4,294,967,296个可能的IP地址;而当地址长度为128位时,则将有2^128或340,282,366,920,938,463,463,374,607,431,768,211,456个可能的IP地址,相当于全球人均可分配1.8×1019个IPv6地址。

70年代末期进行IPv4地址空间设计时,谁也未曾料到IPv4的地址空间这么快就会被耗尽。随着Internet的发展以及连网主机数量的爆炸性膨胀,到1992年,IPv4的剩余可分配地址已经降到了临界点。

新设计的IPv6,其地址空间之大,几乎使我们很难想象它会有被耗尽的一天,这巨量的可分配地址空间给未来Internet的高速、稳定发展提供了可靠的保证。IPv6地址以层次化的设计来对应当今Internet的拓扑结构,128位的地址可分解为多个网络层次,同时提供相当灵活的层次寻址和路由。

有关IPv6的地址结构体系,有兴趣的读者可参见RFC 2373。

IPv6地址分配

IPv6地址的前几位指定了地址类型,包含前几位的变量长度域叫做格式前缀。这些前缀的分配状况见表1。

 表1、IPv6地址空间的分配

 

IPv6的单点传送地址包括可聚集全球单点传送地址、链路本地单点传送地址、节点本地单点传送地址,共计占IPv6寻址总空间的15%。  

IPv6地址语法

IPv4地址表示为点分十进制格式,32位的地址分成4个8位分组,每个8位写成十进制,中间用点号分隔。而IPv6的128位地址则是以16位为一分组,每个16位分组写成4个十六进制数,中间用冒号分隔,称为冒号分十六进制格式。

 

下面试举一例,先看一个以二进制形式表示的IPv6地址:

 

 0010000111011010000000001101001100000000000000000010111100111011 

 0000001010101010000000001111111111111110001010001001110001011010 

 

 该128位地址以16位为一分组可表示为:

 

 0010000111011010 0000000011010011 0000000000000000 0010111100111011

 0000001010101010 0000000011111111 1111111000101000 1001110001011010

 

 每个16位分组转换成十六进制并以冒号分隔:

 

 21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A

 

 IPv6可以将每4个十六进制数字中的前导零位去除做简化表示,但每个分组必须至少保留一位数字。去除前导零位后,上述地址可写成:

 21DA:D3:0:2F3B:2AA:FF:FE28:9C5A

 

零压缩

某些类型的地址中可能包含很长的零序列,为进一步简化表示法,IPv6还可以将冒号十六进制格式中相邻的连续零位进行零压缩,用双冒号“::”表示。

例如链路本地地址FE80:0:0:0:2AA:FF:FE9A:4CA2可压缩成FE80::2AA:FF:FE9A:4CA2;多点传送地址FF02:0:0:0:0:0:0:2压缩后,可表示为FF02::2。

要想知道“::”究竟代表多少个“0”,我们可以做这样的计算:用8去减压缩后的分组数,再将结果乘以16。例如,在地址FF02::2中,有两个分组“FF02”分组和“2”分组),那么被压缩掉的“0”共有8-2)*16 = 96位。

值得注意的是,在一个特定的地址中,零压缩只能使用一次,也就是说,在任意一个冒号分十六进制格式中只能出现一个双冒号“::”,否则我们就无法知道每个“::”所代表的确切零位数了。

IPv6 前缀

前缀是地址中具有固定值的位数部分或表示网络标识的位数部分。IPv6的子网标识、路由器和地址范围前缀表示法与IPv4采用的CIDR标记法相同,其前缀可书写为:地址/前缀长度。例如21DA:D3::/48是一个路由器前缀,而21DA:D3:0:2F3B::/64是一个子网前缀。

注意:在IPv4实现中普遍使用的被称为子网掩码的点分十进制网络前缀表示法在IPv6中已不再使用,IPv6仅支持前缀长度表示法。


相关内容