资源描述
信息工程学院
实用网络设计与配置课程设计报告
题目: 网络组播协议的分析与设计
专业:信息管理与信息系统 班级:12级
姓名: 张晓 学号: 1214210129
完成时间: 2014 年 7 月 2 日
指导教师: 李红卫
一、 选题题目和意义
随着网络技术的不断完善和发展, 以全球互联网(internet)为代表的各种网络在近十年得到了迅猛的发展。网络带宽越来越高, 用户数量越来越多, 视频点播(VOD/AOD)、远程教学、新闻发布、网络电视,多站点文件传输、多媒体远程教育、计算机支持的协同工作等新类型的多媒体业务将成为新一轮运营竞争的焦点,在这种情况下, 采用传统的客户服务器模型将重浪费网络资源, 相同的数据可能在网上传播很多次, 在一些带宽较低的链路上, 极可能引起严重的通信瓶径,就必然带来了网络拥挤问题。为了缓解网络瓶颈, 人们提出各种方案, 主要包括采用:链路聚合技术, 以增加互连带宽采用服务器的集群技术,以改变网络流量结构、减轻主干网的瓶颈应用QOS机制, 把带宽分配给一部分应用采用IP组播技术,有效解决网络的拥塞等,IP组播技术以其独特的优越性使它成为当前网络多媒体信息技术的佼佼者。
目前,使用得最为广泛的组播技术是IP Multicast。IP组播技术是一种为优化使用网络资源而产生的技术,通常用于多点工作方式下的应用程序中,它是标准IP网络层协议技术的一个扩展。
从Steve Deering于1989年提出的IETF的RFC1112“Host Extension for IP Multicast”中的定义我们可以得知:IP组播的核心思想是——通过一个IP地址向一组主机发送数据(UDP包)。发送者仅仅向一个组地址发送信息,接收者只需加入到这个分组就可以接收信息,所有的接收者接收的是同一个数据流,组中成员是动态的,可以根据自己的意愿随时随意加入或退出。每一台主机都可以同时加入到多个组中,每一个组播地址可以在不同的端口或者不同的套接字(Socket)上有多个数据流,同时许多实际应用可以共享一个组地址。IP组播技术可以有效地避免重复发送可能引起的广播风暴,并且能够突破路由器的限制,将数据包传送到其它网段。
二、 主要研究内容
1. IP组播
IP组播是指一个IP报文向一个“主机组”的传送,这个包含零个或多个主机的主机组由一个单独的IP地址标识。主机组地址也称为“组播地址”,或者D类地址。除了目的地址部分,组播报文与普通报文没有区别,网络尽力传送组播报文但是并不保证一定送达。
主机组的成员可以动态变化,主机有权选择加入或者退出某个主机组。主机可以加入多个主机组,也可以向自己没有加入的主机组发送数据。主机组有两种:永久组和临时组。永久组的IP地址是周知的,由Internet管理机构分配,是保留地址。临时组的地址则使用除永久组地址外的非保留D类地址。
IP组播分组在互联网上的转发由支持组播的路由器来处理。主机发出的IP组播分组在本子网内被所有主机组成员接收,同时与该子网直接相连的组播路由器会把组播报文转发到所有包含该主机组成员的网络上。
2. IP组播技术体系结构
组播协议分为主机-路由器之间的组成员关系协议和路由器-路由器之间的组播路由协议。组成员关系协议包括IGMP(互连网组管理协议)。组播路由协议分为域内组播路由协议及域间组播路由协议。域内组播路由协议包括PIM-SM、PIM-DM、DVMRP等协议,域间组播路由协议包括MBGP、MSDP等协议。同时为了有效抑制组播数据在链路层的扩散,引入了IGMP Snooping、CGMP等二层组播协议。
IGMP建立并且维护路由器直联网段的组成员关系信息。域内组播路由协议根据IGMP维护的这些组播组成员关系信息,运用一定的组播路由算法构造组播分发树进行组播数据包转发。域间组播路由协议在各种自治域间发布具有组播能力的路由信息以及组播源信息,以使组播数据在域间进行转发。
3.组播和单播的区别
为了让网络中的多个主机可以同时接受到相同的报文,如果采用单播的方式,源主机必须不停的产生多个相同的报文来进行发送,对于一些对时延很敏感的数据,在源主机要产生多个相同的数据报文后,在产生第二个数据报文,这通常是无法容忍的。而且对于一台主机来说,同时不停的产生一个报文来说也是一个很大的负担。如果采用组播的方式,源主机可以只需要发送一个报文就可以到达每个需要接受的主机上,这中间还要取决于路由器对组员和组中关系的维护和选择。
4.组播技术的优缺点
(1)优点:增强效率,控制网络流量,减少服务器和CPU负载;优化性能,消除流量冗余;分布式应用,使多点传输成为可能;
(2)缺点:组播应用基于UDP;尽最大努力交付;无拥塞控制;数据包重复;数据包的无序交付;
5.组播PIM DM模式
PIM-DM 能够使用由 OSPF 、 IS-IS 、 BGP 等产生的单播路由表。同时在执行 RPF 检查时, PIM-DM 也能够通过配置使用由 MBGP 或 M-ISIS 产生的指定组播 RPF 表。
ISP 特别需要 PIM-DM 所具有的能使用任意底层单播路由协议的能力,因为它不需要为 RPF 检查引入和管理一个独立的路由协议。单播路由协议扩展为多协议边界网关协议(MBGP)和 IS-IS 多协议路由(M-ISIS)后就被用来建立指定表来完成RPF 检查,但是 PIM-DM 不需要它们。
6.组播PIM DM与PIM SM模式的比较
PIM-DM 主要被设计用于组播局域网应用程序,而 PIM-SM 主要用于一个大范围内的域间网络,PIM-SM模式和PIM-DM模式除了在发现其组成员的方式上不同之外,记录路由表的方式也不一样,例如网络中有一个组,地址为:224.1.1.1,发送者为100.1.1.1,PIM-SM模式记录为(*,224.1.1.1),可以看出,PIM-SM模式并不关心组播的源地址,而统统将源地址使用星号*来表示,这样一来,PIM-SM为一个组只记录一个条目,而不管这个组有多少个发送者。这样的记录方式称为(*,G) ,其中*就是组播源地址,G就是组地址。如果有10个组,每个组有5个发送者,使用(S,G)的记录方式,需要记录10×5=50条,而使用(*,G)的记录方式,则只需要10条,所以使用PIM-SM模式,可以大大缩减组播路由表的空间,从而大大节省系统资源。 PIM-SM模式不仅需要记录(*,G)信息,也和PIM-DM模式一样需要记录在该组中,哪些接口是出口,从此接口将数据发给接收者。但是与PIM-DM模式不同的是,PIM-SM模式只记录连接着接收者的接口,其它没有接收者,不需要接收组播的接口是不会被记录的。比如路由器上有5个接口有PIM邻居,其中只有一个是出口,再去掉1个RPF接口,还剩3个PIM接口是不需要接收组播的,在 PIM-DM模式中,会记录下一个RPF口和一个forwarding状态的出口,以及三个不需要接收组播的pruning状态的接口,而在PIM-SM模式中,只会记录一个RPF口和一个forwarding状态的出口,其它的都不作记录,因此,PIM-SM模式的接口记录方式会比PIM-DM模式更省资源。
在PIM-SM中,因为(*,G)形式的记录中不知道组播源的地址,也就无法完成RPF检测,但是又由于接收者收到的数据,都应该是RP发来的,路由器也就认为PIM-SM中的组播源地址,就是RP的地址,在这种情况下,路由器会以RP的地址为源地址做RPF检测,但是在下面的拓朴图中,就会出现问题:
如上图所示,当所有路由器都认为RP地址23.1.1.3就是组播源地址时,这样去做RPF检测,在R4上检测时,因为R4的路由表中会显示从接口S0/0出去可以到达23.1.1.3,所以组播从R4的S0/0被发进来时,则RPF检测可以通过,所以在R4上没有任何问题。 当在R2上做RPF检测时,因为R2的路由表中显示到达23.1.1.3应该从接口F0/1出去,所以R2只会接收从接口F0/1发进来的组播,从其它接口发进来的,都会被认为是环路而被丢弃。因此在真正的源12.1.1.1将组播从R2的F0/0发进来时,R2会因为RPF检测失败,从而丢弃所有的组播数据,这样一来,组播也就无法通信了。
在PIM-SM中,组播源没有机制用来宣告自己的存在,又因为PIM路由器都认为RP才是组播源,而当直接的组播源向RP发送组播时,会导致某些路由器RPF检测失败,因此在PIM网络中,真正的源需要向RP发送注册消息,以宣告自己的存在,而发送注册消息在多路访问的网络中则是由DR来代为完成的。真正的源向RP发出第一个组播包时,DR将此包封装在单播中发向RP,这称为注册,发送的注册消息会从DR到RP之间建立一条源树,也就是(S,G)的记录,这样,在源到RP之间创建的源树就可以帮助避免RPF检测失败,当RP和真正的源之间创建(S,G)条目之后,就会通知DR停止以单播发送,从而转回发送真正的组播。因为由于误认为RP是源而导致RPF检测失败的情况,只有在RP到源这段上游网络中的路由器才会存在,而RP到组成员的这段网络中是不会出现这种情况的。由此可以想象得出,当源所在的网络需要向RP发送数据包时,应该将DR的位置选为最靠近RP的路由器,否则也会因为RPF检测失败而导致组播不通。
6. 组播地址
IP组播地址,或称为主机组地址,由D类IP地址标记。D类IP地址的最高四位为“1110”,范围从224.0.0.0到239.255.255.255。如前所述,部分D类地址被保留,用作永久组的地址,这段地址从224.0.0.0-224.0.0.255。
临时主机组的组播地址由网络管理员选择,他需要保证这个地址在一定的范围内没有其他的主机组在使用这个组播地址。
第2层的组播地址(组播MAC地址)可以从IP组播地址中衍生。计算方法是把IP地址的最后23位拷贝到MAC地址的最后23位,然后把这23位前面的那一位置为0。MAC地址的前24位必须为0x01-00-5E。
7.Internet组管理协议(IGMP)
IGMP协议由主机成员关系协议发展而来,目前有两个版本:IGMP(RFC1112),IGMPv2 (RFC2326)。主机使用IGMP消息通告本地的组播路由器它想接收组播流量的主机组地址。如果主机支持IGMPv2,它还可以通告组播路由器它退出某主机组。组播路由器通过IGMP协议为其每个端口都维护一张主机组成员表,并定期的探询表中的主机组的成员,以确定该主机组是否存活。
IGMP消息被置于IP报文中传送。IGMPv1中定义了两种消息类型:主机成员询问和主机成员报告。当某主机想要介绍某个组播流量时,它向本地的组播路由器发送"主机成员报告"消息,告知欲接收的组播地址。组播路由器收到"主机成员报告"消息后把该主机加入指定的主机组,并在设定的周期内向组播地址224.0.0.1(代表所有支持组播的主机) 发送"主机成员询问"消息。主机如果还想继续接收组播流量,必须发送"主机成员报告"消息。
三、方案设计
1.PIM-DM
向下传输,流量会贯穿整个网络,在不需要接受数据的节点路由器会进行裁减,支持所有的路由协议,应用于试验网络和路由测试。
2.试验拓扑图(如图1-1)
图1-1
3.设计网段
S2-R2 :26.0.0.0/8
R2-R3 :23.0.0.0/8
R2-R4 :24.0.0.0/8
R3-R4 :34.0.0.0/8
R3-S1 :43.0.0.0/8
R4-S1 :43.0.0.0/8
S1-R1 :15.0.0.0/8
四、主要设备命令配置
1.路由器R2的配置
分别在R2、R3、R4、S1中启用RIP协议(以R2为例命令如下):
R2#conf t
R2(config)#router rip
R2(config router)#ver 2
R2(config router)# network 26.0.0.0
R2(config router)# network 23.0.0.0
R2(config router)# network 24.0.0.0
查看R2的路由表协议(如下图2-1):
图2-1
分别在R2、R3、R4、S1上配置PIM Dense(以下是以R2为例):
R2(config)#ip multicast-routing
R2(config)#int f1/0
R2(config if)#ip pim dense-mode
R2(config if)#exit
R2(config)#int s2/0
R2(config if)#ip pim dense-mode
R2(config if)#exit
R2(config)#int s2/1
R2(config if)#ip pim dense-mode
在R2上查看那个接口在运行PIM协议(如图2-2):
图2-2
图2-2中各列分别是路由本地接口的IP地址、接口名称、运行的PIM版本、该接口的PIM邻居数量、Hello包发送的时间间隔和RD路由器。
在R2上查看PIM邻居情况(如图2-3):
图2-3
图2-3中各列分别是邻居的IP、路由器本地连接的IP、、邻居关系建立时间、版本和DR路由器优先级。
2.路由器R3的配置
查看R3的路由表协议(如下图3-1):
图3-1
在R3上查看那个接口在运行PIM协议以及查看PIM邻居情况(如图3-2):
图3-2
3.路由器R4的配置
查看R4的路由表协议(如下图4-1):
图4-1
在R4上查看那个接口在运行PIM协议以及查看PIM邻居情况(如图4-2):
图4-2
4.路由器R1的配置
将R1加入到组239.1.1.1的配置命令如下:
R2(config)#int f1/0
R2(config if)#ip igmp join-groups 239.1.1.1
5.交换机S1的配置
查看S1的路由表协议(如下图5-1):
图5-1
在S1上查看那个接口在运行PIM协议以及查看PIM邻居情况(如图5-2):
图5-2
在S1上产看R1的组成员(如图5-3):
图5-3
五、测试结果与分析
1.在S2上产生组播数据,以S2作为组播源(如图6-1):
图6-1
2.在R2上查看组播路由表(如图6-2):
图6-2
如图6-2所示,路由器R2的S2/0端口处于修剪状态(Prune/Dense),S2/1端口处于转发状态(Forward/Dense)。
3.在R3上查看组播路由表(如图6-3):
图6-3
如图6-3所示,路由器R3的F1/0端口和S2/2端口都处于修剪状态(Prune/Dense)。
4.在R4上查看组播路由表(如图6-4):
图6-4
如图6-4所示,路由器R4的S2/2端口处于修剪状态(Prune/Dense),F1/0端口处于转发状态(Forward/Dense)。
5.在S1上查看组播路由表(如图6-5):
图6-5
如图6-5所示,交换机S1的F1/1端口处于转发状态(Forward/Dense)。
6.综合以上的组播路由表,可以画出组播流流向和接口的修剪状态(如图6-6):
图6-6 组播数据流向
由于R3、R4的F1/0端口连接在一起,会发送Assect消息,而在R4的26.0.0.0/8路由中的度量值(Metric)小于R3的26.0.0.0/8路由中的度量值(Metric),所以R4获胜,R3的F1/0接口处于修剪状态。R3和R4的S2/2链路上没有组成员,所以也会相互修剪。这样R3没有接口处于转发状态,它向R2发送修剪消息,R2的S2/0接口被修剪。
六、设计总结
本次课程设计我完成了组播PIM DM模式的配置,对组播技术有了进一步的了解,组播PIM DM模式即为协议无关密集式组播。此次我设计的组播实现了只有加入该组成员的接受者能够接受到源主机所发送的组播数据,当有组播源出现时,路由假设所有的网络都是组成员(接受者),把组播流量进行泛洪,全部网络就有了组播流量。各个路由器会紧接着查询自己的接口上是否有这个组的成员存在,如果没有成员,就停止住这个接口的组播数据流的转发,同时它向上游路由器发送消息,把它送转发树上修剪掉。一级一级的往上发送消息,最终组播路由协议就将构建一颗以源为根、不会有多余流量存在的转发树,即有源树(SPT)。
通过本次课程设计,我不仅对组播技术有了深入的了解,而且熟悉了GNS3软件的基本运用。
七、参考文献
[1] 梁广民,王隆杰,编著.思科网络实验室路由交换试验指南.北京:电子工业出版社,2013.
[2] 梁广民,王隆杰,编著.思科网络实验室CCNP(交换技术)试验指南. 北京:电子工业出版社,2012.
[3] [美]Cisco Systems公司,著.TSHOOT 624-823 Foundation Learning Guide.2010.
[4] 顾金星,张拥军,南亲良,等,译.IP组播网络设计开发(第一卷).北京:电子工业出版社,2000.
[5] 孙建华,等,编著.实用网络设计与配置.北京:人民邮电出版社,2010.
指导教师意见:
签名:
年 月 日
成绩评定:
展开阅读全文