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-10-13 13:13:45

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

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

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

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

动态网页的工作机制——Asp.net 运行机制

一.Asp.net 运行机制概述 1.使用Asp.net 进行动态Web开发,编写好Web应用程序,即动态页面,并部署到Web服务器,如IIS中: 2.客户端在浏览器输入地址,请求相应的动态页面: 3.Web 服务器根据客户端的请求,对Web应用程序进行编译或解释,并生成HTML流,返回给客户端 4.客户端浏览器解释HTML流,并显示为Web页面 二.Asp.net 运行机制详解 图1.1 ASP.NET 处理请求的内部过程 1.当请求发送到服务器IIS并被其接受后,IIS服务器会判断请求文件的

一张图,理解JAVA体系结构、运行机制、JVN运行机制、Java平台(初学)

初学JAVA,学一门语言不仅仅是学其语法,逻辑思维能力,还有每一门语言都有自己独特的一方面,所以才有那么多语言要学啊 = =,所以想要真的学好语言,其编译机制,运行机制多少也要涉猎一些啊.这是初学JAVA一些机制的理解,如果有哪里不妥当,请指教.

深入JVM虚拟机(二) JVM运行机制

深入JVM虚拟机(二) JVM运行机制 1 JVM运行机制 1.1 JVM启动流程 JVM是Java程序运行的环境,同时是一个操作系统的一个应用程序进程,因此它有自己的生命周期,也有自己的代码和数据空间.JVM工作原理和特点主要是指操作系统装入JVM,是通过jdk中Java.exe来完成通过下面4步来完成JVM环境. 1.创建JVM装载环境和配置. 2.装载JVM.dll. 3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例. 4.调用JNIEnv实例装载并处理class类. J

Spark版本定制:通过案例对SparkStreaming透彻理解三板斧之二:解密SparkStreaming运行机制和架构

本期内容: 1.解密Spark Streaming运行机制 2.解密Spark Streaming架构 上期回顾: 1.技术界的寻龙点穴,每个领域都有自己的龙脉,Spark就是大数据界的龙脉,Spark Streaming就是Spark的龙血: 2.采用了降维(把时间Batch Interval放大)的方式,进行案例演示实战,得到的结论是:特定的时间内是RDD在执行具体的Job: 一.解密Spark Streaming运行机制和架构 运行机制概念:       Spark Streaming运行

SSL/TLS协议运行机制的概述

转自:SSL/TLS协议运行机制的概述 作者: 阮一峰 日期: 2014年2月 5日 互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 不使用SSL/TLS的HTTP通信,就是不加密的通信.所有信息明文传播,带来了三大风险. (1) 窃听风险(eavesdropping):第三方可以获知通信内容. (2) 篡改风险(tampering):第三方可以

[转]SSL/TLS协议运行机制的概述

作者: 阮一峰 日期: 2014年2月 5日 互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 不使用SSL/TLS的HTTP通信,就是不加密的通信.所有信息明文传播,带来了三大风险. (1) 窃听风险(eavesdropping):第三方可以获知通信内容. (2) 篡改风险(tampering):第三方可以修改通信内容. (3) 冒充风险(pre

【转】SSL/TLS协议运行机制的概述

互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 不使用SSL/TLS的HTTP通信,就是不加密的通信.所有信息明文传播,带来了三大风险. (1) 窃听风险(eavesdropping):第三方可以获知通信内容. (2) 篡改风险(tampering):第三方可以修改通信内容. (3) 冒充风险(pretending):第三方可以冒充他人身份参与通