IP组播技术培训教材_第1页
IP组播技术培训教材_第2页
IP组播技术培训教材_第3页
IP组播技术培训教材_第4页
IP组播技术培训教材_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、ip组播技术目录一、概述11ip组播技术简介11.2 ip组播需要解决的问题31.3 ip组播应用的历史和现状41.4 ip组播的优点41.5 ip组播的缺点51.6 ip组播的应用51.7 国内外组播应用概况71.8 ip组播技术概况小节7二、组播技术82.1 组播体系结构82.2 组播地址82.2.1 组播地址划分82.2.2 组播地址映射9223自治域as系统和预留组播地址段92.2.4运营商组播地址分配原则102.3 组成员关系协议102.3.1 igmp102.3.2 igmp snooping112.3.3 igmp proxy122.3.4 cgmp132.3.5 gmrp162

2、.4 域内组播路由协议17241pim-sm172.4.2 pim-dm182.4.3 dvmrp192.5 域间组播路由协议192.5mbgp202.5.2msdp21三、组播技术实现方案253.1 域内基于pim-dm/igmp/隧道技术实现253.2 域内基于pim-sm/igmp/隧道技术实现273.3 域间基于mbgp/msdp技术实现303.4 域间技术未来发展37四、参考文献38概述1.1 ip组播技术简介传统的ip通信是在一个源ip主机和一个目标ip主机之间(单播)或者一个源ip主机和网 络中所有的ip主机之间(广播)进行的。如果我们要将信息发送给网络中的多个而非所有ip主机,

3、要么由源ip主机分别向网络中 的多个目标ip主机单播发送ip包,要么釆用广播方式。如果使用单播方式,会遇到两个主要问题。假定在单播方式屮,主机a希望将一个包发 给五个主机。这暗示着主机a知道每个接收者的ip地址。此时主机a需将相同的包发给五个 不同的ip地址。随着接收者数量的增多、需要发出的包数也呈线性增加。换言之,对于n个 接收者,便要发出同一个包的n份拷贝。试想主机发送的是一段实吋声音或影像剪辑,那么 在接收者数量较少的情况下,尽管仍然可以接受,但随着接收者数量的增多,发送主机必然 不堪重负,各个包z间的延迟也会令人不堪忍受,而且,路由器上的链路也会严重消耗宝贵 的带宽。另一个主要问题是主

4、机并不知道接收者位于何处。如果需要通信的接收者不发生改 变,数据就可以正常进入。但这也造成了很大的限制,因为新的接收者不可动态加入或者离 开当前的组。那么广播方式的情况乂如何呢?凡是本地子网上的主机,都会接收到数据,而且每个包 只需发送一次。最主要的问题有两个,第一个是只有同一个子网上的接收者才能收到数据, 其他子网上的接收者不能收到,因为路市器会阻止广播通信。第二个问题是每个主机都需要 处理ethernet广播,判断数据是不是发给自己的。ip包必须从ethernet帧里提取出来、而见 由于日标ip地址也是一个广播地址,所以包的udp或者tcp部分也需要提取出来,并在协议 堆栈小向上传递。如果

5、有一个进程在等待着数据,就必须传至应用层。如果没有进程在等待 数据,数据就必须抛弃。显然,对那些“无辜”的、没有数据要求的主机,这个过程是对宝 贵的主机处理时间的一个极大浪费,也会成为许多用户抱怨的对象。因此,广播方式不仅会将信息发送给不需要的ip主机而浪费带宽,也可能由于路由回环 引起一场严重的广播风暴;单播方式由于ip包的重复发送而白白浪费掉大量带宽,也增加了 服务器的负载。可以说传统的ip通信技术不能有效地解决单点发送多点接收的问题。组播是指信源将信息发向所有网络节点的某个确定子集的点到多点的通信形式。ip组播 是指在ip网络中数据包以尽力传送的形式发送到所有网络节点的某个确定子集,这个

6、子集称 为组播组。ip组播的基本思想是源ip主机只发送一份数据,一个或多个接收者可接收相同数 据的拷贝。即允许源ip主机向网上所有ip主机的一部分(子集)发送ip分组,只有该子集内 的主机(目标主机)可以接收该分组,而网络屮其它ip主机不能收到该分组。这种逻辑上的 子集(目标主机)就是组播组,用d类ip地址(224.0.0.0239.255.255.255)来标识。为了向所有接收主机传送组播数据,用组播分布树来描述ip组播在网络中传输的路径。 组播分布树有两个基本类型:有源树和共享树。有源树是以组播源作为有源树的根,有源树的分支形成通过网络到达接收主机的分布树, 因为有源树以最短的路径贯穿网络

7、,所以也常称为最短路径树(spt) o共享树以组播网屮某些可选择的组播路由屮的一个作为共享树的公共根,这个根被称为 汇合点(rp)。共享树又可分为单向共享树和双向共享树。单向共享树指组播数据流必须 经过共享树从根发送到组播接收机。双向共享树指组播数据流可以不经过共享树。组播路由器收到指定给一个组播组的数据吋,它根据子网上是否存在组成员和转发路由 器将数据转发给响应接口。在主机和路由器之间使用“互联网组管理协议”(igmp),而在 组播路由器z间使用“距离向量组播路由协议”(dvmrp)和”协议无关组播协议“ (pim) o 象icmp样,igmp是ip不可或缺的部分,它使用ip数据包传输数据,

