交换机
园区网交换机
数据中心与云计算交换机
行业精选交换系列
意图网络指挥官
无线
放装型无线接入点
墙面型无线接入点
智分无线接入点
室外无线接入点
场景化无线
行业精选无线系列
无线管理与应用
PIM-SM:在PIM-SM网络中,运行PIM-SM协议的设备周期性地发送Hello消息,用以发现邻接的PIM-SM设备,并且负责在多路访问网络中进行指派设备DR的选举。这里,DR负责为其直连组成员朝着组播分发树根节点方向发送“加入/剪枝”消息,或是将直连组播源的数据发向组播分发树。
PIM-SM显式的加入/剪枝机制
PIM-SM通过建立组播分发树来进行组播数据包的转发。组播分发树分为两种:以组G的RP(汇聚点)为根的共享树(Shared Tree,即RPT)和以组播源为根的最短路径树(Shortest Path Tree,即SPT)。PIM-SM通过显式地加入/剪枝机制来完成组播分发树的建立与维护。如上图所示:
1)当接收端的DR收到一个来自接收端的IGMP (*,G)include report报文;
2)如果接收端的DR不是这个组G的RP,接收端的DR就会向RP方向发送一个(*.G)join报文,收到这个(*,G)join报文的上游路由器,又会向RP方向发送(*,G)join报文,这样(*,G)join报文逐跳发送,直到组G的RP收到了(*,G)join报文,表示加入共享树;
3)数据源主机向组发送组播数据时,源数据被封装在注册消息内,并由数据源端的DR单播至RP,RP再将注册报文解封,取出其中的数据报文,然后沿着共享树转发到各个组成员;
4)RP朝着数据源端的DR发送(S,G)join报文,用以加入此源的最短路径树;
5)这样当RP到数据源端的DR的SPT建好后,数据源的数据包将沿着其最短路径树不加封装地发送到RP;
6)当第一个组播数据沿SPT到达时,RP向源的DR发送注册-停止消息,以使DR停止注册封装过程。当数据源端的DR收到注册-停止消息后,不再封装注册数据报文,而是只沿着源的最短路径树发送到RP,再由RP将其沿着共享树转发各个组成员。
7)当某个接收端不再需要组播数据时,接收端发送IGMP leave报文。
8)接收端的DR向着组G的RP逐跳组播剪枝消息用以剪枝共享树,这个剪枝消息最后会到达RP或是到达去RP路上的某个路由器且这个路由器上还有其他(*,G)接收者。这样,数据报文就不会再往这个接收端的方向发送。
9)若RP上已没有下游接收者,那么RP就会向数据源方向发送(S,G)剪枝报文,(S,G)剪枝报文逐条发送到数据源端的DR,于是数据源的DR就会剪掉收到这个(S,G)剪枝报文的接口;于是,数据报文在数据源端的DR就被过滤掉。
PIM-SM中还涉及到根节点RP的选择机制。PIM-SM域内配置了一个或多个侯选自举设备(Candidate-BSR),应用一定的规则从中选出自举设备(BSR)。PIM-SM域中还配置了候选RP设备(Candidate-RP),这些候选RP将包含了它们的地址及可以服务的组播组等信息的数据报文单播至BSR设备。BSR定期生成包括一系列候选RP以及相应的组地址的”自举”消息。”自举”消息在整个域中逐跳发送。设备接收并保存这些“自举”消息。若接收端DR从直连主机收到了某组的成员关系报告后,如果它没有这个组的路由项,接收端DR将使用一个hash算法将组地址映射至一个可以为该组服务的候选RP。然后接收端DR将向RP方向逐跳组播”加入/剪枝”消息。若数据源端DR从直连主机收到组播数据包,如果它没有这个组的路由项,数据源端DR将使用hash算法将组地址映射至一个可以为该组服务的候选RP。然后数据源端DR将组播数据封装在注册消息中单播到RP。
PIM-SM与基于“扩散/剪枝”模型的PIM-DM根本差别在于PIM-SM是基于显式加入模型,即接收者向RP发送加入消息,而设备只在已加入某个组播组输出接口上转发那个组播组的数据包。PIM-SM采用共享树进行组播数据包转发。每一个组有一个汇合点(Rendezvous Point: RP),组播源沿最短路径向RP发送数据,再由RP 沿最短路径将数据发送到各个接收端。这一点类似于CBT,但PIM-SM不使用核的概念。PIM-SM主要优势之一是它不局限于通过共享树接收组播信息,还提供从共享树向SPT转换的机制。尽管从共享树向SPT转换减少了网络延迟以及在RP上可能出现的阻塞,但这种转换耗费了相当的设备资源,所以它适用于有多对组播数据源和网络组数目较少的环境。
PIM-SM使用共享树和SPT来分发组播帧。此时,假设其他设备都不想收到这些组播,除非有明确的加入声明。当一个主机加入了一个组,与该主机相连的设备就要用PIM加入消息通知根,即RP。这一加入消息通过设备依次传递,建立了一个共享树的结构。于是,RP记录这一传递路径,同时也记录从发送组播源的第一跳设备(DR)发来的注册消息,根据这两个信息,完善共享树。枝叶信息的更新是通过定期的查询信息实现。在使用共享树时,组播源首先发送组播到RP,这样才能保证所有的接收者能收到。用*.G来表示一棵树。* 表示所有的源,G表示特定的组播地址。剪除信息在共享树中也被使用,即枝叶希望不再接收到组播帧时发送。
PIMv2 BSR是一种分发group-to-RP消息到所有设备的方法。它消除了为每个设备设置RP的需要。BSR使用hop-by-hop扩散BSR消息来分发映射信息。首先,BSR是从设备中选举出来的。选举方法类似于STP中选举root-bridge的过程,使用一个优先级值,每个BSR设备检查BSR消息,并只转发优先级比它自己高的或相等(IP地址比它高)的BSR消息。被选中的BSR发送BSR消息到all-PIM-routers multicast group (224.0.0.13) ,TTL为1。邻居的PIMv2设备收到后,再将它组播出来,并再设置TTL为1。这样,BSR消息一跳一跳地被所有设备收到。由于消息中包括BSR的IP地址,所以侯选的BSR能通过该消息获知哪个设备为当前的BSR。侯选RP发送候选的RP公告以宣称在哪些地址范围内他们可以成为RP,BSR将它们保存在自己的本地候选RP缓存中,BSR定期将本地候选RP发送,以通知所有的PIM设备。这些消息同样一跳一跳地到达各设备。