5.5.3 IPv6编制方案
我们已经熟悉IPv6数据报首部的格式(5.5.2 IPv6数据报格式),在目的IP地址字段中出现的IP地址的类型就是我们所要关注的。前面我们也强调过IPv6协议通过拓展地址空间(5.5.1 下一代网际协议IPv6|概述),克服了IPv4在编制上存在的不足,下面我们就来看一下IPv6的编址方法。
一、地址分类
我们知道IPv4它有单播、多播、广播之分,在IPv6中地址类型确实也发生了一些变化,IPv6数据报的目的地址可以是以下3中基本类型地址之一
- 单播(unicast):就是传统的点对点通信。
- 多播(multicast):就是一点对多点的通信。
- 任播(anycast):这是IPv6增加的新的地址类型,有些也成为泛播,它与多播类似的是任播地址他也代表着一组计算机,与多播不同的是,数据报并非交付给这组计算机的所有主机,任播的目的站是一组计算机,但数据报在交付时只交付给其中的一个,通常是距离最近的一个。
二、地址表示
这里我们已经习惯使用点分十进制来表示一个IP地址了,对于IPv6来说,他变成了128位后IPv6表示形式就是我们所要关注的。
-
在IPv6中每16个比特分成一组,用4位0-F之间的十六进制值表示,各组之间用冒号分隔。
例如:68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
因为IPv6是128位,所以一共分为8组,中间用7个冒号隔开。
-
零压缩(zero compression),地址中如果包含连续的一串零的时候,为了简化表示往往采用零压缩的方法,即一串连续的零可以用一对冒号来表示。
例如:FF05:0:0:0:0:0:0:B3可以写成FF05::B3
-
一个IPv6地址中,零压缩只能使用一次,这里是值得我们注意的,也就是说并不是每一串连续的零都能用一对冒号来表示。比如一个IPv6地址中出现了两串备份隔开的连续的零,如果两串零都使用零压缩法来表示,就没有办法区分每对冒号究竟代表多少比特的零。