文档库 最新最全的文档下载
当前位置:文档库 › 组播原理详解

组播原理详解

组播原理详解
组播原理详解

组播原理

第一章概述

随着数据通信技术的不断发展,各项基于数据通信技术的业务层出不穷,FTP,HTTP,SMTP等传统的数据通信业务已经不能满足人们对信息的需求,视频点播,远程教学,新闻发布,网络电视等新型业务也逐渐发展起来,并被引入数据通信网络。

这些新型业务的特点是,有一个服务器(我们把这个服务器称为媒体流服务器)在发布信息,而接收端数量很大,可能有成千上万个,而且具体数目不固定。在这种方式下,我们可以使用传统的客户服务器(C/S)模型解决,按照下面的思路:

1。在媒体流服务器上启动媒体流播放进程,作为服务器;

2。客户端每当想接受某个媒体流服务器的数据的时候,通过给出该媒

体流服务器的IP地址,来跟该媒体流服务器建立连接(比如,TCP

连接等);

3。媒体流服务器维护一个客户列表,采用轮循的方式向每个客户发送

媒体流。

可以看出,这样的解决方案有两个缺陷:

1。客户数目很大的时候,媒体流服务器就有可能承受不了,因为这种

媒体流跟传统的窄带业务(比如HTTP等)不同,它需要很高的带宽

来传输,而且服务器还必须维护每个客户的信息;

2。严重浪费网络资源,相同的数据可能在网上传播了很多次,在一些

带宽较低的链路上,可能引起严重的通信瓶径。

在这个时候,我们自然而然的想起了组播。这种技术最适合上面的这些新型业务。因为组播通信有下列优点:

1。媒体流服务器不必知道某个客户端的存在,它只管把媒体流以组播

地址播放出去即可,而且仅仅播放一份;

2。媒体流数据在网上仅仅传送一份即可,即使有成千上万个客户端;

3。客户端不必向媒体流服务器注册,如果想接收某个媒体流服务器的

数据,仅仅加入该媒体流服务器所播放的数据所在的多播组即可。

组播技术从提出到现在,它的一些标准和技术已经相当完善了,但推广还不是十分广泛,尤其是在我国,人们对组播的认识还处于一个朦胧的阶段,更谈不上规模应用。为了让大家尽快的了解组播技术,我们在本文中给出一些学习指引,主要有下列内容:

1。组播基础概念,这些概念是深入学习组播的最基础的东西,如果对这些基础概念不了解,学习组播将是一句空话;

2。流行组播协议,在文中我们不具体分析哪种组播协议,而给出组播协议的一些共性,并列举了目前比较流行的组播协议和它的应用场合;

3。列举了一些参考资料,这些资料按照不同的读者层次列举,既有面向组播专家的高级论题,也有面向初学者的入门文章。

总之,本文是面向组播初学者的,如果你从没有接触过组播技术,那么仔细的阅读本文并掌握介绍的一些基本概念,然后参考文中列举的其他文章,将会是一种良好的学习路径。如果您是一位组播技术方面的专家,阅读本文也不无裨益,您可以从不同的角度来了解组播的基础概念,也可以参考文中提到的其他组播文章,相信对您也是有好处的。

第二章二层组播基础概念

在前面的介绍中,我们讨论了用多播的方式解决新型流媒体业务的好处,在该部分中,我们结合一个实际的网络给出一些多播的基础概念,掌握这些基础概念是深入掌握多播技术的前提。

2.1 网络实例

有下面一个网络需求:

在图中,媒体流服务器通过以太网交换机LSWA,跟核心路由器GSRA连接起来,并启动流媒体进程,不断的以多播IP地址224.10.10.10发送媒体流。GSRA和GSRB之间采用以太网连接起来,GSRB通过以太网交换机LSWB连接了许多终端,其中两台终端需要媒体流服务器播放的媒体流。

下面我们仔细分析每一个步骤,在分析的过程中引入并介绍一些基础的组播概念。

2.2 组播MAC地址和组播IP地址

在前面的介绍中,我们提到了媒体流服务器不断的以多播IP地址224.10.10.10发送媒体流,224.10.10.10这个IP地址就是一个多播IP地址。按照IP协议规定,位于224.0.0.1—239.255.255.255范围内的IP地址都是多播地址。所谓多播地址,实际上是一个逻辑的概念,在网络上,没有一个计算机的IP地址是一个多播IP地址,多播IP地址仅仅代表了一个逻辑的组,加入该组的终端设备可以以该组所在的多播地址为目的IP地址来发

送数据,这时候,发送的数据不是针对某个具体主机的,而是针对一组机器,想接收这个多播数据流的计算机,只要倾听接收到的每个数据报,判断该数据报的目的IP地址是不是组播组的IP地址即可。若是,则接收,否则丢弃。

为了更好的理解组播IP地址的概念,我们举一个例子,如下面的网络图所示:

主机A(最左边的一台计算机)不断的以组播IP地址224.10.10.10发送数据,这时候主机B(中间计算机)想接收组播组224.10.10.10的数据,于是它就会监听每个收到的数据报,判断该数据报目的IP地址是不是224.10.10.10,如果不是则丢弃,如果是则接收下来送到上层处理。

这里牵涉到了一个问题:主机B的哪个模块判断接收到的数据报是不是组播数据报,并且是不是针对组224.10.10.10的数据报?答案是主机B的IP模块。我们看一下一台计算机接收数据的过程:

1。数据链路层把接收到的数据帧剥掉链路层头后送给IP层(至于数据链路层怎样接收数据帧,在后面会详细探讨);

2。IP模块维护一张接收列表(该列表是IP地址组成的结合),每当接收到一个数据报(链路层送上来的)后,便把数据报的目的IP地址提取出来,然后跟接收列表中的每个IP 地址比较,如果有一项匹配,则接收该数据,并向上层传送,否则丢弃;

3。如果一台主机想加入一个多播组(加入与否由上层应用决定),比如你想看网络电视频道,这时候你需要启动一个应用程序,并告诉该应用程序网络电视频道的组播IP地址,该应用程序就会向IP模块注册,请求加入组播组。IP模块于是在自己维护的接收列表里添加一项(同时也告诉数据链路层自己加入了一个组播组,并附带上组播组地址),添加的这项就是组播组的组播IP地址。这样每当接收到目的地址是该组播IP地址的数据报的时候,IP模块就接收下来,并向上层传送。

4。如果一台主机想退出组播组,比如你终止了电视频道接收程序,于是该程序在退出的时候会告诉IP模块,自己不再接收组播组的数据,并告诉IP模块组播组的组拨IP地址,于是IP模块就把该组播地址从接收列表中删除,这样以后如果再接收到该组播组的数据报的话,因为接收列表里没有匹配的项目,所以IP模块就丢弃该数据报。

经过上面的分析可以看出,问题的关键在于IP模块维护的接收列表。通常情况下(主机没有加入任何组播组),该列表里只有两项,即主机自己的IP地址和广播IP地址

(255.255.255.255),这样主机只能接收针对自己的数据报和广播数据报。

细心的读者可以看出一个问题,就是数据链路层如何接收组播数据帧呢?原来,数据链路层的接收过程跟IP层原理一致,即数据链路层也有自己的接收列表(不过该列表的内容不是IP地址,而是MAC地址),每当IP模块收到上层应用的加入组播组的请求之后,IP 模块就会向数据链路层通告(上面提到过),通告的时候携带了组播组的IP地址,于是数据链路层就会把IP地址进行适当的变换,变换的结果就是一个组播MAC地址,于是数据链路层把这个组播MAC地址插入自己的接收列表里面,以后每当有数据帧到来的时候,数据链路层就会把数据正的目的MAC地址跟接收列表里的每项内容进行比较,遇到任何匹配的一项就接收下来,并向IP层传送。

这样又引出了两个问题:数据链路层如何区分单播MAC地址跟组播MAC地址?数据链路层做一个IP地址跟组播MAC地址的影射,这个影射是怎样的?

首先解释第一个,一般情况下,单播MAC地址的最高字节的最低比特为0,而组播MAC地址的最高字节的最低比特为1,如下所示:

这样数据链路层就可以根据该比特判断收到的数据帧是不是一个组播数据帧。下图是第二个问题的答案:

从可以看出,MAC地址跟IP地址的低23比特是对应的,比如IP模块告诉数据链路层软件,自己加入了一个组播组224.10.10.10,则数据链路层形成一个MAC地址01--00--5E--0A--0A--0A(取组播IP地址低23位,高位为上面介绍的规则),并加入接收地址列表中。

到此为止,我们分析了网络层和数据链路层对组播的处理过程,为了更加深理解,我们举一个实际中的例子,还是同样的网络拓扑:

假设图中从左到右计算机依次叫做PCA,PCB,PCC,并假设PCA上运行媒体流服务器发送程序,以组播地址224.10.10.10来不停的发送电视频道数据流。

