HCNP Routing&Switching之组播技术-组播分发
前文我们了解了组播技术中的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之组播技术-组播分发的更多相关文章
- HCNP Routing&Switching之组播技术-组播协议IGMP
前文我们了解了组播地址相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15616740.html:今天我们来聊一聊组播协议中IGMP协议相关话题: 组播 ...
- HCNP Routing&Switching之组播技术-组播基础
组播技术背景 随着internet网络的不断发展,网络中交互的各种数据.语音.视频信息数量突增:新型的在线直播.网络电视.视频会议等应用也在逐渐兴起:这些业务大多符合点到多点的模式,对信息安全性.传播 ...
- HCNP Routing&Switching之组播技术-组播地址
前文我们聊到了组播技术背景,单播.广播在点到多点应用中的问题,以及组播对比单播.广播在点到多点的网络环境中的优势.劣势,相关回顾请参考https://www.cnblogs.com/qiuhom-18 ...
- HCNP Routing&Switching之组播技术-组播路由协议PIM
前文我们了解了组播技术中组播分发树相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16019334.html:今天我们来聊一聊组播路由协议PIM相关话题 ...
- HCNP Routing&Switching之组播技术PIM-SM RP
前文我们了解了组播技术中,组播路由协议PIM的稀疏模式相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16142795.html:今天我们来聊一聊组播路 ...
- HCNP Routing&Switching之组播技术-IGMP-Snooping
前文我们了解了组播协议IGMP相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15700550.html:今天我们来聊一聊二层交换机处理组播报文所面临的 ...
- HCNP Routing&Switching之组播技术PIM-SM 稀疏模式
前文我们了解了组播路由协议PIM以及PIM-DM密集模式相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16084310.html:今天我们来聊一聊PI ...
- HCNP Routing&Switching之BGP基础
前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15362604.html:今天我们来学习下新的路由协议BG ...
- HCNP Routing&Switching之端口隔离
前文我们了解了组播路由协议稀疏模式中的RP相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16154347.html:今天我们来聊一聊二层交换机中有关v ...
随机推荐
- Netty入门使用教程
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11827026.html 本文介绍Netty的使用, 结合我本人的一些理解和操作来快速的让初学者 ...
- Windows安装MongoDB解压版
MongoDB下载地址 https://www.mongodb.com/try/download/community 1.下载zip版本解压后,放到自定义目录,如图示 2.新建data目录用于存放数据 ...
- Note -「多项式」基础模板(FFT/NTT/多模 NTT)光速入门
进阶篇戳这里. 目录 何为「多项式」 基本概念 系数表示法 & 点值表示法 傅里叶(Fourier)变换 概述 前置知识 - 复数 单位根 快速傅里叶正变换(FFT) 快速傅里叶逆变换(I ...
- Thread.currentThread().getName() 和 this.getName()区别详解
currentThread的详解 currentThread方法是Thread类的一个静态方法,用来获取当前运行的代码段,正在被哪个线程调用.我们先来看一眼源码. 是一个native方法.直接与系统层 ...
- Golang Sync.WaitGroup 使用及原理
Golang Sync.WaitGroup 使用及原理 使用 func main() { var wg sync.WaitGroup for i := 0; i < 10; i++ { wg.A ...
- Spring 类名后缀理解
Aware 理解 实现Spring的Aware接口. 定义为感知.意识,核心意义在于通过Aware可以把spring底层组件注入到自定义的bean中. 对于bean与容器的关系,bean不应该知道自身 ...
- ASP.NET Core 6框架揭秘实例演示[08]:配置的基本编程模式
.NET的配置支持多样化的数据源,我们可以采用内存的变量.环境变量.命令行参数.以及各种格式的配置文件作为配置的数据来源.在对配置系统进行系统介绍之前,我们通过几个简单的实例演示一下如何将具有不同来源 ...
- 提权辅助工具:Windows--exploit-suggester.py安装及使用
下载地址 https://github.com/AonCyberLabs/Windows-Exploit-Suggester1.安装xlrd包(注意python2.3版本的pip问题) ...
- msf常见命令
msf命令全集 一.msfconsole ? 帮助菜单 back 从当前环境返回 banner 显示一个MSF banner cd 切换目录 color 颜色转换 connect ...
- IP网络主动测评系统——IT运维人员的好帮手
一.前 言 随着计算机网络的普及和快速发展,互联网已经融入到人们的衣食住行等方方面 面,如工作.购物.音视频聊天.视频会议.朋友圈.抖音.在线网游.网络电影 电视等.毫不夸张地说,现如今大部分人的绝大 ...