组播基本概念
组播组
组播组使用一个 IP 组播地址标识。任何用户主机(或其他接收设备),加入一个组播组,就成为了该组成员,可以识别并接收以该 IP 组播地址为目的地址的 IP 报文。
组播源
以组播组地址为目的地址,发送 IP 报文的信源称为组播源。
一个组播源可以同时向多个组播组发送数据
。多个组播源可以同时向一个组播组发送数据
。
组播组成员
组播组中的成员是动态的,网络中的用户主机可以在任何时刻加入和离开组播组
。组成员可能广泛分布在网络中的任何地方。
组播源通常不会同时是数据的接收者,不属于组播组成员。
组播路由器
网络中支持组播功能的路由器称为“组播路由器”。
组播路由器的功能:
- 在与用户主机连接的末梢网段,提供组播组成员管理功能。
- 实现组播路由,指导组播报文的转发。
组播分发树
根据组播组成员的分布情况,组播路由协议为多目的端的数据包转发建立树型路由。
组播基本构架
组播模型复杂多样,其统一的用途是以组播方式将信息从组播源传输到接收者手中,同时满足接收者对信息的各种需求。
组播技术关注事项
组播技术 | 关注事项 |
---|---|
主机接入 | 哪里有组播接收者? |
组播源发现技术 | 从哪里可以获得组播数据? |
组播寻址机制 | 将组播数据传输到哪里? |
组播路由 | 如何传输组播信息? |
组播属于一种端到端服务,按照协议层从下往上划分,IP 组播基本构架包括寻址机制、主机接入、组播路由、组播应用
四个部分。
IP 组播基本架构
- 寻址机制:使用组播地址,将一份数据报文发送给一组接收者。
- 主机接入:基于组播协议实现,允许用户主机动态加入和离开某组播组,实现组播成员管理。
- 组播路由:基于组播协议实现,构建报文分发树进行组播路由,从组播源传输报文到接收者。
- 组播应用:组播源与接收者必须支持视频会议等组播应用软件,TCP/IP 协议栈必须支持组播信息的发送和接收。
组播地址
如果采用组播方式传输信息,信息源该将信息发往何处?组播报文目的地址如何选取?
这些问题简而言之就是组播寻址。
- 为了使信息源和组播组成员
跨越互联网
进行通讯,需要提供网络层组播,使用 IP 组播地址
。 - 为了在
本地物理网络上
实现组播信息的正确传输,需要提供链路层组播,即硬件组播。当链路层应用以太网时,硬件组播使用组播 MAC 地址
。 - 同时必须存在一种技术将 IP 组播地址映射为组播 MAC 地址。
IPv4 组播地址
IPv4 地址空间分为五类,即 A 类、B 类、C 类、D 类和 E 类。D 类地址为 IPv4 组播地址,用于标识组播组,使用在 IPv4 组播报文的目的地址字段。
IPv4 组播报文的源地址字段为 IPv4 单播地址,可使用 A、B 或 C 类地址,不能出现 D 类地址
。E 类地址保留。
在网络层上,加入同一组播组的所有用户主机能够识别同一个 IPv4 组播组地址。一旦网络中某用户加入该组播组,则此用户就能接收以该组地址为目的地址的 IP 报文。
D 类组播地址范围是从 224.0.0.0 到 239.255.255.255。
D 类地址的范围及含义
D 类地址范围 | 含义 | 作用域 |
---|---|---|
224.0.0.0~224.0.0.255 | 为路由协议预留的永久组地址。 | |
224.0.1.0~231.255.255.255 233.0.0.0~238.255.255.255 | 用户可用的 ASM(Any-Source Multicast)临时组地址, | 全网范围内有效。 |
232.0.0.0~232.255.255.255 | 用户可用的 SSM(Source-Specific Multicast)临时组地址, | 全网范围内有效。 |
239.0.0.0~239.255.255.255 | 用户可用的 ASM 临时组地址,称为本地管理组播地址, | 仅在特定的本地管理域内有效。 本地管理组播地址属于私有地址,在不同的管理域内使用相同的本地管理组播地址不会导致冲突。 |
-
永久组地址:因特网地址分配组织 IANA(Internet Assigned Number Authority)为路由协议预留的组播地址(也称为保留组地址),用于标识一组特定的网络设备。
永久组地址保持不变,组成员的数量可以是任意的,甚至可以为零
。 -
临时组地址:为用户组播组临时分配的 IPv4 地址(也称为普通组地址),
组成员的数量一旦为零,即取消
。
常见的永久组地址列表
永久组地址 | 含义 |
---|---|
224.0.0.0 | 不分配 |
224.0.0.1 | 网段内所有主机和路由器(等效于广播地址) |
224.0.0.2 | 所有组播路由器的地址 |
224.0.0.3 | 不分配 |
224.0.0.4 | DVMRP(Distance Vector Multicast Routing Protocol)设备 |
224.0.0.5 | OSPF 设备 |
224.0.0.6 | OSPF DR(Designated Router) |
224.0.0.7 | ST 设备 |
224.0.0.8 | ST 主机 |
224.0.0.9 | RIP-2 设备 |
224.0.0.11 | 移动代理 |
224.0.0.12 | DHCP(Dynamic Host Configuration Protocol)服务器 / 中继代理 |
224.0.0.13 | 所有 PIM 设备 |
224.0.0.14 | RSVP(Resource Reservation Protocol)封装 |
224.0.0.15 | 所有 CBT 设备 |
224.0.0.16 | 指定 SBM |
224.0.0.17 | 所有 SBMS |
224.0.0.18 | VRRP(Virtual Router Redundancy Protocol) |
224.0.0.19 ~ 224.0.0.21 | 未指定 |
224.0.0.22 | 所有使能 IGMPv3 的路由器 |
224.0.0.23 ~ 224.0.0.255 | 未指定 |
IPv6 组播地址
IPv6 组播地址的格式
- IPv6 组播地址以 FF 开头。
- 标识字段,包含 0RPT 4 位:
- 0:此最高位为保留字段,固定为 0。
- R:标识是否为内嵌 RP 地址的组播地址。如果为 1,表示为内嵌 RP 地址的组播地址。
- P:标识是否是基于单播前缀的组播地址。如果为 1,表示为基于单播前缀的组播地址。
- T:标识是否永久分配的组播地址。如果为 0,表示为永久分配或 Internet 地址分配机构制定的熟知的多播地址。
- 范围字段(4 位):用于指示组播组是只包含同一本地网络、同一站点、同一机构中的节点,还是包含全球地址空间内的任何节点。其含义如下:
- 0:保留,可以为组播其他协议所用。
- 1:节点(或接口)本地范围(node/interface-local scope)
- 2:链路本地范围(link-local scope)
- 3:保留,可以为组播其他协议所用。
- 4:管理本地范围(admin-local scope)
- 5:站点本地范围(site-local scope)
- 8:机构本地范围(organization-local scope)
- E:全球范围(global scope)
- F:保留,可以为组播其他协议所用。
- 其他:未分配,可以当成普通地址使用。
固定的 IPv6 组播地址的范围及含义
范围 | 含义 |
---|---|
FF0x::/32 | Internet地址分配机构制定的熟知的多播地址,具体请参见下表 |
FF1x::/32(x不能是1或者2)FF2x::/32(x不能是1或者2) | 任意源组播地址。全网范围内有效。 |
FF3x::/32(x不能是1或者2) | 指定源组播地址。缺省的SSM组地址范围,全网范围内有效。 |
FF7x::/32 | 内嵌RP地址的组播地址。 |
IPv6 常用多播地址范围及含义
范围 | IPv6 组播地址 | 含义 |
---|---|---|
节点(或接口)本地范围 | FF01:0:0:0:0:0:0:1 | 网段内所有主机和路由器(等效于广播地址) |
FF01:0:0:0:0:0:0:2 | 所有路由器地址 | |
链路本地范围 | FF02:0:0:0:0:0:0:1 | 所有节点地址 |
FF02:0:0:0:0:0:0:2 | 所有路由器地址 | |
FF02:0:0:0:0:0:0:3 | 未定义的地址 | |
FF02:0:0:0:0:0:0:4 | DVMRP 设备 | |
FF02:0:0:0:0:0:0:5 | OSPF 设备 | |
FF02:0:0:0:0:0:0:6 | OSPF DR | |
FF02:0:0:0:0:0:0:7 | ST 设备 | |
FF02:0:0:0:0:0:0:8 | ST 主机 | |
FF02:0:0:0:0:0:0:9 | RIP 设备 | |
FF02:0:0:0:0:0:0:A | EIGRP 设备 | |
FF02:0:0:0:0:0:0:B | 移动代理 | |
FF02:0:0:0:0:0:0:D | 所有 PIM 设备 | |
FF02:0:0:0:0:0:0:E | RSVP 封装 | |
FF02:0:0:0:0:0:1:1 | Link Name | |
FF02:0:0:0:0:0:1:2 | 所有 DHCP 代理 | |
FF02:0:0:0:0:1:FFXX:XXXX | Solicited-Node 地址,XX:XXXX 表示节点 IPv6 地址的后 24 位 | |
站点本地范围 | FF05:0:0:0:0:0:0:2 | 所有路由器地址 |
FF05:0:0:0:0:0:1:3 | 所有 DHCP 服务器 | |
FF05:0:0:0:0:0:1:4 | 所有 DHCP 中继 | |
FF05:0:0:0:0:0:1:1000~FF05:0:0:0:0:0:1:13FF | 服务位置 |
组播 MAC 地址
根据 IEEE802.3 规定,单播 MAC 和组播 MAC 地址的定义如下:
- 单播 MAC 地址:第一个 8 位组的最后一位恒定为 0。
- 组播 MAC 地址:第一个 8 位组的最后一位恒定为 1。
组播 MAC 地址用于在链路层上标识属于同一组播组的接收者。
网络设备上的以太网接口板可以识别组播 MAC 地址。通过在驱动程序中配置某组播 MAC 地址,设备就可以在以太网上接收和转发该组播组的数据。
IANA 规定,IPv4 组播 MAC 地址的高 24bit 为 0x01005e
,第 25bit 为 0,低 23bit 为组播 IP 地址的低 23bit 。
根据映射关系,IPv4 组播地址的后 28bit 中只有 23bit 被映射到 MAC 地址,因此丢失了 5bit 的地址信息,直接结果是有 32 个 IPv4 组播地址映射到同一 MAC 地址上。
组播 IPv4 地址与组播 MAC 地址的映射关系
IANA 规定,IPv6 组播 MAC 地址的高 16bit 为 0x3333
,低 32bit 为组播 IPv6 地址的低 32bit,映射关系如图所示。
组播 IPv6 地址与组播 MAC 地址的映射关系
本文着重介绍 IP 组播技术及设备操作。如果不加特别说明,本文中出现的组播均指 IP 组播。
组播协议
实现一套完整的组播服务,需要在网络各个位置部署多种组播协议相互配合,共同运作,如图所示。
IPv4 组播网络
IPv6 组播网络
组播协议
应用位置 | 组播协议 | 目的 |
---|---|---|
用户主机与组播路由器之间 | IGMP(Internet Group Management Protocol):因特网组管理协议,用于 IPv4 网络。 MLD(Multicast Listener Discovery):组播侦听器发现,用于 IPv6 网络。 | 将用户主机接入组播网络:在主机侧实现组播组成员动态加入与离开。在路由器侧实现组成员关系的维护与管理,同时支持与上层组播路由协议的信息交互。 |
域内组播路由器之间 | PIM(Protocol Independent Multicast):协议无关组播。 | 组播路由与转发:按需创建组播路由。动态响应网络拓扑变化,维护组播路由表。按照路由表项执行转发。 |
域间组播路由器之间 | MSDP(Multicast Source Discovery Protocol):组播源发现协议,目前仅用于 IPv4 网络。 | 域间组播源信息共享:源所在域内的路由器将本地源信息传播给其他域内的路由器。 |
从表中观察可知,组播协议的功能主要分为以下两类:
组播组成员关系管理
组播组成员关系管理是指在主机与路由器之间建立和维护组成员关系。
IGMP 是用于 IPv4 网络的组播组成员关系管理协议,有以下特点:
- 包含三个版本,分别是 IGMPv1、IGMPv2 和 IGMPv3。新版本完全兼容旧版本。目前应用最广泛的是 IGMPv2。
- 三个版本都支持 ASM(Any-Source Multicast,任意源组播 )模型。IGMPv3 可以直接支持 SSM(Source-Specific Multicast,指定源组播)模型,而 IGMPv1 和 IGMPv2 则还需要 SSM-Mapping 技术的配合。
MLD 是用于 IPv6 网络的组播组成员关系管理协议,有以下特点:
- 包含两个版本,分别是 MLDv1 和 MLDv2。
- MLDv1 的功能与 IGMPv2 相似。
- MLDv2 的功能与 IGMPv3 相似。
- 两个版本都支持 ASM 模型。MLDv2 可以直接支持 SSM 模型,而 MLDv1 需要结合 SSM-Mapping 技术才能支持 SSM 模型。
建立并维护组播路由
组播路由也称为组播分发树,指从一个组播源到所有组成员的数据传输路径
。组播路由单向、无环且路径最短
。通过在路由器之间建立和维护组播路由,网络才能够正确、高效地转发组播数据包。
- 域内组播路由协议:用来在 AS(Autonomous System,自治系统)内发现组播源并构建组播分发树,将信息传递到接收者。
- 域间组播路由协议:用来在 AS 之间传递组播源信息,从而跨域建立组播路由,实现域间组播资源共享。MSDP(Multicast Source Discovery Protocol,组播源发现协议) 是典型的域间组播路由协议,通常与 MBGP(Multicast BGP,组播 BGP)协同工作。MSDP 适用于各域内运行 PIM-SM (Protocol Independent Multicast-Spare Mode,协议无关组播稀疏模式)的情况。
对于 SSM 模型来说,没有域内和域间的划分。由于接收者预先知道组播源的具体位置,因此可以借助 PIM-SM 的部分功能直接创建组播传输路径。
组播模型分类
根据对组播源的控制程度的不同,IP 组播分为三种模型,分别为:
- ASM 模型
- SFM 模型
- SSM 模型
ASM 模型( Any-Source Multicast,任意源组播)
ASM模型中,任意发送者都可以成为组播源,向某组播组地址发送信息。接收者通过加入由该地址标识的组播组,接收到发往该组播组的所有信息。
在 ASM 模型中,接收者无法预先知道组播源的位置,接收者可以在任意时间加入或离开该组播组。
SFM 模型(Source-Filtered Multicast,过滤源组播)
SFM 模型继承了 ASM 模型,从发送者角度来看,组播组成员关系完全相同。
同时,SFM 在功能上对 ASM 进行了扩展:上层软件对接收到的组播报文的源地址进行检查,允许或禁止来自某些组播源的报文通过。最终,接收者只能接收到来自部分组播源的数据。从接收者角度来看,只有部分组播源是有效的,组播源经过了筛选。
SFM 在 ASM 的基础上添加了组播源过滤策略,此外基本原理和配置方法相同。本文中将 SFM 与 ASM 统称为 ASM。
SSM 模型(Source-Specific Multicast,指定源组播)
在现实生活中,用户可能仅对某些源发送的组播信息感兴趣,而不愿接收其它源发送的信息。SSM 模型为用户提供了一种能够在客户端指定信源的传输服务。
SSM 模型和 ASM 模型的根本区别是接收者已经通过其他手段预先知道了组播源的具体位置。SSM 使用和 ASM 不同的组播地址范围,直接在接收者和其指定的组播源之间建立专用的组播转发路径。
组播报文转发
在组播模型中,IP 报文的目的地址字段为组播组地址,组播源向以此目的地址所标识的主机群组传送信息。因此,转发路径上的路由器为了将组播报文传送到各个方位的接收站点,往往需要将从一个入接口接收到的报文转发到多个出接口。与单播模型相比,组播模型的复杂性就在于此。
- 由组播路由表来指导组播报文转发。
- 由 RPF(Reverse Path Forwarding,反向路径转发)机制保证组播路由是一棵最短路径树。RPF 机制是大部分组播路由协议创建组播路由表项、进行组播转发的基础。
VIA:huawei
标签:组播,224.0,组播源,地址,原理,路由器,路由,描述 From: https://blog.csdn.net/u013669912/article/details/139483215