一、组播路由协议
(一)
路由器依靠转发项来转发组播数据包。转发项的生成则是组播路由协议所要完成的任务。组播路由协议有距离矢量组播路由协议(DVMRP)、协议无关组播-密集模式(PIM-DM)、协议无关组播-稀疏模式(PIM-SM)、开放式组播最短路径优先(MOSPF)、有核树组播路由协议(CBT)等多种.这里只讲述目前最成功也是最流行的PIM协议.

协议无关组播
PIM(协议无关组播)表示它不依赖于某种具体的IP路由选择协议。它仅仅是利用单播路由表来实现RPF校验功能。因此,它能工作在任何可以产生单播路由表的IP路由协议上,包括静态路由。值得强调的是:协议无关并不是指不需要单播路由协议;相反,组播协议必须有单播路由协议的支撑,因为它无单播路由功能。
PIM协议报文基于UDP协议,其端口号是103。PIM还有专门的组播地址224.0.0.13,表示所有的PIM路由器。
在组播应用环境中大致可分为两类:一类是密集环境。即:在某一个范围内组成员众多。比如:股票交易大厅信息的发布,学校的网上教学等。路由器的几乎每一个接口都有组成员正在接收组播信息。对于这种环境将采用密集模式协议如:PIM_DM(协议无关组播_密集模式)来解决。
一类是稀疏环境。即:在某一范围内组成员比较少或分布比较散。路由器只有少数几个接口上有组成员接收数据。比如:小区音/视频点播等。在这种环境里将不再适宜采用密集模式协议,因为这将增加路由器的负担和导致网络拥塞。因此,如果采用稀疏模式的组播协议(比如PIM-SM,协议无关组播-稀疏模式)将带来更大的好处。

(二). PIM_DM

  1. PIM_DM转发

    在运行PIM-DM协议的网络中,路由器默认所有接口上都有接收者。当组播数据到达路由器后,路由器立即建立起转发项。转发项的入接口是路由器依据单播到数据源的接口;出接口则包括除入接口外的所有接口。如果数据RPF检查成功,它将根据转发项向所有接口(除入接口外)溢流。

  2. PIM_DM剪枝

    如果路由器所有出接口上都没有接收者,它将清空转发项的出接口列表,并向其RPF上游发送剪枝消息,以使组播数据不再流向本路由器。上游路由器收到剪枝消息后,从转发项出接口列表中删除接收到剪枝消息的接口。组播数据就不再从该接口转发出去。
    但是这种状况只能维持一段时间。在经过一段时间后,上游路由器重新将该出口添加到转发项出接口列表中。组播数据又能流向先前被剪枝的下游路由器。然后,下游路由器再发起剪枝。周而复始,这个过程被称之为扩散-剪枝。

  3. PIM_DM嫁接和嫁接应答

    当剪枝期间,路由器需要接收组播数据(比如:收到IGMP加入),怎么办?这时,路由器并不需要等到下一个扩散-剪枝周期,而是立即向RPF上游路由器发送嫁接消息,要求将自己添加到出接口列表中。
    上游路由器收到嫁接消息后,立即回送一个嫁接应答,告知下游路由器已收到嫁接消息;然后,上游路由器将收到嫁接消息的接口添加到出接口列表中。组播数据就能够到达希望接收数据的路由器和组成员。

  4. PIM_DM状态维护

    PIM_DM如何维护转发项而不必总是重复创建过程?PIM_DM是依靠组播数据流来维护的。只要路由器收到某个组的组播数据包,路由器就刷新该转发项。路由器如果长时间未收到这个组的组播数据包,将删除该转发项。

  5. 断言(assert)机制

    在共享网段上,当有多个路由器向网络上发送组播数据包时,共享网段上将收到重复的数据包。怎么办?Assert断言机制能够解决这个问题。
    当路由器从出接口接收到其它路由器发来的重复组播数据时,路由器将向该出接口发送断言消息。断言消息中带有本路由器的优先级、到源S的路由开销等信息。
    网段上的其它路由器收到断言消息后,将对端路由器的优先级、路由开销以及IP地址与自身相比较(先比较优先级,优先级低者获胜;若二者相同,则比较路由开销,开销小者获胜;若二者还相等,则比较IP地址,大者获胜)。若自己失败,则剪枝该接口,不再向该共享网段转发组播数据包。若自己获胜,则发送断言消息,申明组播数据流应该从本出接口转发,其它路由器重复上面的动作。

  6. PIM邻居发现与PIM HELLO消息

路由器周期性的发送Hello消息到所有PIM路由器(224.0.0.13),并借此来发现邻居,建立邻居关系。PIM路由器可以借邻接关系判断自己是否为叶路由器。
PIM Hello消息除了用于建立邻接外,它还被用来为共享网段上选择指定路由器(DR)。PIM路由器都被配有优先级。这个优先级被包含在PIM Hello消息中。当路由器收到PIM Hello消息时,先比较自己的优先级。如果自己的优先级高,路由器将默认消息源为DR,自己变成非DR。当优先级相同时,IP地址最大的获胜,被选举为DR。
DR主要应用在SM中,将在SM中由DR负责向上游发起加入/剪枝过程,或是将直连组播源的数据发向组播分发树。
如果路由器是工作在IGMPv1下,DR同时也是IGMP查询器。

PIM-DM

三层交换机上的配置
+启动组播进程
multicast routing-enable
+在接口上启动PIM-DM
pim dm
禁用PIM-DM协议
undo pim dm

pim timer hello seconds
undo pim timer hello
pim timer hello命令用来配置接口发送Hello报文的时间间隔,undo pim timer hello命令用来恢复接口发送Hello报文时间间隔的缺省值。

