




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
组播(Multicast)一、 组播简介随着Internet 网络的不断发展,一方面网络中交互的各种数据、语音和视频信息越来越多,另外新兴的电子商务、网上会议、网上拍卖、视频点播、远程教学等服务逐渐兴起。这些服务对信息安全性、有偿性、网络带宽提出了要求。如何更好的实现资源发现和点对多点的IP 传输成为现代网络应用的焦点。组播技术做为一种有效的IP 传输解决方案在很多方面逐渐显示出其特有的优势,采用IP 组播技术的新应用不断的涌现出来1. 单播方式传输信息采用单播(Unicast)方式时,系统为每个需求该信息的用户单独建立一条数据传送通路,并为该用户发送一份独立的拷贝信息2. 广播方式传输信息3. 组播方式传输信息IP 组播(Multicast)技术的出现及时解决了这个问题。当网络中的某些用户需求特定信息时,组播信息发送者(即组播源)仅发送一次信息,借助组播路由协议为组播数据包建立树型路由,被传递的信息在尽可能远的分叉路口才开始复制和分发.相比单播来说,不论接收者有多少,相同的组播数据流在每一条链路上最多仅有一份。使用组播方式传递信息,用户的增加不会显著增加网络的负载。相比广播来说,组播数据流仅会流到有接收者的地方,不会造成网络资源的浪费。在组播方式中,信息的发送者称为“组播源”,如图8-3中Source。接收相同信息的接收者,如图8-3中Receiver,构成一个组播组,并且每个接收者都是“组播组成员”,提供组播功能的路由器称为“组播路由器”.4. 组播的优点和应用12344.1 组播的优点组播的优势主要在于:l 提高效率:降低网络流量,减轻服务器和CPU 负荷l 优化性能:减少冗余流量l 分布式应用:使多点应用成为可能4.2 组播的应用组播技术有效地解决了单点发送多点接收的问题,实现了IP 网络中点到多点的高效数据传送,能够大量节约网络带宽、降低网络负载。利用网络的组播特性可以方便地提供一些新的增值业务,包括在线直播、网络电视、远程教育、远程医疗、网络电台、实时视/音频会议等互联网的信息服务领域。组播的应用主要体现在以下几方面:l 多媒体、流媒体的应用l 培训、联合作业场合的通信l 数据仓库、金融应用(股票)等l 任何“点到多点”的数据发布应用二、 组播模型分类根据IP 组播中源和目的的不同,可以分为三种模型,分别是:l ASM(Any-Source Multicast)l SFM(Source-Filtered Multicast)l SSM(Source-Specific Multicast)1. ASM 模型简单地说,ASM 模型就是任意源组播模型。在该模型中,任意发送者都可以成为组播源,众多接收者通过加入由组播组地址标识的主机组,从而获得组播信息。在ASM模型中,接收者无法预先知道组播源的位置,接收者可以在任意时间加入或离开该主机组。2. SFM 模型SFM 模型是ASM 模型的一个变种,有相似之处,同时在功能上进行了扩展。在SFM模型中,上层软件能要求数据从指定组播源发送,或从除指定组播源之外的主机发送。从发送者角度来看,组播组成员相同;但是从接收者角度来看,组播源被明确指定。应该说,SFM 模型是ASM 模型的一个源指定特例。3. SSM 模型在现实生活中,用户可能仅对指定源信息感兴趣,而对其它源信息都不感兴趣;或对除指定源外的所有信息都感兴趣,这就涉及到如何为用户提供能区分信息源的传输服务。针对这种需求,SSM模型应运而生。SSM 模型和ASM 模型完全不同,根本区别是接收者已经通过其他手段预先知道了组播源的具体位置,因此SSM 可以直接在组播源和接收者之间建立SPT(ShortestPath Tree),而不是像ASM 那样先建立RPT(Rendezvous Point-rooted Tree)而后再根据需要转换到SPT。此外,SSM 模型使用了和ASM 不同的组播地址范围。三、 组播的框架结构1. 组播机制构成IP 组播属于一种端到端服务,按照协议层从下往上划分,组播机制包括寻址机制、主机注册、组播路由、组播应用四个部分。l 寻址机制:借助组播地址,实现信息从组播源发送到一组接收者。l 主机注册:允许主机动态加入和离开某组播组,实现组播成员管理。l 组播路由:构建报文分发树进行组播路由,从组播源传输报文到接收者。l 组播应用:组播源必须支持视频会议等组播应用软件,TCP/IP 协议栈必须支持组播信息的发送和接收。2. 组播地址122.1 IP 组播地址根据IANA(Internet Assigned Numbers Authority)规定,IP 地址空间分为五类,即A 类、B 类、C 类、D 类和E 类。单播报文按照网络规模大小分别使用ABC 三类IP 地址,组播报文的目的地址使用D 类IP 地址,D 类地址不能出现在IP 报文的源IP 地址字段,E 类地址保留在今后使用。单播数据传输过程中,一个数据包传输的路径是从源地址路由到目的地址,利用“逐跳”(hop-by-hop)的原理在IP 网络中传输。然而在IP 组播环境中,数据包的目的地址不是一个,而是一组,形成组地址。所有的信息接收者都加入到一个组内,并且一旦加入之后,流向该组地址的数据立即开始向接收者传输,组中的所有成员都能接收到数据包,这个组就是“组播组”。组播组中的成员是动态的,主机可以在任何时刻加入和离开组播组。组播组可以是永久的也可以是临时的。由IANA 分配组播地址的组播组称为永久组播组,即保留组播组。永久组播组的IP 地址保持不变,组中的成员构成可以发生变化。永久组播组中成员的数量可以是任意的,甚至可以为零。那些没有保留下来供永久组播组使用的IP 组播地址,可以被临时组播组利用。D 类组播地址范围是从224.0.0.0 到239.255.255.255 2.2 以太网组播MAC 地址以太网传输单播IP 报文的时候,目的MAC 地址使用的是接收者的MAC 地址。但是在传输组播报文时,传输目的不再是一个具体的接收者,而是一个成员不确定的组,所以使用的是组播MAC 地址.IANA 规定,组播MAC 地址的高25bit 为0x01005e,MAC 地址的低23bit 为组播IP地址的低23bit,映射关系如图8-5所示。由于IP 组播地址的前4bit 是1110,代表组播标识,而后28bit 中只有23bit 被映射到MAC 地址,这样IP 地址中就有5bit 信息丢失,直接的结果是出现了32 个IP 组播地址映射到同一MAC 地址上。3. 组播协议IP 组播协议主要有用于主机注册的组播组管理协议,和用于组播选路转发的组播路由协议。和组播相关的协议在网络中的应用位置如图8-6所示。33.1 组播组管理协议在接收者主机和组播路由器之间通常采用组播组管理协议IGMP(Internet Group Management Protocol),该协议定义了主机与路由器之间建立和维护组播成员关系的机制。IGMP 目前包含三个版本,分别是v1、v2 和v3,而且新版本完全兼容旧版本。其中,IGMPv1 和v2 适用于ASM 模型,而SSM 模型必须要得到IGMPv3 的支持3.2 组播路由协议组播路由器之间运行组播路由协议,组播路由协议用于建立和维护组播路由,并正确、高效地转发组播数据包。组播路由建立了一个从数据源端到多个接收端的无环数据传输路径,即构建分发树结构。对于ASM 模型,可以按照单播路由一样将组播路由也分为域内和域间两大类。域内组播路由目前已经相当成熟,在众多的域内路由协议中,PIM(Protocol IndependentMulticast)是目前应用最多的协议,通过发现组播源并构建组播分发树,将信息传递到接收者。按照接收者紧密程度,PIM 分为密集模型、稀疏模型两种。PIM 可以和任何单播路由协议协同工作。在ASM 模型中,域间路由的首要问题是路由信息如何在自治系统AS(Autonomous System)之间传递。由于不同自治系统可能属于不同的运营商,因此需要一种机制能发现其他域内的组播源,这就需要域间路由协议MSDP(Multicast Source Discovery Protocol)和 MPBGP (MultiProtocol Border Gateway Protocol)的组播扩展MBGP (Multicast BGP)。对于SSM 模型,没有域内和域间的划分,由于接收者预先知道组播源的具体位置,因此只需要借助稀疏PIM 构建的通道即可实现组播信息传输。四、 组播分布树(SPT & RPT)1. 有源树(SPT Source Path Tree)有源树的根是组播信息流的来源,有源树的分支形成了通过网络到达接收点的分布树。有源树是从源到接收者最短路径所形成的通路。 有源树(SPT):推送(push)方式转发组播消息;剪枝,嫁接是减少、增加组成员关系的重要方式。共享树选择网络中一些可用的点(router)作为公用的根,常被称为汇合点(RP);组播信息由源发往接收者过程是由组播源先发送组播数据经SPT到RP注册,之后RP再将组播数据流经RPT发送到各个接收者。共享树(RPT):要选举RP。源主机为了使组播信息到达所有的接收站点必须向根发送信息。2. 逆向路径转发(RPF reverse path forwarding)n RPF作用: 确定正确的上游,防止环路n 时机: 收到上游转发来的组播数据报文并且转发之前(UDP组播地址)n 检查过程:1) 路由器在单播路由表中查找组播源(信源树)或 RP(共享树) 对应的 RPF 接口(单播路由表中保存的向源或RP地址方向的出接口)2) 如果组播报文是从 RPF 接口接收下来的则 RPF 检查通过报文向下游接口转发3) 否则丢弃该报文五、 IGMP(Internet Group Management Protocol)互联网组管理协议,用来在IP主机和与其直连的组播路由器之间建立、维护组播组关系成员关系。协议号2关联的RFC:a) b) c) 1 主机加入、查询、离开初始时,路由器周期性(默认秒)发送224.0.0.1的查询消息给所在网段的主机查询接收主机;如果主机有组播接收需求,也可以主动发送加入消息(report)。IGMP V2工作原理a) 查询器的选举:对每个所连的共享网路,组播路由器可能为:查询器和非查询器。刚开始所有路由器都认为自己是查询器并且发送查询消息(通用查询),路由器较低IP地址接口对应的路由器变为查询器。若路由器在查询器存在间隔内未收到较低IP地址的路由器发来的查询消息,则恢复成查询器。b) 查询响应过程 (i)普遍组成员关系查询 (ii)主机响应普遍查询消息 (iii)主机报告抑制机制 (iiii)路由器响应报告消息 (iiiii)查询-响应调整c) 加入组过程 当主机要加入一个组播组时,它不会等待查询消息,而是立即发送一个该组的主动报告消息,为防止最初的组报告消息丢失或者损坏,通常会以短时间间隔Multicast:主动报告间隔重复地将此最初的消息发送2-3次。根据健壮性系数决定次数。d) 离开组过程 (i)主机发送离开组消息 当组中存在多个主机时,最后一次回答查询消息的主机才会主动发送该消息。目的地址为224.0.0.2。若不是最后一次回答查询消息的主机,他什么消息都不会发送,因为它知道该组中还有其他成员。 此处的实现为:该组中任何一主机离开时都发送离开消息,路由器针对离开消息作一个特定组查询。打个比方:一间教室有很多人,一个人离开就会说我要离开,老师就问有人的话请回答,直到问了半天没反应,于是锁门走人。这个就是我们设备的离开处理机制 (ii)路由器发送特定组查询消息 当查询器在几口上收到离开组消息时,它就每隔Multicast:最后成员查询间隔时间发送一次特定组查询消息,共发送Multicast:最后成员查询计数次特定组查询消息.特定组查询消息将最大响应时间设为Multicast:最后成员查询间隔.在此期间忽略任何查询器到非查询器的过度,由相同的路由器来发送特定组查询消息. 如果第一次特定查询消息收到了响应,则不在发送特定组查询非查询器忽略离开组消息。当非查询器收到特定组的查询消息时,若它的已存在的组成员定时器大于(最后成员查询计数)*(最大响应时间)则就将它的组成员定时器设为这个新值。若查询器收到离开组消息并且它没有这个组的成员关系信息时,忽略此消息。 (iii)主机处理特定组查询消息 当主机收到特定组的查询消息时,它将延迟定时器置为一个范围(0,最大响应时间)的随机数。当一个组的定时器超时,主机就向此组以组播方式发送IGMPv2的组报告消息,其中ttl被置为1. 若此组已有一个定时器在运行了,则它只有当所需要的最大响应时间小于此已有定时器剩余时间时,此定时器才需要被重置。 (iiii)特定组查询超时 如果响应时间超时时,还未收到响应,则路由器就认为此组在本网络上没有这个组的成员。IGMPv2与IGMPv1路由器的兼容 3.1 IGMPv2对IGMPv1所作的改进主要有以下几个方面 a)查询器选举机制 IGMPv1中,当某共享网段上存在多个组播路由器时,查询器的选择由组播路由协议决定。 IGMPv2中,使用独立的查询器选举机制,规定该网段上IP地址最小的组播路由器位查询器。 b)离开组机制 v1中,主机悄然离开组播组,不会向任何组播路由器发出任何通知。这时组播路由器只能依靠普遍组查询消息响应超时来获知组播组成员的离开 v2中,当某主机决定离开组播组G1时,它会向该网段以组播方式发送IGMP leave报文,该报文的目的地址为224.0.0.2,保温中携带组播组G1的地址。随后,为了明确网段中是否还包含组播组G1的其他成员主机,查询器会向网络中发送指定次数的特定组查询消息。 c)对指定组的查询 v1中,有组播路由器发起的普遍组查询面向该网段下的所有组播组 v2中,增加了针对特定组的查询。IGMP查询器在受到主机发送的离开组播组G1的leave报文时,将向该网段中发送针对G1的查询报文。该报文的目的地址位组播组G1的地址。 d)最大响应时间 v2中设置了最大响应时间,以限制查询器等待主机响应组查询报文的最长时间。3.2兼容性考虑a)V2的主机与v1查询器的兼容 V1发送的普通查询消息中最大响应时间置为0,必须被解释为100(10秒) v1路由器将等待版本1的组播组报告消息作为对查询的响应,对v2的组播组报告消息不予理会,(因此V2主机在接口上必须保存一个状态变量以表示在此接口上的查询路由器时V1的还是V2的,此变量的值应该根据在最近Multicast:v1路由器存在超时时间内是否受到v1的查询消息来决定,而不是根据上一个收到的查询消息的类型而决定。这个变量用来决定在发送未请求的成员报告和发送响应查询消息的成员报告时应使用什么样的类型)在一个查询器为V1路由器的网络上,V2主机要禁止发送离开消息。 b)v2路由器与v1路由器的兼容如果在网络上有v1路由器,则查询器就必须使用v1。需要配置来完成。在v1模式下,路由器必须周期地发送最大响应时间为0的查询消息,且必须忽略离开组消息。 c)v2主机与v1主机的兼容主机必须允许其成员关系报告(Group Membership Report)被其它主机发送的成员关系报告所抑制(与版本无关,这样v2的主机只要发现网络上有其正要发送的组的报告(0x12和0x16)就会抑制报告的发送)。d)v2路由器与v1主机兼容当Router收到一个IGMPv1 的成员关系报告之后,它必须设置一个定时器(这个值Group Membership Interval相同)来表示通过这个报告消息知道这个网络上有这样一台主机,它是报告中所告诉的组的成员,并且它运行的是IGMPv1。也就是说Router必须知道这个网络上是否有IGMPv1的主机存在如果一个组G的成员主机运行的是IGMPv1,那么所连接的路由器将会忽略收到的这个组的Leave Message。相关定时器Query Interval Multicast:125s :发送通用查询(General Query)的周期。 Query Response Interval Multicast:100 = 10s :响应查询消息之前的延迟时间。在这个延迟时间里监听到网络上已经有这个组的报告消息发送的时候,就抑制报告消息的发送。必须要小于Query Interval。这个时间可以理解为收到通用查询请求之后延迟发送报告的时间。 Group Membership Interval Multicast:Query Response Interval + Robustness Variable* Query Interval :如果路由器在这段时间内没有收到查询响应,那么将会认为在这个子网上没有组的成员,就不会往这个网络上转发这个组的组播数据。 The Other Querier Interval Multicast:1/2 *Query Response Interval + Robustness Variable* Query Interval如果该定时器超时,那么多播路由器将会认为没有与它相连的可以作为Querier的多播路由器存在。之后将会从Non-Querier重新转换到Querier的角色。 Startup Query Interval Multicast:1/4 Query Interval :可以认为是路由器启动时发送多次通用查询的一段时间 Startup Query Count Multicast:Robustness Variable: Startup Query Interval的次数。 Last Member Query Interval Multicast:10 = 1s :为了响应Leave Group Message而发出Group-Specific Query询问这个组在这个接口上是否还有成员的间隔时间,总共会发送Last Member Query Count次,如果在Group Membership Interval这段时间没有收到报告消息则认为这网络上没有组成员。 Last Member Query Count Multicast:Robustness Variable:上边的情况中发送的Group-Specific Query的次数。 Unsolicited Report Interval Multicast:10s:主机以这个定时器时间为周期,每个周期内重复发送一到两次(为了防止消息丢失或被破坏)报告消息,告诉网络上其他节点它向加入的组。2 QR选举在有多个路由器(IGMP query router)的共享链路上,需要选举一个唯一的General Query Router来定期查询接收主机。六、 PIMn PIM(Protocol Independent Multicast)称为协议无关组播,表示为IP组播提供路由的单播路由协议可以是静态路由、RIP、OSPF、IS-IS、BGP等,组播路由和单播路由协议无关,只要单播路由协议能产生路由表项即可。 n 协议号:103n PIM路由器组播地址为:224.0.0.13n PIM协议分为: PIM-DM(协议无关组播-密集模式) PIM-SM(协议无关组播-稀疏模式)12345634561. 协议无关组播密集模式(PIM-DM)6.1.1 协议简介PIM描述的是路由器之间的多播数据转发关系.PIM-DM采用扩散(push)剪枝的方式进行组播数据包的转发,组播源开始发送数据时,沿路路由器向朝着源的RPF接口之外的所有接口(启用pim的组播接口)转发组播数据包,这样PIM-DM域中所有网络节点都会收到这些组播数据包,为了完成组播转发沿路的路由器需要为组G和它的源S创建响应的组播路由项(S.G),(S.G)路由项包括组播源地址,组播组地址,入接口,出接口列表,定时器和标志等。l PIM-DM采用剪枝的方式来控制那些不需要组播数据包的区域。l 如果网络中某区域没有组播成员,PIM-DM协议会发送剪枝消息,将通往该区域的转发接口剪枝,并且建立剪枝状态,剪枝状态对应着超时定时器,当定时器超时时,剪枝状态又重新变为转发状态,当剪枝区域内出现组播组成员,为了减少时间,主动向上游发送嫁接报文以变成转发状态。6.1.2 PIM邻居发现由于PIM-DM是根据单播路由信息将组播数据泛洪到所有组播路由器的组播路由协议,因此PIM路由器需要周期性的发送hello消息,用以发现邻接的PIM路由器。PIM路由器周期性的发送hello消息(周期为1到hello周期之间的随机值,hello周期缺省为30秒)用以发现邻接的PIM路由器。发送地址224.0.0.13 消息中的holdtime字段之指示了本路由器的有效时间当路由器收到Hello消息的时候,将会保存发送者,接收的接口,以及所有已知的选项。如果在Hold Time期间收到一条新的Hello 消息之后将会用收到的消息中的Hold Time来更新Neighbor Liveness Timer(缺省值105秒);再经过(hello保持时间)仍未收到邻居的hello消息则删除此邻居项。6.1.3 剪枝和剪枝否决当路由器创建带空出接口列表的(S.G)项,或当出接口列表变为空时,向上游发送一个剪枝。剪枝消息以数据路组播方式发送,其中IP地址设为所有PIM路由器的组地址224.0.0.13。剪枝消息发送后,上游路由器将设置一个剪枝延迟定时器(缺省3秒)来等待局域网内其他路由器是否仍希望接受消息而发送的加入消息,如果在定时器超时前收到加入消息,上游路由器将撤销删除请求。6.1.4 断言机制(assert)如果路由器在一个多路访问局域网的出接口收到组播数据包,那么这个包肯定是重复的,它就要发送目的地址为224.0.0.13的断言消息,来选举局域网上唯一的转发者,消息中包含源地址,组地址,metric-preference,metric。比较的顺序依次为metricpreference (选小的)、metric(选小的)、IP地址(选高的)。断言胜利者要发送带有自己路由协议度量优先级和度量的断言消息,以便其他路由器知道断言选举的胜利者。6.1.5 定时器定时器名称 功能 设置条件 初始值 重置值 重置条件 停止条件 超时处理 路由项定时器 维持(S.G)路由向有效时间 路由项创建时设置 缺省210秒 数据超时 组播数据达到 无 删除(S.G)路由项 剪枝状态定时器 维护接口的剪枝状态 接口设为剪枝状态时设置 缺省210秒 剪枝消息中的保持时间 收到剪枝消息 无 接口转为转发状态 剪枝延迟定时器 路由器剪枝一个接口前需要延时 剪枝多路访问网络的出接口设置 缺省3秒 无 无 收到下游路由器的加入消息 接口处于剪枝状态 随机延迟加定时器 路由器发送JOIN消息时需要延时 发送一个延时加入小心时设置 04.5之间随机值 无 无 收到下游路由器加入消息 发送加入消息 断言定时器 用于断言超时 多路访问网络上发生断言 缺省180秒 断言超时 收到新的断言消息 无 RPF接口转为单播路由表维护的RPF接口 嫁接定时器 发送嫁接消息没有应答,需要重传 向上游发送嫁接消息时 3秒 3秒 定时器超时 收到上游路由器的嫁接消息 重新发送嫁接消息 hello定时器 周期性发送hello消息 当接口运行PIM-DM协议设置 0hello周期之间随机值 缺省30秒 定时器超时 无 从各个接口发送hello消息 邻居定时器 每个邻居路由器的有效时间 当收到新邻居的hello消息时设置 缺省105秒 缺省105秒 收到这个邻居的hello消息 无 把邻居路由器从邻居路由器列表中删除 2. 协议无关组播稀疏模式(PIM-SM)6.2.1 协议简介SM模式区别于DM模式在数据发送者和接收者之间通过洪泛-剪枝的方式。 SM基于汇聚点(RP)进行展开;第一步是建立以汇聚点RP(Rendezvous Point)为中心的,由SPT和RPT共同组成的转发树。第二步是向数据接收者和发送者之间直接建立的SPT树的切换(具体是否进行SPT树的转换要视具体阀值而定)。6.2.2 名词解释DR:指定路由器(Designated Forwarder),当在共享链路(多路访问网络)中,选举DR作为IGMP查询报文的唯一发起路由器,对共享链路内的主机进行组播接收者查询;另外负责向上游PIM路由器发送(*.G)join报文,IP地址最高的路由器成为DR.RP:汇聚点(Rendezvous Point),应用在SM模式中,作为源发送者和接收者的中转站(中介);组播数据流向RP注册后经SPT流向RP,RP再把组播数据流转发给RPT(如果已经建立好)下游的接收者。C-RP:候选RP(candidate-RP),在SM域中的一个或多个PIM路由器上指定C-RP地址(域内须指定至少一个C-RP)用于RP的选举。C-RP信息会被PIM-SM路由器发送到BSR(如果选举出来)用于RP选举. BSR:自举路由器(Bootstrap Router),在SM模式中,用来收集c-rp的信息,选举RP,汇总RP-set信息向SM域内所有PIM路由器进行扩散。C-BSR: 候选BSR(candidate-BSR),SM域内必须存在唯一的引导路由器BSR,BSR负责收集并发布RP信息;C-BSR即是用于候选的C-BSR。一台路由器上只能配置一个接口为C-BSR。SPT:最短路径树(Shortest Path Tree),指由源产生,到接收者在特定路由协议下没有迂回的一个最短路径;RPT:共享树(Rendezvous Point Tree)指来自不同源地址,但目的地址相同的组播报文,在网络中使用同一个分发树转发。这样一个共享树的树根被称为汇聚点(RP)或者核心(Core),相应的树称为RPT或CBT。6.2.3 DR的选举借助Hello报文还可以为共享网络(如Ethernet)选举DR,DR将作为该共享网络中组播数据的唯一转发者。无论是与组播源相连的网络,还是与接收者相连的网络,都需要选举DR。接收者侧的DR负责向RP发送加入报文;组播源侧的DR负责向RP发送注册报文。说明:l 各路由器之间通过比较Hello报文中所携带的优先级和IP地址,可以为多路由器网段选举DR。选举出的DR对于PIM-SM有实际的意义;而对于PIM-DM来说,其本身其实并不需要DR,但如果PIM-DM域中的共享网络上运行了IGMPv1,则需要选举出DR来充当共享网络上的IGMPv1查询器。l 在充当接收者侧DR的设备上必须使能IGMP,否则连接在该DR上的接收者将不能通过该DR加入组播组。如图1-3所示,DR的选举过程如下:(1) 共享网络上的各路由器相互之间发送Hello报文(携带有竞选DR优先级的参数),拥有最高优先级的路由器将成为DR;(风云默认优先级为1)(2) 如果优先级相同,或者网络中至少有一台路由器不支持在Hello报文中携带竞选DR优先级的参数,则根据各路由器的IP地址大小来竞选DR,IP地址最大的路由器将成为DR。当DR出现故障时,其余路由器在超时后仍没有收到来自DR的Hello报文,则会触发新的DR选举过程。 6.2.4 PIM-SM工作原理第一步是建立以汇聚点RP为中心SPT和RPT共同组成的转发树。这一步可分为两部分来实现:1. 源一侧DR到RP的SPT转发树建立; 下图 蓝色框内的关系。2. 接收者侧DR到RP的RPT转发树建立; 下图 绿色框内关系。6.2.5 SPT树的建立(源主机注册,停止注册,组播数据发送)1. 源主机注册当组播源路由器发现有组播数据需要转发时,它会将每个组播数据包封装在注册报文中,并以单播的形式发送到和这个组对应的RP上,这就是注册过程。RP接收到注册报文后,会将其中的组播数据提取出来,然后按照RPT转发树将组播数据逐跳转发到接收者。当RP接收到注册报文后,便明确了组播源的地址S(根据单播注册报文的源地址来确定),此时RP会向S发送一个(S,G)的加入报文Join(S,G)。这个加入报文逐跳的靠近组播源S,沿途经过的路由器上都会创建一个(S,G)的表项。当报文最终到达组播源S的DR路由器时,从RP到S之间就会建立好一个(S,G)的组播转发树。由于该Join(S,G)报文是按照单播路由向一个IP地址来发送的,因此从RP到组播源S的这个组播转发树是在单播路由概念上最近的路径,也就是一个SPT(Shortest Path Tree)的转发树。组播源S的DR路由器会利用该SPT转发树转发组播报文,这样组播数据就会以组播报文的形式到达RP路由器。2. 停止注册在RP开始接收组播数据之前,RP还是会以单播注册报文的形式收到数据,而当RP接收到来自组播源S的组播数据时,它会丢弃注册报文,并同时向S发送注册停止报文(Register-Stop),即告知对方:不要再封装注册报文了,请直接组播发送。当组播源S的DR路由器接收到注册停止报文后,便不再封装注册报文,仅以组播转发树来转发数据。3. 组播数据发送 在完成了源主机注册和停止注册之后,来自源S的组播数据报文就开始沿1中建立的SPT路径转发到RP上了。4. 空注册报文组播源的DR路由器开始以组播方式转发数据的同时会启动一个称为注册抑制的定时器。在该定时器内,路由器都会以组播方式转发报文,而不去封装注册报文。在该定时器超时前,路由器会以一定的时间间隔发送若干个空注册报文,该报文中不含有任何组播数据,其作用仅仅是“提醒”RP:该发送注册停止报文了,否则这里会重新封装注册报文。接收到空注册报文的RP路由器会发送注册停止报文,同时更新本地的(S,G)表项。而组播源DR在收到注册停止报文后会更新注册抑制定时器,继续以组播的方式转发组播数据。6.2.6 RPT树的建立先来从宏观上看看PIM SM的转发方式。总的来说,PIM SM中转发树的建立是以RP为中心,组播源向RP发送数据,并由RP通过RPT转发树向接收者转发组播数据(如上图所示)RP汇聚的是组播接收者的加入/剪枝请求和组播源的组播数据。在接收者和RP之间建立的转发树被称为RPT转发树。具体来讲,当某个网段的DR路由器通过IGMP协议发现该网段上有组播接收者时,就会向RP发送一个(*,G)的加入报文Join(*,G),表明本地需要接收来自任何组播源的,发往组播组G的组播数据。该加入报文经过逐跳转发达到RP路由器上,在转发路径上所经过的所有路由器都会建立一个(*,G)表项,这样就在RP和接收者之间建立了一个RPT的转发树,发送到这个G组的来自于任何组播源的数据在到达RP后,都会经过这条转发树到达接收者的位置,因此这个转发树也叫做共享树.RPT树上的(*,G)表项通过DR路由器周期性发送的Join(*,G)报文来维持。当不再有组播接收者时,DR路由器会向RP发送(*,G)剪枝报文Prune(*,G),路径上的路由器会按照前述建立(*,G)表项的次序依次删除(*,G)表项,直到RP路由器,此时整个RPT树就会被删除。6.2.7 BSR的选举上述RPT树的建立基于一个核心就是RP;而RP的选举又是依靠SM域内的BSR(自举路由器)来实现的。自举路由器BSR(Bootstrap Router)所起的作用是向网络中的路由器来传播RP路由器的位置和具体信息。BSR和RP路由器由网络管理员来预配置,可以配置一个或多个,起到负载分担或备份的作用。初始预配置并不是最终被使用的BSR和RP路由器(RP,BSR都有选举的过程),需要进行一定的选举过程才能最终确认,因此此时被配置的路由器分别被称为C-BSR(Candidate-BSR)和C-RP(Candidate-RP)。1、 BSR的选举过程每个C-BSR路由器在配置时都会将本路由器的某个IP地址配置为C-BSR,并同时被配置一个优先级。在配置生效后立刻在网络中以组播的方式发送自举报文(Bootstrap),通知其他路由器自己作为C-BSR路由器的存在,并携带有自己的优先级,如图2所示。所有的PIM SM路由器都会收到C-BSR发送的自举报文,如果自己本身就是C-BSR且优先级低于收到报文的优先级,该路由器会抑制自己不再发送自举报文;如果自己的优先级高于收到报文的C-BSR优先级,则继续发送自举报文。一段时间后,网络中只有优先级最高的C-BSR路由器继续发送自举报文,此时这台路由器就真正成为了BSR路由器。其他的PIM SM路由器(当然也包括C-BSR)不断的接收这台BSR发送的自举报文,刷新状态,以防止超时老化。BSR的选举是通过PIM的boostrap报文(也称作自举报文)协商选举的,报文携带了BSR的优先级和BSR地址信息。选举原则是在C-BSR内选举出weight(优先级+IP地址组成)数值最大的为Elected BSR。2、 自举报文的接收和发送1、自举报文接收,需要根据携带的BSR地址做RPF检查。检查通过后才会处理。2、BSR报文的发送方向是向PIM邻居扩散(不包括接收BSR报文的端口)。通常采取组播方式,目的地址为224.1.1.13,TTL设置为1。当一个共享环境有新PIM邻居时,也会采用单播的方式发送。通过上面的机制,可以保证了在一个PIM域内始终只有一个经过选举的优先级最高的C-BSR成为Elected BSR,并且为全PIM域的设备所。通过上面的机制,可以保证了在一个PIM域内始终只有一个经过选举的优先级最高的C-BSR成为Elected BSR,并且为全PIM域的设备所知。6.2.8 RP的选举RP的作用是使源和接收者都能知道每一个组播组唯一对应的汇聚点.这就需要一种方法将被设置RP的设备地址以及承担组播组范围的信息通告全PIM域。其中被设置RP信息的称为候选RP(C-RP)。扩散过程为各个设置C-RP的设备单播方式将自己的信息发送给Elected BSR,然后再由BSR机制扩散到全网。同C-BSR 一样, C-RP在配置的时候,也是将本地路由器的某个IP地址配置为C-RP,将来这个地址就作为RP来接收注册报文、加入/剪枝报文并建立转发树。C-RP的设置可以设置多个并分散在PIM域的任何设备上,也可以是集中在一台PIM设备上,而且C-RP部署与BSR部署没有关联。在配置C-RP的同时,也可以配置一个组播组范围,这个范围表示:本C-RP只负责接收和转发这个组播组范围内的数据。假设此时BSR路由器已经选举完毕,也就是说,在每个配置的C-RP路由器上都知道了BSR的存在,那么C-RP就会向BSR路由器(实际上是一个单播可达的IP地址)周期性的单播发送一个C-RP通告报文。报文的内容大体包含自己本地的C-RP的地址(可以有多个),每个地址所服务的组播组范围以及C-RP的优先级等。C-RP通告过程如图3所示。1、 C-RP信息的组成C-RP的信息包括被设置C-RP的设备地址信息、需要承载组播组的范围信息(组播IP与掩码长度)、承载优先级信息。2、 C-RP的发送和RP-set的生成C-RP的设备会以C-RP发布周期(C-RP-Adv-Period 默认为60秒)向Elected BSR单播发送C-RP消息。接收设备只有Elected BSR会处理接收C-RP,如果不是Elected BSR,C-RP报文会被丢弃。ElectedBSR会检查RP信息是否在设置的组播组服务的范围内等信息,通过后会为每个C-RP包含的组播组启动RP保持定时器(RP-Holdtime 默认150秒),每次收到C-RP消息后刷新RP保持定时器。如果RP保持定时器超时,Elected BSR将删除此RP信息,不再向外扩散此信息。BSR收集到各个C-RP的信息后,组合成为RP-set。然后将信息封装到自举报文内向各自的PIM邻居扩散此消息,保证全PIM域内的RP信息是相同的。这样,每个特定的组播组在不同的设备上可以得到相同的RP地址。每个组播组都会对应相同的RPl Hash的公式Value(G,Ci,M) =(1103515245 (1103515245 (G&M)+12345) XOR Ci)+ 12345) mod (2的31次方)其中G:为组地址 M:为设备BSR的Hash掩码长度 Ci:为RP的IP地址l 计算规则1. 如果需要计算G的RP,第一步是查找RP集,找到RP列表中对应组播映射关系最长匹配的RP地址。(RFC46014.7.1与RFC2362有区别,RFC2362只需要可以覆盖组播组即可)。2. 如果存在多个RP,则比较RP的优先级。选择优先级最高(优先级数值小)的进行hash计算。3. 如果存在相同优先级的RP,则每个相同优先级的RP都进行一次Hash计算。选择Value最大的为组G的RP。4. 如果计算的结果相同,则选择IP大的为组G的RP。由于全网的C-RP集的信息一致,计算公式一致。所以可以保证每个设备
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购买液压拖车合同范本
- 帮带宠物出境合同范本
- 合伙开火锅店合作协议书2篇
- 高压注水泵房配电设备维修技术协议3篇
- 考勤工作心得体会怎么写(范文10篇)
- 指导性案例的题目及答案
- 八月一日讲话参考
- 旅游行业活动策划攻略
- 2025年事业单位工勤技能考试考试题库及参考答案
- CN222980410U 一种静簧与线圈架装配结构及拍合式继电器 (四川宏发电声有限公司)
- 2025年威海桃威铁路有限公司招聘笔试参考题库含答案解析
- 妊娠期高血压疾病的观察及护理
- 医院DIP支付方式改革工作实施方案
- 完成筹备申请正式设立高等职业学校的审批办理流程
- 手足显微外科护理常规
- 《开关培训》课件
- 俄乌冲突课件初中生
- 【初中英语】15天背完英语3500词
- 2024上海中考考纲单词
- 《激光原理及应用》全套课件
- 成人高考成考大学语文(专升本)试题及答案指导(2025年)
评论
0/150
提交评论