IGMP协议原理60个知识点Word文件下载.docx
《IGMP协议原理60个知识点Word文件下载.docx》由会员分享,可在线阅读,更多相关《IGMP协议原理60个知识点Word文件下载.docx(6页珍藏版)》请在冰豆网上搜索。
![IGMP协议原理60个知识点Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/4/ecedb306-f53a-4856-ae95-f62814bc9218/ecedb306-f53a-4856-ae95-f62814bc92181.gif)
而各主机只需要保存自己加入了哪些组播组。
6.从此体系结构中可以知道IGMP处于组播协议的最底层,是整个组播协议的基础。
在组播协议中,只有IGMP协议直接与点播主机联系,运行IGMP的路由器负责管理组用户主机的加入、离开,通过维护用户数据,发送组播数据到主机。
7.到目前为止,IGMP有三个版本:
IGMPv1版本、IGMPv2版本和IGMPv3版本。
所有IGMP版本都支持ASM(Any-SourceMulticast)模型。
IGMPv3可以直接应用于SSM(Source-SpecificMulticast)模型,而IGMPv1和IGMPv2则需要SSM-Mapping技术的支持.。
8.IGMPv1(RFC1112)定义了基本的组成员查询和报告过程。
9.IGMPv2(RFC2236)定义,在IGMPv1的基础上添加了组成员快速离开的机制。
10.IGMPv3,增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。
11.Version:
IGMP版本标识,版本1为1。
IGMPv2的报文中没有该字段。
12.Type:
类型字段。
表示IGMP报文类型。
13.IGMPv1支持两种类型的报文:
a)成员关系查询(0x11):
路由器周期性的发送成员关系查询报文去查询是否有组播成员。
默认查询周期为60秒。
b)成员关系报告(0x12):
成员关系报告用于表示主机想加入某个组播组。
c)成员关系报告的发送可以被动发送也可主动发送。
d)被动发送是指当主机收到成员关系查询消息后如果对某个组播组感兴趣想加入组播组时发送成员关系报告。
e)主动发送是指如果主机想加入某个组播组时,可以不用等待成员关系查询报文,而主动地发送成员关系报告。
14.组地址:
不同类型的IGMP报文中组地址不同。
a)在成员关系报告报文中,组地址为某个特定的组播地址。
b)在成员关系查询报文中,组地址为0。
15.主机主动发送IGMP成员关系报告报文,表示想加入一个组播组中。
16.该报文中组地址为主机想加入的组播组的地址。
17.IGMPv1的查询与响应过程如下:
a)IGMP查询器周期性地向共享网段内所有主机以组播方式(目的地址为224.0.0.1)发送成员关系查询消息(组地址为0)。
b)网络内所有主机都接收到该查询消息,如果某主机(如PC1、PC2和PC3)对任意组播组G感兴趣,则以组播方式发送“成员关系报告”报文(其中携带组播组G的地址)来宣告自己将加入该组播组,假设PC2首先发送此报告。
c)经过查询/响应过程后,IGMP路由器了解到本网络内存在组播组G对应的接收者,生成(*,G)组播转发项并依此作为组播信息的转发依据。
*表示组播组成员,G表示某个组播组。
18.IGMPv1规定,当共享网络中有多台路由器时,由组播路由协议选举查询器。
不同的组播路由协议有不同的选举机制。
19.IGMP成员关系查询报文是目的地址是224.0.0.1,就是说网段内所有的设备都会接收到该查询报文。
但并不是所有接收到该报文的主机都会响应查询请求的。
只有一个主机会以成员关系报告报文响应,而其他主机则抑制成员关系报告的发送。
20.实际上主机收到IGMP成员关系查询时,会对它已经加入的每个组播组启动一个倒计数报告计时器。
V1中计时器值固定使用10秒。
计时器到时的主机则主动发送成员关系报告,组地址为该组播组地址,目的地址为224.0.0.1。
于是网段内其它主机都会收到该成员关系报告报文,接收到成员关系报告报文的主机抑制成员关系报告的发送,并删除计时器。
21.当路由器周期性的发送成员关系查询报文时,每个主机都会再次启动计时器进行查询/响应/抑制。
22.由于IGMPv1版本没有定义专门离开组播组的消息,因此主机离开组时是默默离开不发送任何报文。
而组播路由器如何知道用户已经离开组播组呢?
IGMPv1主要是基于查询无响应进而超时的思路实现的。
23.成员悄悄离开组播组,不发送任何报文。
路由器依旧周期性的发送成员关系查询报文,周期为60秒,当路由器发送3次成员关系查询报文都没有收到响应的成员关系报告报文时,路由器认为组内已经没有成员,不再向该网段转发组播报文。
24.IGMPv2报文与IGMPv1报文略有不同,取消了版本字段而相应增加了最大响应时间字段。
25.IGMPv2报文中有三种报文类型:
26.Type=0x11成员关系查询报文,又分两种子类型:
a)常规查询:
用于确定哪些组播组是有效的,即该组是否还有成员在使用,常规查询组地址全零;
b)特定查询:
用于查询特定的组播组是否还有组成员。
组地址为特定的组播地址。
27.Type=0x16IGMPv2组成员关系报告。
a)为了和IGMPv1兼容,还有另外的一个附加的消息类别:
b)0x12=IGMPv1成员报告。
28.Type=0x17离开组消息,主机发送的离开报告。
29.最大响应时间字段,仅用于组成员关系查询。
表示主机响应查询返回报告的时间范围。
IGMPv1中没有该字段。
30.组地址字段:
a)发送常规查询时,组地址字段设置为零;
b)特定组查询时候,设置为要查询的组地址。
c)当主机成员发回组关系报告或是发送离开组消息时,本字段设置为目标组地址。
31.校验字是IGMP消息长度(IP包的整个有效负载)的16位检测。
该域设为0
32.当一个主机首次加入组播组时,主机立即发送成员关系报告报文。
初始的成员报告可能会丢失或会受到损害,为了防止此种情况,推荐在短的间隔时间内报告一次或两次(RFC2326推荐的时间间隔为10秒)。
33.IGMPv2主机也支持IGMPv1的成员关系报告报文。
34.IGMPv2中增加了最大响应时间字段。
前面介绍了主机收到成员关系查询报文时,会为每个已经加入的组播组启动一个计时器。
计时器到期的主机才会发送IGMP成员关系报告报文来响应路由器的查询。
在v2中该计时器的值为(1~最大响应时间)之间的一个随机值。
35.IGMPv2版本增加最大响应时间字段,以动态地调整主机对组查询报文的响应时间。
36.在IGMPv1版本中,组播路由器发起的查询是针对该网段下的所有组播组,这种查询被称为普遍组查询。
37.IGMPv2版本中,在普遍组查询之外增加了特定组的查询,这种查询报文的目的IP地址为某个组播组的IP地址,报文中的组地址字段也为该组播组的IP地址,网络中属于该组播组成员的主机才会进行响应,这样就避免了属于其它组播组成员的主机发送响应报文。
38.对于一个网段上有多个组播路由器的共享网段,由于此网段下运行IGMP的路由器都能从主机那里收到成员关系报告消息,因此,只需要一个路由器发送成员资格查询消息,这就需要一个路由器选举机制来确定一个路由器作为查询器。
39.只有查询器才会发送成员关系查询报文。
在IGMPv1版本中,查询器的选择由组播路由协议决定;
40.IGMPv2版本对此做了改进,规定同一网段上有多个组播路由器时,具有最小IP地址的组播路由器被选举出来充当查询器。
41.路由器启动,主动发出到目的地(224.0.0.1)的IGMPv2常规查询信息。
42.收到常规查询信息的路由器,会把此信息的源IP地址和接收口的IP地址作比较,拥有最低IP地址的路由器被选举为IGMP查询路由器。
43.查询器也会有失效的时候,当查询器失效时,另一路由器成为查询器。
所以非查询路由器会启动一个查询计时器,周期检查IGMP查询路由器的状态,缺省情况下120秒。
该值可以通过命令timerother-querier-presentinterval修改。
44.在IGMPv1版本中,主机悄然离开组播组,不会向任何组播路由器发出任何通知。
版本1路由器把IGMPv2报告看作无效的IGMP信息类型并且忽略它。
当版本1路由器作为有效的IGMP查询器的时候,版本2的主机必须发送IGMPv1报告。
45.当版本2的主机检测出IGMP查询器是版本1的路由器时,它必须始终用IGMPv1报告做出响应。
在这种情况下,版本2的主机也可以抑制发送离开组信息。
为了维护本接口的状态,无论何时IGMPv1查询在接口处被收到,版本2主机会启动一个400秒的倒计时器,当另一个IGMPv1查询被收到时,计时器被复位。
如果计时器计满,此接口恢复成为IGMPv2接口并且IGMPv2信息被再次发送。
46.版本2主机必须允许它的成员关系报告被IGMPv1或IGMPv2成员关系报告抑制。
47.造成组播路由器只能依靠响应超时来获知组播成员的离开。
而在v2版本中,当一个主机决定离开一个组播组时,它会向网络中所有组播路由器以组播方式(224.0.0.2)发送离开组的消息,为了明确该组播组中是否还包含其它成员主机,该组播路由器会向网络中发送特定组查询消息。
在查询的最大响应时间内(默认为1秒)没有收到该组的报告,则再次发送特定组查询。
2次特定组查询后仍没有收到成员报告,则认为组播成员全部离开。
48.如果某个版本2的路由器是IGMP查询器,同时在局域网中版本1的主机也是同一组成员,那么该组的IGMPv1报告总是被收到,因为IGMPv2报告在版本1的主机中不会引起报告抑制,版本1的主机不理解版本2的报告,因此忽略他们。
49.无论何时,只要版本1的主机成为组成员,IGMPv2离开过程都将被搁置。
50.如果一些版本1的路由器存在于子网中,那么必须被强制性地为子网中的所有路由器配置IGMPv1以便正常使用。
51.IGMPv3版本在兼容IGMPv1和v2版本基础上进一步增强了主机的控制能力,不仅可以指定加入的组播组G,还能明确要求从哪个指定组播源S接收信息,这也就是指定源组播功能。
52.如果主机仅需要获得某些特定源的信息,可以将IGMP报告中的Filter-Mode字段设置为Include模式,并在该报告中指定需要接收的组播源地址Sources,从而实现从指定源地址接收组播报文,鉴于描述方便可以表示为IncludeSources(S1,S2,……);
53.如果主机不想接收某些特定源的信息,则可以要求从除指定源外的所有其他源地址接收组播报文,在IGMP报告中标记为ExcludeSources(S1,S2,……)。
54.IGMPv1和v2版本的响应消息和查询消息具有相同的报文结构,即报文中仅包含组地址信息。
IGMPv3响应消息包含的组地址为224.0.0.22,其中可以携带1个或多个组记录,在每个组记录中,包含组播组地址、数目不等的源地址信息。
组记录可以分为多种类型,如:
55.当前状态记录:
报告了接口的当前接收状态,分为Include和Exclude两种状态类型。
Include表示包含指定源地址列表,Exclude表示包含除指定源地址列表外的所有源地址。
56.过滤模式改变记录:
报告接口接收状态从Include状态切换到Exclude状态,或从Exclude状态切换到Include状态。
57.源地址列表改变记录:
报告新源地址加入,或删除某源地址。
58.IGMPv3不仅支持IGMPv1版本的普遍组查询,支持IGMPv2版本的特定组查询,而且支持IGMPv3版本的指定源/组查询。
在IGMP消息中携带组播源地址和多种控制字段(如查询器的强壮性系数、查询间隔等)。
对于普遍组查询,既不携带组地址,也不携带源地址;
对于特定组查询,携带组地址,但是不携带源地址;
对于指定源/组查询,既携带组地址,而且还携带1个或多个源地址信息。
59.IGMPv1提供哪两种类型的报文?
IGMPv1提供成员关系查询和成员关系报告两种类型报文。
60.IGMPv2与IGMPv1相比较增加了哪些功能?
IGMPv2中增加了组播成员离开功能,当组播成员要离开组播组时会发送一个离开报文给组播组。
同时IGMPv2在增加了特定组查询报文,用于成员要离开组播组时查询组内是否还有其他成员。