组播介绍(V1,V2,V3,IGMP).docx_第1页
组播介绍(V1,V2,V3,IGMP).docx_第2页
组播介绍(V1,V2,V3,IGMP).docx_第3页
组播介绍(V1,V2,V3,IGMP).docx_第4页
组播介绍(V1,V2,V3,IGMP).docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习目标:*理解组播的概念及技术*掌握IGMP协议及配置*掌握PIM协议及配置为什么要强调组播,因为在现实情况中,越来越多的一些应用都是基于一个特定群组。这 里要注意的是它不是全部用户,而是特定组,一组用户,这些特定群组的应用包括多媒体会议、数据群发、游戏、视频点播等,在这种情况下,如果使用以前所说的 单播也好,广播也好,都不符合实际应用的情况,不管是单播还是广播都会大大的增加网络冗余的一些数据流量,为了实现这么一个特定群组的服务,最好的方式就 是根据实际情况将应用的成员划分到一个群组里面,而数据的分发仅限于群组内部,这样就可以以尽可能少的数据流来实现群组的应用,这就是我们所说的组播技 术。组播的定义:组播是介于单播和广播之间的一种通讯方式,是主机向一组主机发送信息,这一组主机可以是全部主机也可以不是全部主 机,主要看是否所有主机都需要接收这组信息,存在于某个组的所有主机都可以接收到组发送的信息,是一种点到多点的通讯方式,单播是点到点,广播是点到所有 点,所以这三者是有区别的。从这个意义上来说呢,可以这样认为:广播是一个最大化的组播。当然两者还是有区别的,路由器在处理这两种数据包的处理方式是不 同的,广播是不会被路由器所转发的,但是组播是可以穿越不同的网段。另外广播发出后主机是被默认为是接收者,组播不一样,组播我发不发给你,你能不能去 收,是需要看用户有没有一个加入行为,你要加入这个组才能接收这个组的信息。单播与组播实现点对多点传输的比较:在没实现组播之 前,我们是采用单播或者广播来实现,单播可以通过建立多个点到点的连接来实现点到多点的传输,这样的话,在中间节点的路由器,在针对单播传输的时候,都要 维持一个会话,当然也就需要占用一份带宽,也就是说从发送方开始,就有多份数据发向不同的接收点,这种方式最大的网络负荷在服务器端,它增大了对服务器性 能的要求,同时还会在网络中造成非常大的流量,从而增加了网络的负载。那么如果我们采用广播的花会有什么问题呢,广播在通讯的时候有个特性,它只 在有分叉的时候才会被复制并传输,但是广播缺省认为所有终端都要接收这个数据,这就会造成某个用户根本就不需要这个数据流 ,但是通过广播发送的数据流还是会转发一份给他,那么这也就浪费了有关的带宽。组播就不一样了,组播的数据,发送方仅发送一份数据,以后的数据包只会在需要复制分发的地方才会被复制,这样不仅节约了网络带宽,也减轻了服务器的有关负担。组播的应用:1. 最早的应用就是一个视频和音频的多媒体会议环境,它最开始实在unix环境下被开发出来的,事实上,除了基于unix的视频和音频工具之外,基于unix 的白板也被开发出来了。但是由于当时网络带宽和环境还有网络设备的限制,只有音频会议工具的到了发展,这个音频会议和基于IP组播的数据共享应用相结合, 提供了一个功能非常强大的多媒体会议系统,而且不消耗过多的带宽,同时呢非常适合有关的网络教学,比如E-Learning,E-Learning的需求 促进了多媒体技术的发展也促进了组播的应用。2.数据分发:这是ip组播应用的另一个领域,通过使用ip组播,在一个可靠的网络里面,允许将文件和数据传送到各个网络节点,这就允许一些大型的跨国公司或者一些大型的由总部加全球各地的分支机构所组成的公司每天都可以向它的远程子公司发送信息。3.实时的数据组播:这里比较好的例子是实时的音频和视频的点播,还有股票交易市场。4.游戏和仿真的领域组播技术的特点:*优点-增强效率,控制网络流量,减少服务器和cpu负载-优化性能,消除流量冗余-分布式应用,使多点传输成为可能*缺点-组播应用基于UDP-比较难实现QOS,只能尽最大努力交付-无拥塞控制-数据包重复-数据包的无序交付组播体系结构:*组播协议分为主机-路由器之间的组成员关系协议(组播管理协议)和路由器-路由器之间的组播路由协议。*组成员关系协议包括IGMP(互联网组管理协议)。组播路由协议分为域内组播路由协议及域间组播路由协议。* 域内的组播协议由分为密集模式(PIM-DM)和稀疏模式(PIM-SM)。域内组播路由协议主要使用PIM-SM,PIM-DM,DVMRP协议。有关 组播协议,不管是管理协议还是路由协议,他都远远不止这里所列出的三四个,组播协议从发展到现在来说,路由协议就一共有像MOSPF、CBT、PIM- SM、PIM-DM、DVMRP等协议,这里简单的做下介绍:DVMRP,它叫距离向量的组播协议,现已广泛的应用于组播的骨干网之 间,DVMRP协议为每个发送源和目的主机都建议一个所谓的组播分布树,这个分布树也叫源分布树,每个源就建立一颗树,第二个,它既然是向量协议,就具有 响亮协议的特征,它通过跳数来衡量一个组播源到目的地之间的优劣,跳数最短的就为你组播传输的路径是最短的,当然,跳数最短也就意味着他的转发路径是最优 的;第三呢,DVMRP通过广播和修剪技术来维持它的扩展分布树,第四DVMRP对子网密集分布的组播组来说可以非常好的运作,但是范围大的组播因为需要 周期性的使用广播来做维护,就会带来一些严重的性能问题,最后一个要注意,对于DVMRP来说,它不能支持大型网络中的稀疏分散的组播组,也就是说 DVMRP这个协议它本身是一个密集模式的协议。MOSPF:它是一个域内的组播路由协议,全名叫组播的开放最短路经优先,它类似于ospf,它 采用链路状态维护组播拓扑,并且要想收集有关信息(组播路由器以及成员信息)它是借助于IGMP这个协议来实现的,MOSPF要构建他组播的状态链路数据 库,那它是通过IGMP周期的收集构建MOSPF的链路状态数据库,构建MOSPF得最短路经优先树,然后来生成MOSPF的路由表。PIM-DM(独立于协议的密集模式组播协议)、PIM-SM中的PIM指的是它跟单播协议无关的另类路由协议。这里说的密集模式是缺省认为这个组播网络里面的所有用户都是加入某一个组的,除非你提出:我不加入这个组,这样才不会给你转发这个组播的数据流。而稀疏模式是默认认为组播网络中所有用户都是不加入这个组的,除非你有明确的加入请求,我才会给你转发有关组播数据包。从 这里就可以简单的针对PIM-SM和PIM-DM做一个区别,PIM-DM(密集模式)主要面向那些组播的成员非常多、组播源非常少、组播成员相对密集的 组播环境,而PIM-SM也可以针对组播成员很多的环境也可以是很少的环境,另外一个主要的区别是稀疏模式是组播源很多,而组播的成员分布的很分散的这种 情况采用稀疏模式更加有效果。CBT:叫做急于核心树的组播协议,它是稀疏模式的组播协议,因为是稀疏模式,所以组播源很多,用户很分散,那它在 建立这个转发路径树的时候呢只能采用共享树,所谓共享树就是不管多少个源都共用同一个转发链路。这里需要注意的是,CBT必须制定一个路由器作为CBT路 由协议的核心,以核心来构建CBT的共享树,但是呢,其他用户的加入请求包在发出来的时候,在发到有关核心树的时候呢,核心树的路由器会给他一个回应,那 他就加入这个组了。但是他为了提高效率,在一个组成员发出加入请求的数据包出来,在发出这个数据包还有得到有关这个CBT的核心确认之前被另外一个在这个 CBT树的转发路由器收到,受到之后会立刻给他回应,回应了之后就可以立刻加入这个组,也就是说,它的确认信息不一定需要核心树中的核心路由器来给他做出 明确的答复,是要任何在这个核心树中的路由器受到这样的一个加入信息,就可以给他做出回应,那用户呢就加入这个组了,这样就大大的提升了它的效率。CBT 将组播流量集中在最少数量的链路上,而不是一个基于发送源的共享树上,并且他和普通的比如共享模式的pim-sm它只有单个核心,这个核心它叫RP,与单 个核心树相比,多个核心可以达到负载均衡。不管是PIM-DM还是DVMRP还说MOSPF或者PIM-SM他们都是属于域内的组播协议,密集模式有PIM-DM、DVMP、MOSPF,稀疏模式有CBT、PIM-SM。MOSPF 因为扩展性非常差,并且还需要跟OSPF协议相结合,本身OSPF协议就很复杂,所以很少被实现,另外还不支持隧道,不支持隧道的话安全性也就没办法在组 播环境里面来实现,因此它就已经被淘汰了。CBT协议虽然很简单,但是端到端的性能没办法满足,因此不适应在全网型的组播网络里面,现在用的最广泛的组播 域内路由协议就是PIM-SM、PIM-DM、DVMRP。另外还需要提一下,既然有域内的组播路由协议,当然也就有域间的组播路由协议,域间的 组播路由协议它有两类方案,一个是短期方案一个是长期方案,短期方案包括三个协议:MBGP(组播边缘网关协议)、MSDP、PIM-SM;MBGP用于 在自治区域之间交换组播路由信息,而MSDP我们叫他组播信源发现协议,它用于在ISP之间交换组播信源信息,另外有关域内组播路由协议PIM-SM,它 也可以用在域间来实现。长期方案正在研发中,讨论最多的有MASC,MBGP和BGMP,这些长期方案都是建立在现有的组播模型上,其中的MASC实现域 间组播地址的分配,MGBP在域间传递组播路由信息,BGMP完成域间路由树的构造。另外还有一些组播路由的策略协议,比如PIM-SSM(特定信源协议无关组播),这个是建立在其他的组播业务模型上。除 了这里说的路由协议外,另外还有一类管理协议,管理协议是用来协调主机到路由器之间的组成员关系协议,典型代表有IGMP,它是建立并维护路由器直联网段 的组成员关系的一些信息,域内组播路由协议根据IGMP维护的组播组成员关系信息,运用一定的组播路由算法来构造组播分发树,进行组播数据包的分发,域间 组播路由协议在各个自治域之间发布具有组播能力的路由信息以及组播源的信息,可以使组播数据可以在域间进行转发,还有一类交换机到路由器之间的管理协议, 为了有效的抑制组播数据在第二层做扩散,就会有一些IGMP Snooping(IGMP监控协议),另外还有华为的私有协议HGMP、思科的私有协议CGMP,这些都是属于二层组播的一些控制协议。组播地址:组 播地址都是一些特殊的IP地址,每一个加入到该组的主机呢,他都敏感该组地址并接收以该组地址为目的地的IP报文,组播地址的最高4位都是1110,那么 它的范围就是11100000-11101111,就是224-239,因此组播地址的范围就是224.0.0.0-239.255.255.255,他 是属于IP分类中的D类地址。在这些地址里面,并不是说所有地址都是用户可用的,他们中有一些属于保留地址:保留组播地址:224.0.0.0-224.0.0.255,这部分地址一般是分配给特定协议做它的组播信息的分发,如:224.0.0.1 是组播中所有成员,224.0.0.2是组播中所有路由器,224.0.0.9是RIPV2组播更新的地址,而224.0.0.5和224.0.0.6是 用作OSPF做状态更新所使用的,224.0.0.10是思科私有协议EIGRP用来做组播路由信息更新的地址,224.0.0.13是表示所有PIM的 路由器。本地管理组地址:239.0.0.0-239.255.255.255,这个地址范围用来作为私人组播领域的管理权限地址。这些都是第三层地址表识的,但是到了数据链路层还是需要第二层地址来进行传输阿,那么有关这个组播,是如何来实现这个寻址呢?那么将有专门的物理地址用来组播:对以太网而言,是01-00-5e开头.IP地址与mac地址的映射:跟单播一样,组播的ip地址和mac地址也会有一个映射。这 里需要注意的是,组播mac中有23位可变,IP中有28位可变,因此无法一一做映射,因此有5位是没有办法做映射的,那么就会出现有部分IP地址映射后 的mac是一样的,也就是说,会导致32:1的地址不明确,也就意味着一个IEEE的MAC地址能表示32个IP组播地址。组播的转发技术:在 单播里面,数据转发的依据是数据包的目的地址,这个目的地址明确表示了一个主机的位置,但是组播数据包并不是基于ip数据包的目的地址的,它没有唯一性, 因此它需要采用一种叫RTF(Reverse Path Forwarding逆向路径转发)的方式来转发数据包,它是针对转发的时候做检查,这个检查会决定是否转发还是丢弃输入的信息包,那么它的检查过程是什 么样的呢?首先要了解的是,RPF跟单播协议密切相关,所谓的逆向路径转发是基于察看有关组播源在什么地方,组播源是一个IP的单播地址,因此 呢,路由器检查到达的数据包的源地址,然后查看路由表,看这个源地址可以通过哪个接口可达,如果信息包是在可返回原站点的接口上到达,那就说明这个组播数 据流是从正确的方向过来的,则RPF检查成功,信息包被转发,但如果说这个数据包的原地址不是从这个接口到达的,那就说明这个组播数据包不是从最佳路经过 来的,应该丢弃该数据包。因为RPF是要结合单播路由表的,因此在构件组播之前应该事先完成有关IP单播路由表的实现。无组播功能交换机转发组播数据包:对一些网桥,一些二层设备,他没办法实现路由,也没办法实现RPF,对于一个不能识别组播数据流的二层交换机来说,它收到一个组播数据包会按照广播数据包得处理方法处理。二层交换机的组播功能实现:因为无组播功能的交换机在转发组播数据包的时候是跟广播一样,这样就达不到组播的目的了。因此,现在很多二层交换机增加了组播功能,增加了组播功能后就可以识别组播流,并且可以针对组播流来建立有关组播地址和端口的映射。能识别组播的交换机在它的转发表里面,都会增加一项MAC地址是组播地址,然后端口包含以希望接收组播数据的主机所相连的所有端口。IGMP-因特网组管理协议要对组播有一个比较深入的了解,就必须了解组播的两类协议:一类是组播的路由协议,另一类是组播的管理协议。IGMP就是组播的管理协议中一个最最重要的协议,全名叫作Internet Group Management Protocol,因特网组管理协议,它是主机与路由器之间唯一的信令协议,有关信令,在讲路由-QOS的时候提到过,所谓信令其实就是他们通信的一种语言。IGMP 从开始到现在总共发展了三代,v1版本是最老的版本,支持win95的版本,v2版本支持大多数windows系统,包括现在的2000,xp,2003 等,另外还支持最新版本的unix,v3的标识跟v1、v2不一样,v1和v2版本前面都冠以RFC,RFC叫做请求注解,RFC现在已经成了一个标准 了,它后面跟了一个标准的请求注解号码1112和2236,而v3呢它叫Draft-ietf,说明这是一个草案,那么我们要了解路由器和主机之间有关组 信息的加入或者说一些组成员的加入、脱离我们就必须知道igmp是如何工作的,IGMP这个协议运行在路由器和主机之间,主机会通过这个协议告诉本地路由 器它自己是希望加入并且接受哪一个特定组播的信息,同时,路由器可以通过这个协议周期性的查询局域网内某个已知组的成员是否处于活动状态,也就是说查询这 个网段是否还有某个组的组播成员,通过IGMP协议,路由器和组成员之间就实现了有关网络和成员关系的一些维护。IGMP不包括组播路由器之间上下游关系的传播与维护,也就是说路由器与路由器之间的组播信息的传播就跟IGMP无关了,那是由组播之间的路由协议来完成。IGMP v1是一个很简单的组管理协议,只定义了一些基本的组成员的查询和报告,另外IGMP v1还没有规定脱离组的消息。IGMP v2在v1的版本上添加了组成员快速离开的机制。IGMP v3在v2的通用组、特定组查询的基础上增加了排除或者包括组的消息机制。IGMP v2的工作机制IGMP v2通过一个查询器的选举机制来为一个网段选举唯一的组播成员的查询器,查询器周期的发送普遍组查询消息来进行成员关系的查询,而主机则发送报告消息来应 答查询;若一个终端想要加入一个组播组,主机不必等待查询消息的发送周期,而是主动的发送报告消息要求加入;当一个终端想要离开一个组播组的时候,主机也 会主动发送一个离开组的组播消息,当路由器收到这个组播组离开消息后会发送特定组查询消息来确定该组所有成员都已经离开,如果全部离开了那路由器就不会转 发任何有关这个特定组的组播数据流拉,但是只是该特定组中某一个终端离开了,其他的终端还在,那就还要维持这个组播数据流到这个网段上。另外,对于作为组 成员的路由器而言,它的行为跟普通主机是一样的,它会相应其他路由器的一些查询。在IGMP v2里面,通常接口是指在一个所连网络上的主接口,如果说一个路由器连在同一个网络上的接口有多个,那就只需要在其中一个接口上运行IGMP v2就可以拉,但是对主机而言,就需要在有组成员的所有接口上都运行IGMP V2。路由器必须要维护一张它自己和组播成员之间的关系表,只有通过这个关系表,它才能知道哪些组播的数据流要从哪个接口转发而那些组播数据流不需要转发。IGMP在工作中路由器和主机的行为:这里要明确的是IGMP在路由器和主机中的行为并不是对称的,他的行为动作如下:首 先路由器会定期的发送普遍查询的消息,然后根据收到的组成员关系报告来确定这个借口下面所连的主机是不是有某个特定组的成员存在,如果主机收到查询报文的 时候,他属于某一个组,他就要以组成员报告来响应路由器的关系查询,报告中会包含主机加入组的组地址,如果路由器在发出查询消息后的很长一段时间内都没有 收到成员的回应消息,就认为该端口下没有包含组成员信息,那么就会删除这个组。一个主机想加入某个组的时候,不一定要通过响应某个组播的查询消息 到达的时候再给它做回应,而是可以主动的发送报告要求加入特定的组,路由器在收到这个加入消息报告后,也不需要等待周期的时间,而是立刻把这个成员它和这 个端口所关联的哪一个组的信息放到它的组播转发表里面。一个终端如果想离开某一个组,如果主机是本网段(所在网段中针对某一个组播组的)最后一个 主机,那么主机会向路由器发送一个离开组的消息,当路由器收到这个离开组的消息的时候他会针对这个离开组的消息做一个确认,也就是发送一个指定组的查询, 查询在这个端口下是不是没有这个组的成员拉,如果得不到回应就表示确实没有这个组的成员了,没有的话就会删除有关这个组的在转发表中的特定条目了。IGMP在共享网段路由器的动作当有多个组播路由器它连在同一个网段上的时候,为了减少网段上的查询消息,将由一个特殊的路由器来发送查询消息,这个特殊的路由器就是查询器,查询器都 是通过路由器之间的某种消息的交换来选举,最开始的时候,在每个路由器之间都还不互相了解的情况下,每个路由器都认为自己是查询器,然后他们都会发送普遍 组的查询,查询器在收到更小源IP地址的查询消息后,就认为自己是非查询器,不会在发送普遍查询数据包,而认为这个IP更小的路由器是查询器,但是它还会 会启动一个查询计时器来监控主查询器的动作,如果在一定时间内没有收到主查询器的查询报文,就认为主查询器死掉了,那它就会取代主查询器来承担这个网段下 面组成员的有关查询。在共享网段上的终端有关加入和脱离组的动作:当一个网段上有很多个主机在同一个广播组的时候,则有可能一个路 由器发出一个查询消息,查询是否有某各组的成员,那么这个时候如果下面共享网段上的所有计算机都是属于同一个组,而且每个成员都还没有意识到有其他计算机 存在的时候就都会发送一个响应报告,也就是说会有多台主机同时响应路由器发出的组成员的查询消息,这就会形成所谓的报告风暴,这个时候就需要有一个报告抑 制的机制来避免在网段上形成报告风暴,那么IGMP是如何来实现这个抑制过程呢,首先,路由器是周期发送查询消息的,但是当主机收到这个查询消息的时候, 他们并不是就立刻针对这个查询消息回送响应报告,而是每个终端都首先启动一个定时器,这个定时器的时间是一个随机的时间,每一个终端都不一样,只有在这个 定时器清零了,它才会发出响应报告,如果其中有一个终端的定时器设置的比较短,那么当他清零的时候,它就会首先做出回应,往共享网段上发出回应包,这个时 候其他主机也会收到这么一个回应包,于是了解到已经有终端回应了路由器的查询包,那么他们就不会在针对这个查询做出回应。这样就保证了每个组只有一个成员 发送了响应报告,而其他的成员就被第一个发起响应报告的成员所抑制了。IGMP v2的报文格式:总共有8个字节,类型、最大响应时间各占一个字节,校验和两个字节,组播组地址4个字节。IGMP v2定义了有关组播中,主机和路由器相互作用的三种不同的消息类型,如果类型字节用16进制来表示是0X11的时候发出的包,就表示这个报文是个组播组查 询报文,该种类型的报文还分为两种子类型,也就是前面说过得普遍组查询和特定组查询;另外一种类型是在表示为0x16的时候,表示是版本2的组播组查询报 告消息,这里为什么要强调式版本2呢,因为IGMP为了工作的延续性,为版本1做了兼容,因此还另外定义了一些IGMP v1的一些报文格式如何在IGMP v2里面来做体现;还有一种是表示为0X17的时候表示离开组播组,同时为了表示和IGMP v1做兼容,他还定义了一个0X12表示版本1的组播组报告消息。最大响应时间字节:描述了主机发送一个响应消息前的最大允许延时时间,这个时间只对组播组查询消息才有意义,包括普遍组查询和特定组查询。校验和字节:是为了检验一个IGMP数据包是不是一个正确的IGMP数据包。组播组地址:在说类型的时候有提过普遍组查询和特定组查询,普遍组查询的时候有关组播组地址就是0.0.0.0,特定组查询的时候这个组播组地址就置为特定组播组地址。组播组地址是为了配合查询操作的。另外,IGMP报文也是借助于IP报文传播的,IP报文在路由转发的时候又要通过路由协议,所以,以后我们会提到,单播路由协议和组播路由协议他们是密切相关的。IGMP三个版本之间的区别: IGMP v1 IGMP v2 IGMP v3查询器选举: 依靠上层路由协议 自己选举 自己选举离开方式: 默默离开 主动发出离开报文 主动发出离开报文指定组查询: 无 有 有指定源、组加入: 无 无 有IGMP版本1和版本2兼容处理:*版本1的主机报告抑制版本2的主机*版本2帧格式兼容版本1帧格式*版本2的路由器如果发现有版本1的主机存在则会按版本1方式工作*版本2路由器和版本1路由器一起工作的时候会强制配置为版本1方式*版本2路由器发现版本1主机超时没有版本1主机后会自动恢复为版本2方式IGMP窃听建立和组维护为了使支持组播的交换机能够识别并且维护组播消息的传播,也就是识别哪个端口是属于哪个组的,那么就必须运行一个IGMP的标准管理协议:IGMP SNOOPING,用来给二层交换机建立一个组播的MAC地址和端口转发的对应表,他的建立过程如下:首先,成员发出IGMP成员报告消息,这个消息是给路由器的,在这个消息经过交换机的时候,当然,有报告的话事先肯定会有查询,成员是针对查询作报告,这个时候交换机会对报告消息进行监听,看哪些端口针对查询做出了回应,然后就完成了端口和第二层MAC地址的映射。组播的配置:开启组播(系统视图下):multicast routing-enable指定某个接口属于某个组播组(vlan接口下):igmp host-join 225.0.0.1 port eth 1/1指定IGMP版本号(vlan视图下):igmp version 1显示IGMP接口信息:display igmp interface组播的路由协议:分 为域内路由和域间路由,而且域间路由还分为长期和短期两种,当然我们关注的是那些使用成熟的组播路由协议,比如dvmrp(距离矢量的组播协议),他已经 很成熟的应用在了组播的骨干里面,是Internet 的draft,只是一个草案,另外重点要推荐的是PIM-DM和PIM-SM,所谓的PIM是协议无关组播,就是说跟以前学的rip阿,ospf阿之类的 路由协议不相关,这里的协议就是指单播路由协议,而dvmrp和mospf都是和协议相关的。我们先来看一下协议无关组播 -PIM(Protocol Independent Multicasting),它是独立于单播协议的,但是它依然要依赖于单播协议作RPF的检查,所谓PIM是一个反向路径检查,用来确定是不是一个正确 的组播转发路径,PIM协议工作在应用层上,通过UDP来传播它的路由信息,UDP的端口号为103,PIM路由器的组地址是224.0.0.13。有关PIM的应用环境,主要分为两种类型:-PIM_DM(协议无关组播密集模式)-PIM_SM(协议无关组播稀疏模式)密 集模式是指一个小范围内成员非常多比如校园网,股票交易大厅,几乎每个路由器的接口都有组成员要接收有关组的信息,这种时候一般是密集模式,因为这个时候 采用密集模式最好,因为密集模式缺省认为路由器的每个接口都要转发有关组播的信息,除非某个借口下面没有或者说有人提出来我不加入某一个组,那么才不会给 他转发。稀疏模式是在某一个范围内组成员比较少或者分布比较散的情况,这里要注意的是并不是组成员很少,而是在一定范围内组播成员分散,网络范围 比较大的情况。也就是说并不是路由器的每一个接口都没有转发数据,而只有少数几个接口上有组成员接收数据,比如一些小区,一些视频点播并不是每个用户都要 享用这种服务,可能只是这个小区中的某几家用户,那么这个路由器就只有某几个接口才会开通这个视频点播的业务,这个环境里面就不适合密集模式了,因为这个 时候密集模式会增加路由器的一些不必要的一些负担,或造成链路的不必要的转发组播数据流而造成网络的拥塞。PIM-DM转发:在运 行PIM_DM的网络里面,路由器默认所有的路由器的接口上都有某些组的接收者,当组播数据到达一个路由器的时候,路由器会首先针对这个数据建立有关的转 发项,而转发项的入口就是路由器依据单播到达数据源的接口,这个时候需要借用单播,而出接口就是除了入接口外的所有接口,当然要符合一个RPF检查的条 件。PIM_DM剪枝如果路由器所有的出接口上都没有接受者,这个时候它将清空这个转发项的转发列表,并向他的上游发送RPF剪枝 消息(这里的上游是他的单播到源的上一跳),这样就会使得这个组的组播消息不会在流向自己。这种状况只能维持一段的时间,因为在经过一段时间之后,上游路 由器会重新把下面这个接口加入到转发项的出接口列表中,组播数据流又会流向下游,而下游如果还是没有这个组的成员,将再次发起剪枝消息。这个过程会周而复 始,我们把它叫做扩散和剪枝的工作。PIM_DM嫁接和应答在剪枝的过程期间,路由器需要接收组播数据怎么办?这个时候路 由器并不需要等待下一个剪枝的扩散和剪枝周期到来,而是可以立刻的向上游的路由器发起嫁接消息,消息发出去之后,上游的路由器会对这个消息做一个回应,这 个回应我们叫它嫁接应答,告诉下游路由器我已经收到这个消息了,并将受到消息的端口添加到出接口列表里面,然后组播数据就可以到达希望接收的路由器和组成 员里面拉。PIM_DM状态维护PIM是如何来维护一些转发项而不必重复一些转发项的创建工作呢,密集模式是靠组播数据流来实现维 护的,也就是说当你有组播数据流的时候,只要路由器受到了某个组的组播数据包,那路由器就会不断的针对它的转发项做刷新,当如果当路由器长时间都没有收到 路由器的路由组播数据包的时候,就会删除该转发项。断言(assert)机制该机制在共享网段上是非常重要的,在共享网段上,当有 多个路由器向网络上发送组播数据包的时候,究竟应该由谁来完成最终给用户转发组播数据流的任务?因为当多个路由器都可以转发组播流的时候呢,就会使得这个 网段上出现重复的组播流,所以就需要某种机制来解决这个问题,那这个机制就是断言机制,断言机制是说当路由器从出接口接收到其他路由器发送来的重复组播流 的时候,路由器会向出接口发送断言的消息,这个断言消息会带有本路由器的优先级、路由器到达源的路由开销等信息,那么网段上的其他的路由器收到这个断言消 息之后,就会对其他路由器所发出的断言消息的优先级、路由开销、IP地址等和自己做一个比较,首先比较优先级,优先级数字低的获胜,如果优先级别相同,就 比较路由器的开销,开销小的获胜,如果开销也相等,这个时候就会比较IP地址,IP地址大的获胜。邻居发现机制:对于PIM的邻居 发现以及PIM的hello消息的消息机制,邻居的发现是依赖于周期发送的hello报文,这个hello报文也是通过组播来转发,这个组播是目的地址为 224.0.0.13,通过这个组播地址路由器来发现邻居并建立邻居关系,然后呢,PIM路由器还可以针对这个邻居关系来判断自己是不是叶路由器,所谓的 叶路由器就是末端路由器,如果说我只是从某一个方向某一个接口收到hello消息,而不会再从其他接口收到hello消息,那就说明自己是叶路由器。另 外,hello消息还可以为共享网段上指定路由器,这是通过比较优先级选举的,如果自己优先级别高,就默认自己为消息源的DR,这个DR在密集模式里面没 有什么意义,主要是用在稀疏模式,主要用做负责针对上游发起加入或者剪枝的一些工作。另外,当运行的版本是IGMP v1的时候呢,DR还作为IGMP查询器角色。PIM_DM的配置首先要在路由器上启动组播:multicast routing-enable然后在有关vlan接口下启动pim-dm:pim dmPIM-SM协议pim-sm转发和加入过程:稀 疏模式适合于接收成员较少或者说接收成员很分散的这样一个环境,当组播数据到达路由器的时候,路由器会马上创建转发项,转发项的入口也依据单播路由指向 源,这个源不一定是指发送组播数据的源,而是指网络中某一个作为核心的路由器,这个路由器叫做RP,也就是说在稀疏模式里面首先要选举一个核心路由器 RP,所有的数据源向组发送数据时都由源DR先将数据发送到RP,RP再将数据向网络中转发。这里要注意的是,在稀疏模式里面,转发项的出接口是空的,因 为在稀疏模式里面,默认路由器的每个接口都不加入某个特定组。当数据完成了源到达核心路由器的这个过程,然后就是有关加入的工作,当网络中有用户 想要加入这个组,那么计算机会首先向DR发送一个IGMP的加入请求,DR在收到IGMP加入消息之后呢,就会在这个组转发项的出接口列表中添加该接口, 这个时候出接口就不是空的了,当dr的出接口列表由空变成非空之后,它就会向网络中的RP发送请求加入消息,这个请求加入消息会沿着RPF反向路经检查到 达RP,在这个过程中,沿途的路由器在收到这个加入请求消息之后,他们也会构建这个出接口列表,如果出接口列表由空变为非空,则转发该请求加入消息,如果 本身就非空,则把该接口加入自己的列表中。PIM-SM剪枝当接收者不想再收到某个特定组的组播数据流的时候,会首先向DR发送一个IGMP离开组消息,DR收到这个消息后就会把收到这个消息的接口从自己的出接口列表中剪除,如果出接口列表由非空变成空了,DR就会向上游要求剪枝的消息,剪枝过程一直持续到RP上。需要注意的是,稀疏模式的转发项是通过加入消息来维护的,因此剪枝后的借口就不会像密集模式那样经过一段时间后又恢复,因为它这边的剪枝是由用户主动发出的,那么剪掉后,用户如果不再要求加入,就永远不会再给它传送该组的数据包。PIM-SM状态维护稀 疏模式中如何维护转发项呢?稀疏模式下,它是依靠下游的路由器周期的发送消息来维护转发项的,而不是像密集模式一样通过组播流来维护,而是通过下游往上游 发送IGMP的加入消息来维护的, 当路由器收到这个加入消息之后,就会刷新转发项和出接口,但如果路由器长时间没有收到任何加入消息,那就会把这个接口从转发项中删除。注意:这里的加入消息所指向的,是核心路由器RP,而不是数据源。PIM-SM注册

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论