8、其ip协议号为2。 igmp报文被发送时,ttl为1,并且ip标题屮包含新的ip路由器警报可选类型。igmp报文 类型包括成员查询报文、组成员报告报文和离开组成员报文。igmp被主机用来通知直连的路由器,申请加入或离开一个组播组;而路由器会发出主机 成员资格查询消息,以判断是否有主机属于某个组播组的成员,只要有一个主机响应了此次 查询,路由器就继续向此子网发送组播数据。组播时,可能在不同的网络上有若干个地址相同的接受端。组播通信会在网络中周而 复始的循环,直至这个包内ttl字段为零,即所谓的”反转路径转发“,必须有一个合理的组 播路由协议结构来禁止出现这种情况;路由器收到一个组播包时,就会查看

9、这个组播包是否 被一个接口接收,该接口位于组播包返回资源的最短路径上。为实现组播通信,就必须建 立支持组播的路由协议,目前常用的组播路市协议有距离向量组播路市协议、协议无关密集 模式组播协议与协议无关分散模式组播协议。1.2 ip组播需要解决的问题ip组播首先要解决广播给谁的问题。要按不同应用项目(如体育、文艺、娱乐、学习等) 进行分组,小组成员要向组播服务器(一般是路由器)进行注册登记,用户主机发出请示,提 出具体组播地址。为发送一份ip组播数据包,发送者要确定一个合适的信宿地址,这个地址 代表一个主组。然后,组播数据通过普通的ip发送操作发送出去。英次要解决的问题是收哪个广播,有吋在同一网

10、络中有多个组播,每个广播选择国际规 定的特定地址(组播的i p地址)。发送端相当简单,但ip组播和接收端却十分复杂。为了接 收数据包,用户工作站上的应用要屮请与特定组播关联的组播主组会员资格。这种屮请传送 到用户的局域网路由器,如有必要,还要传送到发送者和接收者的路由器。这一步完成,接 收工作站的网络接口卡开始“侦听”与新组播组地址关联的数据链路层地址。广域网路由器把 请求进入的组播数据包送往局域网路由器,局域网路由器把主组地址变换成与它相关的数据 链路层地址,并用这个地址建立报文。接收链路的网络接口卡和网络驱动程序侦听这个地址, 把组播地址传向tcp/ip协议堆栈,从而使数据适合用户的应用。

11、第三个问题是用户主机在撤销时要通知组播服务器。因为接收组播的用户是被动的,撤 销时可能不通知服务器,这时服务器要在一定时间后向用户提出询问,实施问答程序,若无 用户应答,服务器将主动撤销相应的路径帶宽。第四是要解决如何广播问题。组播的程序如下:要解决组播路由以启动网络。对于路由 器网,可利用传统的路rh协议,选择路由。所选路由被路由器记忆下来,将来通过组播传送 数据时对沿用此路由。对于多层网络,因为ip不具有低层网络的拓扑知识,建立路rti的效率 很低,多层网中路由也难以达到全网整体优化。对于标记交换网络,因为路由器路由表传送 的数据包标头字段以及atm上的标记信息库已通过标记联编,将多层网络

12、的第2层与第3层捆 绑在一起,ip可以识别、学握全网拓扑,可利用传统的路由协议选择路由。要建立组播组, 明确接收者。要建立组播树,由与ip路由协议无关的组播协议构建组播树。组播树的上游 为组播服务器(路由器),按树形分叉为各叶片,叶片即为组播路径,叶尖抵达组播分组目 的地。最后是进行数据复制,组播树分叉处节点对转发的组播包进行拷贝、分流。最后一跳, 组播包登上局域网,以广播方式传送到子网内各主机用户。1.3 ip组播应用的历史和现状ip组播的研究早在20世纪80年代就已经开始了,1988年stanford大学进行了第一次多 目的点的通讯,1992年internet!程特别小组(ietf)定义和

13、发布了一个组播的网络标准, 用于建设组播主干网(mbone),即在internenet上运行的单播和组播综合网络。mbone 于1993年开始广泛的应用。1995年,cisc0和lucent公司开始销售支持组播的路由器和交 换机,1996年支持组播的其他应用产品开始陆续上市。目前有许多组播路由协议已经投入使用。像pim (protocol independent multicast)、 mbgp (multiprotocol extensions for border gateway protocol)以及 dvmrp (distance vector multicast routing pr

14、otocol)等协议得到了较为广泛的应用,但是目前仍然没有一种 可靠的组播路由协议具备处理大范围的组播组分发,发送者和接收者控制等能力。技术仍在 不断的发展中。1.4 ip组播的优点和单播相比,使用ip组播技术分发数据能从本质上减少整个网络对带宽的需求,减 少服务器的负荷。典型的例子是音频和视频应用。>减少带宽占用对于音频和视频应用来说,大量的用户会在大致相同的时间内访问相同的数据,如 果使用ip单播技术传送数据,网络带宽的消耗是呈线性增长的。如果使用典型的mpeg 2方式来传送流畅和逼真的影咅数据,需要1 5 mbit / s的带宽,此吋使用ip组播传送 数据,只需要一个数据流就可以传

