« Back
in 思科 read.

IP组播基础(2)

Multicast Protocol Basics 组播协议基础

研究组播技术时需要关注的: 1、组播的分布树,定义了组播流量从源到目的地址的路径,有很多方法用于构建它。

SPT(Shortest Path Trees)即(Source Distribution Tree源分布树)采用最短路径优先算法,中间的转发设备采用Notation(S,G)的方法记录转发表,S表示多播源IP地址,G表示多播组地址。

spt1

 

spt2

在上面的两幅图中,中间的路由器基于源和组地址分别建立不同的转发条目。

 

SDT(Shared Distribution Tree共享分布树)技术需要先指定RP(Rendezvous Point会聚点),所有的多播源先把信息送到RP,再由RP分发到各接收点,RP相当于树根,到达RP之后的多播信息转发时与源无关,故采用Notation(*,G)的方式记录转发表。

sdt

Source or Shortest Path trees因为要为每个源和组记录转发条目,会耗费较多的路由器资源,但是转发路径准确,Shared trees记录条目少,但是因为多播信息的转发必须通过RP,可能导致次佳转发路径的存在。

 

如何构建分布树

PIM 基于单播路由表来构建树,路由器用Join(加入)、Prune(修剪)和Graft(嫁接)三种消息通知上游路由器是否需要向其转发某一多播组的消息。

DVMRP 很像RIP,是一种距离向量型协议,采用Poison-Reverse(毒性反转)、Prune(修剪)和Graft(嫁接)三种消息通知上游路由器是否需要向其转发某一多播组的消息。

MOSPF 利用单播OSPF协议的LSP来传递通告,构建(S,G)转发条目。

CBT 基于原理与PIM疏模式相同,路由器用Join(加入)、Prune(修剪)和Graft(嫁接)三种消息通知上游路由器是否需要向其转发某一多播组的消息。

2、组播信息转发,这一点与单播有很大的不同,单播基于目的地址转发,组播基于源地址转发。

多播信息的转发

基于发送源的IP地址(数据包中的源地址)而非接收者的IP(数据包中的多播地址不代表单个接收者)来转发。

路径的选择依靠RPF(Reverse Path Forwarding反向路径转发)技术。包括三个过程:Broadcast(广播)洪泛传递,假定网络上的每个主机都是多播组成员;Prune(修剪)停止向那些没有组成员存在的网络转发多播信息;Selective Forwarding(选择性转发)如果有多条转发路径可用,则依靠单播路由表来帮助选择最佳路径。

 

RPF Check(RPF检验)

A router forwards a multicast datagram only if received on the up stream interface to the source。

路由器只转发从可达源的上游路由器的接口(依靠单播路由表判断)收到的多播数据包。

RPF检验成功则转发,RPF检验失败则Silently Dropped(静悄悄的丢弃),这项技术主要防止多次转发多播数据包。

rpf

在这个图中,路由器从S0口收到了一个来自151.10.3.21的多播包,可是检查路由表后发现,由它到网络151.10.0.0网络的数据包应由S1口发出,RPF检验失败。

 

TTL Thresholds(TTL阈值)

组播传送中的TTL类似于单播,但是它更灵活,可用于限制多播信息转发的范围。

一个多播包进入路由器后,它的TTL值首先减1,在从出口送出去之前,如果出口上所设置的TTL阈值非0,则要进行TTL阈值检验,所有TTL值小于接口阈值的多播包将不会被发送。用接口命令ip multicast ttl-threshold ttl 来实现。

ttl

 

Administrative Boundary 管理边界

用于限定到达特定多播组的数据包的转发。用接口命令ip multicast boundary <acl>来实现。

ad

3、组播协议类型,密模式和疏模式

Dense mode采用推方式传送多播信息,假定所有的网络节点都是接收者,然后再修剪掉向那些不需要多播信息的网络的转发,Flood & Prune的行为每隔3分钟就要发生一次。

Sparse mode采用拉方式传送多播信息,除非接收端显式的声明,否则将不会向其发送多播数据。

注意:鉴于Dense mode周期性的Flood行为对网络影响较大,实际的多播网络中只采用Sparse mode来构建多播转发表。