PIM-DM协议内核触发机制及协议执行机制记录

PIM-DM和PIM-SM是组播路由ASM(随意信源组播)中的两种不同模式。相对PIM-SM的组播注冊机制。PIM-DM的扩散机制显得更加粗犷。

一、PIM-DM无需向内核注冊pimreg虚接口。

可是同PIM-SM一样须要将三层接口增加MRT组播接口中。

以在内核收到组播报文后触发cache_miss消息。

二、协议初始化阶段,会创建PIM协议套接字和igmp套接字,igmp套接字通过配置相同能够接收来自内核的igmp组播控制报文(cache_miss、process_whole_packet(pim-dm无需解析))。

三、在接口上使能PIM-DM后,协议接口首先会进行DR选举维护邻居路由信息。

四、执行阶段。当PIM-DM路由接口收到组播信息后,内核会查找MFC表项,假设MFC表项中存在该组播转发表,则按转发表中的转发规则对组播报文进行转发,假设MFC表项中不存在该组播转发表。则内核触发cache_miss消息通过igmp 套接字送到PIM-DM协议。

协议得到这个cache_miss消息后 创建(S,G)表项并维护好出口、入口。下发到内核MFC中。之后,组播报文就会依照下发的MFC转发规则进行转发。

五、组播转发表的维护。

PIM-DM创建(S,G)转发表时,入口就是收到组播报文的接口,出口是除接口外的全部PIM-DM接口。

这样一来,一旦收到组播报文。PIM-DM路由器就会将组播报文从除接口外的全部PIM-DM接口转发出去。 这个过程就是sprase mode(稀疏模式)的工作方式。

六、剪枝过程。当终端PIM-DM路由收到来自源端的组播报文后,也会创建相应的(S,G)转发表。

并检查是否有该组播的接收者。假设剪枝定时器到期仍然没有接收者的话,终端DM路由器将会向该组播入口发送pruned 剪枝报文通告上联路由该路由接口无需接收该组播信息。 这样上联路由就会将pruned接口从(S,G)转发表的出口列表中剔除。临时增加到pruned接口列表中去。

七、接收者增加、离开。

当终端路由器接收到igmp report消息时,会将对应的接口增加到自己的(S,G)表项出接口中。并向组播入口发送alert报文。通告上联路由将自己增加到组播接收者中去。 当终端路由收到igmp leave消息时,则会将对应离开接口从(S,G)表项中剔除,反复六中的剪枝过程。

总而言之:PIM-DM的工作方式,以以下一个情景对话能够概括。

PC 1---------- Router A ------------Router B ------- src

|

PC 2------------Router C

src:   我開始发送组播报文了, 你们看着办吧。

Router B:   Router A, Router C, 无论你们要不要这个组播, 我先发给你们了。不要再和我说下(sparse, 扩散机制)

Router A:   有人要这个组播吗(igmp query)? 草,半天没人回(剪枝定时器到期)。

算了, 我先把这个组播记录下来(创建(S,G)转发表),我会定时询问有没有人要的。

可是 Router B你临时不用再发给我了(pruned 剪枝)。

Router B:好的,我先不给你转发这个组播信息了(将和Router A级联的路由口从(S,G)的出口中剔除并增加到剪枝接口列表中)。

Router C:  有人要这个组播吗?  (igmp query)

PC 2:      大哥。我要我要。 (igmp report)

Router C:  我先记录下(创建(S,G)转发表), 后面再收到这个组播报文,我就给你发一份哈(组播转发)。 不要的时候告诉我一下。

PC 1: 我靠,我也要。 (igmp report)

Router A:  Router B我这边有人要这个组播,给我也发一份吧(alert)。

Router B:OK, 后面来的组播我会给你也发一份。(将和Router A级联的路由口又一次增加到(S,G)的出口中)。

PC 1:好像没什么用啊。。

老大。我不要了,别给我发了。

Router A:尼玛, 你玩我? 受不了了。  Router B我这边没人要这个组播了。不用再给我发了(pruned 剪枝)。

Router B: OK。(将和Router A级联的路由口从(S,G)的出口中剔除并增加到剪枝接口列表中)

时间: 2024-11-04 21:30:31

PIM-DM协议内核触发机制及协议执行机制记录的相关文章

PIM-DM协议内核触发机制及协议运行机制记录