15、送所有的重复数据流,最大限度的利用网络带宽。> 减轻服务器负荷对于音频和视频应用提供商来说,如果采用ip单播方式传送数据,随着用户数的不 断增长,筒要不断增加相应的视音频服务器以适应连接用户的增长。在单播的情况下,服 务器必须为同一个节日源的每一个观看节日的用户发出一个数据流,当连接的用户不断增 加的情况下,服务器的负荷会不断增大,当负荷达到一定程度时,服务器就再也不能发出 数据流了,不能为增加的用户提供服务了。而采用ip组播来发布节目时,对于同一个节目 源的所有观看节冃的用户只是需要发出一个数据流。这样音频和视频应用提供商不需要不 断购买服务器设备以满足用户增长筒要。ip组播能够大大减

16、少需要转发和处理的数据量,从而降低对所需服务器的性能要求。1.5 ip组播的缺点尽管使用ip组播可以带来很多好处,但是像任何技术一样,ip组播技术也有它的局 限性和不如人意的地方。ip组播主要的缺点是数据包的不可靠传送和特定节点路由器负荷 增大的问题> 数据包的不可靠传送由于ip组播是一对多的通信方式,没有使用血向连接的tcp协议,ip组播数据报 通过无连接的udp协议承载。udp是一种尽力而为的协议,ip组播数据包有可能在传送 的过程屮丢失、延迟、重复以及乱序。上层的组播应用必须根据这个特性进行设计,要不 接受组播的不可靠性,要么在应用层或通过udp之上的可靠组播进行传送,可靠组播仍

17、是一个有待研究的领域。>特定节点路由器负荷增大虽然在将同一数据流传送给多个用户时,ip组播能够明显的减少带宽的占用,减少 服务器的负荷,但是必须认识到在特定节点的路由器负荷增大的问题。当路由器把单个数据流复制成多个输出数据流以便把数据送交给多个下游用户时, 这个复制过程就成为附加在路由器上的负荷。如果输出的接口数目很大,会给特定节点的 路由器增加负荷。1.6 ip组播的应用随着宽带多媒体网络的不断发展,各种宽带网络应用层出不穷。iptv、视频会议、数 据和资料分发、网络咅频应用、网络视频应用、多媒体远程教育等宽带应用都对现有宽带多 媒体网络的承载能力提出了挑战。采用单播技术构建的传统网络

18、已经无法满足新兴宽带网络 应用在带宽和网络服务质暈方面的要求,随z而来的是网络延时、数据丢失等等问题。此时 通过引入ip组播技术,有助于解决以上问题。组播网络中,即使组播用户数量成倍增长,骨 干网络屮网络带宽也无需增加。简单来说,成百上千的组播应用用户和一个组播应用用户消 耗的骨干网帯宽是一样的,从而最大限度的解决目前宽帯应用对带宽和网络服务质量的要 求。通过引入组播技术,可以开展多种业务。本节可以看到一些ip组播在各个领域的具体应 用,包扌帀p tv网络电视业务、ip radio业务、ip会议电视业务、ip网上课室组播业务和ip 组播数据传输业务。> ip tv网络电视业务ip tv网

19、络电视业务是在多媒体通信网络上传输电视节目的高带宽服务。多媒体通信 网络可以支持数以百计的全国性网络电视频道,数以万计的全省性网络电视频道。ip tv网络电视业务和传统电视业务类似。不同之处是电视节目的接收端不再是我们 传统的电视机,而是电脑。网络节目的传输不是使用传统的hfc网络,而是使用internet。 iptv网络电视与传统电视相比,优势在于电视频道数量的极大丰富,电视节目的覆盖区域 的扩大,电视台运营成本的下降。> ip radio网络广播电台业务ip radio网络广播电台业务是多媒体通信网络上传输电台广播节目的高带宽服务。多 媒体通信网络可以支持数以百计的全国性网络广播电台

20、频道;支持数以万计的全省性网络 广播电台频道。ip radio网络广播电台业务和传统广播电台业务类似。不同之处是电台广播节目的接 收端不再是我们传统的收音机,而是电脑。网络节目的传输不是使用传统的微波,而是使用 interneto ip radio网络广播电台与传统广播电台相比,优势在于电台广播频道数量的极大丰 富,电台广播节目的覆盖区域的扩大,电台运营成本的下降。> ip会议电视业务ip会议电视业务是在利用电视、计算机技术及设备,通过多媒体通信网络在两地或 多地z间召开会议的一种可视通信业务。出席会议的人员通过会议电视系统,既可以听到 对方的声音,又可以在屏幕上看到与会者的形象动作,还

21、可以通过控制系统,传送图表, 文件等资料,如同面对面的交流。多媒体通信网络可以支持数以百计的全国性会议电视 channel数量;支持数以万计的全省性会议电视channel数量。ip会议电视业务和传统会议电视业务类似。不同之处是ip会议电视传输不再是使用 会议电视专用网络,而是使用了 intcmct。ip会议电视与传统会议电视相比,优势在于会议 电视channel数量的极大丰富,会议电视的覆盖区域的扩大,线路速率没有了 64kbit/s、 128kbit/s和384kbit/s、2. 048mbit/s、6mbit/s的速率限制,会议电视的运营成本的下降。> ip网上课室组播业务ip网上课

