组播概述知识摘编

2020-06-14  本文已影响0人  rubinw

什么是组播

作为一种与单播(Unicast)和广播(Broadcast)并列的通信方式,组播(Multicast)技术能够有效地解决单点发送、多点接收的问题,从而实现了网络中点到多点的高效数据传送,能够节约大量网络带宽、降低网络负载。利用组播技术可以方便地提供一些新的增值业务,包括在线直播、网络电视、远程教育、远程医疗、网络电台、实时视频会议等对带宽和数据交互的实时性要求较高的信息服务。

单播、广播与组播

单播

单播的方式,信息源(即Source)要为每个需要信息的主机(即Receiver)都发送一份独立的信息拷贝。采用单播方式时,网络中传输的信息量与需要该信息的用户量成正比,因此当需要该信息的用户数量较大时,信息源需要将多份内容相同的信息发送给不同的用户,这对信息源以及网络带宽都将造成巨大的压力。从单播方式的信息传播过程可以看出,该传输方式不利于信息的批量发送。


广播

广播的方式,信息源(即Source)将把信息传送给该网段中的所有主机,而不管其是否需要该信息。这样不仅信息的安全性得不到保障,而且会造成同一网段中信息的泛滥。因此,广播方式不利于与特定对象进行数据交互,并且还浪费了大量的带宽。


组播
采用组播的方式,组播源(即Source)仅需发送一份信息,借助组播路由协议建立组播分发树,组播源向组播组只需发送一份信息,被传递的信息在距离组播源尽可能远的网络节点才开始根据该组播组中各成员的分布情况对该信息进行复制和分发。

组播优缺点

组播传输的特点

  1. “组播组”是一个用IP组播地址进行标识的接收者集合,主机通过加入某组播组成为该组播组的成员,从而可以接收发往该组播组的组播数据。组播源通常不需要加入组播组。
  2. 信息的发送者称为“组播源”。一个组播源可以同时向多个组播组发送信息,多个组播源也可以同时向一个组播组发送信息。
  3. 所有加入某组播组的主机便成为该组播组的成员。组播组中的成员是动态的,主机可以在任何时刻加入或离开组播组。组播组成员可以广泛地分布在网络中的任何地方。
  4. 支持三层组播功能的路由器或三层交换机统称为“组播路由器”或“三层组播设备”。组播路由器不仅能够提供组播路由功能,也能够在与用户连接的末梢网段上提供组播组成员的管理功能。组播路由器本身也可能是组播组的成员。

组播常用表示法

组播模型分类

根据接收者对组播源处理方式的不同,组播模型分为三类:

分类 描述
ASM(Any-Source Multicast)任意信源组播模型 在 ASM 模型中,任意一个发送者都可以作为组播源向某组播组地址发送信息。众多接收者通过加入由该组播组地址标识的组播组以获得发往该组播组的组播信息。在 ASM 模型中,接收者无法预先知道组播源的位置,但可以在任意时间加入或离开该组播组。
SFM(Source-Filtered Multicast)信源过滤组播模型 SFM继承了 ASM 模型,从发送者角度来看,两者的组播组成员关系完全相同。SFM 模型在功能上对 ASM 模型进行了扩展。在 SFM 模型中,上层软件对收到的组播报文的源地址进行检查,允许或禁止来自某些组播源的报文通过。因此,接收者只能收到来自部分组播源的组播数据。从接收者的角度来看,只有部分组播源是有效的,组播源被经过了筛选。
SSM(Source-Specific Multicast) 指定信源组播模型 在现实生活中,用户可能只对某些组播源发送的组播信息感兴趣,而不愿接收其它源发送的信息。SSM为用户提供了一种能够在客户端指定组播源的传输服务。SSM 模型与 ASM 模型的根本区别在于: SSM 模型中的接收者已经通过其它手段预先知道了组播源的具体位置。 SSM 模型使用与 ASM/SFM 模型不同的组播地址范围,直接在接收者与其指定的组播源之间建立专用的组播转发路径。

组播框架结构

