计算机网络-PIM协议基础概念

一、PIM基础概念

组播网络回顾:

组播网络从网络结构上大体可以分为三个部分:

  • 源端网络:将组播源产生的组播数据发送至组播网络。
  • 组播转发网络:形成无环的组播转发路径,该转发路径也被称为组播分发树(Multicast Distribution Tree)。
  • 成员端网络:通过IGMP协议,让组播网络感知组播组成员位置与加入的组播组。

组播网络从组织构成上由组播源,组播组成员与组播路由器组成。

  • 组播源的主要作用是发送组播数据。
  • 组播组成员的主要作用是接收组播数据,因此需要通过IGMP让组播网络感知组成员位置与加组信息。
  • 组播路由器的主要作用是将数据从组播源发送到组播组成员。组播数据转发需要依赖组播分发树,因此组播路由器需要通过协议来构建组播分发树。

前面我们已经学习了IGMP协议的v1,v2,v3版本,主要作用是使得IGMP查询器可以感知到组成员的位置和所加组播组,形成IGMP组表项和IGMP路由表项。但是单单有IGMP是无法从组播源到达组播组成员的,因此我们需要学习组播转发网络的相关协议。

二、PIM协议基础

组播网络需要基于多种组播协议才能建立转发路径:工作在成员端网络 的主要是IGMP (Internet Group Management Protocol,因特网组管理协议)协议,用于告知组播网络,组成员的位置与所加组播组。工作在组播转发网络的协议主要是PIM,MSDP,MBGP,目前在AS内我们主要学习PIM协议。

PIM(Protocol Independent Multicast,协议无关组播)。协议无关指的是与单播路由协议无关,即PIM不需要维护专门的单播路由信息。作为组播路由解决方案,它直接利用单播路由表的路由信息,对组播报文执行RPF检查,检查通过后创建组播路由表项,从而转发组播报文。

目前在实际网络中,PIM主要有两种模式:

  • PIM-DM(PIM-Dense Mode,PIM密集模式)
  • PIM-SM(PIM-Sparse Mode,PIM稀疏模式)

PIM-DM(PIM-Dense Mode,PIM密集模式),PIM-DM模式主要用在组成员较少且相对密集的组播网络中,该模式建立组播分发树的基本思路是"扩散-剪枝",即将组播流量全网扩散,然后剪枝没有组成员的路径,最终形成组播分发树。

PIM-SM(PIM-Sparse Mode,PIM稀疏模式) ,PIM-SM模式根据组播服务模型又可以分为:

  • PIM-SM(ASM):为任意源组播建立组播分发树。
  • PIM-SM(SSM):为指定源组播建立组播分发树。

PIM-SM模式主要用在组成员较多且相对稀疏的组播网络中,该模式建立组播分发树的基本思路是先收集组成员信息,然后再形成组播分发树。使用PIM-SM模式不需要全网泛洪组播,对现网的影响较小,因此现网多使用PIM-SM模式。

PIM(Protocol Independent Multicast)协议无关组播,目前常用版本是PIMv2,PIM报文直接封装在IP报文中,协议号为103,PIMv2组播地址为224.0.0.13。

三、组播分发树类型

在PIM组播域中,以组播组为单位建立从组播源到组成员的点到多点的组播转发路径。由于组播转发路径呈现树型结构,也称为组播分发树(MDT,Multicast Distribution Tree)

组播分发树的特点:无论网络中的组成员有多少,每条链路上相同的组播数据最多只有一份 。被传递的组播数据在距离组播源尽可能远的分叉路口才开始复制和分发。

组播分发树类型:

  • 以组播源为根,组播组成员为叶子的组播分发树称为 SPT(Shortest Path Tree),在PIM-DM与PIM-SM中均有使用。
  • 以RP为根,组播组成员为叶子的组播分发树 RPT又被称为共享树,RPT主要在PIM-SM模式的组播网络中被使用。

组播分发树类型

四、PIM路由表项

PIM路由表项即通过PIM协议建立的组播协议路由表项。

PIM网络中存在两种路由表项:

  • (S,G)路由表项主要用于在PIM网络中建立SPT。对于PIM-DM网络和PIM-SM网络适用。
  • (*,G)路由表项主要用于在PIM网络中建立RPT。对于PIM-SM网络适用。

S表示组播源,G表示组播组,*表示任意。
PIM路由表项1

在不同的组播路由器上,组播路由表项会基于不同的表项汇总形成。

最后一跳路由器的组播路由表项主要基于PIM路由表项,IGMP组表项和IGMP路由表项汇总形成。

其余组播路由器的组播路由表项主要基于PIM路由表项形成。
PIM路由表项2

(,G )表项是汇总表项,显示有多少接口和组,(S,G)通过复制(,G)表项,结合组表项和IGMP形成组播路由表项。

这里概念很覆盖,其实到实际配置时候还好,先有个概念,PIM协议生成PIM路由表项,PIM路由表项结合IGMP等表项形成完整的组播路由表项。

总结:组播网络由组播源端网络、组播转发网络、组播成员端网络组成,PIM协议用于组播转发网络 。PIM协议目前使用的PIMv2,基于PIM协议有两种模式:PIM-DMPIM-SM 。PIM-DM模式主要用在组成员较少且相对密集的组播网络中,该模式建立组播分发树的基本思路是"扩散-剪枝"。PIM-SM模式主要用在组成员较多且相对稀疏的组播网络中,该模式建立组播分发树的基本思路是先收集组成员信息,然后再形成组播分发树。使用PIM-SM模式不需要全网泛洪组播,对现网的影响较小。从组播源到组成员的点到多点的组播转发路径称为组播分发树,组播分发树又分为SPT何RPT。通过PIM协议会生成PIM路由表项,通过结合PIM路由表项和IGMP表项组播完整的组播路由表项。

本文由mdnice多平台发布

相关推荐
岩中竹1 天前
力扣热题100题解(c++)—矩阵
数据结构·c++·程序人生·算法·leetcode·矩阵
程序猿chen2 天前
JVM考古现场(二十五):逆熵者·时间晶体的永恒之战(进阶篇)
java·jvm·git·后端·程序人生·java-ee·改行学it
程序猿chen3 天前
JVM考古现场(二十四):逆熵者·时间晶体的永恒之战
java·jvm·git·后端·程序人生·java-ee·改行学it
lkbhua莱克瓦243 天前
用c语言实现——一个带头节点的链队列,支持用户输入交互界面、初始化、入队、出队、查找、判空判满、显示队列、遍历计算长度等功能
c语言·数据结构·程序人生·算法·链表·交互·学习方法
Sherlock Ma4 天前
CSS零基础入门笔记:狂神版
前端·css·程序人生·跳槽·css3·学习方法·改行学it
Tiger Z5 天前
R 语言科研绘图 --- 饼状图-汇总
开发语言·人工智能·程序人生·r语言·贴图
程序猿chen6 天前
《JVM考古现场(二十三):归零者·重启奇点的终极奥义》
java·jvm·git·后端·程序人生·java-ee·改行学it
灏瀚星空8 天前
AI 模型高效化:推理加速与训练优化的技术原理与理论解析
开发语言·人工智能·深度学习·程序人生·机器人·智慧城市·量子计算
七七知享9 天前
Python深度学习实现验证码识别全攻略
开发语言·python·深度学习·程序人生·程序员·开发·验证码
七七知享9 天前
开启 Python 编程之旅:基础入门实战班全解析
开发语言·python·程序人生·程序员·零基础·实战