开始的时候,PCB和PCC都没有接收该数据流,于是在PCB,PCC的数据链路层和网络层的接收列表中都没有针对224.10.10.10组播地址的接收项,从而当数据链路层接收到一个数据帧,该该数据帧的目的MAC地址是01--00--5E--0A--0A--0A的时候,因为接收列表中没有该地址,所以在数据链路层就被丢弃(到这里,读者应该能体会到,组播数据在数据链路层就可以被隔离,而广播数据则必须到达网络层才能判断出是否需要丢弃,这也是使用组播而不使用广播的最大好处)。

这时候,假设PCB计算机的一个用户想收看网络电视频道了,于是该用户启动一个程序(比如,WINDOWS平台下的WMPLAYER),并告诉该程序接收224.10.10.10组播组的数据流。于是发生下列事情:

1。该应用程序通过操作系统调用接口(API函数)告诉该PC机的IP模块,自己想接收224.10.10.10组播组的数据(也就是说要加入组播组224.10.10.10);

2。IP模块接收到该加入请求后,便把组播组地址224.10.10.10加入自己的接收列表中,同时向数据链路层发送一个请求,告诉数据链路层自己想接收224.10.10.10组对应的数据流;

3。数据链路层接收到IP模块的这个请求后,根据组播MAC地址跟组播IP地址的影射规则,把组播IP地址224.10.10.10影射成组播MAC地址01--00--5E--0A--0A--0A,然后加入自己的接收列表,到此动作完成。

完成上述动作后,PCB就可以接收组播组224.10.10.10的数据流了。如果这时候用户不想继续看网络电视了(比如用户关闭应用程序),则应用程序在退出的时候会通知网络层,自己退出组播组224.10.10.10了,于是网络层会把自己的接收列表中224.10.10.10项删除,并通知数据链路层删除相应的列表项目。

到此为止,我们对组播IP地址跟组播MAC地址做了个详细的介绍,并详细分析了各个协议模块怎么处理组播数据的。这部分内容特别重要,如果还是不明白,请再读一遍,或

者参考其他的书籍。

2.3 二层组播协议

在上面介绍的几个例子中,我们使用了以太网交换机连接许多主机终端,并假设以太网交换机按照广播的形式发送组播数据,即以太网交换机每当接收到一个组播数据报,就向所有的端口上转发(除去接收端口)。如下所示:

还是原来的命名规则,计算机从左到右依次为PCA,PCB,PCC。这样当交换机从PCA 所在端口接收到PCA发出的组播数据帧后,就向PCB,PCC所在端口转发。这时候假设PCB 在接收组播数据流,而PCC没有接收组播数据流,于是PCC就可能接收到一些多余的数据(虽然这些数据在数据链路层就被隔离掉了,但毕竟不是理想的做法)。

理想的做法是,交换机只向需要组播数据的端口设备转发组播数据流,比如PCB需要数据,则仅仅向PCB转发。回忆我们以前讲解以太网技术的时候,曾经讲解了交换机的转发过程,交换机是根据内部的一张CAM表来做出转发决定的,我们可以从概念上理解CAM 表是这样构成的:{目的MAC地址,出口集合},在单播情况下,交换机根据数据帧的目的MAC地址查找CAM表,找到一个出口(在单播情况下,出口集合中只有一个元素),然后把这个数据帧从该出口转发出去。

交换机上的这个CAM表同样适用于组播的情况,这时候,目的MAC地址就是一个组播MAC地址(其特点和形成过程严格按照前面介绍的规则),而出口集合就可能不是一个元素了,可能是多个元素的集合。还是假设上面的例子,假设开始的时候只有PCB接收数据,则交换机创建一个转发项(01--00--5E--0A--0A--0A,{B})(假设PCB连接交换机的B 端口),并按照该转发项转发组播数据流,这样PCC就不能收到无用的数据流了。

这时候假设PCC也加入了组播组224.10.10.10,于是交换机修改自己的转发表,把转发项(01--00--5E--0A--0A--0A,{B})修改成(01--00--5E--0A--0A--0A,{B,C})(假设PCC 连接交换机的C端口),这样每当交换机从PCA接收到一个数据帧,就根据这个转发项,复制成两份,一份给PCB,一份给PCC。

大家对交换机上的组播转发项已经很清楚了,这时候又一个问题出现了:交换机根据什么创建组播转发项,并对组播转发项的出口集合做出修改?回忆单播的情况下,交换机是根据学习来获得单播转发表的,在组播情况下,学习能否奏效?

其实在组播情况下,学习是不行的,因为在单播情况下的学习,是针对数据帧的源MAC 地址进行的,而组播MAC地址不可能出现在数据帧的源MAC地址位置上(组播MAC地址出现的唯一位置就是数据帧的目的MAC地址),所以根本无法学习。这时候我们必须想一些其他办法来解决该问题,这些办法就是二层组播协议。

第一种办法,也是最容易理解的办法就是GMRP(通用组播注册协议),该协议需要计算机的网卡的配合。该协议这样运行,每当计算机加入一个多播组的时候,计算机同时给交换机发送一条GMRP加入消息,该消息携带的内容之一就是计算机加入的组播组的MAC 地址。这样交换机会根据不同的情况而采取不同的动作:

1。如果交换机上没有创建针对该组播MAC地址的转发项,则创建一个转发项,把出口集合初始化为连接发出请求的计算机的端口,以后就根据这个转发项进行数据转发;

2,如果交换机上已经有了针对该组的转发项,则交换机仅仅把连接发出GMRP加入请求的计算机端口加入转发项的出口列表里面即可。

这种方式简单明了,容易理解,但需要计算机网卡驱动程序的支持,目前来说,很少网卡能有这种能力,所以应用不是很广泛。

另外一种应用很广泛的协议是IGMP窥探,这种协议是建立在IGMP协议上的,在介绍这种协议之前,我们先介绍一下IGMP协议。

所谓IGMP,即INTERNET组管理协议,是用于主机跟路由器之间交互的一种协议,为了说明这种协议出现的背景,请参考下面的图示:

一般情况下,路由器是不转发组播数据流的,即路由器假设自己的本地网络上不存在组播数据流的接收端,这样的假设是符合实际情况的。在图中,媒体流不停的发送电视频道数据,这些数据被路由器阻隔,所以到达不了本地网络。假设本地网络上有一台计算机想接收该媒体服务器发出的数据流,这时候该计算机必须告诉路由器自己的需求,这样路由器才能把组播数据流引入本地网络。计算机告诉路由器使用的这种协议就是IGMP协议。

IGMP协议目前已经发展到了第三版,在这里我们仅仅对第一版做一个简单的讲解,其他版本跟第一版相差不大,可以参考相应的书目。

IGMP协议第一版主要有两种消息:主机加入消息和成员查询消息,这两种消息分别从主机和路由器发出。其中,主机加入消息是计算机用来告诉路由器,自己想加入某个组播组

的,而成员查询消息是路由器发出,用来查询网络上是否还有某个组播组的成员的。以上图为例,分析一下IGMP协议的运行过程:

1。本地网络上的一台主机加入了一个多播组G,于是该主机发出一个IGMP加入消息给路由器,告诉路由器自己想加入组播组G,于是路由器开始从上游引入组播组G的数据到本地网络;

2。路由器转发组播组G的数据一段时间后,会发出一个查询消息,看网络上是否还存在组播组G的成员(因为有可能刚才加入的那台主机已经退出组播组了),加入组播组的成员要重新发布IGMP加入消息来作为成员查询消息的响应,如果没有组播组的成员了,路由器将收不到响应,这时候路由器将再次进行查询尝试,如果还没有主机应答,路由器就认为网络上已经没有针对组播组G的主机了,于是停止转发组播组G的数据;

3。路由器发出组播组成员查询消息后,只要收到一台主机的响应,则路由器就必须继续转发组播组G的数据,不能因为网络上接收端的数目少而停止发送。

这样IGMP协议就很清楚了,我们来看一下IGMP窥探协议是怎样工作的。

IGMP窥探是这样的,交换机分析每个接收到的组播数据帧(IGMP加入消息是以组播方式发送的),看该数据正是否是一个IGMP加入消息,如果是,则从该消息中就可以判断出发出该消息的主机想加入的组播组,根据该组播组的IP地址形成组播MAC地址,并把接收到该消息的端口加入出口列表,这样一个组播转发项就创建完成了。

完成之后,交换机把刚才拦截的IGMP消息再不加改变的转发出去。这样不停的窥探,交换机就可以掌握网络上的组播成员情况,并反映在自己内部的组播转发表里,以后就根据创建的组播转发表来进行数据的转发。

IGMP窥探存在一个严重的问题,就是交换机必须分析每个组播数据帧,判断该数据帧是否是IGMP加入消息,如果是,则进行进一步分析,否则转发。这样对一些低性能的交换机来说,是一项很繁重的任务,所以该协议不适合低端交换机,而适合一些核心层的骨干交换机。

到此为止,一些二层的组播协议我们都做了个大体的介绍,相信读者读了这些介绍后,应该对这些协议有个大致的了解了,详细的了解以及一些具体的配置命令请参考相应的书籍。