display pim interface [interface-type interface-number]
显示当前运行PIM接口的简要信息。

display pim routing-table [ { { *g [ group-address [ mask { mask-length | mask } ] ] | **rp [ rp-address [ mask { mask-length | mask } ] ] } | { group-address [ mask { mask-length | mask } ] | source-address [ mask { mask-length | mask } ] } * } | incoming-interface { interface-type interface-num | interface-name | null } | { dense-mode | sparse-mode } ] *
显示dm或sm组播路由表。

debugging pim dm { all | mrt | timer | warning | { revc | send }{ all | assert | graft | graft-ack | join | prune}}
打开和关闭PIM-DM的调试开关

例子

+配置VLAN虚接口。
PIM-DM协议是应用层协议,运行在三层接口上。
+其次,启动组播路由协议
multicast routing-enable
+在每个VLAN接口视图配置PIM-DM
pim dm
PIM-DM组播网络配置就完成了。记住:组播协议必须依赖单播路由才能工作。单播路由协议可以是OSPF、RIP或者是静态路由等。

www.huawei.com

协议无关组播-密集模式 PIM-DM的更多相关文章

  1. 协议无关组播--稀疏模式 PIM-SM

    一. 1)PIM-SM 1.PIM-SM转发.加入 PIM-SM适合于接收成员较少的环境.它与DM有何显著的区别?先看PIM-SM转发机制. 转发: 当组播数据到达路由器时,路由器也会去创建转发项.转 ...

  2. 计算机网络之网络层IP组播(IGMP、组播路由选择协议、组播地址)

    文章转自:https://blog.csdn.net/weixin_43914604/article/details/105318560 学习课程:<2019王道考研计算机网络> 学习目的 ...

  3. Android为TV端助力:UDP协议(接收组播和单播)

    private static String MulticastHost="224.9.9.98";private static int POST=19999;private sta ...

  4. HCNP Routing&Switching之组播技术-组播路由协议PIM

    前文我们了解了组播技术中组播分发树相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16019334.html:今天我们来聊一聊组播路由协议PIM相关话题 ...

  5. HCNP Routing&Switching之组播技术PIM-SM 稀疏模式

    前文我们了解了组播路由协议PIM以及PIM-DM密集模式相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16084310.html:今天我们来聊一聊PI ...

  6. IP组播

    1  IP组播基础 IP组播技术有效地解决了单点发送.多点接收的问题.组播源只发送一份数据,被传递的信息在距组播源尽可能远的网络节点才开始被复制和分发,并且只发送给需要该信息的接收者.  说明: 本章 ...

  7. HCNP Routing&Switching之组播技术-组播协议IGMP

    前文我们了解了组播地址相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15616740.html:今天我们来聊一聊组播协议中IGMP协议相关话题: 组播 ...

  8. IP组播技术介绍及实现例子

    引 言 近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网 络视频会议.网络音频/视频广播.AOD/VOD.股市行情发布. ...

  9. 组播IP地址

    组播IP地址组播IP地址用于标识一个IP组播组.IANA(internet assigned number authority)把D类地址空间分配给IP组播,其范围是从224.0.0.0到239.25 ...

随机推荐

  1. python------模块定义、导入、优化 ------->random模块

    2.random模块 #随机浮点数 random.random()   #生成0到1之间的随机浮点数,不能自己指定 random.uniform(1,10)   #可以指定 #随机整数 random. ...

  2. Go Example--锁

    package main import ( "fmt" "math/rand" "runtime" "sync" &qu ...

  3. 【BZOJ1030】【JSOI2007】文本生成器

    我现在连AC自动姬都不会,怎么办嘛QAQ 原题: JSOI交给队员ZYX一个任务,编制一个称之为“文本生成器”的电脑软件:该软件的使用者是一些低幼人群,他们现在使用的是GW文本生成器v6版.该软件可以 ...

  4. whistle.js连接ios手机中https步骤

    1:对于安卓直接扫码安装https的证书: 对于ios  连接电脑发出的wifi,打开whistle,配置代理之后(一定要保证先链接电脑发出的wifi,且配置代理) 用Safari打开网址:http: ...

  5. 推荐一些好的linux学习网站

    菜鸟教程:这个网站有jsp,php,c,android等等入门教程,很适合入门的新手和想多学一门语言的人 传送门http://www.runoob.com/ linux命令那么多,怎么记,给一个lin ...

  6. skipper lua 脚本支持

    skipper 对于lua 脚本的支持是通过gopher-lua,支持基本上大部分的lua特性 说明:项目使用docker-compose 运行 环境准备 docker-compose 文件 vers ...

  7. MySQL 安全整理

    MySQL 安全整理 关闭外网的端口访问. 使用高位的端口号. 如果需要外网访问不给最高的权限. 如果需要外网访问也是绑定客户端. To be continued

  8. 用express快速写一个hello world

    首页要具备 node.js环境, npm环境 创建一个目录, 然后进入此目录作为工作目录 mkdir myapp cd myapp 通过npm init 创建一个package.json文件 npm ...

  9. js对象的key类型

    http://javascript.ruanyifeng.com/grammar/object.html#toc2 对象的所有键名都是字符串(ES6 又引入了 Symbol 值也可以作为键名),所以加 ...

  10. C# ASCII与字符串间相互转换 (转)

    引言: 最近开始学习C#,在写串口助手小工具时遇到十六进制发送与字符发送之间转换的问题, 小弟通过网络各路大神的帮助下,终于实现正确显示收发,小弟菜鸟一枚,不足之处还望各位批评指正O(∩_∩)O! 其 ...