对于 IP 组播,需要关注下列问题:

  1. 组播源将组播信息传输到哪里?即组播寻址机制;
  2. 网络中有哪些接收者?即主机注册;
  3. 这些接收者需要从哪个组播源接收信息?即组播源发现;
  4. 组播信息如何传输?即组播路由。

IP 组播属于端到端的服务,组播机制包括以下四个部分

机制 描述
寻址机制 借助组播地址,实现信息从组播源发送到一组接收者
主机注册 允许接收者主机动态加入和离开某组播组,实现对组播成员的管理
组播路由 构建组播报文分发树(即组播数据在网络中的树型转发路径),并通过该分发树将报文从组播源传输到接收者
组播应用 组播源与接收者必须安装支持视频会议等组播应用的软件,TCP/IP协议栈必须支持组播信息的发送和接收

组播地址

为了让组播源和组播组成员进行通信,需要提供网络层组播地址,即 IP 组播地址。同时必须存在一种技术将 IP 组播地址映射为链路层的组播 MAC 地址。

IPv4组播地址
IANA(Internet Assigned Numbers Authority,互联网编号分配委员会)将D类地址空间分配给IPv4 组播使用,范围从 224.0.0.0 到 239.255.255.255,具体分类及其含义如下表:

地址范围 含义
224.0.0.0~224.0.0.255 永久组地址。除 224.0.0.0 保留不做分配外,其它地址供路由协议、拓扑查找和协议维护等使用。对于以该范围内组播地址为目的地址的数据包来说,不论其TTL(Time to Live,生存时间)值为多少,都不会被转发出本地网段。
224.0.1.0~238.255.255.255 用户组地址,全网范围内有效。包含两种特定的组地址:
232.0.0.0/8:SSM 组地址
233.0.0.0/8:GLOP 组地址
GLOP 是一种 AS(Autonomous System,自治系统)之间的组播地址分配机制,将 AS 号填入该范围内组播地址的中间两个字节中,每个 AS 都可以得到 255 个组播地址。有关 GLOP 的详细介绍请参见 RFC 2770。
239.0.0.0~239.255.255.255 本地管理组地址,仅在本地管理域内有效。使用本地管理组地址可以灵活定义组播域的范围,以实现不同组播域之间的地址隔离,从而有助于在不同组播域内重复使用相同组播地址而不会引起冲突。详情请参见 RFC 2365

常用永久组地址及其含义:

永久组地址 含义
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(Open Shortest Path First,开放最短路径优先)路由器
224.0.0.6 OSPF 指定路由器/备用指定路由器
224.0.0.7 ST(Shared Tree,共享树)路由器
224.0.0.8 ST 主机
224.0.0.9 RIP-2(Routing Information Protocol version 2,路由信息协议版本 2)路由器
224.0.0.11 移动代理
224.0.0.12 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器/中继代理
224.0.0.13 所有 PIM(Protocol Independent Multicast,协议无关组播)路由器
224.0.0.14 RSVP(Resource Reservation Protocol,资源预留协议)封装
224.0.0.15 所有 CBT(Core-Based Tree,有核树)路由器
224.0.0.16 指定 SBM(Subnetwork Bandwidth Management,子网带宽管理)
224.0.0.17 所有 SBM
224.0.0.18 VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)

IPv6组播地址

IPv6组播地址格式
IPv6 组播地址中各字段的含义如下:
取值及含义
0 位 保留位,必须取 0
R 位 取 0 表示非内嵌 RP 的 IPv6 组播地址
取 1 则表示内嵌 RP(Rendezvous Point) 的 IPv6 组播地址(此时 P、T 位也必须置 1)
P 位 取 0 表示非基于单播前缀的 IPv6 组播地址
取 1 则表示基于单播前缀的 IPv6 组播地址(此时 T 位也必须置 1)
T 位 取 0 表示由 IANA 永久分配的 IPv6 组播地址
取 1 则表示非永久分配的 IPv6 组播地址
取值 含义
0、3、F 保留(reserved)
1 接口本地范围(interface-local scope)
2 链路本地范围(link-local scope)
4 管理本地范围(admin-local scope)
5 站点本地范围(site-local scope)
6、7、9~D 未分配(unassigned)
8 机构本地范围(organization-local scope)
E 全球范围(global scope)