第三章三层组播基础概念

在前面部分的介绍中,我们集中在了对二层组播基础概念的介绍上,在本章中,我们引入一些三层组播的基础概念,在这些概念的基础上,简单介绍目前流行的组播路由协议(注意跟二层组播协议的区分)原理及应用场合,使读者对这些协议有个大致的了解,并为以后详细学习这些组播路由协议打下基础。

3.1 组播转发项,组播树和RPF检查

为了引入这些概念,我们首先看一个实际的网络图:

在该图中,路由器MR1连接了一台多播数据源,该数据源不停的播放多播数据,MR2和MR3连接的本地网络都有数据接收端,MR4的本地网络没有数据接收端。这样MR1在转发多播源数据的时候,就只需向MR2和MR3转发即可,没有必要再转发给MR4。这样我们可以通过在路由器MR1上创建三层转发项来完成,三层转发项可以是这样的结构:(S,IIF,G,{S0,S1,...}),其中S是组播数据源的IP地址,IIF是到达组播源S所使用的接口,即在单播方式下,路由器如果要给组播源S发送数据,则通过IIF接口发送,而G则是组播组地址,{S0,S1,。。。}是一个出口集合。这个转发项的含义很明确,就是当路由器接收到一个数据报后,把这个数据报的源IP地址和目的IP地址(该目的IP地址是一个组播地址)读出来,跟转发项匹配,如果有一个转发项的源地址跟组播组地址相同,则把这个数据报向出口集合中所有的接口转发(需要注意的是,在把数据包发送出去之前,还需要进行一个RPF检查,只有通过了才转发,否则丢弃)。

网络上所有路由器的三层组播转发项串接起来,就构成了一棵组播转发树,比如,在下面的图形中,MR1的组播转发项为(S,E0,G,{S0,S1})(其中S0,S1连接MR2和MR3路由器),MR2组播转发项为(S,S0,G,{E0}),MR3组播转发项为(S,S0,G,{E0}),这样就构成下面的树状结构(以红色线条标出):

可以看出,这棵树是以数据源为根的,所以叫做源组播树(还有一种组播树叫共享组播树,后面介绍)。组播数据就是沿着这棵树向下流动的。

在介绍了组播转发项和组播树之后,我们看一个在三层组播中的一个非常重要的概念:RPF(反向路径转发)检查。为了解释RPF检查提出的原因,请参考下面的示例:

在这个简单的网络结构中,流媒体服务器不断的发送出组播数据流,这样跟流媒体服务器连接到同一个以太网交换机上的两个路由器就都会接收并转发该组播数据流。于是一个问题出现了:路由器MR会从两个接口S0,S1上分别收到相同的组播数据流,这个时候MR选取哪个组播数据流并进行转发呢?如果MR把两个组播数据流都进行转发,肯定是不合适的,假设组播数据流是一个电视频道,这样必然引起图象的重复出现,严重影响画面。

于是我们可以这样选择:选择一个组播流,该组播流从组播源到路由器经过的路径最短。

比如在上面的网络中,我们让路由器MR选择从接口S0进入的组播流,因为S0直接连接了组播数据源,而S1的组播数据源则经过了另外一台路由器。然而路由器怎样知道从哪个接口进入的数据流是最近的呢?答案是查找单播路由表。

到此为止,大家对RPF检查的背景一定有印象了,下面我们给出RPF检查的定义:支持组播的路由器每当接收到一个组播数据报,首先把组播数据报的源IP地址提取出来,然后根据这个源IP地址查自己的单播路由表,查找的结果是一个接口,如果该接口跟接收到报文的接口相同,则根据多播转发表来转发该组播数据报,如果不相同,则丢弃该组播数据报。

RPF检查是三层组播中一个最重要的特性,正是它的存在,才把组播转发表和单播转发表结合了起来,在进行组播数据转发的时候,把单播转发表作为参考依据。而且RPF检查确保了到达的数据流不会重复,也确保了到达的数据流对网络的影响最小(因为数据流是通过最短的路径过来的)。

3.2 组播路由协议

在上面我们介绍了组播转发表的概念,组播路由器在进行组播数据的转发的时候,就是依该转发表为基础来进行数据转发的,需要注意的是,在进行组播数据转发的时候,还需要做一个重要的动作:RPF检查。

现在的一个问题是:组播路由器上用于组播数据转发的组播转发项是如何建立起来的?答案是组播路由协议。

跟单播路由协议一样,组播路由协议用于建立路由器上用于组播数据转发的组播转发项。目前常用的组播路由协议有DVMRP,PIM-DM,PIM-SM等。在介绍这些协议之前,首先引入两个概念:剪枝和嫁接。

考虑下面的图形:

组播路由器MR从接口S0,S1上分别接收到组播数据,然而经过RPF检查后,S1上接收到的组播数据被丢弃了,因为在单播路由表中通往流媒体服务器的接口是S0。但是RPF 检查是发生在MR上的,连接MR S1接口的路由器(假设为RT1)却不知道MR不需要从

自己那里接收数据流,因而一直不停的把数据流发给MR。这样不但浪费链路带宽资源,而且浪费MR的系统资源,因为MR路由器必须做RPF检查。因此,一个有效的办法就是让RT1停止从该接口上转发组播数据流,这可以通过一个特殊的消息—剪枝来解决,具体过程是这样的:

当MR路由器从接口S1接收到组播数据报后,马上进行RPF检查,如果失败,则MR 路由器丢弃接收到的组播数据报,并通过S1接口给上游路由器(在这里就是RT1)发送一个剪枝消息,告诉上游路由器停止转发该组的数据。这样当RT1接收到这个请求后,就不再从该接口转发数据流。RT1是通过修改自己内部的多播转发表来做到这一点的,回忆一下多播转发表的结构,RT1路由器仅仅在多播转发表的出口集合中把相应接口删除即可。

了解了剪枝消息后,嫁接消息就很简单了,它跟剪枝消息刚好相反,是用来通知上游路由器,让上游路由器把组播数据转发给自己,比如,在上面的图形中,MR路由器的接口S0由于某种原因DOWN掉了,这时候MR路由器会通过S1接口给上游路由器发送一个嫁接消息,接收到该嫁接消息后,RT1路由器回重新发组播数据流给MR路由器(通过在多播转发表中把连接MR路由器的接口加入出口集合来实现),这样在MR上会通过S1接收到组播数据流,这时候MR上进行RPF检查就不会失败了,因为S0接口DOWN掉,通往媒体流服务器的单播路由项会自动的切换到S1接口上(通过动态路由协议完成)。

其实,组播路由协议可以理解为剪枝和嫁接消息的集合,任何组播路由协议都是由这两个消息作为基础的,只不过不同的路由协议发出该消息的时机不同罢了。

上面介绍的时候,提到了RPF检查,并提到,RPF检查需要路由器的单播路由表,这个说法严格来说其实是不正确的,因为要分两种情况:对于某些协议(比如PIM-DM,PIM-SM 等),这些协议在进行RPF检查的时候直接使用路由器用于转发单播数据的路由表,即这些协议信任路由器的单播路由协议,这种多播协议叫做协议无关多播协议(也就是PIM的由来,即Protocol Independ Multicast Protocol),还有一些协议,比如DVMRP等,它们在进行RPF检查的时候,是根据自己建立的一个单播路由表进行的,所有这些多播路由协议至少有两部分构成:一部分用于单播路由表的建立(该单播路由表跟路由器用来转发单播数据的路由表不同,它仅仅用于RPF检查),另外一部分用于组播路由表的建立。比如DVMRP,它实际上集成了一个RIP模块,使用该RIP模块来建立用于RPF检查的单播路由表。

下面我们看一下PIM协议,PIM(协议无关多播路由协议)分为DM(密集模式)和SM(稀疏模式),密集模式往往用于一些企业网等网络带宽资源比较丰富的场合下,而稀疏模式则用于网络带宽比较紧张的大型网络中,比如INTERNET,下面我们结合一个网络拓扑图形来分析这两种协议的本质不同:

假设多播路由器MR1和MR2运行的是PIM-DM协议,这样每当MR1接收到媒体流服务器发送过来的组播数据后,它就会通过串口S0发送给MR2,而不管MR2需要不需要这些组播数据流。当MR2不需要组播数据流的时候,MR2会通过一个剪枝消息通知MR1,让MR1停止发送组播数据流,这样MR1接收到MR2的剪枝消息后,会暂停发送组播数据流,一段时间后(该时间一般是3分钟,但可以配置),如果在这段时间内没再次接收到MR2发送过来的剪枝消息,则重新开始发送数据流。所以,如果MR2不想接收MR1发送过来的组播数据流的话,则必须不停的周期性的发送剪枝消息该MR1,即不停的“阻止”MR1给自己发送组播数据流。

