📜  什么是 IGMP(Internet 组管理协议)?

📅  最后修改于: 2021-09-24 01:47:42             🧑  作者: Mango

IGMP是 Internet Group Management Protocol 的首字母缩写词。 IGMP 是主机和相邻路由器用于多播与 IP 网络通信的通信协议,并有效地使用资源来传输消息/数据包。多播通信可以有单个或多个发送方和接收方,因此,IGMP 可用于流视频、游戏或网络会议工具。该协议用于 IPv4 网络,为了在 IPv6 上使用该协议,多播由多播侦听器发现 (MLD) 管理。与其他网络协议一样,IGMP 用于网络层。 MLDv1 在功能上与 IGMPv2 几乎相同,MLDv2 与 IGMPv3 几乎相似。

通信协议 IGMPv1 于 1989 年在斯坦福大学开发。 IGMPv1 于 1997 年更新为 IGMPv2,并于 2002 年再次更新为 IGMPv3。

应用:

  • 流媒体 –
    多播路由协议用于网络上的音频和视频流,即一对多或多对多。
  • 游戏 –
    Internet 组管理协议常用于网络游戏等网络上有多个用户的模拟游戏。
  • 网络会议工具 –
    视频会议是一种新的方式,可以方便地与人会面,IGMP 连接到用户进行会议并有效地传输消息/数据包。

类型:
IGMP 有 3 个版本。这些版本向后兼容。以下是 IGMP 的版本:

1. IGMPv1:
IGMP 通信协议版本允许所有支持主机使用成员资格请求加入多播组,并包括一些基本功能。但是,主机不能自行离开组,必须等待超时才能离开组。
IGMPv1中的报文格式:

  • 版本 –
    设置为 1。
  • 类型 –
    1 用于主机会员查询和主机会员报告。
  • 没用过 –
    无用的 8 位零。
  • 校验和 –
    它是IGMP消息总和的补码。
  • 集团地址 –
    组地址字段在发送时为零,在成员查询消息中接收时忽略。在成员报告消息中,组地址字段采用正在报告的组的 IP 主机组地址。

2. IGMPv2:
IGMPv2 是 IGMPv1 通信协议的修订版。它增加了使用组成员身份离开多播组的功能。
IGMPv2中的报文格式:

类型 –

0x11 for Membership Query
0x12 for IGMPv1 Membership Report
0x16 for IGMPv2 Membership Report
0x22 for IGMPv3 Membership Report
0x17 for Leave Group 
  • 最大响应时间 –
    对于成员资格查询以外的消息类型,将忽略此字段。对于成员资格查询类型,它是发送响应报告前允许的最长时间。该值以 0.1 秒为单位。
  • 校验和 –
    它是IGMP消息总和的补码。

  • 集团地址 –
    发送一般查询时设置为0。否则,组特定或源特定查询的多播地址。

3. IGMPv3:
IGMPv2 修改为 IGMPv3,增加了特定源组播和成员报告聚合。这些报告被发送到 224.0.0.22。

IGMPv3中的报文格式:

  • 最大响应时间 –
    对于成员资格查询以外的消息类型,将忽略此字段。对于成员资格查询类型,它是发送响应报告前允许的最长时间。该值以 0.1 秒为单位。
  • 校验和 –
    它是IGMP消息总和的补码。
  • 集团地址 –
    发送一般查询时设置为0。否则,组特定或源特定查询的多播地址。
  • 回复率 –
    发送时设置为零,接收时忽略。
  • S 旗 –
    它代表 Suppress Router-side Processing 标志。当该标志被设置时,它表示抑制多播路由器在接收到任何查询时执行的定时器更新。
  • QRV –
    它代表 Querier 的稳健性变量。路由器不断从最近收到的查询中检索 QRV 值作为自己的值,直到最近收到的 QRV 为零。

  • QQIC –
    它代表查询者的查询间隔代码。
  • 来源数量 –
    它表示查询中存在的源地址数。对于一般查询或特定组查询,此字段为零,对于特定于组和源的查询,此字段为非零。
  • 源地址[i] –
    它代表 N 个字段的 IP 单播地址。

在职的:
IGMP 工作在能够处理组播组和动态组播的设备上。这些设备允许主机加入或离开多播组的成员资格。这些设备还允许从组中添加和删除客户端。该通信协议在主机和本地组播路由器之间运行。创建组播组时,组播组地址在 D 类(224-239)IP 地址范围内,并作为数据包中的目标 IP 地址转发。

L2 或 Level-2 设备(例如交换机)用于主机和组播路由器之间的 IGMP 侦听。 IGMP 侦听是以受控方式侦听 IGMP 网络流量的过程。交换机接收来自主机的消息并将成员报告转发到本地组播路由器。使用 PIM(协议独立多播)将多播流量从本地多播路由器进一步转发到远程路由器,以便客户端可以接收消息/数据包。希望加入网络的客户端在查询中发送加入消息,交换机拦截该消息并将客户端的端口添加到其多播路由表中。

优点:

  • IGMP 通信协议有效地将组播数据传输到接收器,因此没有垃圾数据包传输到主机,显示出优化的性能。
  • 当所有共享链路都连接时,带宽被完全消耗。
  • 主机可以离开多播组并加入另一个组。

缺点:

  • 它在过滤和安全方面没有提供良好的效率。
  • 由于缺少 TCP,可能会发生网络拥塞。
  • IGMP 容易受到一些攻击,例如 DOS 攻击(拒绝服务)。