22、室组播业务是在利用电视、计算机技术及设备,通过多媒体通信网络在两 地或多地z间进行培训和教育的一种可视通信业务。参加学习的人员通过网上课室系统, 既对以听到老师的声音,又对以在屏幕上看到老师的形象动作,还可以通过控制系统,传 送图表,文件等学习资料,如同与老师面対面的交流。多媒体通信网络可以支持数以百计 的全国性网上课室;支持数以万计的全省性网上课室。ip网上课室组播和传统网上课室类似。不同之处是ip网上课室组播使用了 internet组 播功能。ip网上课室与传统的网上课室相比,优势在于通过组播技术,骨干网上网络流量 大减,网络课室的覆盖区域的扩大,网络教育科冃的极大丰富,网上教育的运营成本

23、的下降。1.7国内外组播应用概况冃前,人们对网上视频应用的需求日益增长,据perey research预测:2000年互联网 上的视频技术应用增长幅度达到了史无前例的215%,到2003年,全球的互联网视频市场将 达400亿美元,2004年国内网络视频业务也将形成200亿的市场容量。从长远来看,组播对于视频业务的有效开展具有重要意义。ip组播技术有效地解决了单 点发送多点接收、多点发送多点接收的问题,实现了ip网络屮点到多点的高效数据传送,能 够有效地节约网络带宽、降低网络负载。ip组播技术在实时数据传送、网络电视、多媒体会 议、数据拷贝、游戏和仿真等诸多方面都有广泛的应用。在国外,美国的sp

24、rint网络开展了实验性质的组播业务,该业务采取不收费的方式。 uunet网络,仅对组播源按带宽月租收费,但是对接收者没有任何控制,也不对接收者进 行收费。这两大运营商都连接到mbone网络。冃前,国内的各大运营商都在积极参与组播的业务,但都还处于试验阶段。1.8 ip组播技术概况小节虽然ip组播的概念很早就被提出,但是直到现在它的能力才被充分认识。组播带来的最 大好处是能够减少带宽占用和减轻服务器的负荷。ip组播主要的缺点是数据包的不可靠传送 和特定节点路由器负荷增大的问题。近期组播技术应用到了越来越多的领域,相关的应用层 出不穷,但是ip组播技术作为一项新出现的技术,虽然具有很多优点和长处

25、,但是和所有新 技术一样,ip组播技术也有其自身的局限性,仍然需要不断的完善。二、组播技术2.1组播体系结构组播协议分为主机路由器之间的组成员关系协议和路由器路由器之间的组播路由协 议。组成员关系协议包括igmp(互连网组管理协议)。组播路由协议分为域内组播路由协议 及域间组播路由协议。域内组播路由协议包括pimsm、pim-dm、dvmrp等协议,域间组 播路由协议包括mbgp、msdp等协议。同时为了有效抑制组播数据在链路层的扩散,引入 tigmp snooping. cgmp等二层组播协议。igmp建立并月.维护路由器直联网段的组成员关系信息。域内组播路由协议根据igmp 维护的这些组播

26、组成员关系信息,运用一定的组播路由算法构造组播分发树进行组播数据包 转发。域间组播路由协议在各自治域间发布具有组播能力的路由信息以及组播源信息,以使 组播数据在域间进行转发。2.2组播地址ip单播地址用于唯一的标示单个ip主机,而ip组播地址则用于标示一组任意的ip主 机,改组的ip主机已经加入该组播组并且希望接收发往该组播组的数据。组播ip地址代 表组播数据接收者组,而不是某个单独的接收者(因此,组播地址只能用作冃的地址,它 们不能出现在某个数据包的源地址字段,也不能出现在源路由或源路由记录选项中)。2.2.1组播地址划分ip组播地址用于标识一个ip组播组。iana把d类地址空间分配给ip组

27、播,其范围是从224.0.0.0到239.255.255.255。如图5.1所示(二进制表示),ip组播地址前四位均为1110。八位组(1)八位组(2)八位组(3)八位组(4)1110xxxxxxxxxxxxxxxxxxxxxxxxxxxx图5.1 d类ip地址格式如图5.2所示,根据rfc3171, iana将ipv4的组播地址分配如下:224.0.0.0 224.0.0.255(224.0.0/24)local network control block224.0.1.0 - 224.0.1.255(224.0.1/24)internetwork control block224.0.2.

28、0 - 224.0.255.0ad-hoc block224.1.0.0 -224.1.255.255 (224.1/16)st multicast groups224.2.0.0 224.2.255.255 (224.2/16)sdp/sap block224.252.0.0 - 224.255.255.255dis transient block225.0.0.0 -231.255.255.255reserved232.0.0.0 - 232.255.255.255 (232/8)source specific multicast block*233.0.0.0 233.255.255.2

29、55 (233/8)glop block234.0.0.0 238.255.255.255reserved*239.0.0.0 239.255.255.255 (239/8)administratively scoped block图5.2组播地址划分iana预留224.0.0.1到224.0.0.255的组播地址,为路由协议以及其他低级拓扑查找及维 护协议使用。该范i詞地址属于局部范畴,路由器不转发属于此范围的ip包。239.0.0.0到 239.255.255.255被用作组织内部使用,用于限制组播范臥 其余组播地址用于全球范围或 网络协议。当ip层收到组播数据报文时,根据组播转发表进行转