如果MR1和MR2运行的是PIM-SM协议,则情况就完全两样了,这时候,MR1总是假设MR2不需要组播数据流,于是根本不给MR2发送从媒体流服务器接收到的数据流,这时候如果MR2想接收媒体流服务器发送的数据流的话,必须通过一个嫁接消息告诉MR1,自己想接收组播数据流了,MR1才开始给MR2发送组播数据流,不过一段时间后(该时间可以配置),如果没有再次接收到来自MR2的嫁接消息,则停止发送组播数据流。所以,如果MR2想持续不断的接收媒体流服务器发送过来的数据流,则必须不停的周期性的给MR1发送嫁接消息,也就是说,不停的向MR1“索取”组播数据流。

理解上面“阻止”和“索取”的含义,是理解DM和SM区别的关键。

其实,PIM-DM和PIM-SM的区别还有一个重要的方面,就是PIM-DM一开始就使用源组播树转发数据,而PIM-SM开始的时候使用共享的组播树发送组播数据,如果组播数据量到了一定程度,则转换为源组播树来完成组播数据的转发。在这里,我们简单介绍一下共享组播树的含义,至于在PIM-SM中由共享组播树向源组播树的切换过程,请参考有关书籍和资料。

共享组播树是这样的,即整个网络选择一个中心点,组播流数据首先发送到该共享的中心点(RP)上,然后由RP完成数据的转发。默认情况下,RP是不转发组播数据流的,所以如果一个路由器想接收组播数据流,则必须向共享中心点注册,这样当RP接收到你注册的组播组的数据后,才向注册路由器转发。

下面我们以一个简单的拓扑图说明注册的过程:

图中,RP即整个网络的共享中心点,这样假设MR2想接收来自媒体流服务器的组播数据流,则必须首先向RP注册(假设所有路由器都是运行PIM-SM协议)。下面说明MR2的注册过程:

1。MR2创建组播转发项(*,G,S0,{E0})(假设媒体流服务器在组播组G内转发数据,MR2通过E0接口连接本地网络),并通过S0接口向MR1发送一个嫁接消息,该嫁接消息中包含了RP的IP地址;

2。MR1接收到MR2发送过来的嫁接消息后,如果存在关于(*,G)的转发项,则仅仅把S0接口加入转发项的出口列表即可,否则MR1首先创建转发项(*,G,S1,{S0}),并通过S1接口向RP路由器发送嫁接消息;

3。如果RP路由器上存在组播转发项(*,G),则仅仅把出口S0加入出口列表,如果不存在该转发项,则创建转发项(*,G,E0,{S0}),这样当接收到媒体流服务器发送过来的组播数据流后,就根据该转发项进行转发(这里需要提出的是,如果路由器接收到一个组播数据报,然而自己组播转发表内没有关于该组播数据报的转发项的话,丢弃收到的组播数据报)。

在上面的过程中,所有转发项的源都是以*代替,*代表任何组播数据源,即创建该组播转发项的路由器对组播数据源的具体位置不关心。那么这时候就存在一个问题:组播路由器是根据什么来进行组播数据的RPF检查的呢?原来,PIM-SM协议的路由器在进行RPF 检查的时候,不是采用组播数据报的源IP地址,而是根据RP路由器的IP地址来进行的。

到此为止,我们介绍了一些组播路由协议的基础概念,实际上,如果把这些基础概念都理解透彻了,组播路由协议理解起来就没有技术上的困难了。

3.3 组播高级专题(MSDP,MBGP)

上面介绍的一些组播概念都是限制在一个域内的(所谓域,可以简单的理解为ISP),如果要实现跨域组播,假设两个ISP要实现组播网络的互通,一些新的问题就出来了,最突出的两个问题就是RP选择和RPF检查问题。目前情况下,要运行PIM协议,必须有一个全局的RP,这个RP完成数据源的注册和数据接收端的分发。一般情况下,每个ISP都有

自己的RP路由器,而每个RP路由器仅仅知道自己内部的数据源和数据接收端,而实际情况是,一个ISP内的用户可能接收另外一个ISP内的组播数据流,而另外一个ISP内的组播数据源对本ISP的RP来说是未知的,MSDP协议就是为解决这个问题而提出来的。

MSDP的基本思路是,让ISP之间的RP路由器互相建立一个信令连接(MSDP连接,就是一个TCP连接),每当ISP内的数据源发送数据的时候,该ISP内的RP路由器通过这个信令连接通知其它ISP内的RP,其它ISP内的RP再通知数据接收端,这样数据接收端就知道了一个组播数据源的IP地址,于是就可以采用源组播树的方式完成组播数据的接收了。具体细节可以参考有关书籍,限于篇幅,在这里不做具体介绍。

另外一个问题就是RPF检查问题了,考虑下面的网络图:

ISP1和ISP2通过两条高速链路连接起来,这时,ISP2想让单播数据走连接1,而想让多播数据走连接2。因为PIM是基于单播路由表来进行RPF检查的,这样如果不对用于RPF 检查的路由和用于单播数据发送的路由进行区分的话,就没法做到这一点。而传统的BGP 无法完成这样的要求,所以必须采用扩展BGP,即MBGP(多协议BGP,在多播领域可以成为多播BGP)。

采用多播BGP后,BGP连接在传输路由时,会把单播路由跟多播路由分开(通过在BGP协议中引入特殊属性解决),这样另外的ISP在接收到BGP邻居发送过来的路由后,就会把用于组播RPF检查的路由跟用于单播数据转发的路由区分开。

一个重要的概念就是,MBGP传播的路由仅仅用于组播路由器的RPF检查,MBGP不为组播数据转发提供任何支持。

第四章相关资料列表

前面部分我们仅仅介绍了组播的一些基础概念,这些概念是深入学习组播技术的基础,只有掌握了这些基础概念,才有基础去学习其它一些组播知识,当然,只要把这些基础概念理解透彻了,其它组播技术学习起来也就简单了。

为了方便大家进一步学习,在这里我们给出一些资料,并给出这些资料的主要内容,希望给大家提供帮助。

1。多点广播路由协议概述

一篇组播路由协议入门文章,介绍了组播路由协议(特别是PIM-DM,PIM-SM)的基础概念和运行过程,建议阅读

2。The_Interdomain_Solutions_with_MSDP

用于域间的组播解决方案,使用了MSDP和MBGP协议作为解决方案,很有代表性

3。Ip_Multicast_Protocol_Overview

组播路由协议概述,写的很不错,值得阅读

H-实验手册:组播PIM-DM

