组播IGMP是什么

     Internet 组管理协议称为IGMP协议(Internet Group Management Protocol),是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。IGMP协议共有三个版本,即IGMPv1、v2 和v3。

    主机IP软件需要进行组播扩展,才能使主机能够在本地网络上收发组播分组。但仅靠这一点是不够的,因为跨越多个网络的组播转发必须依赖于路由器。路由器为建立组播转发路由必需了解每个组员在Internet中的分布,这要求主机必须能将其所在的组播组通知给本地路由器,这也是建立组播转发路由的基础。主机与本地路由器之间使用Internet组管理协议(IGMP,Internet Group Management Protocol)来进行组播组成员信息的交互。在此基础上,本地路由器再将信息与网络组播路由器通信,传播组播组的成员信息,并建立组播路由。这个过程与路由器之间的常规单播路由的传播十分相似

    IGMP是TCP/IP中重要标准之一,所有IP组播系统(包括主机和路由器)都需要支持IGMP协议。

    组播协议包括组成员管理协议和组播路由协议。组成员管理协议用于管理组播组成员的加入和离开,组播路由协议负责在路由器之间交互信息来建立组播树。

    IGMP属于前者,是组播路由器用来维护组播组成员信息的协议,运行于主机和和组播路由器之间。IGMP 信息封装在IP报文中,其IP的协议号为2。


    若一个主机想要接收发送到一个特定组的组播数据包,它需要监听发往那个特定组的所有数据包。为解决Internet上组播数据包的路径选择,主机需通过通知其子网上的组播路由器来加入或离开一个组,组播中采用IGMP来完成这一任务。这样,组播路由器就可以知道网络上组播组的成员,并由此决定是否向它们的网络转发组播数据包。当一个组播路由器收到一个组播分组时,它检查数据包的组播目的地址,仅当接口上有那个组的成员时才向其转发。
IGMP提供了在转发组播数据包到目的地的最后阶段所需的信息,实现如下双向的功能:
  1. 主机通过IGMP通知路由器希望接收或离开某个特定组播组的信息。
  2. 路由器通过IGMP周期性地查询局域网内的组播组成员是否处于活动状态,实现所连网段组成员关系的收集与维护。
IGMP共有三个版本,即IGMP v1、v2 和 v3。


IGMPv1 定义了主机只可以加入组播组,但没有定义离开成员组的信息,路由器基于成员组的超时机制发现离线的组成员。

IGMPv2 是在版本1 上基础上增加了主机离开成员组的信息,允许迅速向路由协议报告组成员离开情况,这对高带宽组播组或易变型组播组成员而言是非常重要的。另外,若一个子网内有多个组播路由器,那么多个路由器同时发送IGMP 查询报文不仅浪费资源,还会引起网络的堵塞。为解决这个问题,IGMPv2。不同使用路由选举机制, 能在一个子网内查询多个路由器。

IGMPv3 在兼容和继承IGMPv1 和IGMPv2 的基础上,进一步增强了主机的控制能力,并增强了查询和报告报文的功能。


IGMP V2离开

在IGMPv2 中,当一个主机离开某 组播组时:
(1) 该 主机向本地网段内的所有 组播路由器(目的地址为224.0.0.2)发送离开组(Leave Group) 报文;
(2) 当查询器收到该 报文后,向该 主机所声明要离开的那个 组播组发送特定组查询(Group-Specific Query)报文(目的地址字段和组地址字段均填充为所要查询的组播组地址);
(3) 如果该网段内还有该 组播组的其它成员,则这些成员在收到特定组查询 报文后,会在该报文中所设定的最大响应时间(Max Response Time)内发送成员关系报告报文;
(4) 如果在最大响应时间内收到了该 组播组其它成员发送的成员关系报告 报文,查询器就会继续维护该组播组的成员关系;否则,查询器将认为该 网段内已无该组播组的成员,于是不再维护这个组播组的成员关系。
(3)igmp版本2增加了对特定组的查询
在igmp版本1中, 组播路由器的一次查询,是针对该 网段下的所有组播组。这种查询称为普遍组查询。
在igmp版本2中,在普遍组查询之外增加了特定组的查询,这种查询 报文的目的ip地址为该 组播组的ip地址,报文中的组地址域部分也为该组播组的ip地址。这样就避免了属于其它 组播组成员的主机发送响应 报文。
(4)igmp版本2增加了最大响应时间字段
igmp版本2增加最大响应时间字段,以动态地调整 主机对组查询 报文的响应时间


详细参考:http://network.51cto.com/art/201311/416903_all.htm

你可能感兴趣的:(协议与算法)