前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

组播成员加组过程--IGMP工作机制(组播gemport)

qiguaw 2024-09-04 17:23:02 资源文章 38 ℃ 0 评论

IGMPv1的工作机制:

1 查询机制:普遍组查询 普遍组查询报文由组播路由器(在IGMPv1版本中,由PIM 选出的DR周期性发出)发出,用于查询是否存在组播组,每60S发送一次,报文发送的目的地址为224.0.0.1。

2 响应机制:成员报告报文 接收者发出,用于表明加入哪个组播组中。主动发送:主动加入某个组;被动发送:收到普遍组查询报文,被动回复加入某个组。最大响应时间:10s,不可修改(因为报文中不包含此字 段),单位为1s。

3 组成员离开机制(静默离开): 没有特定的离开机制。组播路由只能根据成员报告报文判断是否存在组播组,组播组成员在120S+10S( 2个普遍组查询时间加上1个最大响应时间)的时间内没有回复成员报告则认为该组播组已经不存在。


响应抑制机制: 组播路由器发出查询报文后,组播组成员会启动响应定时器(1-10s 随机),响应时间先到的组成员先回复成员报告报文(同时该成员被选为 last-reporter),其他组成员收到加入组相同的成员报告报文就会取消发送成员报告报文。


IGMPV2的工作机制:

(1)查询机制:

1 普遍组查询报文 (同V1功能一致)

2 特定组查询报文 (新增报文,用于组播路由器针对某一个组发送的查询报文) 特定组查询报文:最后一跳路由器收到成员离开报文时发出, 用于查询某个组是否还存在成员,如果存在成员会收到响应报文,不会删除该组播组, 如果发出特定组查询报文在1S内没有得到回复,再发送一次(总共发送2次),如果还没有收到响应报文,则认为不存在该组播组的接受者。实际上相当于老化时间变为2s。

普遍组查询报文格式如下:


特定组查询报文的格式如下:


3 查询器选举机制: 在IGMPv2机制中,IGMPv2新增本身的查询器选举机制,由普遍组查询报文进行选举,选举条件为: IP地址越小越优先。过程:刚开始所有的最后一跳路由器都认为自己为查询器相互发送查询报文,当收到查询报文之后,比较查询报文的源IP与自己接口的IP地址。如果自己接口的IP地址比较小,继续充当查询器,如果自己接口的IP地址比较大,不再发送查询报文,被动监听查询报文。如果125S没有收到,就自己充当查询器。

(2)成员报告机制: 与V1报文版本完全一致,存在响应抑制机制、last-reporter等。 (3)成员离开机制 离开报文 :由成员离开某个组播组时发出报文,只有last-reporter发送的离开报文才会触发特定组查询机制。 最大响应时间机制: 收到普遍组查询报文的主机会在0-10s的时间范围内随机挑选一个时间进行响应。例如:主机A随机选择时间,假设时间选择为5s,则主机A 会等待5s后再发送成员报告报文。 Last-reporter机制: Last-reporter被称为:最后一个报告者,每一次普遍组查询报文第一个响应的主机被选为last-reporter。组播路由器通过记录主机的IP地址而记录last-reporter。


IGMPv3工作机制

IGMPv3主要是为了配合SSM(Source-Specific Multicast)模型发展起来的,提供了在报文中携带组播源信息的能力,即主机可以对组播源进行选择。在工作机制上,与IGMPv2相比,IGMPv3增加了主机对组播源的选择能力

(1)新增报文:

1 特定源组加入:IGMPv3的成员报告报文的目的地址为224.0.0.22(表示同一网段所有使能IGMPv3的路由器)。通过在报告报文中携带组记录,主机在加入组播组的同时,能够明确要求接收或不接收特定组播源发出的组播数据

2 特定源组查询:当接收到组成员发送的改变组播组与源列表的对应关系的报告时(比如CHANGE_TO_INCLUDE_MODE, CHANGE_TO_EXCLUDE_MODE),IGMP查询器会发送特定源组查询报文。如果组成员希望接收其中任意一个源的组播数据,将反馈报告报文。IGMP查询器根据反馈的组成员报告更新该组对应的源列表

(2)与IGMPv2相比,IGMPv3报文的变化有哪些?

1 IGMPv3报文包含两大类:查询报文和成员报告报文。 IGMPv3没有定义专门的成员离开报文,成员离开通过特定类型的报告报文来传达。igmpv3成员离开通过发送加入组播源地址列表为空的成员报告报文来表示离开

2 查询报文中不仅包含普遍组查询报文和特定组查询报文,还新增了特定源组查询报文(Group-and-Source-Specific Query)。该报文由查询器向共享网段内特定组播组成员发送,用于查询该组成员是否愿意接收特定源发送的数据。特定源组查询通过在报文中携带一个或多个组播源地址来达到这一目的

3 成员报告报文不仅包含主机想要加入的组播组,而且包含主机想要接收来自哪些组播源的数据。IGMPv3增加了针对组播源的过滤模式 (INCLUDE/EXCLUDE),将组播组与源列表之间的对应关系简单的表示为(G,INCLUDE,(S1、S2...)),表示只接收来自指定组播源S1、 S2……发往组G的数据;或(G,EXCLUDE,(S1、S2...)),表示接收除了组播源S1、S2……之外的组播源发给组G的数据。当组播组与组播源列表的对应关系发生了变化,IGMPv3报告报文会将该关系变化存放于组记录(Group Record)字段,发送给IGMP查询器。

4 在IGMPv3中一个成员报告报文可以携带多个组播组信息,而之前的版本一个成员报告只能携带一个组播组。这样在IGMPv3中报文数量大大减少

扩展问题:什么是ASM和SSM

(1) ASM:任意源模式,接收者主机加入组播组以后可以接收到任意源发送到该组的数据。

1 判断条件:最后一跳路由器生成组播路由条目为(*,G)

2 缺点:可能会收到重复的组播流量;如果有两种不同的应用程序使用了同一个ASM组地址发送数据,它们的接收者会同时收到来自两个源的数据。这样一方面会导致网络流量拥塞,另一方面也会给接收者主机造成困扰。

(2)SSM:指定源模式,接收者主机在加入组播组时,可以指定只接收哪些源的数据或指定拒绝接收来自哪些源的数据。加入组播组以后,主机只会收到指定源发送到该组的数据。

1 判断条件:最后一跳路由器生成组播路由条目为(S,G)

2 优点:不同的源之间可以使用相同的组地址,因为SSM模型中针对每一个(源,组)信息都会生成表项。这样一方面节省了组播组地址,另一方面也不会造成网络拥塞。


扩展问题:RP的作用以及RP代理

BSR作用:收集和通告RP信息。

RP作用:汇聚点RP为网络中一台重要的PIM路由器,用于处理源端DR注册消息及组成员加入请求。网络中的所有PIM路由器都必须知道RP的地址,类似于一个供求信息的汇聚中心,用直白的话讲就是告诉接收者,源在哪;告诉源,接收者在哪!

BSR:负责收集以及通告RP的信息,网络中可以存在多台C-BSR

RP:为一个或者多个组提供RP服务。网络中可以存在多台C-RP

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表