组播PIM-DM实验 一、实验拓扑 二、步骤: 1、配置组播地址: CLIENT1配置: IP地址:172.16.1.1 255.255.255.0(网关可以不配置) 组播源:224.1.1.1 CLIENT2配置: IP地址:192.168.1.1 255.255.255.0 192.168.1.254 组播目的:224.1.1.1 2、配置基本IP地址: R1配置: [R1-GigabitEthernet0/0/0]ip address 172.16.1.254 24 [R1-GigabitEthernet0/0/1]ip address 12.1.1.1 24 R1配置:: [R2-GigabitEthernet0/0/0]ip address 12.1.1.2 24 [R2-GigabitEthernet0/0/1]ip address 23.1.1.2 24 R3配置: [R3-GigabitEthernet0/0/0]ip address 23.1.1.3 24 [R3-GigabitEthernet0/0/1]ip address 192.168.1.3 24 3、配置路由(OSPF)全通 R1配置: [R1]ospf 1 router-id 1.1.1.1 [R1-ospf-1]area 0 [R1-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255 R2配置: [R2]ospf 1 router-id 2.2.2.2 [R2-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255 [R2-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255 R3配置:

组播原理详解

组播原理 第一章概述 随着数据通信技术的不断发展,各项基于数据通信技术的业务层出不穷,FTP,HTTP, SMTP等传统的数据通信业务已经不能满足人们对信息的需求,视频点播,远程教学,新闻发布,网络电视等新型业务也逐渐发展起来,并被引入数据通信网络。 这些新型业务的特点是,有一个服务器(我们把这个服务器称为媒体流服务器)在发布信息,而接收端数量很大,可能有成千上万个,而且具体数目不固定。在这种方式下,我们可以使用传统的客户服务器 (C/S )模型解决,按照下面的思路: 1。在媒体流服务器上启动媒体流播放进程,作为服务器; 2。客户端每当想接受某个媒体流服务器的数据的时候,通过给出该媒 体流服务器的IP 地址,来跟该媒体流服务器建立连接(比如,TCP 连接等); 3。媒体流服务器维护一个客户列表,采用轮循的方式向每个客户发送 媒体流。 可以看出,这样的解决方案有两个缺陷: 1。客户数目很大的时候,媒体流服务器就有可能承受不了,因为这种 媒体流跟传统的窄带业务(比如HTTP等)不同,它需要很高的带宽 来传输,而且服务器还必须维护每个客户的信息; 2。严重浪费网络资源,相同的数据可能在网上传播了很多次,在一些 带宽较低的链路上,可能引起严重的通信瓶径。 在这个时候,我们自然而然的想起了组播。这种技术最适合上面的这些新型业务。因为组播通信有下列优点: 1。媒体流服务器不必知道某个客户端的存在,它只管把媒体流以组播 地址播放出去即可,而且仅仅播放一份; 2。媒体流数据在网上仅仅传送一份即可,即使有成千上万个客户端;

3。客户端不必向媒体流服务器注册,如果想接收某个媒体流服务器的 数据,仅仅加入该媒体流服务器所播放的数据所在的多播组即可。 组播技术从提出到现在,它的一些标准和技术已经相当完善了,但推广还不是十分广 泛,尤其是在我国,人们对组播的认识还处于一个朦胧的阶段,更谈不上规模应用。为了让 大家尽快的了解组播技术,我们在本文中给出一些学习指引,主要有下列内容: 1。组播基础概念,这些概念是深入学习组播的最基础的东西,如果对这些基础概念不 了解,学习组播将是一句空话; 2。流行组播协议,在文中我们不具体分析哪种组播协议,而给出组播协议的一些共性, 并列举了目前比较流行的组播协议和它的应用场合; 3。列举了一些参考资料,这些资料按照不同的读者层次列举,既有面向组播专家的高级论题,也有面向初学者的入门文章。 总之,本文是面向组播初学者的,如果你从没有接触过组播技术,那么仔细的阅读本文并掌握介绍的一些基本概念,然后参考文中列举的其他文章,将会是一种良好的学习路径。如果您是一位组播技术方面的专家,阅读本文也不无裨益,您可以从不同的角度来了解组播的基础概念,也可以参考文中提到的其他组播文章,相信对您也是有好处的。

组播笔记

TCP/IP路有技术卷二——组播笔记 IGMP协议 总共有三种版本,版本1、版本2和版本3。可以通过命令ip igmp version修改; 三层协议,与ICMP一样,封装在IP包中,协议号为2 。IGMP为linklocal的,其TTL值为1; IGMPv2 主机功能总共有三种消息类型: 1.Membership Report 由主机发出,显式表示希望加入一个组播组,或者用来响应路由器的 Membership Query。其目的地址时这个组播组的地址。为保证路由器可靠收到,主机一般发送一个或者两个复制的报告;网络中其他同组主机在接收到一个主机发送的Membership Report后,就不再发送相同报告了; 2.version 1 Membership Report 与1类消息一样,用来兼容版本一; 3.leave group 用来推出一个组,其中包含退出组的组播地址,但是目标地址为224.0.0.2。当接收到这个消息时,路由器会发送查询来检测网络中是否还有组员; IGMPv2 路由器功能 1.General Query 用来查询网络中是否有组员,周期性发送,默认周期为60s。目标地址为224.0.0.1。可通过命令ip igmp query-interveal 来修改。如果在3次查询(3 min )内没有收到相应的话,则认为网络中没有相关组员;此查询包含一个max-response-time,规定主机相应这个查询的最长的等待时间,默认10s 中。可通过命令ip igmp query-max-response-time修改。 2.Group-specific Query 当路由器收到一个leave group消息时,发送group-specific query消息来查询网络中是否还有其他组员。目标地址为这个组播组的组播地址;一般路有器会每 1 秒发送两个查询来保证所有主机能正确接收到; 当网络中有多个路由器时,通常是lan 网络,则会选举出来一个指定路由器,通过接受其他路由器发送的查询,路由器会通过ip地址进行选举,一般ip 地址较小的成为指定路由器。非指定路由器停止发送。如果在查询时间间隔2倍时间(120s)内没有收到查询的话,则证明指定路由器出现问题,选举出来一个新的指定路由器。可通过命令ip igmp querier-timeout 进行修改;

实验20 PIM DM组播实验

实验20 PIM DM组播实验一、实验拓扑图,如图1.1所示: 图1.1 PIM DM组播实验 二、实验说明: 1.R1通过ping模拟组播源; 2.R4为组员; 3.全网运行ospf同步路由信息。 三、预配置: 1.R1的预配置: Router>en Router#conf t Enter configuration commands, one per line. End with CNTL/Z. Router(config)#no ip do lo Router(config)#line 0 Router(config-line)#no exec-t Router(config-line)#logg s Router(config-line)# Router(config-line)#ho R1 R1(config)#int lo0 R1(config-if)#ip add 1.1.1.1 255.255.255.0 R1(config-if)#int s0/0 R1(config-if)#ip add 12.0.0.1 255.255.255.0 R1(config-if)#no sh 2.R2的预配置: Router>en Router#conf t Enter configuration commands, one per line. End with CNTL/Z. Router(config)#no ip do lo Router(config)#line 0 Router(config-line)#no exec-t Router(config-line)#logg s Router(config-line)#

华为电信级组播解决方案

近年来,基于IP技术的各类视频应用发展很快,如BTV、视频会议、远程教学、网络游戏、股市行情实时发布、网络广播、协同计算、手机电视等,视频业务已经继语音业务之后,成为运营商的下一代高价值业务。在视频业务中,BTV、远程教学、股市行情、网络广播、手机电视等流量都具有点对多点、单向接收为主的特点,因而特别适合采用组播技术来下发流量以节省带宽。 目前,现网IP组播的实现主要基于两套技术组合,一套以PIM-SM和IGMP v1/v2协议为核心,配以IGMP Snooping、IGMP mapping、MSDP、MBGP,形成从组播树建立、二层组播转发与控制、到跨自治系统组播在内的完整解决方案;另一套以PIM-SSM和IGMPv3协议为核心,配以IGMP Snooping和MBGP,同样可以构成包括组播树建立、二层组播控制、跨自治系统组播在内的完整解决方案。但是这些仅仅基于传统IP组播技术的解决方案都存在着一些自身难以解决的问题。 视频业务与语音业务同属高实时性业务,对网络的可靠性、丢包率、延时、延时抖动都很敏感,而且视频流对网络带宽的需求要比语音流大得多,因此视频业务对网络可靠性、QoS保证的要求也较语音更为严格。但是传统IP组播用UDP报文封装应用层数据,在传输层不提供任何可靠性保证,而且组播路由依赖于单播路由,收敛速度慢,缺乏对关键节点的保护机制,一旦节点或路径发生故障,恢复时间可能长达几十甚至上百秒,另外,传统IP组播技术在QoS、安全性、可管理性等方面也没有作任何考虑,因此传统组播技术无法满足电信级运营的要求,如果要在多业务IP承载网中应用组播技术开展视频业务,那么我们就必须对组播技术进行一系列改进。华为提出的“电信级组播”,就是一个能够完整地解决组播可靠性、QoS保证、安全性、可管理性问题的完整解决方案。 组播可靠性 在可靠性方面,组播面临的问题主要有两类,即:组播树上发生路径或节点故障时的快速收敛,以及DR、RP、Source等关键点的快速保护倒换。 限于组播路由协议RPF(Reverse Path Forwarding,逆向路径转发)的制约,组播路由表的建立必须依赖于IGP路由表,因此IGP的快速收敛是解决组播快速收敛的前提。由于华为VRP(Versatile Routing Platform,通用路由平台)对IGP快速收敛的完善支持,目前华为已经可以将链路或节点发生故障后的路由收敛时间控制在毫秒级。关于路由快速收敛的详情请参见《IGP快速收敛技术白皮书》。

H-实验手册:组播PIM-SM

PIM-DM实验 一、实验拓扑图 二、实验步骤 1、配置组播源地址 CLIENT1:172.16.1.1 255.255.255.0 组播组地址:224.1.1.1 CLIENT2:192.168.1.1. 255.255.255.0 组播地址:224.1.1.1 2、基本IP地址配置 R1配置: [R1-GigabitEthernet0/0/0]ip address 172.16.1.254 24 [R1-GigabitEthernet0/0/1]ip address 12.1.1.1 24 [R1-GigabitEthernet0/0/2]ip address 13.1.1.1 24 [R1-LoopBack0]ip address 1.1.1.1 24 R2配置: [R2-GigabitEthernet0/0/0]ip address 12.1.1.2 24 [R2-GigabitEthernet0/0/1]ip address 23.1.1.2 24 [R2-LoopBack0]ip address 2.2.2.2 24 R3配置: [R3-LoopBack0]ip address 3.3.3.3 24 [R3-GigabitEthernet0/0/1]ip address 13.1.1.3 24 [R3-GigabitEthernet0/0/0]ip address 23.1.1.3 24 [R3-GigabitEthernet0/0/2]ip address 192.168.1.254 24 3、配置路由 R1配置: [R1]ospf 1 router-id 1.1.1.1 [R1-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0]network 13.1.1.0 0.0.0.255 R2配置: [R2]ospf 1 router-id 2.2.2.2 [R2-ospf-1-area-0.0.0.0]network 2.2.2.0 0.0.0.255 [R2-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255 [R2-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255

常见的9个网络命令详解(图)

实验:常见的9个网络命令 1.ping命令 ping是个使用频率极高的实用程序,主要用于确定网络的连通性。这对确定网络是否正确连接,以及网络连接的状况十分有用。简单的说,ping就是一个测试程序,如果ping 运行正确,大体上就可以排除网络访问层、网卡、Modem的输入输出线路、电缆和路由器等存在的故障,从而缩小问题的范围。 ping能够以毫秒为单位显示发送请求到返回应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络,连接速度比较快。ping还能显示TTL(Time To Live,生存时间)值,通过TTL值可以推算数据包通过了多少个路由器。 (1) 命令格式 ping 主机名 ping 域名 ping IP地址 如图所示,使用ping命令检查到IP地址210.43.16.17的计算机的连通性,该例为连接正常。共发送了四个测试数据包,正确接收到四个数据包。 (2) ping命令的基本应用 一般情况下,用户可以通过使用一系列ping命令来查找问题出在什么地方,或检验网

络运行的情况。 下面就给出一个典型的检测次序及对应的可能故障: ① ping 127.0.0.1 如果测试成功,表明网卡、TCP/IP协议的安装、IP地址、子网掩码的设置正常。如果测试不成功,就表示TCP/IP的安装或设置存在有问题。 ② ping 本机IP地址 如果测试不成功,则表示本地配置或安装存在问题,应当对网络设备和通讯介质进行测试、检查并排除。 ③ ping局域网内其他IP 如果测试成功,表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码不正确或网卡配置错误或电缆系统有问题。 ④ ping 网关IP 这个命令如果应答正确,表示局域网中的网关路由器正在运行并能够做出应答。 ⑤ ping 远程IP 如果收到正确应答,表示成功的使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet(但不排除ISP的DNS会有问题)。 ⑥ ping localhost local host是系统的网络保留名,它是127.0.0.1的别名,每台计算机都应该能够将该名字转换成该地址。否则,则表示主机文件(/Windows/host)中存在问题。 ⑦ ping https://www.wendangku.net/doc/655497266.html,(一个著名网站域名) 对此域名执行Ping命令,计算机必须先将域名转换成IP地址,通常是通过DNS服务器。如果这里出现故障,则表示本机DNS服务器的IP地址配置不正确,或它所访问的DNS服务器有故障 如果上面所列出的所有ping命令都能正常运行,那么计算机进行本地和远程通信基本上就没有问题了。但是,这些命令的成功并不表示你所有的网络配置都没有问题,例如,某些子网掩码错误就可能无法用这些方法检测到。 (3)ping命令的常用参数选项 ping IP -t:连续对IP地址执行ping命令,直到被用户以Ctrl+C中断。 ping IP -l 2000:指定ping命令中的特定数据长度(此处为2000字节),而不是缺

组播侦听发现(MLDv1)协议详解_RFC2710

2005-05-08 华为三康机密,未经许可不得扩散 第1页, 共21页 文档编号 Document ID 密级 Confidentiality level 内部公开 文档状态 Document Status 华为三康技术有限公司 Huawei-3Com Technologies Co., Ltd. 共21页 Total 21pages 组播侦听发现(MLDv1) 协议详解_RFC2710 拟制 Prepared by 范 磊 Date 日期 2005-05-08 评审人 Reviewed by 吴频 Date 日期 yyyy-mm-dd 批准 Approved by 陈国华 Date 日期 yyyy-mm-dd 华为三康技术有限公司 Huawei-3Com Technologies Co., Ltd. 版权所有 侵权必究 All rights reserved

2005-05-08 华为三康机密,未经许可不得扩散 第2页, 共21页 修订记录Revision record 日期 Date 修订版本Revision version 修改描述 change Description 作者 Author 2005-05-08 1.00 初稿完成 initial transmittal 范 磊

目录Table of Contents 1MLDv1简介 (5) 2消息格式 (5) 2.1代码(Code) (6) 2.2校验和(Checksum) (7) 2.3最大响应延迟(Maximum Response Delay) (7) 2.4保留(Reserved) (7) 2.5组播地址(Multicast Address) (7) 2.6其他区域(Other fields) (7) 3协议描述 (8) 4节点状态转换图 (10) 5路由器状态转换图 (14) 6定时器及其缺省值列表 (19) 6.1健壮性变量(Robustness Variable) (19) 6.2查询间隔(Query Interval) (20) 6.3查询响应间隔(Query Response Interval) (20) 6.4组播侦听者间隔(Multicast Listener Interval) (20) 6.5其他查询器存在间隔(Other Querier Present Interval) (20) 6.6启动查询间隔(Startup Query Interval) (20) 6.7启动查询次数(Startup Query Count) (21) 6.8最后侦听者查询间隔(Last Listener Query Interval) (21) 6.9最后侦听者查询次数(Last Listener Query Count) (21) 6.10主动报告间隔(Unsolicited Report Interval) (21) 7消息目的地址 (21) 2005-05-08 华为三康机密,未经许可不得扩散第3页, 共21页

组播实验(完整版)

组播实验 一实验目的 1)理解Multicast的一些基本概念。 2)掌握pim dense-mode的基本配置。 3)理解pim dense-mode的flood和prune过程。 4)理解 pim dense-mode 的assert机制 5)掌握cgmp的配置,及其优点。 6)掌握pim sparse-mode的基本配置。 二、实验拓扑和器材 Server 192.168.5.x 拓扑如上所示,需要路由器四台、交换机一台,主机三台(一台能作组播的服务器,需要Server级的windows操作系统)。 三、实验原理 1.组播基本原理 Multicast应用在一点对多点、多点对多点的网络传输中,可以大大的减少网络的负载。因此,Multicast广泛地应用在流媒体的传输、远程教学、视频/音频会议等网络应用方面。 Multicast采用D类IP地址,即224.0.0.0~239.255.255.255。其中224.0.0.0~224.0.0.255是保留地址,239.0.0.0~239.255.255.255是私有地址,类似于unicast的私有地址。 Multicast的IP地址与MAC地址的映射:MAC地址有48位,前面24位规定为01-00-5E,接着一位为0,后面23位是IP地址的后23位。 路由器间要通过组播协议(如DVMRP、MOSPF、PIM)来建立组播树和转发组播数据包。组播树有两类:源树和共享树。 多播时,路由器采用组管理协议IGMP来管理和维护主机参与组播。IGMP协议v1中,主机发送report包来加入组;路由器发送query包来查询主机(地址是224.0.0.1),同一个组的同一个子网的主机只有一台主机成员响应,其它主机成员抑制响应。一般路由器要发送3次query包,如果3次都没响应,才认为组超时(约3分钟)。IGMPv2中,主机可以发送

