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 ...
随机推荐
- Apache中commons包的各种jar的功能说明
commons-logging.jar -----记录日志,通常和 log4j.jar共同使用 commons-beanutils.jar(1.1) 主要提供Bean的 ...
- feiQ发送信息
import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import j ...
- ios 类别和扩展-赵小波
类别 @interface ClassName ( CategoryName ) // method declarations @end Category在iOS开发中使用非常频繁.尤其是在为系统类进 ...
- shell——mkfifo管道
转自:http://blog.sina.com.cn/s/blog_605f5b4f0101azuc.html 创建命名管道的方法为:mkfifo pipe_name. 这样就能创建一个命名的管道pi ...
- 关于 BSGS 以及 ExBSGS 算法的理解
BSGS 引入 求解关于\(X\)的方程, \[A^X\equiv B \pmod P \] 其中\(Gcd(A,P)=1\) 求解 我们令\(X=i*\sqrt{P}-j\),其中\(0<=i ...
- MySQL5.7 库、表结构、表字段的查询、更改操作
1.查询所有数据库 SHOW DATABASES; 2.查询库中所有表 写法1: ① USE [DATABASE_NAME]; ② SHOW TABLES; 写法2: SHOW TABLES FROM ...
- opencv笔记--Kmeans
在图像分割中,使用 kmeans 算法可以实现图像区域基本分割.如果一幅图像被分为两类,kmeans 分割效果与 ostu 算法基本一致,具体如下图: kmeans 将图像灰度聚类为 k 类, ...
- Dubbo源码剖析六之SPI扩展点的实现之getExtensionLoader
Dubbo SPI机制之三Adaptive自适应功能 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中,示例案例中自定义了扩展接口而不是使用Dubbo已提供的扩展接口.在案例中,主程序分 ...
- jenkins持续集成go应用
上文讲到使用supervisor管理我们的终端应用,这次讲一下使用jenkins持续集成 下面分别讲一下pipeline里每一个段落的含义 agent any 使用任意节点构建 parameters ...
- logstash获取nginx日志的配置
nginx部分配置直接用json,省去很多麻烦 log_format json '{"@timestamp":"$time_iso8601",' '" ...