IP地址有三种类型:单播、组播和任意点播。广播地址已不再有效。RFC2373中定义了三种IPv6地址类型:

  单播:一个单接口的标识符。

  送往一个单播地址的包将被传送至该地址标识的接口上。

  泛播:一组接口(一般属于不同节点)的标识符。送往一个泛播地址的包将被传送至该地址标识的接口之一(根据选路协议对于距离的计算方法选择“最近”的一个)。

  组播:一组接口(一般属于不同节点)的标识符。送往一个组播地址的包将被传送至有该地址标识的所有接口上。

  这三种地址类型将在下面进行更详细的论述。

  6.2.1广播路在何方

  广播地址从一开始就为IPv4网络带来了问题。广播被用来携带去向多个节点的信息或被那些不知信息来自何方的节点用来发出请求。但是,广播可能将为网络性能设置障碍。同一网络链路上的大量广播意味着该链路上的所有每个节点都必须处理所有广播,其中绝大部分节点最终都将忽略该广播,因为该信息与自己无关。把广播在子网之间进行转发将导致更多的问题,因为路由器上将充斥着这种业务流。

  IPv6对此的解决办法是使用一个“所有节点”组播地址来替代那些必须使用广播的情况,同时,对那些原来使用了广播地址的场合,则使用一些更加有限的组播地址。通过这种方法,对于原来由广播携带的业务流感兴趣的节点可以加入一个组播地址,而其他对该信息不感兴趣的节点则可以忽略发往该地址的包。广播从来不能解决信息穿越Internet的问题,如选路信息,而组播则提供了一个更加可行的方法。

  6.2.2单播

  单播地址标识了一个单独的IPv6接口。一个节点可以具有多个IPv6网络接口。每个接口必须具有一个与之相关的单播地址。单播地址可被认为包含了一段信息,这段信息被包含在128位字段中:该地址可以完整地定义一个特定的接口。此外,地址中数据可以被解释为多个小段的信息。但无论如何,当所有的信息被放在一起后,将构成标识一个节点接口的128位地址。

  IPv6地址本身可以为节点提供关于其结构的或多或少的信息,这主要根据是由谁来观察这个地址以及观察什么。例如,节点可能只需简单地了解整个128位地址是一个全球唯一的标识符,而无须了解节点在网络中是否存在。另一方面,路由器可以通过该地址来决定,地址中的一部分标识了一个特定网络或子网上的一个唯一节点。

  例如,一个IPv6单播地址可看成是一个两字段实体,其中一个字段用来标识网络,而另一个字段则用来标识该网络上节点的接口。在后面讨论特定的单播地址类型时还会看到,网络标识符可被划分为几部分,分别标识不同的网络部分。IPv6单播地址功能与IPv4地址一样受制于CIDR,即,在一个特定边界上将地址分为两部分。地址的高位部分包含选路用的前缀,而地址的低位部分包含网络接口标识符。

  最简单的方法是把IPv6地址作为不加区分的一块128位的数据,而从格式化的观点来看,可把它分为两段,即接口标识符和子网前缀。RFC2373中表示的格式见图6-2。接口标识符的长度取决于子网前缀的长度。两者的长度是可以变化的,这取决于谁对它进行解释。对于非常靠近寻址的节点接口(远离骨干网)的路由器可用相对较少的位数来标识接口。而离骨干网近的路由器,只需用少量地址位来指定子网前缀,这样,地址的大部分将用来标识接口标识符。下面要讨论的是可集聚的单播地址,它的结构更为复杂。

  

  IPv6单播地址包括下面几种类型:

  可集聚全球地址。

  未指定地址或全0地址。

  回返地址。

  嵌有IPv4地址的IPv6地址。

  基于供应商和基于地理位置的供应商地址。

  OSI网络服务访问点(NSAP)地址。

  网络互联包交换(IPX)地址。

  6.2.3单播地址格式

  RFC1884给出了几种通用的不同类型的IPv6地址。给NSAP和IPX分配的地址、基于OSI网络和NetWare地址都无缝地包含在IPv6体系结构中。分别占八分之一的地址空间的基于供应商和基于地理位置分配的地址组成了一批可分配的地址。链路本地和站点本地地址提供了10型网络地址转换的网络统一不变的版本。

  然而,RFC2373改变和简化了IPv6的地址分配。其中之一是取消了基于地理位置的地址分配,基于供应商的单播地址改变成可集聚全球单播地址。从名字的改变上就可看出,对于基于供应商的地址,允许前面定义的集聚以及基于交换局的新型集聚。这也反映了一种更平衡的地址分类。NSAP和IPX地址空间仍然保留着,且八分之一的地址分配给可集聚地址。另外,除了组播地址和某类保留地址外,IPv6地址空间的其余部分都是未分配的地址,为将来的发展预留了足够的空间。