IPv6组播组网解决方案

神州数码网络公司作为国内第一家通过IPv6 READY PHASE 2增强版认证的公司,一直处于IPv6研发的最前端,具有世界最领先的IPv6技术。同时IPv6组播技术也是国内国际一流,能够提供全方位的满足各种需求的IPv6组播解决方案技术。现将神州数码网络公司提供的全方位的IPv6组播组网解决方案作下简介。 Ipv6 PIM解决方案 IPv6 PIM (IPv6协议无关组播)是指跟IPv6单播协议无关的IPv6组播技术,也就是指不管哪种单播路由(IPv6静态单播路由、RIPng、OSPFv3、BGP4)学习到的单播路由,IPv6 PIM都可以利用单播路由进行转发,即IPv6 PIM的转发是需要利用IPv6单播路由的,但是IPv6 PIM它不依赖于某个单播路由,所以它被称为IPv6协议无关组播。尽管我们称呼IPv6 PIM为IPv6组播路由协议,但是实际在利用IPv6单播路由协议。 Ipv6 PIM-DM解决方案 IPv6 PIM-DM(IPv6协议无关组播-密集模式)是一种密集模式的IPv6协议无关组播,采用的是扩散与剪枝技术,即使用“推”(Push)模型,组播信息整网络的扩散(Flood),下游不想接收的话则剪枝(Prune),是周期性地扩散、剪枝。主要被用于小范围IPv6组播网络中。 如下图所示:在汇聚层的DCRS-5950和核心层的DCRS-7600上均起IPv6 PIM-DM,第一跳DR(即跟IPv6组播服务器直接相连的DCRS-5950)收到IPv6组播流量后即向下按周期性扩散,依次类推。IPv6 PIM-DM区域均支持MLDv1/v2。IPv6 PIM-DM一般推荐在组播服务器少,网络拓扑简单的小范围内使用。

IP组播路由协议详细介绍

IP组播路由协议详细介绍 一、概述 1、组播技术引入的必要性 随着宽带多媒体网络的不断发展,各种宽带网络应用层出不穷。IP TV、视频会议、数据和资料分发、网络音频应用、网络视频应用、多媒体远程教育等宽带应用都对现有宽带多媒体网络的承载能力提出了挑战。采用单播技术构建的传统网络已经无法满足新兴宽带网络应用在带宽和网络服务质量方面的要求,随之而来的是网络延时、数据丢失等等问题。此时通过引入IP组播技术,有助于解决以上问题。组播网络中,即使组播用户数量成倍增长,骨干网络中网络带宽也无需增加。简单来说,成百上千的组播应用用户和一个组播应用用户消耗的骨干网带宽是一样的,从而最大限度的解决目前宽带应用对带宽和网络服务质量的要求。 2、IP网络数据传输方式 组播技术是IP网络数据传输三种方式之一,在介绍IP组播技术之前,先对IP网络数据传输的单播、组播和广播方式做一个简单的介绍: 单播(Unicast)传输:在发送者和每一接收者之间实现点对点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也必须相应的复制多份的相同数据包。如果有大量主机希望获得数据包的同一份拷贝时,将导致发送者负担沉重、延迟长、网络拥塞;为保证一定的

