igmp是哪个层协议_「干货」IGMPv1协议闲聊

本期与大家聊聊IGMPv1(因特网组管理协议),分享我个人见解,以及梳理一下IGMPv1相关知识点。

它是干嘛用的?

我们学一个协议时,首先,最想知道的就是它是干嘛用的?什么时候才需要它?部署场景?

1、它是干嘛的?

IGMP(Internet Group Mangment Protocl)因特网组管理协议,开发该协议,主要是用于组播流接收主机和相邻组播路由器之间维护组播组成员关系的。

说白了,主机通过它来表达自己想加入哪个组播组。组播路由器通过它可以清楚了解连接主机子网内有哪些组播组成员。

2、什么时候才需要它? 部署场景?

当部署组播时候,有主机需要加入组播组时就需要它。

部署场景:

8b8451d385f4b1d532def99d892e49a9.png

IGMP协议、原理介绍

1、协议发展:

f704b1402513bf8bc0e36e467c626a81.png

2、协议具体介绍

IGMP协议运行于主机和 与主机相邻的组播路由器(最后一跳路由器)之间。

IGMP工作机制,龙哥就从两个维度来说把,就是主机路由器

f7bfaebb8d76b32d2af20f9a3aa0def3.png
f083bc0c9618fe93449a694c81d5f735.png

3、IGMP工作机制

befe5de2897670bfc6f31ed4d7928bfd.png

聊IGMP工作机制前,我个人还是偏向先了解一下报文格式,如果有报文格式读透了,然后再去研究原理,就容易理解一些。

1aba4fb967572ec68662a79697ae1d14.png

IGMPv1报文格式

版本:即=1‘

类型:0x11= ’成员关系查询报文;0x12=成员加入报告报文。

组播地址:

如果是成员关系查询报文,即等于0.0.0.0

如果是成员加入报告报文,即等于想要加入的组播地址。

结合上述格式,龙哥再抓个包给大家看,就会更加深刻了。

1f1b9742139fef4e627b604de9b3a5f7.png

红色部分,我们可知,IGMP是基于IP之上进行封装的,协议号为2

在这,大家是不是能想到ICMP,也是基于IP之上的,协议号为1。不过与ICMP不同的是,IGMP消息仅局限于本地数据链路,为啥呢? 看图说话,TTL=1。

4、IGMPv1成员加入

1fe8c2648203ccb21b26f1af29195ffc.png

例如,PC1想加入239.1.1.1这个组播组,就会发送IGMPv1的成员报告报文,目的IP地址为想要加入的组。路由器收到后,就会了解到该网段有组播组239.1.1.1的成员,为其生成组播转发表项(*,239.1.1.1) , *表示任意组播源。

路由器没收到 成员报告 :

35faf343540ed8f34b2bb4ed6c04cb10.png

当PC1 发送 成员报告报文,表示想加入239.1.1.1时,成员报告报文如下:

fc697095ef4aa6eb02a12d15023b186e.png
9962c0f8a3664b2e08ff34c8788f6da2.png

从报文,我们一下就知道了:

IGMPv1的成员报告报文类型为:0x12

报文的目的IP为 所要加入组的组播IP地址。

5、IGMPv1 成员维护。

值得一提的是,IGMPv1 里没有查询器这个东西,是依赖组播协议PIM选择产生的。

f5ad4f695c4082024de717bf25c02886.png

下面,我们通过配一下PIM来看看是否就有查询器了?

76c7c40a04b022d96030389bb3bfcc65.png
c0bc2c94abbbb2b7ca737000eb85eb30.png

这样,IGMP 查询器就产生了,就可以看到路由器周期发送查询报文。

ba3a07518136049b12ce134cc1ad7636.png
9575f0dee8b4e21fd5627e75da6c0f58.png

路由器缺省每隔60s发送一次查询报文,向224.0.0.1发生查询报文:问问大家,这个组还有成员吗?

(224.0.0.1 代表组内所有主机系统)

该网段的所有主机都能收到这个查询报文,同时会启动一个延时定时器,值为0到10s之间,随机取一个。谁先到期,就由谁来发送响应报文。这样做的好处,避免重复的响应报文。

a46eb4461fc5ac38604f152eff546d1c.png

PC1先到期,然后就会发生响应报文。

1e40bf3e003747c631e1805c0aedd198.png

其他PC也会收到PC1的响应报文,就会清除延时定时器,同时他们不会发响应报文的。

如果130s内没有响应路由器,路由器就将该组对应的转发表项删除了。

6、IGMPv1 成员离开。

b6d3b00f9bc73ee3cc28694522b6398a.png

IGMPv1 没有定义离开报文,所以PC离开时,不会发任何报文,路由器无法感知到,只能通过继续周期查询,如果查了3次还是没有人响应,则认为该组没有成员了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值