简说IPv6
上QQ阅读APP看书,第一时间看更新

第3章
IPv6基础知识

3.1 IPv6地址分类及报文格式

3.1.1 IPv6地址表现形式

IPv6地址的掩码长度是128位,是IPv4地址掩码长度的4倍。理论上,IPv6地址一共有2128个,总数超过3.4万亿万亿万亿个,这简直是一个天文数字。有人戏称,IPv6的地址数量足够给地球表面每一颗砂粒分配一个地址。

IPv6与IPv4除了地址数量的差异外,在地址表现形式上也不一样,IPv6的格式为X:X:X:X:X:X:X:X,其中每个X代表16位,以十六进制显示,如:1002:003B:456C:678D:890E:0012:234F:56G7。

因为IPv6地址长度很大,而且经常连续出现多个0,所以为了读写更方便,出现了一些IPv6地址简化写法。简化方法如下:

(1)每一段中开始的0可以省略。

例如:1002:003B:456C:678D:890E:0012:234F:56G7,也可以表示为:

1002:3B:456C:678D:890E:12:234F:56G7。

(2)如果其中有一段全是0,则可以用一个0来代替。

例如:1002:003B:456C:678D:890E:0000:0000:56G7,也可以表示为:

1002:003B:456C:678D:890E:0:0:56G7。

(3)如果有一段或连续几段都是0,那么这些段可以用一个“::”来标识。

例如:1002:003B:456C:678D:890E:0000:0000:56G7,也可以表示为:

1002:003B:456C:678D:890E::56G7。

(4)如果“::”在简化表示的IPv6地址中出现,则最多只能出现一次。

例如,如果有这样一个IPv6地址2001:250:f004:0000:0000:8e00:0000:ef01,那么如下的简化表示是正确的:

2001:250:f004::8e00:0:ef01

但是,如下简化表示是错误的:

2001:250:f004::8e00::ef01

2001:250:f004:0:0:8e00::ef01

如果有这样一个IPv6地址2401:BE00:0000:0000:0000:0000:0000:0000,那么它也可以表示为:

2401:BE00::

IPv6地址表现形式如图3-1所示。

图3-1 IPv6地址表现形式

其实,这很容易理解,因为如果简化表示法中有两个或更多的“::”出现,那么无法确定每个“::”各代表几个全0段。

IPv6还有一种“地址/前缀长度”的表示方法,这点与用于无类域间路由CIDR(Classless Inter-Domain Routing)的IPv4地址表示形式很相似。表示形式是:IPv6地址/前缀长度。

其中,“IPv6地址”部分是前面所讲的IPv6地址形式;“前缀长度”部分是一个十进制数,表示该地址的前多少位是地址前缀。

例如,如果有这样一个IPv6地址2001:250:f004:f001:e150:b95:f71e:ccb6,其地址前缀是64位,那么可以这样表示:

2001:250:f004:f001:e150:b95:f71e:ccb6/64。

另外,在IPv6与IPv4混合的环境下,还有一种IPv6地址表示形式,如下所示:

fe80:0:0:0:0:5efe:202.112.64.1

前面“fe80:0:0:0:0:5efe”是十六进制的IPv6地址格式,后面“202.112.64.1”是十进制IPv4地址格式。