一、组播路由协议
(一)
路由器依靠转发项来转发组播数据包。转发项的生成则是组播路由协议所要完成的任务。组播路由协议有距离矢量组播路由协议(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. Android为TV端助力:UDP协议(接收组播和单播)

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

  3. IP组播

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

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

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

  5. 组播IP地址

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

  6. 《TCP/IP 详解 卷1:协议》第 9 章:广播和本地组播(IGMP 和 MLD)

    我已经懒了,卷一已经是去年年底看完的,但怎么说卷一的坑开了就要填完啊-- 广播和本地组播(IGMP 和 MLD) 引言 有 4 种 IP 地址,单播(unicast).任播(anycast).组播(m ...

  7. IP组播技术

      1  概述 1.1  产生背景 传统的IP通信有两种方式:一种是在源主机与目的主机之间点对点的通信,即单播:另一种是在源主机与同一网段中所有其它主机之间点对多点的通信,即广播.如果要将信息发送给多 ...

  8. 组播___IGMP

    一.基本概念: 1.协议概述: 是运行在主机和与主机直连的路由器之间,其实现的功能是双向的:一方面,主机通过IGMP通知路由器希望接收某个特定组播组的信息:另一方面,路由器通过IGMP周期性地查询局域 ...

  9. CCNP路由实验之十 组播(多播)

                        CCNP路由实验之十 组播(多播) 种方法: 在交换机上配置静态的多播MAC地址到用户接口的映射 使用CGMP.执行CGMP的多播路由器能够将用户发送给自己 ...

随机推荐

  1. 20145224&20145238《信息安全系统设计基础》实验一 开发环境的熟悉

    20145224陈颢文20145238荆玉茗 <信息安全系统设计基础>第一次实验报告 课程:信息安全系统设计基础 班级: 1452 姓名:荆玉茗 陈颢文 学号:20145238 20145 ...

  2. Spring 计划

    3.0----------------------------------------------------- SCRUM 流程的步骤2: Spring 计划 1. 确保product backlo ...

  3. http://runjs.cn/

    http://runjs.cn/ RunJS - 在线编辑.展示.分享.交流你的 JavaScript 代码

  4. 网站安全扫描工具--Netsparker的使用

    Netsparker是一款安全简单的web应用安全漏电扫描工具.该软件功能非常强大,使用方便.Netsparker与其他综合 性的web应用安全扫描工具相比的一个特点是它能够更好的检测SQL Inje ...

  5. 一个关于C#中基类与接口混合继承的疑问总结

    思路参照 http://www.cnblogs.com/allenlooplee/archive/2004/11/16/64553.html,对原文进行了简化和补充,感谢原作者. 问题很简单,如下所示 ...

  6. HTTP请求中的缓存(cache)机制

    http://www.chaorenmao.com/blog/?p=79 流程 当资源第一次被访问的时候,HTTP头部如下 (Request-Line)  GET /a.html HTTP/1.1Ho ...

  7. Kendo UI开发教程(27): 移动应用开发简介

    Kendo UI 支持开发Web应用,前面介绍的SPA,也支持开发移动应用,至于使用 HTML5 + JavaScript + CSS开发移动是不是一个好的选择不在本文的讨论之中.Kendo UI M ...

  8. Sql Server——运用代码创建数据库及约束

    在没有学习运用代码创建数据库.表和约束之前,我们只能用鼠标点击操作,这样看起来就不那么直观(高大上)了. 在写代码前要知道在哪里写和怎么运行: 点击新建查询,然后中间的白色空白地方就是写代码的地方了. ...

  9. python基础知识回顾之字符串

    字符串是python中使用频率很高的一种数据类型,内置方法也是超级多,对于常用的方法,还是要注意掌握的. #author: Administrator #date: 2018/10/20 # pyth ...

  10. Oracle_SQL(2) 分组与聚合函数

    一.聚合函数1.定义:对表或视图的查询时,针对多行记录只返回一个值的函数.2.用途:用于select语句,HAVING条件二.5种聚合函数1.SUM(n) 对列求和 select sum(sal) f ...