30、发。2.2.2 组播地址映射如图5.3所示,以太网和fddi的mac地址01:00:5e:00:00:00到01:00:5e:7f:ff:ff用于 将三层ip组播地址映射为二层地址,即ip组播地址中的低23位放入ieee mac地址的低23 位。ip组播地址有28位地址空问,但只有23位被映射到ieee mac地址,这样会有32个ip 组播地址映射到同一 mac地址上。此5位不橄映射,因而32个ip组播地 址映射成同一个mac地址1132&ip组矗地址vivl i i i111111 1 11 1 11 1 1 1 1 1 148&11c地址(以太 fi/fudi)e1if鮒地

31、址中此1k地址当中1000 0| 000 1000 0| 00001 1 1 1 1 1 1 1 1 1 1 1 1 10 1 0 li 1 1 1 01 1 1 1 1 1 10111111 1 11 1 11 1 1 1 1 1 101005图5.3组播地址映射2.2.3 自治域as系统和预留组播地址段根据rfc2770的规定,iana将组播地址233.0.0.0-233.255.255.255用于glop地址分 配。地址结构如下图所示:01234567890123456789012345678901+-+-+1233 i16 bits asilocal bits i每个自治域as系统都可

32、以拥有唯一的c类组播地址段。组播地址 233.0.0.0-233.255.255.255与as号对应关系是将as号的十进制转化为十六进制,然后将该 十六进制的高两位和低两位分别转化为十进制,并与ip地址的中间两个字段分别相対应。以自治域as4813为例: 4813->12cd(hex.); 12(hex.)->18, cd(hex.)->205; assigned multicast address scope: 233.18.205.0/242.2.4运营商组播地址分配原则运营商组播地址分配原则如下:所有组播ip地址由运营商总部统一规划和分配。合理分配组播ip地址,提高组播

33、ip地址的利用率。组播ip地址分配应考虑近期和远期的发展,减少在网络发展过程中应地址重新规划对业 务的影响。组播公有ip地址和组播保留ip地址混用。全球性和全国性组播应用使用组播公有ip地址;运营商网内的组播应用优先使用组播公 有ip地址,根据实际情况可以使用组播保留ip地址。2.3组成员关系协议2.3.1 igmpigmp协议运行于主机和与主机直接相连的组播路由器之间,主机通过此协议告诉本地 路由器希望加入并接受某个特定组播组的信息,同吋路由器通过此协议周期性地查询局域网 内某个已知组的成员是否处于活动状态(即该网段是否仍有属于某个组播组的成员),实现 所连网络组成员关系的收集与维护。igm

34、p有三个版本,igmpvl由rfc1112定义,目前通用的是igmpv2,由rfc2236定 义。igmpv3目前仍然是一个草案。igmpw中定义了基本的组成员查询和报告过程,igmpv2 在此基础上添加了组成员快速离开的机制,igmpv3中增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。这里着重介绍igmpv2协议的功能。igmpv2通过查询器选举机制为所连网段选举唯一的查询器。查询器周期性的发送普遍 组查询消息进行成员关系查询;主机发送报告消息来应答查询。当要加入组播组吋,主机不 必等待查询消息,主动发送报告消息。当要离开组播组时,主机发送离开组消息;收到离开 组消息后,查询

35、器发送特定组查询消息来确定是否所有组成员都己离开。另外,对于作为组成员的路由器而言,该路由器的行为和普通的主机一样,它响应其它 路由器的查询。通常本协议中,“接口”指在一个所连网络上的主接口,若一个路由器连在同 一个网络上的接口有多个,则只需要在其中一个接口上运行此协议即可。另一方面,对主机 而言,则需要在有组成员的所有的接口上都运行此协议。通过上述igmp机制,在组播路由器里建立起一张表,其中包含路市器的各个端口以及 在端口所对应的子网上都有哪些组的成员。当路由器接收到某个组g的数据报文后,只向那 些有g的成员的端口上转发数据报文。至于数据报文在路由器之间如何转发则由路由协议决 定,igmp

36、协议并不负责。2.3.2 igmp snoopingigmp snooping (igmp监听)的工作原理如下: 主机发出igmp成员报告消息,这个消息是给路由器的;在igmp成员报告经过交 换机时,交换机对这个消息进行监听并记录下来,形成组成员和端口的对应关系; 交换机在收到组播数据报文时,根据组成员和端口的对应关系,仅向具有组成员的端口转发组播报文。图21 igmp snooping实现示意图这个原理看似简单,但实现起來相当复杂。首先,要求交换机具有提取笫三层信息的功 能;其次,要求交换机对所有的组播报文进行监听和解读,这会产生很多的无效工作;此外, 监听和解读工作会占用大量的cpu处理时

