组播路由协议基础概述(1)

背景

组播报文是由组播源产生并且发向一组接收者的,组播报文一旦进入组播网络后,组播网络设备(例如组播路由器等)负责拷贝及转发这些报文,直至报文到达组播接收者。

组播流量在组播网络中传递时,应该要考虑如下问题:

  1. 组播路由器如何知道应该将组播报文转发到哪里(从设备的哪个或者哪些接口转发出去)?
  2. 组播报文在网络中的传输路径如何?
  3. 如何确保组播报文在转发的过程中不存在环路?

解决方法

通过在组播网络中部署组播路由协议可以解决上述问题。每一台组播路由器都维护一个非常重要的数据表,这个数据表便是组播路由表,组播路由表中包含的组播路由表项将用于指导组播报文转发。

组播路由协议

在组播路由器上部署组播路由协议,主要作用是确定上游接口、下游接口建立组播路由表项以及维护组播路由表项。

上游接口

  • 在组播网络设备(比如组播路由器)上确定朝向组播源(或者RP)的接口,该接口也被称为上游接口(RPF接口,用于防环)。
  • 在每台组播路由器的每一个组播路由表项中,如果存在上游接口,那么上游接口只会有一个,只有在该接口上到达的组播流量才被视为合法的。
  • 组播流量永远不会从上游接口转发出去,因为这有可能在网络中造成环路。

下游接口

  • 在每台组播路由器上确定朝向组播接收者的接口,该接口也被称为下游接口(确定组播流量的出口方向)。
  • 当组播流量在上游接口到达时,组播路由器负责将流量从下游接口转发出去。
  • 在一个组播路由表项中,下游接口列表中可能包含零个、一个或多个接口(零个下游接口表示组播流量不经过本设备到达组播接收者)。

组播路由表项

每一个组播路由表项都以一对二元组(组播源及组播组)进行标识,而且每一个组播路由表项都包含上游、下游接口信息。

从宏观的层面看,组播路由协议的工作成果是在网络中构建一棵无环的“树”,组播流量沿着这棵无环树从上游向下游转发,最终到达接收者所在的网段,而网络中的每一台组播路由器,便是这棵树上的节点。

组播分发树

在一个组播网络中,组播路由协议最重要的工作之一就是为组播网络生成一棵无环的树,这棵树也是组播流量在网络中的传输路径,我们称
之为组播分发树(Multicast Distribution Tree ),简称为组播树。常用的组播分发树有以下两种:SPT和RPT。

SPT(Shortest-Path Tree,最短路径树)

  • SPT也被称为源树,因为是以组播源为树根的组播分发树,而组播组的接收者则可以看作是这棵树的树叶。
  • 组播流量从树根(源)出发,沿着枝干传播,最终到达树叶,也即接收者所在的终端网络,如下图所示,是一个组播分发树仅形象化的概念。
    在这里插入图片描述
  • 组播分发树体现到每一台组播路由器上其实就是组播路由表中的相关表项。每一台组播路由器都维护着组播路由表,该数据表用于指导组播流量转发。
  • 在组播网络中,组播路由表可能包含多个表项,每个表项都存在四个关键信息:组播源地址、组播组地址、上游接口以及下游接口
  • 对于SPT而言,使用的是((S, G)组播路由表项,每一个(S, G)表项在网络中都对应了一棵独立的SPT。

示例

以上图为例,当SPT建立完成后,我们就能在每台路由器上观察到(S,G)表项,

  1. 其中S为组播源的IP地址,如上图中的10.1.1.1,假设该组播源向组播组239.1.1.13发送组播流量,那么网络中组播路由器所维护的(S,G)表项就是(10.1.1.1,239.1.1.13)。
  2. 每台路由器的(10.1.1.1,239.1.1.13)表项都包含上游及下游接口信息,在SPT中,上游接口是设备朝向组播源的接口,
  3. 在R3的(10.1.1.1, 239.1.1.13)表项中,上游接口是其连接R1的接口,而下游接口有三个,分别是其连接R5,R6以及直连网段中存在组成员的那个接口。
  4. 当R3从上游接口收到10.1.1.1发往239.1.1.13的组播流量时,就会将这些流量按照(10.1.1.1,239.1.1.13)表项的指示,拷贝三份并分别从三个下游接口转发出去,因此可以形象的理解,这些组播流量沿着SPT转发了下去。

优势

对于SPT而言,组播流量从源到接收者的过程走的是最短路径,这也是该组播分发树被称为最短路径树的原因。

局限性

由于SPT使用的组播路由表项是(S,G)表项,这意味着每台组播路由器都必须为每个组播组中的不同组播源创建单独的(S,G)表项,在一个大型的组播网络中,当存在大量的组播源及组播组时,路由器的内存空间将被臃肿的组播路由表占据,进而导致性能下降。

组播路由表项类型

  • 组播路由表项分为两种类型:(S,G)和(*,G)。
  • 其中S表示具体的某个组播源IP地址,G表示具体的某个组播组IP地址,而*则表示任意的组播源。

RPT( Rendezvous Point Tree,共享树)

  • RPT与SPT不同,它不以组播源为树根,而是以RP (Rendezvous Point)为根。
  • RP可理解为一个汇聚点的概念,在一个典型的组播网络中,通常是一台性能较好的网络设备。
  • 多个组播组可以共用一个RP,期望接收组播流量的路由器(下接组播接收终端)通过组播路由协议在自己与RP之间建立一段RPT的分支。组播流量首先需要从源发送到RP,然后再由RP将组播流量分发下来,组播流量顺着RPT最终到达各个接收者所在的终端网络,如下图所示。
    在这里插入图片描述

示例

  1. 在上图中,组播源Source与RP之间建立了SPT,Source通过这棵SPT将组播流量发送到RP,
  2. 然后RP再将组播流量沿着RPT转发到组播接收者。
  3. RPT主要使用的是(*,G)组播路由表项(也使用(S,G)表项)。

优势

对于RPT而言,路由器对于每个组播组仅需维护一个(*,G)组播路由表项,无论有多少个组播源在向该组播组发送组播流量。

局限性(次优路径问题)

由于在网络中指定了RP,组播流量需要先从源发往RP,再由RP沿着组播树分发下来,这就势必存在这样一种情况:对于某些接收者而言,组播流量传输的路径可能并不是最优路径。

如上图所示,组播流量从Source转发到RP,再由RP转发到R2,显然对于R2而言这条路径并非最优。

组播路由协议也有相应的机制(RPT切换到SPT机制)来规避这种次优路径问题。

发布了17 篇原创文章 · 获赞 1 · 访问量 234

猜你喜欢

转载自blog.csdn.net/mn3321/article/details/105614111
今日推荐