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

  PIM-SM概述

  PIM-SM(PIM Sparse Mode,协议无关组播-稀疏模式)是组播PIM的另外一种模式稀疏模式,该模式和密集模式相反,使用“拉(pull)”的方式来传输数据;适用于范围较广的大中型网络中,组成员分布相对分散的环境中;

  PIM-SM工作流程

  1、邻居发现和DR选举

  提示:PIM-SM邻居发现过程和PIM-DM相同,都是通过发送hello包相互建立起邻居;不同的是DM只会在靠近用户侧路由器选一个DR来充当IGMPv1的查询器,v2v3版本不依赖PIM来选举查询器;简单讲就是DM里只会在靠近用户侧侧的路由器上选举一个DR,其作用就仅仅是充当IGMPv1的查询器;而SM模式里DR不但要在靠近接收者侧的路由器上选举DR,在靠近组播源的路由器上也会选择DR,其作用就是作为共享网段中唯一转发组播数据的转发者;

  DR选举规则

  1、先比较优先级,优先级高者成为DR;

  2、如果优先级一样,则比较ip地址,ip地址大者成为DR;

  提示:接收者侧的DR主要负责向RP发送加入报文,组播源侧的DR主要负责向RP发送组成报文;RP就是共享点从源到RP一路建立源树,RP到接收者一路建立共享树;

  提示:连接接收者的路由器向组播组对应的RP发送加入报文,该报文被逐跳送达RP,所经过的路径就形成了RPT的分支;组播源如果要想组播组发送组播数据,首先由于组播源侧DR负责向RP进行注册,把注册报文通过单播的方式发送给RP,该报文到达RP后触发构建SPT。之后组播源把组播数据沿着SPT发向RP,但组播数据达到RP后,被复制并沿着RPT发送给接收者;

  2、用户加入过程

  提示:SM和DM不一样有扩散-剪支-嫁接的过程;SM默认会认为整个网段里没有用户存在,所以它不会一上来就扩散;而是通过接收者DR向RP发起加入消息,该消息沿着每一台路由器都创建(*,G)表项,形成以RP为根的RPT;也就是说SM模式中只有出现接收者,才会构建组播路由,才会向对应网段转发组播数据;如果有用户离开,则也是用户侧发送剪支消息;加入-剪支是随用户侧的变化而变化;

  提示:不管是靠近用户侧还是组播源侧的路由器,都是在共享网段中选举DR,不同共享网段的用户是不同的DR;

  3、组播源注册过程

  提示:首先是由DR通过组播报文中封装单播注册消息发送给RP,RP收到组播源的注册消息后,会发送加入消息,从而组播源到RP的路由器建立起SPT;随后在由RP向用户侧DR转发组播数据(通过RPT),最终组播数据送达至用户;

  注册停止过程

  提示:当RP发送加入消息后,对应SPT形成后,RP会向组播源侧DR发送注册停止消息,意思就是告诉组播源你的注册我这边已经收到了,你那边不用一直发送注册消息;你可以停了,类似一个确认消息吧;

  通过上述过程,我们不难看出从源到RP,然后再从RP到用户侧,这样一条转发路径不一定是最优的,并且如果有多个组播源,此时RP的流量是非常高的,负载也比较重;所以为了避免次优路径和RP的负载,就有了下面的RPT向SPT切换到过程;、

  4、RPT向SPT切换过程

  提示:这个切换我们可以手动配置是否要切换,这个根据个人的环境来配置,默认情况下华为的模拟器是当接收者收到第一个组播报文后,接受者侧DR发送加入消息,当组播源侧DR收到用户侧DR发送的加入消息后,会随加入消息的路径建立起源树,从而实现RPT向SPT的切换;

  提示:由用户侧DR或上游路由器向RP发送Prune消息,RP向组播源DR发送Prune消息进行多余路径剪支;

  提示:通过Prune剪支消息去把对应的源树剪掉,从而完成源树切换,最终形成源到接收者之间新的源树;

  通过上述RPT向SPT的切换,我们可以看到PIM-SM能够以比PIM-DM根经济的方式建立SPT(其原因是SM不用全网扩散,全网扩散会消耗沿路路由器的内存资源、网络带宽等);

  PIM-SM中的“Assert”断言机制和PIM-DM中的断言机制一样,没有区别;