37、间。这种技术的实现方式是在以太网交换机上增加一个cpu,分析由用户发给上行端口的 所有报文,通过解析igmp报文,得到组员与mac地址对应表。在具体应用时,网络需要配 置指定上行端口。igmp最原始的设计是在共-亨介质(如ethernet)上运行的。以太网接入应该是一个汇 聚模型,所有用户一般需要访问上行端口。这种方式需要分析所有其他端口的上行报文。一 般来说,用户上网的主要数据流量是下行数据,上行数据流量相对不多(参考adsl不对称 流量模型)。所以,这种方式的主要开销是利用专用cpu分析上行数据流,单位用户的数 据量约为10kbpso cpu处理程序把分析结果加到上行端口的mac转发表里,

38、完成对二层组 播数据的正确转发。2.3.3 igmp proxyigmp proxy (igmp代理)扮演着类似igmpsnooping的角色,能够简单地完成网络末 端组播包的透明传递和分发,终端用户感觉不到与实际应用时的不同。igmp proxy与igmp snooping实现同样的功能,允许不是直接相连运行组播路由协议的路由器的主机能加入上 行网络的组播源。但igmp snooping只是通过侦听igmp的消息来获取有关信息,对igmp 本身不做改变;而igmp proxy拦截了终端用户的igmp请求进行相关处理,再将它转发给上 层路由器。router图2.2 igmp proxy实现示意

39、图igmp proxy的基本原理: 将朝着根(指组播生成树的根)方向的路由器端口定义为上行“端口”,也叫“主 机端口”,执行igmp协议的主机部分功能。被查询吋这些端口负责发送igmp成 员报告消息,并在成员数据库改变时主动发送报告或离开消息。 将背向根方向的路由器端口定义为下行“端口”,也叫“路由器端口”,执行igmp 协议的路由器部分功能。路rh器为所有有组播请求的下行端口维护着一个“成员数 据库”。 成员数据库是所有成员记录的集合,记录内容包括:组地址,过滤模式(包括 include,排除exclude),源列表。每条记录是下行端口上对某一组地址有兴趣的 所有客户的合并结果。 对上行端口

40、收到的数据包,路由器根据下行端口的组播请求情况和该路由器是否在 该端口充当igmp查询器,将包转发到下行端口。而对任何下行端口來的数据包, 路由器会同样根据下行端口的组播请求情况和该路由器是否在该端口充当igmp查 询器将它转发到上行端口,并转发到包进来的端口之外的其它下行端口。2.3.4 cgmpcgmp(cisco group management protocol)是cisco开发的私有协议,它是基于客八机 /服务器模型的。路由器被看作是一台cgmp服务器,而交换机则担当客户机的角色,它使 catalyst交换机可以从cisco路市器和第3层交换机了解到多点广播客户机的存在。路由器将 i

41、gmp消息翻译成cgmp命令,然后交换机的nmp执行这些命令并用它们形成earl的有正 确组播条目的转发表。既然主机和路由器用的是众所周知的ip组播地址,earl可被预先编 制以引导igmp控制包到达路由器和交换机的nmp。cgmp的基础是:ip多点广播路由器可 看到所有的igmp数据包,因此它能够通知交换机哪些主机何时加入和脱离多点广播组。交 换机于是利用这些信息来构建一张转发表。当路由器看到一个igmp控制包时,它就产生一个cgmp数据包。这个cgmp数据包包 含了请求类型(加入或脱离)、多点广播组地址,以及客户机的实际mac地址。该数据包 被发送到一个所有交换机都会监听的知名地址。然后每

42、台交换机会自行对这个数据包进行解 释并在转发表小建立正确的条目。cgmp的帧是snap封装的以太帧,目的mac地址为:01000cdddddd , snap头 的type值为0x2001 o cgmp帧包含下列域: 版本号:1or2 消息类型:join or leave count:组播/单播地址对数目 gda:组播组的48位mac地址 usa:耍加入gda的设备的48位单播mac地址2.3.4.1加入组过程要求组播流暈的新客户发送igmp成员报告消息,路市器收到igmp报告进行处理,并 生成一个cgmp消息。路由器将冃的mac地址拷进cgmp加入消息的gda域,并将源mac 地址拷进cgmp

43、加入消息的usa域;路由器通过周知的cgmp组播mac地址 01-00-0c-dd-dd-dd向交换机发送这个cgmp消息,支持cgmp的交换机侦听到cgmp加入 消息,在cam表中查找usa: 旦找到则交换机就知道了usa所在的端口,然后为该gda 创建新的静态条目,将usa端口链接到他所属的所有路由器端口,或者只是将usa端口链 接到该gda的端口列表中(如果静态条目己存在)。2.3a.2离开组过程通过cgmp学到的静态条目是永久的,除非vlan屮出现生成树拓扑改变,或当路由器 发出删除组或删除所有组消息时,或当一个交换机线路卡被拔除/插入时。采用igmp version 1的主机是不发送

44、igmp离开消息的,只在连续三次没收到igmp的应答消息后路由器会发 离开消息,这意味着如果有任何用户还对组有兴趣就不会有端口被清除。因为igmp version 2引入了离开消息,cisco将快速离开(fastleave)加进了原始规范,形成了cgmpv2ocgmp fast-leave进程允许交换机探测igmp v2的离开消息。交换机拦截到igmp离 开组消息时,通过确保该网段/端口是否还有其它组成员进行相应处理。如果仍然有成员存 在,就取消对端口的探测;如果在该端口上没有成员响应,交换机就检查本机的其他端口。 如果发现有一个成员,一切照旧;如果没有成员存在,交换机将启动fast-leav

