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

  所谓组播分发我们可以理解为单播里面的路由;对于组播来说,它也会根据组播路由来转发数据;不同于单播,组播关心的是源在何处,而单播关心的是目标在何处;在了解组播路由之前我们先来聊一聊组播分发树;

  组播分发树

  所谓组播分发树就是指描述组播数据在网络中的转发路径,由组播路由协议建立;对于组播分发树来说,它有两个类型,一个是最短路径树(SPT),一个是共享树(RPT);

  组播分发表示方法

  最短路径树(SPT)表示方法:(S,G);其中S表示特定组播源地址,G表示特定组播组;即最短路径树(SPT)就是描述特定组播源发往特定组播组的路由;类似单播路由中的明细路由(个人理解);

  共享树(RPT)表示方法:(*,G);其中*表示任意组播源,G表示特定组播组;即共享树(RPT)就是用来表示任意组播源发往特定组播的路由;类似单播路由中的默认路由(个人理解);

  SPT:Shortest Path Tree,最短路径树,也称为“Source Tree” 源树;所谓源树就是以组播源作为树根,将组播源到每一个接收者的最短路径结合起来构成的转发树;也就是说每一个组播源与接收者之间建立一颗独立的SPT;

  提示:源树是用来表示一个组播源到接收者的转发数据树,它关心组播源,即一个组播源到所有接收者说形成的转发树;组播源到接收者的路径一定是最短的;

  RPT:Rendezvous Point Tree,共享树;所谓共享树就是指以某个路由器作为路由树的树根,这个根通常被称为RP(汇合点或核心);所有的组播源和接收者都是用这一颗树来转发报文,组播源先向树根发送数据报文,之后的报文再向下转发到达所有接收者;

  提示:共享树是用来表示任意组播源到接收者的转发树;它不关心源到底是谁,即共享点往后的路由器它会建立共享树;组播源到接收者的路径不一定最短;

  SPT组播转发表项

  提示:在同一组播组中每增加一个组播源,对应路由器的表项就会增加一颗源树;表项较多;

  RPT组播转发表项

  提示:在同一组播组中不管怎么增加组播源,对于RP以后的路由器都只有一颗共享树,表项相对较少;

  SPT和RPT比较:

  SPT优点:路径最优,延迟最小;缺点:占用内存较多,因为一个源就会建立一颗树,相对于共享树表项较多,所以消耗内存资源也相对较多;

  RPT优点:占用内存较少;缺点:源到接收者的路径不一定最优,所以相对源树来说它会引入额外的延迟;

  组播防环机制

  组播数据转发过程

  组播路由和单播路由是相反的,单播路由关心数据报文要到哪里去,而组播路由关心数据报文从哪里来;单播报文的转发过程中,路由器并不关心源地址,它只关心报文的目标地址,通过目标地址从而决定了向哪个接口转发数据;而组播报文转发过程中,报文是发送给一组接收者,这些接收者用一个逻辑地址标识(组播地址);路由器在接收到报文后,必须根据源和目标的地址确定出上游接口(指向组播源)和下游方向,然后把报文沿着远离组播源的方向进行转发;组播使用RPF机制来防止环路;

  RPF(Reverse Path Forwarding),反向路径转发;该机制主要作用是用来确保组播数据能够沿正确的路径传输,避免组播环路;工作过程大致是路由器收到组播数据报文后,只有确认这个数据报文是从自身连接到组播源的接口收到的才进行转发,否则丢弃;即路由器只有通过路由接口收到组播源的数据才会转发,其他非路由接口收到的数据均丢弃;

  提示:如上图所示,对于中间路由器来说,正常报文应该从离组播源最近的接口收到数据,如果不是该接口接受到对应组播数据,而是从其他接口收到组播数据,路由器会认为该数据不应该从该接口收到,所以从该接口收到的对应组播数据都会被丢弃;

  RPF检查过程:

  1、在单播路由表中查找到组播报文源地址的路由;

  2、如果该路由的出接口就是组播报文的入接口,即RPF检查成功;否则RPF检查失败,报文丢弃;

  提示:如上所示,如果路由器从s0/0口收到来自192.18.0.32的组播数据,首先路由器会查看自己路由表中去往192.18.0.32的路由的出接口是不是s0/0,如果是,则RPF检查通过,否则对应报文就会丢弃;它会认为该组播数据不应该从该接口进来,即从s0/0口收到来自192.18.0.32的组播数据报文是不合理的;所以要丢弃;

  提示:如果从s0/1收到来自192.18.0.32发送的组播数据,路由器查找去往192.18.0.0/16的出接口是s0/1,此时路由器RPF就会检查通过;因为对应去往组播源的单播路由的出接口是组播源发送数据的入接口,路由器认为从s0/1接口收到192.18.0.32的组播数据是合理的,所以路由器开始转发数据;简单讲RPF就是依赖单播路由进行防止环路;

HCNP Routing&Switching之组播技术-组播分发的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. HCNP Routing&Switching之BGP基础

    前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15362604.html:今天我们来学习下新的路由协议BG ...

  9. HCNP Routing&Switching之端口隔离

    前文我们了解了组播路由协议稀疏模式中的RP相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16154347.html:今天我们来聊一聊二层交换机中有关v ...

随机推荐

  1. git 撤销,放弃本地修改,放弃已提交修改

    一, 未使用 git add 缓存代码时. 可以使用 git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记中间的 &quo ...

  2. Java线程--ThreadPoolExecutor使用

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11871132.html Java线程--ThreadPoolExecutor使用 public ...

  3. web安全知识拓扑

  4. (Elementui) el-tree 中英文过滤以及搜索到父子显示子节点,搜索到子节点显示父节点(filter-node-method)

    案例下载:https://gitee.com/tudoumlp/just1.git   (vue-ele-demo) 在项目中,会遇到树节点的搜索,中文和英文搜索,以及搜索到父节点匹配的时候同步显示该 ...

  5. Azure AD Domain Service(二)为域服务中的机器配置 Azure File Share 磁盘共享

    一,引言 Azure File Share 是支持两种认证方式的! 1)Active Directory 2)Storage account key 记得上次分析的 "Azure File ...

  6. uos系统安装tree

    apt install tree 提示无法安装软件包 执行apt update 然后执行apt install tree

  7. python解释器的安装以及解释器多版本共存

    版本介绍 python创始人:gukido(龟叔) python1.X 原始版本,几乎不用 python2.x 最高版本2.7(2020年之后不再维护) python3.x 最高版本3.9(一般用3. ...

  8. Solution -「CF 1491H」Yuezheng Ling and Dynamic Tree

    \(\mathcal{Description}\)   Link. 做题原因:题目名.   给定一个长度 \(n-1\) 的序列 \(\{a_2,a_3,\cdots,a_n\}\),其描述了一棵 \ ...

  9. suse 12 编译部署Keepalived + nginx 为 kube-apiserver 提供高可用

    文章目录 编译部署nginx 下载nginx源码包 编译nginx 配置nginx.conf 配置nginx为systemctl管理 分发nginx二进制文件和配置文件 启动kube-nginx服务 ...

  10. c++ 文本处理

    c++ 文本处理 1.使用sstream版本 (1)功能:截取第一列为1以后的数据,如下图,截取第5行(包括第5行)以后的数据,前面4行数据丢弃. (2)代码:textProc.cc #include ...