2.5.3 IPv4 组播地址
对于 IPv4,已保留 D 类空间(224.0.0.0–239.255.255.255)以支持组播
28 位的空闲提供了 2^28 = 268,435,456 个主机组(每个主机组对应一个 IP 地址)的可能性
根据在路由上的分配与处理方式,这个地址空间被分为几个主要部分 [IP4MA]
如表 2-9 所示
表 2-9
用于支持组播的 IPv4 D 类地址空间的几个主要部分
上至 224.255.255.255 的地址块被分配给某些应用协议或组织专用
这些地址块是作为 IANA 或 IETF 行动的结果分配的
本地网络控制块只能在发送者的本地网络中使用;发送到这些地址的数据报永远不会被组播路由器转发
All Hosts 组(224.0.0.1)是这个块中的一个组
互联网络控制块类似于本地网络控制块,但用于控制需要从本地链路路由出去的流量
来自这个块的一个例子是网络时间协议(Network Time Protocol (NTP))组播组(224.0.1.1)[RFC5905]
第一个 AD-HOC 块用来保存不属于本地或互联网络控制块的地址
这个范围内的大部分地址被用于商业服务,其中一些目前不(或永远不)需要全局地址分配;它们最终可能会被返回,以支持 GLOP② 寻址(后边会提到)
SDP/SAP 块包含应用程序使用的地址,如:会话目录工具(Session Directory Tool (SDR))[H96]
这个软件会使用会话通知协议(Session Announcement Protocol (SAP))发送组播会话通知 [RFC2974]
会话描述协议(Session Description Protocol(SDP))[RFC4566] 最初是 SAP 的一个组件
现在,较新的 SDP 不仅可以用于 IP 组播,还可以支持 “ 描述多媒体会话 ” 的其它机制
GLOP②
GLOP 不是首字母缩写,而是一部分地址空间的名称
其它的主要地址块是在 IP 组播发展的后期诞生的
SSM 块由使用 SSM 的应用使用,如前所述,它们与单播源 IP 地址相结合形成 SSM 频道
在 GLOP 块中,组播地址是基于分配地址的应用程序所在主机的自治系统(Autonomous System (AS))编号产生的
互联网范围的路由协议在由不同的 ISP 形成的网络之中使用 AS 编号来聚合路由和应用路由策略
每个这样的自治系统都有一个唯一的 AS 编号
最初 AS 编号只有 16 位,现在已经扩展到了 32 位 [RFC4893]
GLOP 地址是通过在 IPv4 组播地址的第二个和第三个字节中放置一个 16 位 AS 编号来生成的
留出 1 个字节的空间来表示可能的组播地址(即最多 256 个)
因此可以在 16 位 AS 编号与对应的 GLOP 组播地址范围之间进行映射
最新的 IPv4 组播地址分配机制,将多个组播地址与一个 IPv4 单播地址前缀关联起来
这种机制被称为基于单播前缀的组播地址(unicast-prefix-based multicast addressing (UBM)),[RFC6034] 对其进行了描述
UBM 基于与 2.5.4 节中讨论的早先为 IPv6 开发的类似的结构
UBM IPv4 地址的范围是 234.0.0.0 到 234.255.255.255
/24 或更短前缀的单播地址分配可以使用 UBM 地址
可用地址较少的分配(即 /25 或更长的前缀)只能使用别的机制
UBM 地址为 234/8 前缀、分配的单播前缀以及组播组 ID 的串联
图 2-11 展示了这个格式
图 2-11 IPv4 UBM 地址格式
分配更短的单播前缀,就能包含更多的单播与组播地址
要确定与单播分配相关联的 UBM 地址集,只需要在被分配的前缀前面简单地加上 234/8 前缀即可
例如,单播 IPv4 地址前缀 192.0.2.0/24 有一个相关联的 UBM 地址 234.192.0.2
可以通过简单地将组播地址左移 8 位来确定其拥有者
例如组播地址范围 234.128.32.0/24 是分配给加州大学伯克利分校的
其拥有对应的单播 IPv4 地址空间 128.32.0.0/16(通过将组播地址 234.128.32.0 左移就能得到)
也可以通过 WHOIS 查询来确定,见第 2.6.1.1 节
相对于其它类型的组播地址,UBM 地址具有一些优势
比如 UBM 地址不用携带 GLOP 寻址使用的 AS 编号,因此没有 16 位的限制
此外,它们是基于已经存在的单播地址空间的分配结果来分配的
因此站点希望使用的组播地址能够在没有更多协调的情况下就能知道哪些地址可被自己使用
最后,UBM 地址拥有比 GLOP 地址更好的粒度,因为 GLOP 是基于 AS 编号分配的
但是在今天的互联网中,一个 AS 编号可以对应多个站点,这一点比 UBM 支持的地址与所有者的简单映射要更灵活
administrative scope 的地址块可以用来限制一个特定路由器和主机集合中的组播流量的分布
这是组播对专有单播 IP 地址的模拟
此类地址不应该用于将多播分发到互联网中,因为它们中的大部分在企业边界以外会被阻止
大型站点有时会使用 administrative scope 的组播地址来划分特定用途的范围(如:工作组、部门、地理区域)