服务质量需增加硬件和带宽。 组播(Multicast)传输:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥塞的可能性。 广播(Broadcast)传输:是指在IP子网内广播数据包,所有在子网内部的主机都将收到这些数据包。广播意味着网络向子网每一个主机都投递一份数据包,不论这些主机是否乐于接收该数据包。所以广播的使用范围非常小,只在本地子网内有效,通过路由器和交换机网络设备控制广播传输。 二、组播技术 1、 IP组播技术体系结构 组播协议分为主机-路由器之间的组成员关系协议和路由器-路由 器之间的组播路由协议。组成员关系协议包括IGMP(互连网组管理协议)。组播路由协议分为域内组播路由协议及域间组播路由协议。域内组播路由协议包括PIM-SM、PIM-DM、DVMRP等协议,域间组播路由协议包括MBGP、MSDP等协议。同时为了有效抑制组播数据在链路层的扩散,引入了IGMP Snooping、CGMP等二层组播协议。 IGMP建立并且维护路由器直联网段的组成员关系信息。域内组播路由协议根据IGMP维护的这些组播组成员关系信息,运用一定的组播路

交换机的安全设置六大原则及三层交换的组播配置

交换机的安全设置六大原则说明 L2-L4 层过滤 现在的新型交换机大都可以通过建立规则的方式来实现各种过滤需求。规则设置有两种模式,一种是MAC 模式,可根据用户需要依据源MAC或目的MAC有效实现数据的隔离,另一种是IP模式,可以通过源IP、目的IP、协议、源应用端口及目的应用端口过滤数据封包;建立好的规则必须附加到相应的接收或传送端口上,则当交换机此端口接收或转发数据时,根据过滤规则来过滤封包,决定是转发还是丢弃。另外,交换机通过硬件“逻辑与非门”对过滤规则进行逻辑运算,实现过滤规则确定,完全不影响数据转发速率。 802.1X 基于端口的访问控制 为了阻止非法用户对局域网的接入,保障网络的安全性,基于端口的访问控制协议802.1X无论在有线LAN 或WLAN中都得到了广泛应用。例如华硕最新的GigaX2024/2048等新一代交换机产品不仅仅支持802.1X 的Local、RADIUS 验证方式,而且支持802.1X 的Dynamic VLAN 的接入,即在VLAN和802.1X 的基础上,持有某用户账号的用户无论在网络内的何处接入,都会超越原有802.1Q 下基于端口VLAN 的限制,始终接入与此账号指定的VLAN组内,这一功能不仅为网络内的移动用户对资源的应用提供了灵活便利,同时又保障了网络资源应用的安全性;另外,GigaX2024/2048 交换机还支持802.1X 的Guest VLAN功能,即在802.1X的应用中,如果端口指定了Guest VLAN项,此端口下的接入用户如果认证失败或根本无用户账号的话,会成为Guest VLAN 组的成员,可以享用此组内的相应网络资源,这一种功能同样可为网络应用的某一些群体开放最低限度的资源,并为整个网络提供了一个最外围的接入安全。 流量控制(traffic control) 交换机的流量控制可以预防因为广播数据包、组播数据包及因目的地址错误的单播数据包数据流量过大造成交换机带宽的异常负荷,并可提高系统的整体效能,保持网络安全稳定的运行。 SNMP v3 及SSH 安全网管SNMP v3 提出全新的体系结构,将各版本的SNMP 标准集中到一起,进而加强网管安全性。SNMP v3 建议的安全模型是基于用户的安全模型,即https://www.wendangku.net/doc/655497266.html,M对网管消息进行加密和认证是基于用户进行的,具体地说就是用什么协议和密钥进行加密和认证均由用户名称(userNmae)权威引擎标识符(EngineID)来决定(推荐加密协议CBCDES,认证协议HMAC-MD5-96 和HMAC-SHA-96),通过认证、加密和时限提供数据完整性、数据源认证、数据保密和消息时限服务,从而有效防止非授权用户对管理信息的修改、伪装和窃听。 至于通过Telnet 的远程网络管理,由于Telnet 服务有一个致命的弱点——它以明文的方式传输用户名及口令,所以,很容易被别有用心的人窃取口令,受到攻击,但采用SSH进行通讯时,用户名及口令均进行了加密,有效防止了对口令的窃听,便于网管人员进行远程的安全网络管理。

组播实验配置步骤

组播业务实验一、组播业务实验拓扑图: 二、实验步骤:(将命令补全,详细说明步骤) (一)C200命令配置 1、添加机架、机框、单板; 2、配置带内、带外网管(可不做); 设置带外: ZXAN(config)#nvram mng-ip-address 10.10.10.1 255.255.255.0 ZXAN(config)#show nvram running mng-ip-address : 10.10.10.1 mask : 255.255.255.0 server-ip-address : 10.62.31.100 Gateway-ip-address : 10.10.10.254 boot-username : target boot-password : target ZXR10_SerialNo : 1 CfgFileName : startrun.dat

Outband-mac-address : 0818.1a0f.a25b ZXAN(config)# 3、ONU注册、认证、开通; (1)查询已注册未认证的ONU ZXAN(config)#show onu unauthentication epon-olt_0/1/3 Onu interface : epon-onu_0/1/3:1 MAC address : 00d0.d029.b89e (2)、将该ONU认证到对应的PON口下: ZXAN(config)#interface epon-olt_0/1/3 ZXAN(config-if)#onu 64 type ZTE-D420 mac 00d0.d029.b89e ZXAN(config)#show onu authentication epon-olt_0/1/3 查询已经注册、已经认证的ONU Onu interface : epon-onu_0/1/3:64 Onu type : ZTE-D420 MAC address : 00d0.d029.b89e (3)、开通ONU ZXAN(config)#interface epon-onu_0/1/3:64 ZXAN(config-if)#authentication enable ZXAN(config-if)#ex ZXAN(config)#show onu detail-info epon-onu_0/1/3:64 //查询ONU的注册、认证、开通 情况 Onu interface: epon-onu_0/1/3:64 AdminState: enable RegState: registered AuthState: pass 4、在C200上配置组播业务的VLAN,并且上联口、下联口透传该VLAN,开启组播协议;采用IGMP snooping协议:(用户量少的情况可以采用监听模式) (1)、全局和下联端口状态下开启IGMP协议。 ZXAN(config)#igmp enable ZXAN(config)#interface epon-onu_0/1/3:2 ZXAN(config-if)#igmp enable ZXAN(config-if)#exit (2)、创建VLAN 83,并将用户口和上联口加入VLAN中。 ZXAN(config)#vlan 83 ZXAN(config-vlan)#exit ZXAN(config)#interface epon-onu_0/1/3:2 ZXAN(config-if)#switchport mode trunk ZXAN(config-if)#switchport vlan 83 tag ZXAN(config-if)#exit ZXAN(config)#interface gei_0/4/3 ZXAN(config-if)#switchport mode trunk ZXAN(config-if)#switchport vlan 83 tag ZXAN(config-if)#exit ZXAN(config)#

关于组播配置示例

组播配置举例 组播配置举例 关键词:IGMP、IGMP Snooping、组播VLAN、PIM、MSDP、MBGP 摘要:本文主要介绍组播功能在具体组网中的应用配置,包括以下两种典型组网应用:域内的二、三层组播应用情况,以及域间的三层组播应用情 况。 缩略语:

目录 1 特性简介 2 应用场合 3 域内二、三层组播配置举例3.1 组网需求 3.2 配置思路 3.3 配置步骤 3.3.1 Router A的配置 3.3.2 Router B的配置 3.3.3 Router C的配置 3.3.4 Router D的配置 3.3.5 Switch A的配置 3.3.6 Switch B的配置 3.3.7 Switch C的配置 3.4 验证结果 4 域间三层组播配置举例 4.1 组网需求 4.2 配置思路 4.3 配置步骤 4.3.1 Router A的配置 4.3.2 Router B的配置 4.3.3 Router C的配置

4.3.4 Router D的配置4.3.5 Router E的配置4.3.6 Router F的配置 4.4 验证结果 5 相关资料 5.1 相关协议和标准

