Internet 组管理协议称为IGMP协议(Internet Group Management Protocol),是因特网协议家族中的一个组播协议。
该协议运行在主机和组播路由器之间。IGMP协议共有三个版本,即IGMPv1、v2 和v3。
v1
消息格式:
1、版本:1
2、类型:只有两种,组成员查询和组成员报告
3、未用:为0
4、校验和:用于校验包的完整性
5、组地址:在组成员查询消息中为0,在组成员报告消息中为要报告的组播组地址。
IGMPv1 主要基于查询和响应机制来完成对组播组成员的管理。
当一个网段内有多台组播路由器时,由于它们都能从主机那里收到IGMP 成员关系报告报文(Membership 大流量卡Report Message),因此只需要其中一台路由器发送IGMP查询报文(Query Message)就足够了。
这就需要有一个查询器(Querier)的选举机制来确定由哪台路由器作为IGMP 查询器。对于IGMPv1 来说,由组播路由协议(如PIM)选举出唯一的组播信息转发者DR(Designated Router,指定路由器)作为IGMP 查询器。
IGMPv1 没有专门定义离开组播组的报文。当运行IGMPv1 的主机离开某组播组时,将不会向其要离开的组播组发送报告报文。
当网段中不再存在该组播组的成员后,IGMP路由器将收不到任何发往该组播组的报告报文,于是IGMP 路由器在一段时间之后便大流量卡删除该组播组所对应的组播转发项。
V2
v2版本兼容V1版本,增加离开组的消息,成员查询的功能也扩展了,共有4种消息。
1、类型:
0x11——成员查询消息
0x12——V1的成员报告消息
0x16——V2的成员报告消息
0x17——离开组的消息
2、最长响应时间:针对成员查询才有意义,主机多长时间必须响应查询,单位为0.1s ,默认值为10 。
3、校验和:校验包的完整性
4、组地址:当进行常规成员查询时为0;当进行特定组成员查询时为特定组的IP;当进行成员报告时为要报告的组播组地址。
在IGMPv2 中,当一个主机离开某组播组时:
(1) 该主机向本地网段内的所有组播路由器(目的地址为224.0.0.2)发送离开大流量卡组(Leave Group)报文;
(2) 当查询器收到该报文后,向该主机所声明要离开的那个组播组发送特定组查询(Group-Specific Query)报文(目的地址字段和组地址字段均填充为所要查询的组播组地址);
(3) 如果该网段内还有该组播组的其它成员,则这些成员在收到特定组查询报文后,会在该报文中所设定的最大响应时间(Max Response Time)内发送成员关系报告报文;
(4) 如果在最大响应时间内收到了该组播组其它成员发送的成员关系报告报文,查询器就会继续维护该组播组的成员关系;否则,查询器将认为该网段内已无该组播组的成员,于是不再维护这个组播组的成员关系。
V3
允许主机指定组播大流量卡源,只接收特定组播源发出的组播数据。进一步增强了主机的控制能力,并增强了查询和报告报文的功能。
主机控制能力增强:
IGMPv3 增加了针对组播源的过滤模式,使主机在加入某组播组G 的同时,能够明确要求接收或拒绝来自某特定组播源S 的组播信息。
查询和报告报文功能的增强:
(1) 携带源地址的查询报文
IGMPv3 不仅支持IGMPv1 的普遍组查询和IGMPv2 的特定组查询,而且还增加了对特定源组查询的支持
(2) 包含多组记录的报告报文
IGMPv3 报告报文的目的地址为224.0.0.22,可以携带一个或多个组记录。在每个组记录中,包含有组播组地址和组播源地址列表。
IGMP组成员查询:
IGMP的组成大流量卡员查询利用报文中类型字段0x11来标识。
IGMP的组成员查询包含了两种子类型:
一般组成员查询(General Query)和特定组成员查询(Group-Specific Query)。
子类型利用报文中的组播组地址(Group Address)字段来区分:组地址段等于0,表示一般组成员查询;组地址地段不等于0,则表示特定组成员查询,用于查询本地网络中的每个指定组播组的成员,其中组播组的地址由组地址(Group Address)字段来指定被查询的组播组。
在IGMPv1中只支持一般组成员查询,IGMPv2支持特定组成员查询。
一般组成员查询
IGMP约定,本地路由器利用一般组成员查询方式来周期性地向本网大流量卡络内的所有主机发送IGMP组成员查询报文;本地网络中的主机在接收到IGMP查询报文时,将会对该报文作出相应,返回一个组成员报告报文,通知路由器本主机所在的组播组的地址。
特定组成员查询
正常情况下,IGMP采用一般组播组成员查询来轮询本地网络中的组成员信息。这种查询并非针对某一个组播组,而是针对本地网络中所有组进行查询。在某些特定环境中,路由器也需要查询在本地网络中是否存在某个特定组播组的成员。这时可使用特定组成员查询。
以上就是本期IGMP协议相关内容啦,都了解了吗?
欢迎关注我的头条号,私信交流,学习更多网络技术!
友情提醒: 请添加客服微信进行免费领取流量卡!
QQ交流群:226333560 站长微信:qgzmt2
原创文章,作者:sunyaqun,如若转载,请注明出处:https://www.dallk.cn/59009.html