45、e机制: 交换机在收到离开组消息的端口上发igmp通用查询(使用通用查询而不是igmpv2组特别查询,目的是让igmpvl主机也能响应) 因为没有成员响应查询,交换机自己向路由器发igmp离开组消息。 路由器收到离开组消息,发送一个特定组的igmpv2组特别查询消息启动一个正常 的删除过程,并查看是否还有余留的组成员存在 既然没有收到回应,路由器就从组播路由表中删除这个组;同时发送cgmp离开 消息到交换机,交换机将从静态表中删除该组。这种fast丄eave过程为交换网络川的主机保证了最佳带宽管理,尽管多个组播组在同 时使用。router图23 cgmp实现示意图所谓“sourceonly ”

46、网络是只有组播源没有实际客户的网段,因而可能在该网段没有 igmp报告消息产生。然而,cgmp仍然碍要限制源的扩散。如果路由器监测到没有igmp 报告消息的端口上有组播流吋,它就认为是一个“sourceonly ”网络。路由器为自己产生一个cgmp加入消息,交换机简单地把这个路由器端口加入组中。在上图中,客户机以向视频服务器发送一个igmp加入消息來开始。当其下一跳路由器 接收到这个igmp加入消息吋,它会记录下该igmp消息中的源mac地址,并且向其下游的 catalyst交换机发送一个cgmp加入消息。catalyst交换机用这个cgmp消息动态地在交换 表屮建立一个条目,该交换表将多点广

47、播数据流映射到客户机所连接的交换端口。在这个例 子里,服务器发出的1. 5mbit/s的视频流只被传输到那些在交换表中的交换机端口,那些没 有连接该多点广播组中任何成员主机的交换机端口不会传送这个视频数据流。2.3.5 gmrpgmrp是garp多点广播注册协议的缩写,作为一种解决方案,ieee在802.1p/q规范 中包括了一项gmrp定义ogmrp从根本上使组播用户可以在第二层交换机上对多点广播成 员进行注册,注册方式与它们利用igmp向第三层交换机和路由器注册相同。router:x:图2.4 gmrp实现示意图组播用户注册的是第二层多点广播媒介控制(mac)地址,第三层多点广播注册通过

48、igmp传到路由器上,而第二层mac注册则利用gmrp进行传输。作为一种garp应用, gmrp依赖于garp的传输层协议服务。需要注意的是:在使用gmrp吋,网络管理员需要在第二层交换机、pc以及服务器的 网络接口卡中规定对gmrp的支持,即对802.1 d-1998的支持。gmrp是主机到以太网交换机的标准协议,但由于它需要用户和交换机同时支持,需要 对用户终端做规定,目前应用并不广泛。现在微软公司的windows 2000的某些功能包己经支持garp、gmrp协议。2,4域内组播路由协议与单播路由一样,组播路市也分为域内和域间两大类。域内组播路由目前已经讨论的相 当成熟,在众多的域内路由

49、协议中,pim-sm (protocol independent multicast-sparse mode,稀疏模式协议无关组播)、pim-dm (protocol independent multicast-dense mode,密集模式协议无关组播)和dvmrp (distance vector multicast routing protocol,距离向量组播路由协议)是目前应用最多的协议。2.4.1 pim-sm在pim-sm域屮,运行pim-sm协议的路由器周期性的发送hello消息,用以发现邻接的 pim路由器,并且负责在多路访问网络屮进行指定路由器(dr)的选举。这里,dr负责

50、为其 直连组成员朝着组播分发树根节点的方向发送“加入/剪枝”消息,或是将直连组播源的数据发 向组播分发树。pim-sm通过建立组播分发树来进行组播数据包的转发。组播分发树分为两种:以组g 的rp为根的共享树和以组播源为根的最短路径树。pim-sm通过显式的加入/剪枝机制来完 成组播分发树的建立与维护。当dr具有组g的活动成员时,则向着组g的rp方向逐跳组播加入消息用以加入共享树。 当本次加入沿着树上行进行时,沿途的路由器建立组播转发状态,以使组播数据可以沿着树 下行转发。这些状态被称为组播路由项,简称路由项。路由项可以包括下列字段:源地址、 组地址、组播数据包的入接口,组播数据包的出接口列表、

51、定时器、标志位等。当不再需要 组播数据时,dr向着组g的rp逐跳组播剪枝消息用以剪枝共享树。当本次剪枝沿着树上行 进行时,沿途的路由器适当的更新它的路由项,例如适当删除出接口等操作。分发树上的路 由器要向着这个组的rp周期性地发送适当的加入/剪枝消息,用以维护组播分发树状态。源主机向组发送组播数据吋,源的数据被封装在注册消息内,并由其dr单播至rp。rp再将源的解封装数据包沿着共享树转发到各个组成员。之后,rp可以朝着源方向发送源 特定的加入/剪枝消息,用以加入此源的最短路径树。这样源的数据包将沿着其最短路径树 不加封装地发送到rp。当第一个组播数据沿此树到达时,rp向源的dr发送注册停止消息