HCNP Routing&Switching之组播技术PIM-SM 稀疏模式的更多相关文章

  1. HCNP Routing&Switching之组播技术PIM-SM RP

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

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

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

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

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

  4. HCNP Routing&Switching之组播技术-组播基础

    组播技术背景 随着internet网络的不断发展,网络中交互的各种数据.语音.视频信息数量突增:新型的在线直播.网络电视.视频会议等应用也在逐渐兴起:这些业务大多符合点到多点的模式,对信息安全性.传播 ...

  5. HCNP Routing&Switching之组播技术-组播地址

    前文我们聊到了组播技术背景,单播.广播在点到多点应用中的问题,以及组播对比单播.广播在点到多点的网络环境中的优势.劣势,相关回顾请参考https://www.cnblogs.com/qiuhom-18 ...

  6. HCNP Routing&Switching之组播技术-组播分发

    前文我们了解了组播技术中的igmp-snooping相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15860484.html:今天我们来聊一聊组播技术 ...

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

    前文我们了解了组播协议IGMP相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15700550.html:今天我们来聊一聊二层交换机处理组播报文所面临的 ...

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

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

  9. IP组播技术

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

随机推荐

  1. 【公告】淘宝 npm 域名即将切换 && npmmirror 重构升级

    镜像下载.域名解析.时间同步请点击阿里云开源镜像站 前言 本文将包括两部分内容: 淘宝 npm 域名即将停止解析 npmmirror 镜像站大重构升级 原淘宝 npm 域名即将停止解析 正如在< ...

  2. Linux移植实际操作一

    @ 目录 *前言 目前看了很多关于"Linux移植"的的各种教程.书籍,看完发现不过是对已有板子.已有驱动进行启用.禁用.参数修改.只能叫做"Linux配置". ...

  3. Fiddler——抓取https接口配置(web,安卓,ios)

    作为一名合格的测试怎么能不会抓包呢.   抓包适用场景:   测试某个功能时,出现了bug,这时我们便需要抓包看一下这个bug到底是前端的还是服务端的: bug的精准指向,能加速bug得以解决.   ...

  4. vue学习过程总结(02)- 网上开源项目vue-element-admin的启动

    1.功能丰富的项目:https://github.com/PanJiaChen/vue-element-admin.git 因为我配置的时候,遇到许多的问题,用了一天半才启动的,所以安着他文档一步一步 ...

  5. P5017 [NOIP2018 普及组] 摆渡车

    P5017 [NOIP2018 普及组] 摆渡车 题目 P5017 思路 将实际问题抽象后,不难发现这是一个 区间 \(DP\) 我们不妨认为时间是一条数轴,每名同学按照到达时刻分别对应数轴上可能重合 ...

  6. Prometheusbu部署使用-1

    Prometheus+grafana部署使用 主机列表: 192.168.161.130 : Prometheus 192.168.161.128 : node-1 192.168.161.129 : ...

  7. 如何处理异形屏iphone X?

    safe area: 默认放置在安全区域以避免遮挡, 但会压缩 在meta中添加viewport-fit=cover: 告诉浏览器要讲整个页面渲染到浏览器中,不管设备是圆角与否,这个时候会造成页面的元 ...

  8. Java Arrays.asList(0,1,2,3,4,5,6,7,8,9).parallelStream().forEach 进行循环获取HttpServletRequest的为Null的解决方案

    Arrays.asList(0,1,2,3,4,5,6,7,8,9).parallelStream().forEach() parallelStream是并行执行流的每个元素,也就是多线程执行,这样就 ...

  9. Dubbo 如何优雅停机?

    Dubbo 是通过 JDK 的 ShutdownHook 来完成优雅停机的,所以如果使用 kill -9 PID 等强制关闭指令,是不会执行优雅停机的,只有通过 kill PID 时,才 会执行.

  10. 哪种依赖注入方式你建议使用,构造器注入,还是 Setter方法注入?

    你两种依赖方式都可以使用,构造器注入和Setter方法注入.最好的解决方案是用构造器参数实现强制依赖,setter方法实现可选依赖.