组播MAC地址
以太网传输单播 IP 报文的时候,目的 MAC 地址使用的是接收者的 MAC 地址。但是在传输组播数据包时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,所以要使用组播 MAC 地址。

IPv4组播MAC地址
IANA规定,IPv4 组播MAC地址的高 24 位为 0x01005E,第 25 位为 0,低 23 位为IPv4 组播地址的低 23 位。IPv4 组播地址与MAC地址的映射关系如下图:

IPv4组播地址与MAC地址的映射关系
由于 IPv4 组播地址的高 4 位是 1110,代表组播标识,而低 28 位中只有 23 位被映射到 IPv4 组播 MAC 地址,这样 IPv4 组播地址中就有 5 位信息丢失。于是,就有32 个 IPv4 组播地址映射到了同一个 IPv4 组播 MAC 地址上,因此在二层处理过程中,设备可能要接收一些本 IPv4 组播组以外的组播数据,而这些多余的组播数据就需要设备的上层进行过滤了。

IPv6组播MAC地址
IPv6 组播MAC地址的高 16 位为 0x3333,低 32 位为IPv6 组播地址的低 32 位。如图所示,是IPv6 组播地址FF1E::F30E:101 的MAC地址映射举例:

IPv6组播地址的MAC地址映射举例

组播协议体系

从工作的网络层级看

对于 ASM 模型,可以将组播路由分为域内和域间两大类:
域内组播路由用来在 AS 内部发现组播源并构建组播分发树,从而将组播信息传递到接收者。在众多域内组播路由协议中,PIM(Protocol IndependentMulticast,协议无关组播)是目前较为典型的一个。按照转发机制的不同, PIM可以分为 DM(Dense Mode,密集模式)和 SM(Sparse Mode,稀疏模式)两种模式。
域间组播路由用来实现组播信息在 AS 之间的传递,目前比较成型的解决方案有:MSDP(Multicast Source Discovery Protocol,组播源发现协议)能够跨越 AS 传播组播源的信息;而 MP-BGP(MultiProtocol Border GatewayProtocol,多协议边界网关协议)的组播扩展 MBGP(Multicast BGP)则能够跨越 AS 传播组播路由。
对于 SSM 模型,没有域内和域间的划分。由于接收者预先知道组播源的具体位置,因此只需要借助 PIM-SM 构建的通道即可实现组播信息的传输。

IGMP Snooping/MLD Snooping
IGMP Snooping(Internet Group Management Protocol Snooping,互联网组管理协议窥探)和 MLD Snooping(Multicast Listener Discovery Snooping,组播侦听者发现协议窥探)是运行在二层设备上的组播约束机制,通过窥探和分析主机与三层组播设备之间交互的 IGMP 或 MLD 报文来管理和控制组播组,从而可以有效抑制组播数据在二层网络中的扩散。
组播 VLAN/IPv6 组播 VLAN
在传统的组播点播方式下,当连接在二层设备上、属于不同 VLAN 的用户分别进行组播点播时,三层组播设备需要向该二层设备的每个 VLAN 分别发送一份组播数据;而当二层设备运行了组播 VLAN 或 IPv6 组播 VLAN 之后,三层组播设备只需向该二层设备的组播 VLAN 或 IPv6 组播 VLAN 发送一份组播数据即可,从而既避免了带宽的浪费,也减轻了三层组播设备的负担。

从应用于IP协议版本看

从应用于设备位置看

组播报文的转发机制

在组播模型中,IP 报文的目的地址字段为组播组地址,组播源向以此目的地址所标识的主机群组传送信息。因此,转发路径上的组播路由器为了将组播报文传送到各个方位的接收站点,往往需要将从一个入接口收到的组播报文转发到多个出接口。与单播模型相比,组播模型的复杂性就在于此:

上一篇下一篇

猜你喜欢

热点阅读