52、, 以使dr停止注册封装过程。此后,这个源的组播数据不再注册封装,而是先沿着源的最短 路径树发送到rp,再由rp将其沿着共亭树转发到各个组成员。若达到一定的数据传送速 率,具有本地接收者的路由器也可以发送显式的加入消息来加入源的最短路径树,并对以 rp为中心的共享树进行适当的更新,例如删除相应的出接口等操作。pim-sm中还涉及到其根节点rp的选择机制。pim-sm域内配置了一个或多个候选自举 路由(candidate-bsr)o应用一定的规则从小选出自举路由器但sr)。pim-sm域屮还配置 了候选rp路由器(candidate-rp),这些候选rp将包含了它们地址及可以服务的组播组等 信息

53、的包单播至自举路由器。bsr定期生成包括一系列候选rp以及相应的组地址的“自举” 消息。“自举”消息在整个域中逐跳发送。路由器接收并保存这些“自举”消息。若dr从直 连主机收到了某组的成员关系报告后,如果它没有这个组的路由项,dr将使用一个hash 算法将组地址映射至一个可以为该组服务的候选rp。然后dr将朝rp方向逐跳组播“加入 /剪枝”消息。若dr从直连主机收到组播数据包,如果它没有这个组的路由项,dr将使用 hash算法将组地址映射至一个可以为该组服务的候选rp.,然后dr将组播数据封装在注册 消息中单播到rp。pim-sm在多路访问网络中,除了涉及dr的选举外,还引入了以下机制:使用断

54、言机制 来选举唯一的转发者以防向同一网段重复转发组播数据包;使用加入/剪枝抑制机制来减少 兀余的加入/剪枝消息;使用剪枝否决机制来否决不应该的剪枝行为。2.4.2 pim-dm在pim-dm域屮,运行pim-dm协议的路市器周期性的发送hello消息,用以发现邻接的 pim路由器,进行叶子网络、叶子路由器的判断,并且负责在多路访问网络中进行指定路由 器(dr)的选举。pim-d m协议为密集模式协议,缺省认为当组播源开始发送组播数据时,域内所有的网 络节点都需要接收该数据。因而,pim-dm采用扩散剪枝的方式进行组播数据包的转发。组 播源开始发送数据时,沿路路由器向除朝着源的rpf接口z外的所

55、有接口转发组播数据包。 这样,pim-dm域中所有网络节点都会收到这些组播数据包。为了完成组播转发,沿路的路 由器筒要为组g和它的源s创建相应的组播路由项(s, g)。(s, g)路由项包括组播源地址、 组播组地址、入接口、出接口列表、定吋器和标志等。如果网络屮某区域没有组播组成员,pim-dm协议会发送剪枝消息,将通往该区域的转 发接口剪枝,并且建立剪枝状态。剪枝状态对应着超时定时器。当定时器超时时,剪枝状态 又重新变为转发状态,组播数据得以再次沿着这些分支流下。另外,剪枝状态包含组播源和 组播组的信息。当剪枝区域内出现了组播组成员时,为了减少反应时间,协议不必等待上游 剪枝状态超时,而是主

56、动向上游发送嫁接报文,以使剪枝状态变为转发状态。pim-dm在多路访问网络中,除了涉及dr的选举外,还引入了以下机制:使用断言机 制来选举唯-的转发者以防向同一网段重复转发组播数据包;使用加入/剪枝抑制机制来减 少冗余的加入/剪枝消息;使用剪枝否决机制来否决不应该的剪枝行为。2.4.3 dvmrpdvmrp是第一个在mbone上得到普遍使用的组播路由协议,它在rip协议的基础上扩 充了支持组播的功能,是一个密集模式协议。dvmrp协议首先通过发送探测消息来进行邻 居发现,之后通过路由交换来进行单播寻径和确定上下游依赖关系。dvmrp采用逆向路径组播(rpm)算法进行组播转发。当组播源第一次发送

57、组播报文时, 使用截断逆向路径广播算法沿着源的组播分发树向下转发组播报文。当叶子路由器不再需要 组播数据包时,它朝着组播源发送剪枝消息,对组播分发树进行剪枝,借此来去除不必要的 通信暈。上游路由器收到剪枝消息后将收到此消息的接口置为剪枝状态,停止转发数据。剪 枝状态关联着超时定时器,当定时器超时时,剪枝状态又重新变为转发状态,组播数据得以 再次沿着这些分支流下。另外,当剪枝区域内出现了组播组成员时,为了减少反应时间,下 游不必等待上游剪枝状态超吋,而是主动向上游发送嫁接报文,以使剪枝状态变为转发状态。 可见,dvmrp是由数据触发驱动,建立组播路由表,而路由树的建立过程可以概括为“广 播与剪枝”(broadcast and prune)。在转发特点上为被动接受,主动退出。另外,在多路访问网络中,当有两个或多个的组播路由器时,网络上可能会重复转发包。 为了防止此现象出现,在多路访问网络上,dvmrp为每个源选择了一个唯一的转发器。2.5域间组播路由协议域间组播冃前仍然处于一个研究阶段,冃前比较成型的解决方案是下面三个协议的组 合:mbgp (组播边缘网关协议),用于在自治域间交换组播路由信息;msdp (组播信源发现协议),用于在isp之间交换组播信源信息;pim-sm,用做域内的组播路由协议。由于pi

温馨提示

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

评论

0/150

提交评论