组播技术1
新一代互联网技术 第三章
3.4.1 基于GA的QoS组播路由机制
基本思想
约束Steiner树问题是NP完全问题 将多个约束转化为一个启发式费用,将求解约束Steiner树
问题转化为求解启发式费用最小的Steiner树问题 运用遗传算法(Genetic Algorithms,GA)求解启发式费 用最小的Steiner树问题 通过GA找出前k个最小启发式费用Steiner树 从启发式费用最小的Steiner树开始依次检验每棵树的使用 费用、CPU资源、缓冲区资源、带宽资源、延迟及出错率 约束是否得到满足 如果第i(1 i k )棵树满足所有约束,则算法终止 如果直到第k棵树都满足不了所有约束,则与用户协商解决
Steiner树
NP完全问题 基于启发式或智能优化算法求解
3.4 QoS组播路由机制举例
基于GA的QoS组播路由机制 粒子群优化ABC支持型QoS组播路由机制
3.4.1 基于GA的QoS组播路由机制
问题描述
已知连通图 GV , E
,V 和 E分别为图上所有节点
及所有边的集合 已知对于任意节点 v j V 有如下参数:排队延 迟 t j ,发送延迟 j ,可用CPU资源 rc j ,可用 缓冲区资源量 rb j ,出错率 v j 对于任意边 eij E 有如下参数:传播延迟 ij , 可用带宽资源量 ij ,出错率 eij k 3分别为使用CPU资源、缓冲区资源、 k 2、 k1 、 带宽资源的单位价格
为每个组播组选定一个汇合点或核心,以它为 组播源将组播数据分组单播到汇合点或核心,
由它向其它成员转发
关键在于选择适当的汇合点或核心
3.2 组播树构建
计算机三级考试《网络技术》重要考点:组播技术合集1篇
计算机三级考试《网络技术》重要考点:组播技术合集1篇计算机三级考试《网络技术》重要考点:组播技术 1 单播:通常采用的传播方式,基本特点是一对一传输数据。
单播发送者发送的信息一次只能传到一个接收方。
广播:由路由器或交换机将同一个信息无条件地发送给每一条路径中的节点,由接收者决定接收还是丢弃。
(一对多),发送方只发送一次,由路由器和交换机重复发送。
组播:允许一个或多个发送方发送单一数据报到多个接收方的`网络传输方式。
无论组成员多少,只发送一次数据包,组播采用组播地址寻址,只向需要数据包的主机或网络发送。
(一对一组) 2、IP组播特点:组播使用组地址:每个组播组拥有唯一的组播地址(D类地址),组播数据包可以送到标识目的主机的组地址。
动态的组成员:组播成员是动态的,本地的组播路由器周期性的向本地网络主机进行轮询。
底层硬件支持的组播:Internet是络互联,__些网络是以太网,以太网本身具有硬件组播能力。
3、组播技术基础(1)IP组播地址:A、B、C为单播地址,D为组播地址,E保留地址。
组播地址最高4位为1110+ 28位,范围224.0.0.0至239.255.255.255。
每一个组播地址标识为一个组播组。
(2)组播相关协议组播协议分为主机和路由器之间的协议(IP组播管理协议);路由器和路由器之间的协议(IP组播路由协议)。
IP组播组管理协议:组管理协议(IGMP)在主机和与主机直连接接的路由器之间运行。
实现双向:主机通过IGMP通知本地路由希望加入特定组;另一方面,路由器通过IGMP周期查询局域网内某个已知组的成员是否处于活动状态,实现组成员关系的收集与维护。
包括IGMP和CGMP。
IP组播路由协议:组播路由协议分为域内组播路由协议和域间组播路由协议。
其中域内组播路由分为密集模式和稀疏模式。
域内组播有MOSPF协议、DVMRP协议、PIM协议。
组播路由不同于单播路由,由源地址、组地址、入接口列表和出接口列表4部分组成。
IPTV组播技术及在河南新乡联通的具体实现
IPTV组播技术及在河南新乡联通的具体实现IPTV是一种利用宽带网络为用户提供交互式多媒体服务的业务。
IPTV不仅能够满足运营商业务创新的需求,而且可以为运营商转变经营思路,实现战略转
型提供切实可行的切入点,IPIV意味着新的用户增长方式、新的业务增长方式和更高的ARPU值。
对IPTV业务而言,组播技术是IPTV的关键技术之一,IP组播技术的实现决定着IPTV的使用效果,与电信运营商的业务收入息息相关。
本文从IPTV实际业务运营角度出发,结合组播技术,分析了IPTV业务在带宽、组播、认证等方面对IP宽带城域网提出的技术要求,从各角度分析总结了各种实现方式的优缺点,制定了改造实验方案并付诸实施,实现了网络对IPTV业务的承载,系统试运行取得成功,对今后电信运营商大规模商用具有一定的参考和指导
意义。
本文第一章首先回顾了近年来国内外IPTV业务发展的主要情况,分析了IPTV发展目前存在的问题。
第二章对IPTV及相关知识进行了介绍。
第三章对IPTV组播的技术进行了研究,包括组播协议的讨论、组播路由方式的选择、组播复制点和认证方式的对比分析,建议在初期采用全网组播的方式,
选用DHCP认证+DSLAM复制的方式。
第四章提出新乡本地IPTV的业务需求,介绍了新乡联通IPTV目标网络的总体架构,对现有的IP城域网结构进行了调整,提出了承载IPTV网络的建设方案,实现了组播方式的IPTV全网建设。
最后对IPTV
承载网的系统进行了端到端性能测试。
组播侦听发现(MLDv1)协议详解_RFC2710
2005-05-08 华为三康机密,未经许可不得扩散 第1页, 共21页文档编号 Document ID密级 Confidentiality level内部公开 文档状态 Document Status华为三康技术有限公司 Huawei-3Com TechnologiesCo., 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 reserved2005-05-08 华为三康机密,未经许可不得扩散 第2页, 共21页修订记录Revision record日期 Date修订版本Revision version 修改描述change Description作者 Author2005-05-08 1.00 初稿完成 initial transmittal范 磊目录Table of Contents1MLDv1简介 (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页2005-05-08华为三康机密,未经许可不得扩散 第4页, 共21页文档标题关键词Key words :IPv6、MLD 、IGMPv2 摘 要Abstract :本文档介绍了IPv6路由器所使用的一种协议,用以发现在其直连网络上的组播侦听者(即希望接收组播数据的节点)的存在,并且能明确发现这些邻居节点所感兴趣的组播地址。
实验40(1)交换机组播DVMRP实验
实验四十(1)、交换机组播DVMRP实验一、 实验目的1、了解组播的概念;2、了解DVMRP特点;3、学会DVMRP组播协议应用的相关设置;4、了解PIM与DVMRP不同二、 应用环境DVMRP(Distance Vector Multicast Routing Protocol)协议即“距离向量组播路由协议”。
它是一种密集模式的组播路由协议,采用类似RIP方式的路由交换给每个源建立了一个转发广播树,然后通过动态的剪枝/嫁接给每个源建立起一个截断广播树,也就是到源的最短路径树。
通过反向路径检查(RPF)来决定组播包是否应该被转发到下游。
三、 实验设备1、DCRS-7604(或6804)交换机1台2、DCS-5526S交换机1台3、PC机2-4台4、Console线1-2根5、直通网线2-8根四、 实验拓扑五、 实验要求1、在交换机上划分基于端口的VLAN:交换机 VLAN 端口成员 IP 连接交换机A 1 E1/1 192.168.1.1/24 192.168.1.100/24 交换机A 10 E1/24 192.168.10.1/24 交换机B e0/0/1交换机B 10 E0/0/1 192.168.10.2/24 交换机A e1/24交换机B 2 E0/0/2-4 192.168.2.1/24 192.168.2.100/24 交换机B 3 E0/0/5-8 192.168.3.1/24 192.168.3.100/242、PC1-PC4的都是组播客户端:在Video Server上运行组播服务器软件Acgen.exe,在PC1和PC2上运行组播客户端软件Acrec.exe,查看组播状态。
六、 实验步骤第一步:交换机全部恢复出厂设置,配置交换机的VLAN信息交换机A:DCRS-7604(Config)#vlan 10DCRS-7604(Config-Vlan10)#switchport interface ethernet 1/24Set the port Ethernet1/24 access vlan 10 successfullyDCRS-7604(Config-Vlan10)#exitDCRS-7604(Config)#int v 1DCRS-7604(Config-If-Vlan1)#%Feb 17 21:21:04 2006 %LINK-5-CHANGED: Interface Vlan1, changed state to UP%Feb 17 21:21:04 2006 %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to UPDCRS-7604(Config-If-Vlan1)#ip add 192.168.1.1 255.255.255.0DCRS-7604(Config-If-Vlan1)#exitDCRS-7604(Config)#int v 10DCRS-7604(Config-If-Vlan10)#%Feb 17 21:21:21 2006 %LINK-5-CHANGED: Interface Vlan10, changed state to UPDCRS-7604(Config-If-Vlan10)#ip add 192.168.10.1 255.255.255.0DCRS-7604(Config-If-Vlan10)#exitDCRS-7604(Config)#交换机B:DCRS-5526S(Config)#vlan 10DCRS-5526S(Config-Vlan10)#switchport interface ethernet 0/0/1Set the port Ethernet0/0/1 access vlan 10 successfullyDCRS-5526S(Config-Vlan10)#exitDCRS-5526S(Config)#vlan 2DCRS-5526S(Config-Vlan2)#switchport interface ethernet 0/0/2-4Set the port Ethernet0/0/2 access vlan 2 successfullySet the port Ethernet0/0/3 access vlan 2 successfullySet the port Ethernet0/0/4 access vlan 2 successfullyDCRS-5526S(Config-Vlan2)#exitDCRS-5526S(Config)#vlan 3DCRS-5526S(Config-Vlan3)#switchport interface ethernet 0/0/5-8Set the port Ethernet0/0/5 access vlan 3 successfullySet the port Ethernet0/0/6 access vlan 3 successfullySet the port Ethernet0/0/7 access vlan 3 successfullySet the port Ethernet0/0/8 access vlan 3 successfullyDCRS-5526S(Config-Vlan3)#exitDCRS-5526S(Config)#int v 1000:31:10: %LINK-5-CHANGED: Interface Vlan10, changed state to UP DCRS-5526S(Config-If-Vlan10)#ip add 192.168.10.2 255.255.255.0 DCRS-5526S(Config-If-Vlan10)#exitDCRS-5526S(Config)#int v 200:31:24: %LINK-5-CHANGED: Interface Vlan2, changed state to UP DCRS-5526S(Config-If-Vlan2)#ip add 192.168.2.1 255.255.255.0DCRS-5526S(Config-If-Vlan2)#exitDCRS-5526S(Config)#int v 300:31:42: %LINK-5-CHANGED: Interface Vlan3, changed state to UP DCRS-5526S(Config-If-Vlan3)#ip add 192.168.3.1 255.255.255.0DCRS-5526S(Config-If-Vlan3)#exitDCRS-5526S(Config)#第二步:使交换机互通交换机A:DCRS-7604(Config)#ip route 0.0.0.0 0.0.0.0 192.168.10.2DCRS-7604(Config)#交换机B:DCRS-5526S(Config)#ip route 0.0.0.0 0.0.0.0 192.168.10.1DCRS-5526S(Config)#第三步:启动DVMRP协议交换机A:DCRS-7604(Config)#int v 1DCRS-7604(Config-If-Vlan1)#ip dvmrp enableDCRS-7604(Config-If-Vlan1)#exitDCRS-7604(Config)#int v 10DCRS-7604(Config-If-Vlan10)#ip dvmrp enableDCRS-7604(Config-If-Vlan10)#DCRS-7604(Config-If-Vlan10)#exitDCRS-7604(Config)#交换机B:DCRS-5526S(Config)#int v 10DCRS-5526S(Config-If-Vlan10)#ip dvmrp enableDCRS-5526S(Config-If-Vlan10)#exitDCRS-5526S(Config)#int v 2DCRS-5526S(Config-If-Vlan2)#ip dvmrp enableDCRS-5526S(Config-If-Vlan2)#exitDCRS-5526S(Config)#int v 3DCRS-5526S(Config-If-Vlan3)#ip dvmrp enableDCRS-5526S(Config-If-Vlan3)#exitDCRS-5526S(Config)#验证配置show ip dvmrp mrouteshow dvmrp neighborshow ip dvmrp routeshow ip dvmrp tunnel七、 注意事项和排错DVMRP的一些重要特性是:1.用于决定反向路径检查信息的路由交换以距离向量为基础(方式与RIP相似)2. 路由交换更新周期性的发生(缺省为60秒)3. TTL上限=32跳(而RIP是16)4.路由更新包括掩码,支持CIDR八、 配置序列交换机A:DCRS-7604#show runCurrent configuration:!hostname DCRS-7604!Vlan 1vlan 1!Vlan 10vlan 10!Interface Ethernet1/1!……Interface Ethernet1/24switchport access vlan 10!nterface Vlan1interface vlan 1ip address 192.168.1.1 255.255.255.0ip dvmrp enable!interface Vlan10interface vlan 10ip address 192.168.10.1 255.255.255.0ip dvmrp enableInterface Ethernet0ip route 0.0.0.0 0.0.0.0 192.168.10.2 !DCRS-7604#交换机B:DCRS-5526S#show runCurrent configuration:!hostname DCRS-5526S!Vlan 1vlan 1!Vlan 2vlan 2!Vlan 3vlan 3!Vlan 10vlan 10!Interface Ethernet0/0/1switchport access vlan 10!Interface Ethernet0/0/2switchport access vlan 2!Interface Ethernet0/0/3switchport access vlan 2!Interface Ethernet0/0/4switchport access vlan 2!Interface Ethernet0/0/5switchport access vlan 3!Interface Ethernet0/0/6switchport access vlan 3!Interface Ethernet0/0/7switchport access vlan 3Interface Ethernet0/0/8switchport access vlan 3!Interface Ethernet0/0/9!Interface Ethernet0/0/10……Interface Ethernet0/0/24!interface Vlan1interface vlan 1!interface Vlan2interface vlan 2ip address 192.168.2.1 255.255.255.0ip dvmrp enable!interface Vlan3interface vlan 3ip address 192.168.3.1 255.255.255.0ip dvmrp enable!interface Vlan10interface vlan 10ip address 192.168.10.2 255.255.255.0 ip dvmrp enable!ip route 0.0.0.0 0.0.0.0 192.168.10.1 !DCRS-5526S#九、 相关配置命令详解配置任务序列1、启动DVMRP(必须)2、配置和CISCO互通(可选)3、配置DVMRP辅助参数(可选)(1)配置DVMRP接口参数1)配置DVMRP report报文metric值2)配置DVMRP邻居超时时间(2)配置DVMRP全局参数1)配置DVMRP重传graft报文的时间间隔2)配置DVMRP发送probe报文的时间间隔3)配置DVMRP 发送report 报文的时间间隔 4)配置DVMRP 路由超时时间 4、 配置DVMRP 隧道 5、 关闭DVMRP 协议启动DVMRP 协议在DCRS 系列三层交换机上运行DVMRP 路由协议的基本配置很简单,只需在相应接口下打开DVMRP 开关即可。
一种组播到单播IPTV快速节目切换的(FCC)实现
图1 传统IPTV频道切换工作示意图
中可以看出节目切换主要经过如下几个步骤:(1)电能板的开关脚接收到节目切换指令并进行指令解析;
电能板的开关脚执行节目切换指令;(3)电能板的开关脚退出当前组播组;(4)电能板的开关脚获取新节目的组播地址信息;(5)电能板的开关脚加入新的节目组播组;(6)电能板的开关脚所在网络响应组播请求,网络传输时延后,收到首个组播数据包;(7)电能板的开关脚的缓冲满并接收到I帧关键解码信息;(8)电能板的开关脚进行解码渲染,时间主要消耗在切换时延、等待I帧的获
取时延与电能板的开关脚解码及缓冲时
延上。
其中,组播切换与等待I帧的时间
相对占比最大;电能板开关脚的解码及
缓冲受限于机顶盒的性能及逻辑设计。
3 交互式网络电视平台快速节目切换
(FCC)的实现
FCC服务端加入到每个节目的组播
组中,缓存从头端通过组播方式发送下
来的每个节目的视频信息。
电能板开关
脚加入到新节目的组播组中,FCC
端停止单播推送。
图2 交互式网络电视平台快速节目切换(FCC)方法示意
图3 FCI定义
图4 快速切换节目信令流程
(下转第198页)。
华为ont组播工具教程(一)
华为ont组播工具教程(一)华为ONT组播工具详细教程1. 介绍本教程将教您如何使用华为ONT组播工具,以实现高效的组播通信。
2. 准备工作在开始使用华为ONT组播工具前,您需要完成以下准备工作: - 确保设备上已安装最新版本的华为ONT组播工具。
- 确保设备已正确连接至网络,并具备访问互联网的能力。
3. 启动华为ONT组播工具按照以下步骤启动华为ONT组播工具: 1. 打开设备上安装的华为ONT组播工具应用。
2. 在工具界面上,点击“启动”按钮。
4. 配置组播参数按照以下步骤配置组播参数: 1. 在华为ONT组播工具的主界面上,点击“配置”按钮。
2. 在配置界面上,输入组播地址和组播端口。
3. 根据需要,设置其他可选参数,如TTL值、数据包大小等。
5. 添加组播成员按照以下步骤添加组播成员: 1. 在华为ONT组播工具的主界面上,点击“添加成员”按钮。
2. 在弹出的对话框中,输入成员IP地址和端口号。
3. 点击“确定”按钮,完成添加。
6. 发送组播消息按照以下步骤发送组播消息: 1. 在华为ONT组播工具的主界面上,输入您要发送的消息内容。
2. 点击“发送”按钮,将消息发送至组播成员。
7. 监控组播通信状态通过华为ONT组播工具,您可以实时监控组播通信状态: 1. 在华为ONT组播工具的主界面上,点击“监控”按钮。
2. 在监控界面上,您可以查看组播成员的连接状态、接收质量等信息。
8. 结束组播通信当您需要结束组播通信时,按照以下步骤执行: 1. 在华为ONT 组播工具的主界面上,点击“停止”按钮,以停止发送组播消息。
2. 关闭华为ONT组播工具应用,以结束组播工具的运行。
9. 总结使用华为ONT组播工具可以使您更加高效地进行组播通信。
通过本教程,您已经了解了如何启动、配置、发送组播消息,并可以监控组播通信状态。
希望本教程能对您有所帮助!10. 常见问题解答10.1 如何确定设备上是否已安装华为ONT组播工具的最新版本?您可以按照以下步骤进行确认: - 打开华为ONT组播工具应用。
下一代互联网技术复习题及答案
1.IPv6技术标准主要有下面哪个国际标准化组织制定的?(A )2.下列关于IPv6协议优点的描述中,准确的是(D) 。
A.IPv6协议支持光纤通信B.IPv6协议支持通过卫星链路的Internet连接C.IPv6协议具有128个地址空间,允许全局IP地址出现重复D.IPv6协议解决了IP地址短缺的问题3.我国的第一个也是全球最大的IPv6试验网是(a )。
A. CERNET2B. CERNETC. 6BoneD. RENATER24.以下不是IPv4存在的技术局限性的是( b )。
A. 地址空间匮乏B. 速度太慢C. 不提供服务质量保证D. 缺少移动性支持5.以下关于IPng和IPv6的说法正确的是(b )。
A. IPng和IPv6实际上是一回事儿B. IPng是所有有关下一代Internet协议的总称C. IPng是IPv6中的一个具体的协议D. IPv6是所有有关下一代Internet协议的总称6.能比较彻底地解决 IP 地址耗尽的问题的措施的是(C )A. 采用无类别编址 CIDRB. NAT转换C.引入IPv6 D. 使用移动IP7.IPv6数据单元由固定首部(Base Header)和有效载荷(Playload)组成,固定首部的长度为( d )字节。
A. 12B. 8C. 20D. 408.IPv6对IPv4的数据报头作了简化,其固定首部共包含(b )个字段。
A. 12B. 8C. 20D. 409.IPv6的地址配置方法不包括( A)。
A. 采用无类别编址 CIDRB. 无状态地址自动配置C.DHCPv6引入IPv6 D. 手工配置10.关于IPv6地址的描述中不正确的是__C_____。
A)IPv6地址为128位,解决了地址资源不足的问题B)IPv6地址中包容了IPv4地址,从而可保证地址向前兼容C)IPv4地址存放在IPv6地址的高32位D)IPv6中自环地址为0:0:0:0:0:0:0:1011.IPv6没有给( b )单独分配地址空间,而是与单播地址共用同一地址范围。
IGMPv1,v2,v3的原理报文形式
目录1 IGMP 协议 (2)1.1 IGMPv1协议 (2)1.1.1 IGMPv1的工作原理 (2)1.1.2 IGMPv1报文格式 (2)1.1.3 IGMPv1工作过程 (3)1.2 IGMPv2协议 (5)1.2.1 IGMPv2的工作原理 (5)1.2.2 IGMPv2的报文格式 (6)1.2.3 IGMPv2工作过程 (7)1.3 IGMPv3协议 (9)1.3.1 IGMPv3的工作原理 (9)1.3.2 IGMPv3的报文格式 (9)1.3.3 IGMPv3的主要改进 (12)2 MLD协议 (13)2.1 MLDv1协议 (14)2.1.1 MLDv1的工作原理 (14)2.1.2 MLDv1报文格式 (14)2.1.3 MLDv1工作流程 (16)2.2 MLDv2协议 (16)2.2.1 工作原理 (17)2.2.2 MLDv2报文格式 (17)2.2.3 MLDv2工作过程 (23)1 IGMP 协议IGMP用来动态的将各个主机注册到特定局域网中的一个组播组中。
主机向本地的组播路由器发送IGMP消息来表明自己所属的组播组。
在IGMP协议中,路由器侦听IGMP消息并周期的发出查询,以发现某个子网上哪些组是活动的,哪些是不活动的。
IGMP消息在IP数据报内发送,用IP协议号2来标识。
同时,将IP存活时间(TTL)字段值设定为1,因此IGMP信息处于本地范围本子网内传送并且不会被路由器转发。
1989年,IGMP版本1(RFClll2)第一次详细定义了IGMP规范。
后来施乐公司对最早的IGMP版本1进行了大幅更新,产生了IGMP版本2(RFC2236)。
到目前为止IGMP版本3规范己经称为IETF 正式标准(RFC3376),通用的是IGMPv2。
IGMPvl实现简单,但是有离开延迟过大和选择查询路由器需要依赖组播路由协议的缺点,IGMPv2对此进行了改进。
IGMPv3协议的主要目的是支持源特定组播,并进一步对IGMPv2进行完善。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
首先要强调一下组播的应用环境,组播的目的是为多客户端传输数据的时候尽量节约带宽资源,只在必要的时候才将数据帧复制,所以对于组播来讲,天生就是来对付“一对多”这样的网络需求的。
建立模型时可以认为在网络的末节有一台Server,另一末节有客户,中间是网云,那么应用组播会是这样的情景:Server与第一跳路由器之间没有运行的协议,靠Server具体的应用程序来驱动。
中间网云中的路由器要运行组播路由协议来识别和传输组播数据包,目前应用最广泛的的是PIM协议。
最后一跳路由器和组成员之间运行IGMP协议,以确定组成员的加入和退出。
关于PIM的RPF检测,是组播利用单播路由表进行的防环路机制,当一个组播数据包来,我查看其中的Source地址所属的网段在单播路由表中是通过哪一个接口进入我这台路由器的,我会记录下来,当再来组播数据包时,凡不是从我这个接口进来的,我出于安全考虑,丢弃。
IGMP是一个独立于PIM的协议,是最后一跳路由器和PC商议组播的语言,目前应用最普遍的事IGMP V2,路由器会在接口上维护组播成员关系表,每60s 发送一个查询,通告自己组播路由表中的组的地址,有兴趣的PC会给予回应,路由器记录其信息。
域间组播协议解析(OIL---Outgoing Interface List IIL---Incoming InterfaceList)PIM-DM (只支持源树,不支持共享树)PIM-DM 密集模式是以“推”的形式把数据发出去,所有运行PIM-DM协议的路由器在一开始没有组播数据驱动时只是形成邻居,选举DR,组播路由表中只有(*,224.0.1.40)这个条目,是协议本身的产物。
当Server有组播数据流发出,会泛洪开来,每传到一个路由器,这个路由器都会先建立一个父条目(*,G),(*,G)条目不用于数据转发,所以他的IIL为空,而且这个条目会将所有运行PIM的接口和与组成员相连的接口放入自己的OIL 中。
然后再建立他的一个子条目(S,G),子条目会拷贝下来(*,G)的整个OIL,但显然(S,G)条目是要用来转发的,所以会进行修订,将接受到组播数据流的接口从OIL中剔除,放入到IIL中,事实上IIL也只能有一个,因为要遵循RPF规则。
一个(S,G)条目-----> 针对一个Group -----> 1个IIL -----> N个OIL在DM模式,由于针对每一个源,为每个Server建立一个SPT(最短路径树)。
我认为在最初一个组播数据流来到最后一跳路由器时,他会查到Group地址然后将其通告给PC,这是第一次通告,之后每60s周期性通告一次,如果有资格报告,就会将其记录在(*,G)的OIL中,这样在生成(S,G)的那一刻就可以确定有组成员存在,不会向上发送剪枝信息。
当OIL为空时,该条目设置为P,触发向上发送剪枝消息,特别是(S,G)条目在修订OIL后有可能出现NULL的情况;当OIL由空指向非空,设置为C,出发向上发送嫁接消息。
一个(*,G)条目是3 mins,当所有的(S,G)条目都消失时才进入记时。
一个(S,G)条目时限是3 mins,条目中OIL的接口也有时限,后面跟着超时时间。
注意,一个处于“Forward/Dense”模式的接口是没有超时时限的,即为00:00:00,在“Prune/Dense”模式下才会出现超时然后进入Forward状态。
当一个接口的PIM邻居列表上增加一个新邻居时,该接口在所有(S,G)的OIL中重置为“Forward/Dense”状态。
盲目泛洪和剪枝是DM的特点也是缺点,剪枝即使完成,泛洪3mins后又会重新泛洪一次再剪枝。
剪枝从末节路由器开始,当OIL为空时即向上游路由器发送剪枝信息,点到点的链路不会有问题,而在多路访问的网络中,上游路由器在收到这个剪枝信息时会等待3s(成为剪枝延迟时间),因为在多路访问的环境下,其他下游路由器也会收到这个剪枝信息,,他们可能还是需要转发的,所以会将其否决,一旦有否决,上游路由器不会将自己的这个接口剪裁掉。
Assert机制的触发条件是:路由器竟然从(S,G)条目OIL中的接口收到了组播数据包,这个在以太网环境中比较常见,两台上游路由器由于彼此收到组播数据包会触发Assert机制进行竞争,比较AD和Metric,更接近源的胜出,另一个被剪裁,不过实际上过程要复杂很多。
PIM-SM(推荐使用的模式,源树与共享树的结合)(*,G)条目记录了RP到每个组成员的最短路径。
稀疏模式是采用“拉”的模式来运行,首先要定义一个RP(Rendezvous Point),整个网络都知道RP的地址,Source和RP之间通过单播(将组播数据包封装在单播中)进行注册,RP收到后会向源发送(S,G)加入消息,建立SPT,当SPT稳定后(RP这时会意识到自己正在通过SPT成功的接收SG条目,SG项会设为T),RP会向Source发送停止注册的信息,同时建立(S,G)条目。
RP和组成员之间建立(*,G)条目,这样源不必知道有谁要加入,组成员也没有SG条目,唯一可以联系的就是RP,RP维护源表和组成员表,所以定义好RP,无论是源先发数据,还是组成员先发送请求都没有关系,都会在RP那里记录下来。
当然,如果是源先注册,那么在共享树没有形成之前,RP会丢弃来自源的数据包,并让第一跳路由器停止注册,当(*,G)条目形成的时候,RP会向Source 发出(S,G)加入消息;如果是组成员先注册,那么数据包流动从源发送数据的那一刻开始。
当Source在RP注册过后,RP会转发组播数据流到组成员,在到达最后一跳路由器的时候,会有些特点,最后一跳路由器的(*,G)中设置了C标志,即代表有直连组成员,那么针对这样的路由器Cisco设置了一个SPT-Threshosd 阈值,凡是向下发数据给组成员的速率超过了这个值,就会将(*,G)条目标记为J,当再一次收到一个组播数据包时,就会去除(*,G)中的J标记并将条目删除,记录Source创建(S,G),并向上游路由器发送(S,G)请求消息,每一台上游路由器都会添加这个(S,G)条目,但是直到shared tree和spt 的分界点路由器才会向RP发送(S,G)RP位剪枝消息,因为有规则“当(S,G)项的RPF 邻居于(*,G)项的RPF邻居不同时(即IIL项不同),路由器将向共享树发送一个(S,G)RP位剪枝消息”,而在此之前的上游路由器两个条目的RPF邻居都是一样的,直到分界点路由器才会出现差异,毕竟这之后选择的道路不一样了。
收到这样一个剪枝消息后,路由器会创建一个(S,G)状态项,设置RP位为R,从(*,G)中拷贝下来OIL,删除接受到该剪枝信息的接口(因为以后都不会再联系了),然后重新计算(S,G)的RPF信息,包括邻居和接口。
以下是PIM-SM的一些规则:稀疏模式(*,G)最初的创建是来自下游PIM邻居的(*,G)加入信息,或者一个希望加入组的的IGMP report,该条目的入口总是指向RP共享树。
稀疏模式(S,G)的创建是在接受到一条(S,G)加入信息或剪枝信息或者上一跳路由器切换到SPT 或者不可预料的(S,G)到达时(*,G)不存在或者在RP上接受到一条注册信息。
从OIL中添加一个表项的原因通过该接口收到一个适当的(S,G)或(*,G)加入消息或者该接口存在一个组成员。
从OIL中删除一个表项的原因通过该接口收到一个适当的(S,G)或(*,G)剪枝消息且不被否决或者计时器超时。
当(S,G)项的RPF邻居于(*,G)项的RPF邻居不同时(即IIL项不同),路由器将向共享树发送一个(S,G)RP位剪枝消息,也就是说该剪裁消息从共享树和SPT的分支点开始。
PIM-SM中剪枝的问题共享树的剪枝:当叶节点路由器没有直连组成员时,会简单的向共享树的上游路由器发送(S,G)Prune,上游路由器收到后就将其从OIL中清除,如果这个动作使得OIL为空,则(*,G)被标记为P(pruned),并向上发送(*,G)Prune。
源树的剪枝:源树的剪枝不是指Source和RP之间的SPT,而是Switchover以后形成的SPT的键值,其基本流程和共享树一样,需要明确的是(S,G)Prunes 是不会一跳跳延SPT向上发送的,到上游路由器就终止了。
Auto-RP和BSR为了省去在每台路由器上配置RP地址的麻烦,Cisco和IETF分别定义了Auto-RP和BSR来自动的配置RP地址。
Auto-RPAuto-RP有两个重要角色,备选RP和映射代理(MA,Mapping Agent),两个重要的组播地址,224.0.1.39和224.0.1.40。
机制是这样:所有配置上ip pim send-rp-announce interface scope ttl [group-list acl] 这条命令的路由器成为备选RP,并向224.0.1.39宣告自己是RP,其RP通知消息包括制定接口的IP地址(通常是环回口)以及组的范围,也就是说可以只在一些特定的组中是RP。
Router通过配置ip pim send-rp-discovery scope ttl 成为MA,并加入到224.0.1.39这个组(或者说监听这个地址),他接收所有备选RP的RP通知消息,并建立缓存表来存储这些信息,指定拥有最高IP地址的那个成为RP,然后将选举结果通过224.0.1.40通过出去,每60s通告一次。
这里就和OSPF中DR机制是一样的,DR通过大地址通告,DRother就得听着;DRother通过小地址上报,DRother通过监听小地址接收。
当MA要实现冗余时,每个MA都独立工作,只不过最后选举出来的RP是相同的一台路由器,因为选举机制是一样的;当然RP的备份,只要有两个Router 去竞争就好了,会形成主从关系。
Auto-RP会引发经典的鸡和鸡蛋的问题,如果在稀疏模式下网络,并且所有路由器均通过224.0.1.40了解RP信息,如果不知道RP的IP地址,怎么能加入到(*,224.0.1.40)共享树呢,如果不加入共享树,怎么能了解RP的IP地址呢?解决方案之一是在每台路由器上打下命令:ip pim rp-address 10.1.1.1 group-list 10access-list 10 permit 224.0.1.40access-list 10 deny any即有10.1.1.1这台router来引导大家发现224.0.1.40这个地址,这样一来不仅配置更加麻烦,还担心10.1.1.1会随时挂掉。
所以好的解决方案是在每台Router的接口上启用S-D-M,即密集-稀疏模式,该模式可以在密集和稀疏模式之间进行切换,切换的出发点是RP是否存在,如果Router没有该组的RP信息,那么就启动密集模式。