PIM-DM和PIM-SM是组播路由ASM(任意信源组播)中的两种不同模式.相对PIM-SM的组播注册机制,PIM-DM的扩散机制显得更加粗犷. 一.PIM-DM无需向内核注册pimreg虚接口.但是同PIM-SM一样需要将三层接口加入MRT组播接口中.以在内核收到组播报文后触发cache_miss消息. 二.协议初始化阶段,会创建PIM协议套接字和igmp套接字,igmp套接字通过配置同样可以接收来自内核的igmp组播控制报文(cache_miss.process_whole_packet(p

JVM内存管理机制和垃圾回收机制

JVM自身结构物理图: Java代码编译和执行的整个过程包含了以下三个重要的机制: 1.java源码编译机制 1)分析和输入到符号表 class文件结构包含: 结构信息.包括class文件格式版本号及各部分的数量与大小的信息 元数据.对应于Java源码中声明与常量的信息.包含类/继承的超类/实现的接口的声明信息.域与方法声明信息和常量池 方法信息.对应Java源码中语句和表达式对应的信息.包含字节码.异常处理器表.求值栈与局部变量区大小.求值栈的类型记录.调试符号信息 2.类加载机制 1)Boo

深入JVM之类执行机制

JVM系列 1.深入JVM之源码编译机制 2.深入JVM之类加载机制 3.深入JVM之类执行机制 4.JVM内存诊断工具 关于类执行机制 关于类执行机制模式机制 关于类执行机制中的模式选择

摘录和再编:彻底弄懂JS执行机制

网文: https://juejin.im/post/59e85eebf265da430d571f89 并发模型和事件循环:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/EventLoop Node.js事件循环,Timers, process.nextTick() javascript是一门单线程语言,在最新的HTML5中提出了Web-Worker,但javascript是单线程这一核心仍未改变.所以一切javascript版的

【转】图解 HTTP协议/IIS 原理及ASP.NET运行机制浅析

前言 前一段在整理邮件的时候发现几年前和CDD老师交流时的一份邮件.下面是简单摘要: “从技术角度来说,无论哪一个阵营,跟新技术都是不可避免的,也是很累的,当然作为一个程序员来说,也是必须的.要想让技术的更新对自己的影响减小,基础就必须打牢.所以,底层的东西和抽象层的东西需要下一番功夫.因为说到底,无论什么技术,无非就是架构和最终的实现,技术框架只是应用开发的一个平台一种技术,如果了解了具体的东西,技术更新对你来说就没什么影响了,或者换句话说,你要学一种新的技术,速度和效率会非常之高.” 上面一

在网络7层协议中,如果想使用UDP协议达到TCP协议的效果,可以在哪层做文章?(QQ 为什么采用 UDP 协议,而不采用 TCP 协议实现?)

为了解决这题,可以具体看看下面这个讨论. 解灵运工程师 185 人赞同 某次架构师大会上那个58同城做即时通信的人说:原因是因为当时没有epoll这种可以支持成千上万tcp并发连接的技术,所以他们使用了udp,然后在udp上面封装了一下,模拟了一下tcp,解决了大并发的问题,之后因为做的很nb了,虽然epoll这种技术出现了,还是没有改回使用tcp了.现在再做类似的东西就不需要使用udp了.这个说法应该比较可信的. 发布于 2014-04-16 18 条评论 感谢 分享 收藏 • 没有帮助 • 

第7章 网络层协议(4)_IGMP协议

4. IGMP协议(Internet Group Management Protocol) 4.1 什么是组播(多播) (1)单播同一个视频要发送90个副本,但支持收看者"快进"和"倒退". (2)组播:同一个多播组的90个成员并需发送一次,路由器在转发分组时复制成多个副本转发出去,即在因特网范围内的多播是靠路由器来实现的,能够运行多播协议的路由器称为多播路由器.当分组到达目的局域网时,由于局部网具有硬件多播功能,因此不需要复制分组,在局部网上的多播组成员都能收到这

SPICE协议-----基本简介及普通协议定义

1  SPICE协议简介 SPICE协议定义了一组协议消息来访问.控制.和接收通过网络从远程计算机设备(如:键盘.视频.鼠标)的操作,并回复发送输出.控制设备既可以在客户端,也可以在服务端.另外,协议定义了一组支持远程服务器从一个网络地址迁移到另一个网络地址.加密传输数据,有一个例外,在选择加密方法上比较灵活.SPICE使用简单的消息传递和不依赖于任何RPC标准或特定的传输层. SPICE通信会话分为多种沟通通道道(每个通道针对一个远程设备)为了有能力控制通信和执行根据通道类型的消息(如QOS加

网络协议(UDP与TCP协议总结)

一.知识储备: 1.网络通讯三要素: IP地址:InetAddress 网络中设备的标识 不易记忆,可用主机名 本地回环地址:127.0.0.1  主机名:localhost 端口号 用于标识进程的逻辑地址,不同进程的标识 有效端口:0~65535,其中0~1024系统使用或保留端口. 备注:不是所谓的物理端口! 传输协议 通讯的规则 常见协议:TCP,UDP 2.UDP与TCP协议的特点: UDP: 1.将数据源和目的地封装到数据包中,不需要建立连接 2.每个数据包的大小限制在64k以内 3.