《第11章ip组播》由会员分享,可在线阅读,更多相关《第11章ip组播(44页珍藏版)》请在金锄头文库上搜索。
1、第11章 IP组播,11.1 IP组播概念 11.2 IP组播模型 11.3 Internet组管理协议(IGMP) 11.4 组播路由 11.5 组播路由协议,1988年Deering提出在IP层引入组播功能。 IP 组播技术有效地解决了点到多点通信的问题。,11.1 IP组播概念,传统的IP通信有两种方式: 单播unicast在一台源主机和一台目的主机之间进行。 广播broadcast在一台源主机和网络中所有其它主机之间进行。 如果要将信息发送给网络中的多个主机: 1如果采用广播方式,会将信息发送给不需要的主机而浪费带宽。 2如果采用单播方式,源主机分别向多个主机以单播方式发送IP 包,I
2、P 包的重复发送也会浪费掉大量带宽,也增加了网络设备的负载。,因此无论采用广播还是单播,都不能有效地解决单点发送多点接收的问题。 IP 组播:源主机只发送一份数据,数据的目的地址为组播组地址(D类地址:224235)。只有组播组中的成员才会接收到同样的数据拷贝。,组播数据包,组播数据包,组播数据包,组播数据包,IP 组播的优点: 1 控制网络流量,使网络性能更优化; 2 支持分布式应用,例如视频会议、远程学习、分布式数据库等等。,11.2 IP组播模型,组播时源主机构造一个以D类地址为目的地址的数据包,以尽力而为的方式转发到组播组中的各个成员。 D类地址是专为IP组播而定义的。每个组播地址都位
3、于224.0.0.0到239.255.255.255的范围内。,D类地址空间中的一部分作为特殊组播地址(例如:224.0.0.1代表该子网内所有系统;224.0.0.2代表该子网内所有路由器; 224.0.0.5代表该子网内所有支持OSPF v2路由器; 224.0.0.9代表该子网内所有支持RIP v2路由器,等等)。而其余的地址可以在组播的时候动态分配。,分组的目的地址为组播地址时,不能使用ARP协议得到对应的物理地址。为此,一些物理网络(以太网或根据IEEE802.2标准实现的环形网和总线网)提供了将IP组播地址映射为物理组播地址的方法。 例如,在以太网中,IP组播地址可以用映射为以太网
4、组播地址。以太网规定:如果以太网物理地址的前25位为 00000001 00000000 01011110 0 ,则为物理组播地址。 因此,以太网组播地址范围为01.00.5E.00.00.00 01.00.5E.7F.FF.FF。它的后面23位来自于IP组播地址后23位。 例如:IP组播地址224.66.60.89 (其2进制为:11100000.01000010.00111100.01011001) 映射到以太网的组播地址为: 00000001 00000000 01011110 01000010 00111100 01011001 01. 00. 5e. 42. 3c. 59,但如果组播
5、组成员所在网络只支持广播而不支持组播,则将IP组播地址简单映射为本地物理广播地址。 同一般路由器一样,组播路由器的作用是对组播数据进行寻路和转发,这类路由器及链路在网络中形成了一个传送组播数据的逻辑结构,称为组播传递树。,IP组播模型如图12-2所示。 组播协议可分为路由器-路由器之间的各种组播路由协议,以及主机-路由器之间的组管理协议。,11.3 Internet组管理协议(IGMP),Internet Group Management Protocol IGMP v1在RFC 1112中定义。 主机向本地的组播路由器发送成员报告报文来加入某个组。组播路由器中有一个组播列表,里面可有多个组,
6、每个组至少有一个的成员。组播路由器定期在本地发送一般查询报文,以确认各个组是否还有成员存在。 RFC 2236定义了IGMP v2,它引入了一些增强的新功能来提高IGMP的效率。,特殊查询和离开报告报文是IGMPv2新增的报文。 特殊查询报文可以查询一个特定组播组的成员情况,离开报文可使主机立即离开一个指定的组播组。,IGMP v2报文分类,IGMP报文格式 IGMP是网络层的协议,IGMP报文通过IP数据报进行传输,IP首部中协议字段值为2表示所携带的是IGMP报文。图12-3显示了IGMP报文如何封装在IP数据报中。,8字节,IGMP类型,最大响应时间,校验和,8,16,31,32位组播地
7、址,IGMP类型:0x11一般或特殊查询;0x16成员报告; 0x17离开报告。,最大响应时间:定义了查询必须在多长时间内应答,以1/10秒为单位。,校验和:对8字节的报文计算校验和。,组播地址:在一般查询报文中这个字段为0,在特殊查询报文、成员报告和离开组报文中,该字段放置相应的IP组播地址。,网络上的组播路由器有一个组播地址表,内含多个组以及各组的成员名单。组成员可以是主机或路由器。 主机或路由器可以向本地组播路由器发送成员报告报文来加入一个组,它们也可发送离开报文来退出一个组,报文中给出相应组的组播地址。 另外,组播路由器会周期性(默认间隔125s)的发送一般查询报文,报文中组地址被设置
8、为0.0.0.0,用来查询地址表中每个组是否还有成员(因为可能有的主机没有发送离开报文就关机了,非正常离开组)。 组播路由器还可发送特殊查询报文来确定某个组是否还有成员。,IGMP各种报文作用,2 IGMP 协议工作过程 1) 加入组播组 主机可以加入一个组。当主机加入一个组时,本质是它的一个进程加入一个组。 主机的加入:每个主机有一个组播关系进程表。当一个进程要加入一个组时,进程会向主机发送请求。主机就查看这个表,看是否有本机其他进程已加入这个组,如果有,就没必要发送成员关系报告,因为这个主机已经是这个组的成员了。如果没有,主机就向对应组播路由器发送成员报告报文;,2) 退出组播组 当主机发
9、现本机中没有进程对某个组感兴趣了,它就向相应的组播路由器发送离开报告报文,路由器将主机从相应的组中删除。,3) 监视成员关系 问题:假设某个组只有一台主机,如果这个主机没有发送退出报告就关机了,组播路由器将不知道这个组已经是一个空组了。 因此,路由器需要周期性地发出一般查询报文,根据组播表中各个组的是否有应答来判断是否为空组。主机收到一般查询报文时,如果它还愿意在某些组中,就响应相应的成员报告报文。 如果多个设备在同一个组中,不需要每个设备都响应成员报告报文,这个组只要有一个响应就行了,以避免不必要的通信。,为此,IGMP设计了报告抑制算法: 设备收到组播路由器一般查询报文后,并不立即返回成员
10、报告报文,而是推迟一个随机时间再发送,如果在这个时间内,有同组其他的设备已经广播了成员报告报文,它就不用再发送了。 另外,为了防止不必要的通信,IGMP为每一个网络只指定一个路由器作为查询路由器。只有这个路由器才可以发送查询报文。,11.4 组播路由,组播目标: 1.组中每个成员都应该收到一个组播分组的拷贝; 2.非组中成员收不到组播分组的拷贝; 3.组播路由中不应存在环路; 4.从源到目的地的路径应该最优(最短路径)。,生成树(spanning tree),在单播中, 网络可用图来表示;而在组播中,网络可用树来表示。 为了有效进行组播,我们需要这样的树:源端在树根而组成员在树叶。这样的树称为
11、生成树。如果从树根到树叶的每一条路径都是最短路径,则称为最短路径生成树。 组播协议就是要构造这样的树,据此得到组播路由器中的路由表。,组播协议在组播时使用的树分为:基于源的树和组共享树。 (1).基于源的树 每个组中的每个源对应一棵树。源和组的组合决定了生成树的个数。 若有N个组,每个组有M个不同的源,则对应有NM棵生成树。 例:当一个源发送一个组播包到225.80.18.35,然后再发送一个组播包到229.10.9.23时。将形成两棵以同一源为根的不同的树。(同一源,不同组) 下面再看另一个例子:不同源,同一个组。,(S,G)=(192.1.1.1,224.1.1.1),S=,源,G=,组,
12、(S,G)=(192.2.2.2,224.1.1.1),S=,源,G=,组,采用基于源的树的组播协议: DVMRP (距离向量组播路由协议); MOSPF (OSPF的扩展); PIM-DM (协议无关组播-密集模式)。 (2). 组共享树 组共享树是组中所有成员共享同样的生成树。 组决定了生成树。若有N个组,则对应有N棵生成树。 组中的一个路由器被选作聚合点/核心点,以此路由器为根,其它组成员为叶构成全组共享的生成树 采用基于组共享树的组播协议有: CBT(基于核心的树); PIM-SM(协议无关组播-稀疏模式)。,基本思想:先用SPT将信息传向根,然后再沿着共享树到达所有叶子节点。,组播路
13、由协议分类,组播路由协议的主要任务就是构造组播树,使组播分组能够传送到相应的组成员。 目前已定义了多种组播路由协议,一般可归结为密集模式(dense-mode)和稀疏模式(sparse-mode)两大类。 密集模式通常采用广播和修剪方式,用于具有较高带宽、组成员较为集中、互相较接近的网络环境。这种模式的路由协议包括:距离向量组播路由协议(DVMRP) 、OSPF组播扩展(MOSPF)与协议无关密集组播模式(PIM-DM)。,11.5 组播路由协议,DVMRP用于组播主干(MBONE)路由器,它使用反向通路组播算法(RPM)。DVMRP的扩展性不好,但它可使用隧道方法使没有组播功能的路由器也能转
14、发组播分组。 MOSPF把组播信息加入到OSPF链路状态发布,每个路由器根据收到的链路状态信息得知整个网络拓扑,以此构造组播传递树。 PIM-DM和DVMRP相似,适用于发送者和接收者的距离很近,也适用于发送者很少和接收者很多,以及流量很高的情况。,稀疏模式用于组播组成员较少且比较分散的情况,例如Internet。稀疏模式还假设网络带宽很有限。协议包括PIM稀疏模式(PIM-SM)和基于核心树协议第2版(CBTv2)。 PIM-SM适用于只有较少的接收者,以及流量不大的组播,这个协议可以同时处理几个组播数据流,非常适合应用于WAN 或者是Internet。 CBT:选择一个路由器作为核心,并广
15、播公布其地址,其它成员向它发送加入报文表示它愿意加入这个组。 当核心路由器收到每一个组成员发来的加入报文后,这个共享树就形成了。,11.5.1 距离向量组播路由协议DVMRP DVMRP是基于源的路由协议。是DVRP用于组播的扩展。 在DVRP中,每个路由器并不知道整个最短路径树的情况,但知道去往某目的地的本地最佳接口。最佳路由是在包的不断传递过程中逐步形成的。 在DVMRP中,最优树也是在包的转发过程中逐步形成的。 DVRP协议必须保证: 避免形成环路 避免重复包 路径最短 支持动态组成员,DVMRP用于组播主干(MBONE)路由器,它使用反向通路组播算法(RPM),DVMRP的扩展性不好,
16、因为它依靠转发。 DVMRP 数据报由两部分组成:一个小型定长的首部和一个标志数据流。 DVMRP数据报格式: 版本:版本号为1。类型:DVMRP 类型为3。 子类型:响应=1,提供目标路径;请求=2,请求到达目标路径;非会员报告=3,提供非会员报告;非会员取消=4,取消先前的非会员报告。 校验和:除了IP首部不计算外,校验和计算整个报文。校验和的初始值为0。,11.5.2 开放式组播最短路径优先协议MOSPF MOSPF(Multicast Open Shortest Path First)是一种基于链路状态的路由协议,是在原 OSPF 第二版本的基础上作了改进使之支持 IP 组播路由的协议。 同OSPF类似,MOSPF定义了三种级别的路由: 1MOSPF区域内组播路由 区域内MOSPF在OSPF 链接状态通告中包含组播信息,通过加入新的链接状态通告类型,MOSPF知道哪个组播组在起作用。 每个路由器知道整个区域的拓扑信息,并使用Dijkstra算法构