linux 实现pimd-sm 设计详解

设计总览

为了在linux 环境实现多播路由,内核和用户端进程进行交互和处理,主要实现我们用户端的实现。
内核处理转发数据主要是根据内核多播转发表multicast forwarding cache(MFC)。 我们用户端的pim守护进程主要是处理控制包和其他路由器的包, 然后维护用户端的转发表。
在这里插入图片描述
pim 守护进程处理用户端的所有pim的控制信息, 然后设置一个合适的内核环境,然后内核转发组播数据报文。
pim控制报文在用户空间,组播报文在内核空间。

根据上图,当 内核收到IP packet以后 ,传递给[ip-intr()] , ip 中断处理函数根据目的地址和协议号分配数据包到相应的模块,分三种情况去处理。

  1. 如果数据包是多播数据包,传递给内核 ip-mforward() , 如果在MFC 里面匹配源地址和组播地址, 返回hit , 然后转发到对应出口,如果,源地址或者主播地址或者入口不匹配,返回miss ,内核发送internal control message 传递给用户态的守护进程去处理。
  2. 如果这个报文是PIM 报文, 传送给 [ pim-input()] , 再传送给socket 通道 raw-input() 传递给用户层经常处理。
  3. 如果这个报文是IGMP报文, 同pim , 传递给内核igmp 处理模块 igmp-input(), 然后调用 raw-input() 通过socket 队列传递给用户空间。

用户空间 pim守护进程

所有的 PIM IGMP 和 internal control (e.g. cache miss and wrong incoming interface) 消息 都会被转递给 PIM 进程。
PIM进程根据这些信息去创建 多播路由表 multicast routing table (MRT) , pim 使用 ’ setsockopt()'系统调用把转发表同步给内核MFC, 确保多播数据的转发。

在这里插入图片描述
pim进程 监听socket队列的pim和igmp消息, 根据是pim还是igmp 传递到对应接口去处理,根据报文信息动态更形MRT 和内核的MFC。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pimd 是一个 Protocol Independent Multicast 路由守护进程,支持 PIMv2-SM . PIM-DM:密集模式独立组播协议(Protocol Independent Multicast-Dense Mode) 独立组播协议(PIM)有两种模式:稀疏模式和密集模式。本文主要讲述密集模式独立组播协议 (PIM-DM)。 PIM-DM 主要被设计用于组播局域网应用程序,而 PIM-SM 主要用于一个大范围内的域间网络(WAN 和域间)。PIM-DM 使用了和 DVMRP 及其它密集模式一样的溢出和修剪机制。DVMRP 和 PIM-DM 之间的主要不同在于 PIM-DM 主要引入协议独立的观念。PIM-DM 可以使用由任意底层单播路由协议产生的路由表执行反向路径转发(RPF)检查。 ISP 特别需要 PIM-DM 所具有的能使用任意底层单播路由协议的能力,因为它不需要为 RPF 检查引入和管理一个独立的路由协议。单播路由协议扩展为多协议边界网关协议(MBGP)和 IS-IS 多协议路由(M-ISIS)后就被用来建立指定表完成 RPF 检查,但是 PIM-DM 不需要它们。 PIM-DM 能够使用由 OSPF、IS-IS、BGP 等产生的单播路由表。同时在执行 RPF 检查时,PIM-DM 也能够通过配置使用由 MBGP 或 M-ISIS 产生的的指定组播 RPF 表。 协议结构 PIM-DM 协议格式与 PIM-SM 相同: PIM version Type Reserved (Address length) Checksum PIM version ― 当前 PIM 版本号为2。 Type ― 特定 PIM 信息类型。 Address length ― 地址大小(二进制形式)。 Reserved ― 该字段值设为0,在接收端忽略。 Checksum ― 16位字段是整个 PIM 信息的补充总和。 标签:pimd
### 回答1: pimd-2.1.8.tar.bz2是一款在Linux系统上运行的组播路由协议软件。该软件可以帮助实现在网络中的组播传输,使网络中的多个终端可以同步收听、观看同一个广播节目或数据包。下载该软件需要先到官方网站或其他可信的软件下载站点,然后在下载页面上找到pimd-2.1.8.tar.bz2的下载链接,点击链接即可下载。下载完成后,需要解压缩并将文件放置于系统路径之下,然后通过命令行启动该软件即可使用。在使用该软件时,需要对网络拓扑结构和路由表进行一定的配置和调整,以确保数据的正确传输和接收。pimd-2.1.8.tar.bz2软件具有高效、稳定的组播路由协议算法,能够与各种网络设备、交换机等硬件设备兼容,非常适合于搭建高性能的组播应用系统。 ### 回答2: pimd-2.1.8.tar.bz2是一个文件压缩包,其中包含PIMD软件的源代码和相关文件。PIMD是一种用于IPv4多播协议的路由协议,它可以负责将多播数据包从发送端路由到接收端。 要下载这个文件,可以在网上搜索pimd-2.1.8.tar.bz2,并在相应的网站上进行下载。下载完成后,使用适当的文件解压工具将文件进行解压缩。解压缩后,可以进入所解压的目录,找到源代码文件,并根据需要进行修改和编译。 使用PIMD路由协议可以实现高效的多播传输,尤其是在广域网环境下。因此,对于需要进行多播传输的网络应用,PIMD是一个非常重要的路由协议。通过下载、安装和配置PIMD软件,可以轻松实现多播传输功能,提高网络应用的性能和效率。 ### 回答3: pimd-2.1.8.tar.bz2是一个网络协议软件的压缩包,主要用于组播网络通信。如果需要使用该软件,则可以通过网络下载该压缩包,并解压缩到本地计算机环境中。在下载过程中,需要注意下载源的安全性和可靠性,以免下载到病毒或恶意软件。解压缩后,可以参考软件的在线帮助文档或者官方文档,根据需要进行配置和使用。在使用过程中,也需要注意保持软件的更新和安全性,以及及时处理软件的错误和异常情况。对于不熟悉该软件的用户而言,可以寻求专业人员的帮助和建议。因此,对于需要使用pimd-2.1.8软件的用户而言,下载和使用前需要全面了解软件的性质和操作步骤,以免造成不必要的损失和问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值