组播网络架构
组播网络,大致分为三个部分:
1)源端网络:将组播源产生的组播数据,发送至组播网络。无特殊要求,只需要第一跳路由器开启组播支持;
2)转发网络:形成无环的组播转发路径,该转发路径也被称为组播分发树(Multicast Distribution Tree)。
3)成员网络:需要让组播网络感知组播组成员位置及组播组成员加入的组播组,以向下分发组播数据。
源端网络
组播源(Multicast Source):
1)作用:组播流量的发送者,作用是发送组播数据。组播源无需运行任何组播协议,只需简单地将组播数据发送出来即可。
2)设备:例如多媒体服务器。
转发网络
组播路由器(Multicast Router):
1)作用:将数据从 Multicast Source 发送到 Multicast Receiver。组播数据转发需要依赖组播分发树,因此组播路由器需要通过协议来构建组播分发树。
2)设备:支持组播、运行组播协议的网络设备。实际上交换机、防火墙等设备也能够支持组播(取决于设备型号),路由器仅是个代表;
第一跳路由器(First-Hop Router):
1)作用:组播转发路径上,负责转发该组播源发出的组播数据的 PIM 路由器;
2)位置:与 Multicast Source 相连;
最后一跳路由器(Last-Hop Router):
1)作用:组播转发路径上,负责向该组成员转发组播数据的 PIM 路由器;
2)位置:与 Multicast Receiver 相连;
成员网络
组播接收者(Multicast Receiver),也被称为组播组成员:
1)作用:接收组播数据,是期望接收特定组播组流量的设备
2)设备:例如 运行多媒体直播客户端软件的 PC;
组播路由表(Multicast Routing Table)
类似单播网络,组播网络数据转发需要 Multicast Routing Table(组播路由表)来指导数据转法,并且每个节点都会进行组播数据检查。
Q:组播分发树是如何形成的?
A:当沿路路由器都形成转发的路由信息,我们则认为组播分发树形成。
组播组(Multicast Group)
组播组(Multicast Group):用IP组播地址进行标识的一个集合。任何用户主机(或其他接收设备),加入一个组播组,就成为了该组成员,可以识别并接收发往该组播组的组播数据。
组播分发树(Multicast Distribution Tree)
解释:组播数据转发需要保证转发路径无环,无次优路径且无重复包。通过 RPF 机制 与 组播路由协议,组播网络可以最终形成以组播组为单位、无环、无次优、无重复包的组播转发路径,由于组播转发路径呈现树型结构,也称为 Multicast Distribution Tree(组播分发树)。
以组播源为根,以组成员为叶子形成转发路径,组播数据在转发时都基于 Multicast Distribution Tree 进行转发。
特点:无论网络中的组成员有多少,每条链路上相同的组播数据最多只有一份。被传递的组播数据在距离 Multicast Source 尽可能远的分叉路口才开始复制和分发。
组播路由协议
组播网络,需要基于多种组播协议才能建立转发路径,以完成数据转发。
成员端网络
IGMP(Internet Group Management Protocol,因特网组管理协议)协议,是在 TCP/IP 中负责IP组播成员管理的协议,它用来在接收者和与其直接相邻的组播路由器之间建立、维护组播组成员关系。用于告知组播网络,组成员的位置与所加组播组。
组播网络内部
PIM(Protocol Independent Multicast,协议无关组播)协议主要作用是生成 Intra-AS Multicast Distribution Tree(域内组播分发树)。
多个组播网络
MSDP(Multicast Source Discovery Protocol,组播源发现协议)主要作用是帮助生成 Inter-AS Multicast Distribution Tree(域内组播分发树)。
MBGP(Multicast BGP,组播BGP):传递组播路由,帮助跨域组播流进行 RPF 校验。
组播服务模型
组播组成员在接收组播数据时,可以对于组播数据源进行选择,因此产生两种组播服务模型:
1)ASM(Any-Source Multicast,任意源组播):组成员加入组播组以后,组成员可以接收到任意源(Any Source)发送到该组的数据。
2)SSM(Source-Specific Multicast,指定源组播):组成员加入组播组以后,组成员只会收到指定源(Source-Specific)发送到该组的数据。
ASM,Any-Source Multicast
特点:
1)为提高安全性,ASM 可以在路由器上配置针对组播源的过滤策略,允许或禁止来自某些组播源的报文通过。最终从接收者角度看,数据是经过筛选的。
2)ASM 模型要求组地址必须整个组播网络中唯一。“唯一”指的是同一时刻一个ASM地址只能被一种组播应用使用。如果有两种不同的应用程序使用了同一个ASM组地址发送数据,它们的接收者会同时收到来自两个源的数据。这样一方面会导致网络流量拥塞,另一方面也会给接收者主机造成困扰。
3)总的来说,ASM 并不关心源地址,通过组播地址来区分流量;
SSM,Source-Specific Multicast
1)SSM模型对组地址不再要求全网唯一,只需要每个组播源保持唯一。这里的“唯一”指的是同个源上不同的组播应用必须使用不同的SSM地址来区分。
2)不同的源间,能使用相同的组地址,因为 SSM 中针对每个(源,组)信息都会生成表项。这样一方面节省组播组地址,且也不会造成网络拥塞。
3)总的来说,SSM 关心源地址,通过源地址进行区分流量;