点到点传输
- 单播:节点之间通信,在同一时刻一个发送源只能发送数据给一个接受者,单播以简洁、实用的通信方式在IP网络中得到广泛使用。
- 发送源数据需要向每一个接收者单独发送一份数据,当接收者数量增加时,发送源复制数据的工作负荷也会成比例增加。 同一时刻发送源只能发送数据给一个接收者,当接收者数量巨大时,一些接收者接收数据的时延会大大增加。对于延时敏感的应用如多媒体会议、视频监控等,是不可接受的。
- 相对于单播,广播方式减少了发送源的处理,降低了发送源的负荷。但是采用广播方式,网络中的所有主机都会收到广播数据,而不管其是否需要接收,这样不仅数据的安全性得不到保障,而且会造成网络中信息的泛滥,浪费大量带宽资源。
- 单播和广播均不能以最小的网络开销实现数据的单端发送、多点接收。组播技术的出现解决了这个问题。
- 组播是指发送源将产生的单一IP数据包通过网络发送给一组特定的接收者的网络传输方式。组合结合了单播和广播的优点,在进行点到多点传输时,发送源不需要关心接收者的数目,仅需要发送一份报文; 路由器仅关心接口下是否有接收者,同样不需要关心接收者的数量,所以在路由器之间的链路上也仅传送一份报文。
- 和单播相比 : 减轻了发送源的负担,提高了链路的有效利用,此外发送源可以同时发送报文给多个接收者,可以满足低时延应用的需求。
- 和广播相比 :组播方式下路由器仅在有接收者的接口复制报文,报文最终仅传递给接收者,而非网络中的所有主机,可以节省大量网络带宽。另外,广播只能在同一网段进行,而组播可以实现跨网段的传输。
利用组播技术可以方便的提供一些新的增值业务,包括在线直播、网络电视、远程教育、远程医疗、网络电台、实时视频会议等对带宽和数据交互的实时性要求较高的信息服务。
组播的优缺点
- 优点
- 增强效率、控制网络流量、减少服务器和CPU负载。
- 优化性能、消除流量冗余。
- 分布式应用,接收者数量变化时,网络流量的波动平稳。
- 缺点
- 尽最大努力交付。
- 无拥塞控制,出现拥塞时无法为高优先级的应用保留带宽。
- 数据包重复,无法检测数据包的重复,当网络拓扑发生变化时,接收者可能会收到重复数据包。
- 数据包的无序交付,无法纠正组播数据包乱序到达的问题。
组播通信中使用组播地址来标识一组接收者,使用组播地址标识的接收者集合称为组播组。
INIA(Internet Assigned Numbers Authority,因特网编号分配委员会)将D类地址空间分配给IPv4组播使用,地址范围为224.0.0.0到239.255.255.255 , 组播地址的分类和具体含义如下:
- 224.0.0.0~224.0.1.255,协议预留组播地址,除224.0.0.0保留不做分配外,其他地址供路由协议、拓扑查找和协议维护等使用。
- 224.0.2.0~238.255.255.255 , 用户组地址,全网范围内有效。
- 239.0.0.0~239.255.255.255 , 本地管理组地址,仅在本地管理域内有效。
组播地址解决了IP报文在网络层寻址的问题,但最终通信还是要依赖于数据链路层和物理层,因此和单播一样,组播也需要考虑数据在链路层如何寻址。
以太网传输单播IP报文的时候,目的MAC地址使用的是接收者的MAC地址。由于组播目的地不再是一个具体的接收者,而是一个成员不确定的组,所以在链路层需要使用特定的组播MAC地址来标识一组接收者。IPv4定义组播的MAC地址格式为:(01-00-5E-XX-XX-XX)
组播组股管理协议简介
- 组播组管理协议是主机和路由设备之间的协议。
- 主机通过组播组管理协议加入或离开某些组播组。
- 路由设备通过组播组管理协议管理和维护本地的组播组信息。
- 常用的组播组管理协议为IGMP。
组播分发树模型简介
- 组播分发数时组播数据的转发路径。
- 根据树根位置的不同,组播分发树模型分为
在组播中,目的地是数目不一定的一组接收者,这就决定了组播报文转发路径和单播不同。
组播转发路径基于树形结构,称为组播分发树,接收者位于树形结构的叶子处,组播分发树由组播路由协议建立。
根据组播分发树树根位置的不同,组播分发树分为最短路径树(Shortest Path Tree,简称SPT)模型和共享树(Rendzvous Point Tree,简称RPT)模型。
SPT树根为发送源,因此SPT也称为“源树”,其从发送源到每一个接收者的路径都是最优的。
RPT模型树根为网络中的某一台设备,称为汇聚点,从发送源到接收者的组播数据必须首先经过汇聚点,然后再由汇聚点发送到每一个接收者,因此RPT模型中,从发送源到接收者之间的路径不一定是最优路径。
组播路由协议简介
- 组播路由协议和单播路由协议一样,用于建立数据转发的路径。
- 根据作用范围组播路由协议可以分为域内组播路由协议和域间组播路由协议。
- 域内组播路由协议主要包括 DVMRP、MOSPF、PIM。
- 域间组播路由协议主要包括 MSDP、MBGP。
- 域内组播路由协议根据建立的组播分发树的不同可以分为基于SPT的组播路由协议和基于RPT的组播路由协议。
- 基于SPT的组播路由协议包括 PIM DM、DVMRP、MOSPF。
- 基于RPT的组播路由协议包括 PIM SM。
组播路由协议运行在三层组播设备之间,用于建立和维护组播路由,并正确、高效的转发组播数据包。组播路由协议建立了从一个数据源 到多个接收端的无环(loop-free)数据传输路径,即组播分发树。
组播模型
根据接收者对组播源处理方式的不同,组播模型分以下两类
- ASM(Any-Source Multicast,任意信源组播)模型
- 接收者通过组播组管理协议加入某组播组时,并不区分组播数据的发送源。
- SSM(Source-Specific Multicast,指定信源组播)模型
- 和ASM模型不同,在SSM模型中接收者指定组播组的同时还可以指定发送源。
组播组管理协议
组播组管理协议是运行于主机和路由器之间的协议。组播管理协议的工作机制包含:成员加入和离开组播组、路由器维护组播组、查询器选举机制以及成员报告抑制机制。
常用组播组管理协议
- IPv4使用IGMP,包含3个版本
- IGMPv1在RFC1112中定义
- IGMPv2在RFC2236中定义
- IGMPv3在RFC3376中定义
- IGMPv1定义了基本的查询和成员报告的过程,IGMPv2在此基础上添加了组成员快速离开机制和查询器选举机制,IGMPv3又在IGMPv2的基础上增加了指定组播组源的功能。
- 所有版本的IGMP都支持ASM模型;IGMPv3可以支持SSM模型。
IGMPV3概述
- IGMPv3增加了对源过滤的支持
- IGMPv3主机不仅可以选择接收某个组播组的数据,还可以选择接收或拒绝某些源发送到这个组播组的组播数据。
- IGMPv3定义了新的报文类型和格式
- IGMPV3 Report报文目的组播地址变为224.0.0.22
- IGMPV3 取消成员报告抑制机制
- IGMPv3 主机为接口上每一个组播组都维护一个表项信息,其格式为(组地址、过滤模式、源列表)
- 组播组的过滤模式包含INCLUDE和EXCLUDE两种类型
- INCLUED模式表示只接受来自于源列表中列出的组播源发送的组播数据
- EXCLUDE模式表示只接收来自于不在源列表中列出的组播源发送的组播数据。
IGMP Snooping是运行在二层设备上的组播约束机制,用于管理和控制组播组。运行IGMP Snooping的二层设备通过对收到的IGMP报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发组播数据。
组播分发树模型
- 组播分发树指组播数据在网络中的转发路径,由组播路由协议建立。
- 根据树节点的不同,组播分发树可分为最短路径树和共享树
- SPT(Shortest Path Tree ,最短路径树):树根为组播源所连接的指定路由器。
- RPT(Rendezvous Point Tree ,共享树):树根为RP(Rendezvous Point ,汇聚点)。
RPF(Reverse Path Forwarding ,逆向路径转发)
- 确保组播数据数据沿正确路径传输。
- 避免组播路径环路的产生。
RPF检查的过程如下:
- 如果数据包是在到达组播源的最优路径上到达,则RPF检查成功,数据包被转发。
- 如果RPF检查失败,丢弃数据包。
RPF检查基于的是单播路由表
组播路由协议概念和分类
- 组播路由协议运行在三层组播设备之间,用于建立和维护组播路由协议,并正确、高效的转发组播报文。
- 组播路由协议建立了从一个数据源端到多个接收端的无环数据传输路径,即组播分发树。
- 对于ASM组播模型,组播路由协议可以分为域内和域间两类
- 域内组播路由协议用于在AS内部发现组播源并构建组播分发树。
- 域间组播路由协议用于实现组播信息在AS之间的传递。
域内组播路由协议
- DVMRP(Distance Vector Multicast Routing Protocal , 距离矢量组播路由协议)
- MOSPF(Multicast Extensions to OSPF , 组播OSPF协议)
- PIM(Protocol Independent Multicast ,协议无关组播)
组播配置命令
全局使能组播的命令为
IGMP命令用来进入IGMP视图。IGMP视图下的全局配置对所有接口有效,接口视图下的配置只对当前接口有效,后者的配置优先级较高
IGMP缺省使能的版本为IGMPv2,可在接口视图下指定IGMP版本,在接口视图下指定IGMP版本的命令为
[SWA-Vlan-interface100]igmp version 2
接口视图使能IGMP
[SWA-Vlan-interface100]igmp enable
配置发送普遍查询报文的时间间隔
[SWA-Vlan-interface100]igmp query-interval [interval]
配置普遍查询报文最大响应时间
[SWA-igmp]max-response-time [intervel]
IGMP Snooping配置命令
全局和VLAN视图使能 IGMP Snooping
[SWA]igmp-snooping
[SWA-igmp-snooping]enable vlan [vlan-id]
配置端口快速离开功能
[SWA-GigabitEthernet1/0/1]igmp-snooping fast-leave vlan [vlan-list]
配置模拟主机加入
[SWA-GigabitEthernet1/0/1]igmp-snooping host-join [group-address] vlan [vlan-id]
配置未知组播丢弃
[SWA-vlan2]igmp-snooping drop-unknown
配置查询器
[SWA-vlan2]igmp-snooping querier
配置普遍查询报文的源地址
[SWA-vlan2]igmp-snooping general-query source-ip [ip-address]
配置特定组查询报文的源地址
[SWA-vlan2]igmp-snooping special-query source-ip [ip-address]
组播VLAN命令
配置组播vlan
[SWA]multicast-vlan [vlan-id]
向组播VLAN内添加子VLAN
[SWA-mvlan-100]subvlan [vlan-list]
PIM配置命令
配置PIM-DM通常只需要在接口下使能PIM-DM即可
[SWA-Vlan-interface100]pim dm
PIM-SM的配置包含使能PIM-SM、RP的相关配置、C-BSR的相关配置。如果需要某台设备作为共享网段上的DR设备,还需要配置Hello报文的优先级选项。
使能PIM-SM的配置命令为:
[SWA-Vlan-interface100]pim sm
配置DR优先级的命令为
[SWA-Vlan-interface100]pim hello-option dr-priority [priority]
在PIM视图下配置 RP 和 C-BSR的相关信息,进入PIM视图的配置命令为
配置RP
PIM视图配置静态RP
[SWA-pim]static-rp [rp-address] [acl-number]