1 特性简介 组播是指在IP网络中将数据包以尽力传送的形式发送到某个确定的节点集合,其基本思想是:源主机只发送一份数据,其目的地址为组播组地址;组播组中的所有接收者都可收到同样的数据拷贝,并且只有组播组内的主机可以接收该数据,而其它主机则不能收到。 作为一种与单播和广播并列的通信方式,组播技术能够有效地解决单点发送、多点接收的问题,从而实现了IP网络中点到多点的高效数据传送,能够节约大量网络带宽、降低网络负载。以下是对各常用组播协议的简单介绍: 1. IGMP IGMP是TCP/IP协议族中负责IP组播组成员管理的协议,用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。 IGMP运行于主机和与主机直连的路由器之间,其实现的功能是双向的:一方面,主机通过IGMP通知路由器希望接收某个特定组播组的信息;另一方面,路由器通过IGMP周期性地查询局域网内的组播组成员是否处于活动状态,实现所连网段组成员关系的收集与维护。 2. IGMP Snooping IGMP Snooping是运行在二层设备上的组播约束机制,用于管理和控制组播组。运行IGMP Snooping的二层设备通过对收到的IGMP报文进行分析,为二层端口和组播MAC地址建立起映射关系,并根据这个映射关系转发组播数据。 3. 组播VLAN 在传统的组播点播方式下,当连接在二层设备上、属于不同VLAN的用户分别进行组播点播时,三层组播设备需要向该二层设备的每个VLAN分别发送一份组播数据;而当二层设备运行了组播VLAN之后,三层组播设备只需向该二层设备的组播VLAN发送一份组播数据即可,从而既避免了带宽的浪费,也减轻了三层组播设备的负担。 4. PIM PIM是Protocol Independent Multicast(协议无关组播)的简称,表示可以利用静态路由或者任意单播路由协议(包括RIP、OSPF、IS-IS、BGP等)所生成的单播路由表为IP组播提供路由。组播路由与所采用的单播路由协议无关,只要能够通过单播路由协议产生相应的组播路由表项即可。

IGMP原理简介【华为】

IGMP原理简介 IGMP 协议是IP 组播在末端网络上使用的主机对路由器的信令机制,分为两个功能部分:主机侧和路由器侧。IGMP 工作机制如下所述: 1. 接收者主机向所在的共享网络报告组成员关系。 2. 处于同一网段的所有使能了IGMP 功能的组播路由器选举出一台作为查询器,查询器周期性地向该共享网段发送组成员查询消息。 3. 接收者主机接收到该查询消息后进行响应以报告组成员关系。 4. 网段中的组播路由器依据接收到的响应来刷新组成员的存在信息。如果超时无响应,组播路由器就认为网段中没有该组播组的成员,从而取消相应的组播数据转发。 5. 所有参与组播传输的接收者主机必须应用IGMP 协议。主机可以在任意时间、任意位置、成员总数不受限制地加入或退出组播组。 6. 支持组播的路由器不需要也不可能保存所有主机的成员关系,它只是通过IGMP协议了解每个接口连接的网段上是否存在某个组播组的接收者,即组成员。而各主机只需要保存自己加入了哪些组播组。 IGMPv1工作机制 IGMPv1 协议主要基于查询和响应机制完成组播组管理。在多路由器共享网段上,由三层路由协议选举出唯一的组播信息转发者(Assert Winner 或DR),并作为IGMPv1 的查询器,负责该网段的组成员关系查询。网络上IGMPv1 消息交互如图9-1 所示。 主机加入组播组的基本过程如下: 1. IGMP 查询器(RouterB)周期性地向共享网段内所有主机以组播方式(目的地址为组播地址)发送普遍组Query 查询消息。该报文的目的地址为224.0.0.1,表示该网段上的所有主机和路由器。 2. 网段内所有主机都接收到该普遍组查询消息。如果主机(如HostB 和HostC)希望加入某组播组G1,则以组播方式发送Report 报告。该报文的目的地址为224.0.0.1,报文中携带组播组G1 的地址信息。

H3CIE考点:PIM SSM典型配置实验举例

ang=EN-US>4.1 组网需求 SwitchA、SwitchB和SwitchC组成一个PIM-SM的组播网络,其中SwitchA连接 组播源,SwitchB和SwitchC连接不同的接收者,接收者指定源加入。如图1 所 示: 设备接口IP地址设备接口IP地址 SwitchA Vlan-int100 10.10.1.1/24 SwitchC Vlan-int102 10.102.1.1/24 Vlan-int12 10.12.1.1/24 Vlan-int23 10.23.1.3/24 Vlan-int13 10.13.1.1/24 Vlan-int13 10.13.1.3/24 SwitchB Vlan-int101 10.101.1.1/24 Vlan-int12 10.12.1.2/24 Vlan-int23 10.23.1.2/24 图1 PIM SSM特性典型配置组网图 4.2 配置思路 ●SwitchA、SwitchB和SwitchC上分别配置单播路由协议,使各设备和 组播源、接收者之间路由可达; ●SwitchA、SwitchB和SwitchC上分别使能组播路由协议,并配置各接 口的PIM-SM协议,连接接收者的接口配置IGMPv3协议; ●配置SSM组地址范围。 4.3 使用版本 本举例是在S12500-CMW520-B1131版本上进行配置和验证的。

说明: 本文的组网环境可能与您的实际环境存在差异。为了保证配置效果,请确认设备上现有配置和以下配置不冲突。 4.4.1 设备A的配置 1. 配置步骤 (1)全局启动组播路由 system-view [SwitchA] multicast routing-enable (2)配置各接口及接口地址,并使能PIM SM # 配置连接组播源的接口及接口地址,使能PIM SM [SwitchA]vlan 100 [SwitchA-vlan100]port GigabitEthernet3/0/1 [SwitchA-vlan100]interface vlan 100 [SwitchA-Vlan-interface100]ip address 10.10.1.1 24 [SwitchA-Vlan-interface100]pim sm # 配置连接SwitchB的接口及接口地址,使能PIM SM [SwitchA]vlan 12 [SwitchA-vlan12]port GigabitEthernet3/0/2 [SwitchA-vlan12]interface vlan 12 [SwitchA-Vlan-interface12]ip address 10.12.1.1 24 [SwitchA-Vlan-interface12]pim sm # 配置连接SwitchC的接口及接口地址,使能PIM SM

组播协议相关

组播相关: 一、组播协议体系: 1)组成员关系协议包括IGMP(互连网组管理协议); 2)组播路由协议分为域内组播路由协议及域间组播路由协议; 3)域内组播路由协议包括MOSPF,CBT,PIM-SM、PIM-DM、DVMRP等协议; 4)域内的组播协议又分为密集,与稀疏模式的协议。 DVMRP,PIM-DM,MOSPF属于密集模式,CBT,PIM-SM属于稀疏模式。 5) 针对域间组播路由有两类解决方案:短期方案和长期方案。 短期方案包括三个协议MBGP/MSDP/PIM-SM:MBGP(组播边缘网关协议),用于在自治域间交换组播路由信息;MSDP(组播信源发现协议),用于在ISP之间交换组播信源信息;以及域内组播路由协议PIM-SM 长期方案目前讨论最多的是MASC/MBGP/BGMP,它建立在现有的组播业务模型上,其中MASC实现域间组播地址的分配、MBGP在域间传递组播路由信息、BGMP完成域间路由树的构造。此外还有一些组播路由策略,如PIM-SSM(特定信源协议无关组播)等,建立在其它的组播业务模型上。 目前仅短期方案MBGP/MSDP/PIM-SM是成熟的,并在许多的运营商中广泛使用。 6)同时为了有效抑制组播数据在链路层的扩散,引入了IGMP Snooping、HGMP,HMVR,RGMP,GMRP等二层组播协议。 名词解释: 组播路由协议有距离矢量组播路由协议(DVMRP)、协议无关组播-密集模式(PIM-DM)、协议无关组播-稀疏模式(PIM-SM)、开放式组播最短路径优先(MOSPF)、有核树组播路由协议(CBT) IGMP协议简介: IGMP(Internet Group Management Protocol,因特网组管理协议)是TCP/IP协议族中负责IP组播成员管理的协议。它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。IGMP不包括组播路由器之间的组成员关系信息的传播与维护,这部分工作由各组播路由协议完成。所有参与组播的主机必须实现IGMP协议。 IGMP有三个版本:IGMP版本1(由RFC1112定义)、IGMP版本2(由RFC2236定义)和IGMP版本3。目前应用最多的是版本2。 IGMP版本2对版本1所做的改进主要有: 1. 共享网段上组播路由器的选举机制 共享网段即一个网段上有多个组播路由器的情况。在这种情况下,由于此网段下运行IGMP 的路由器都能从主机那里收到成员资格报告消息,因此,只需要一个路由器发送成员资格查询消息,这就需要一个路由器选举机制来确定一个路由器作为查询器。 在IGMP版本1中,查询器的选择由组播路由协议决定;IGMP版本2对此做了改进,规定同一网段上有多个组播路由器时,具有最低IP地址的组播路由器被选举出来充当查询器。 2. IGMP版本2增加了离开组机制 在IGMP版本1中,主机悄然离开组播组,不会给任何组播路由器发出任何通知。造成组播路由器只能依靠组播组响应超时来确定组播成员的离开。而在版本2中,当一个主机决定离

相关文档