TCPIPChap13IGMP

来源:互联网 发布:2016淘宝66大促 编辑:程序博客网 时间:2024/06/08 20:13

IGMP

1、  IGMP定义

I n t e r n e t组管理协议( I G M P)用于支持主机和路由器进行多播的。它让一个物理网络上的所有系统知道主机当前所在的多播组。多播路由器需要这些信息以便知道多播数据报应该向哪些接口转发。

 

2、  报文格式

 

正如I C M P一样, I G M P 也被当作I P 层的一部分。I G M P报文通过I P数据报进行传输。不像我们已经见到的其他协议, I G M P有固定的报文长度,没有可选数据。图1 3 - 1显示了I G M P报文如何封装在I P数据报中。

 

 

这是版本为1I G M PI G M P类型为1说明是由多播路由器发出的查询报文,为2说明是主机发出的报告报文。检验和的计算和I C M P协议相同。

组地址为DI P地址。在查询报文中组地址设置为0,在报告报文中组地址为要参加的组地址。

 

3、  主机与IGMP

多播组进程表、主机、进城、接口、IGMP报告

3.1加入多播组

主机的进程在给定的接口上加入了一个多播组。在一个给定接口上的多播组中的成员是动态变化的,它随时因为进程的加入和离开多播组而变化。

这里所指的进程必须以某种方式在给定的接口上加入某个多播组。进程也能离开先前加入的多播组。这些是一个支持多播主机中任何A P I所必需的部分。使用限定词“接口”是因为多播组中的成员是与接口相关联的。一个进程可以在多个接口上加入同一多播组。

这里暗示一个主机通过组地址和接口来识别一个多播组。主机必须保留一个表,此表中包含所有至少含有一个进程的多播组以及多播组中的进程数量。

 

4、  多播路由器和IGMP

接口、接口多播组对应表、IGMP查询报文

4.1实现规则

多播路由器使用I G M P报文来记录与该路由器相连网络中组成员的变化情况。使用规则如

下:

1) 当第一个进程加入一个组时,主机就发送一个I G M P报告。如果一个主机的多个进程加入同一组,只发送一个I G M P报告。这个报告被发送到进程加入组所在的(路由器上的)同一接口上。

2) 进程离开一个组时,主机不发送I G M P报告,即便是组中的最后一个进程离开。主机知道在确定的组中已不再有组成员后,在随后收到的I G M P查询中就不再发送报告报文。(被动告之没有不属于某个多播组,报告只有告诉属于某个多播组的功能)

3) 多播路由器定时发送I G M P查询来了解是否还有任何主机包含有属于多播组的进程。多播路由器必须向每个接口发送一个I G M P查询。因为路由器希望主机对它加入的每个多播组均发回一个报告,因此I G M P查询报文中的组地址被设置为0

4) 主机通过发送I G M P报告来响应一个I G M P查询,对每个至少还包含一个进程的组均要发回I G M P报告。

使用这些查询和报告报文,多播路由器对每个接口保持一个表,表中记录接口上至少还

包含一个主机的多播组。当路由器收到要转发的多播数据报时,它只将该数据报转发到(使

用相应的多播链路层地址)还拥有属于那个组主机的接口上。

1 3 - 3显示了两个I G M P报文,一个是主机发送的报告,另一个是路由器发送的查询。该

路由器正在要求那个接口上的每个主机说明它加入的每个多播组。

 

42实现细节

1)当一个主机首次发送I G M P报告I (当第一个进程加入一个多播组)时,并不保证该报告被可靠接收(UDP)。下一个报告将在间隔一段时间后发送。这个时间间隔由主机在0 ~ 1 0秒的范围内随机选择。

(2) 当一个主机收到一个从路由器发出的查询后,并不立即响应,而是经过一定的时

间间隔后才发出一些响应(可能会发送多个相应,因为属于多个多播组)(既然参加同一多播组的多个主机均能发送一个报告,可将它们的发送间隔设置为随机时延)

3)主机收到IGMP查询报文时,也可以不发送报告报文。在一个物理网络中的所有主机将收到同组其他主机发送的所有报告,因为如图1 3 - 3所示的报告中的目的地址是那个组地址。这意味着如果一个主机在等待发送报告的过程中,却收到了发自其他主机的相同报告,则该主机的响应就可以不必发送了。因为多播路由器并不关心有多少主机属于该组,而只关心该组是否还至少拥有一个主机。的确,一个多播路由器甚至不关心哪个主机属于一个多播组。它仅仅想知道在给定的接口上的多播组中是否还至少有一个主机。

4)在没有任何多播路由器的单个物理网络中,仅有的I G M P通信量就是在主机加入一个新的多播组时,支持I P多播的主机所发出的报告。

 

4.3 所有主机组

 

我们看到了路由器的I G M P查询被送到目的I P地址2 2 4 . 0 . 0 . 1。该地址被称为所有主机组地址。它涉及在一个物理网络中的所有具备多播能力的主机和路由器。当接口初始化后,所有具备多播能力接口上的主机均自动加入这个多播组。这个组的成员无需发送I G M P报告。

 

4.4多播路由守护程序和距离向量多播选路协议D V M R P

多播路由守护程序在启动后会立马不断的发送IGMP查询报文,因为要尽快将多播路由表建立起来。

在一个局域网中或跨越邻近局域网的多播需要使用本章介绍的技术。广播通常局限在单

个局域网中,对目前许多使用广播的应用来说,可采用多播来替代广播。