欢迎来到天天文库
浏览记录
ID:42085358
大小:220.14 KB
页数:9页
时间:2019-09-07
《详解IGMP(Internet组管理协议)报文及协议》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1引言本文将介绍用于支持主机和路由器进行多播的Internet组管理协议(IGMP)。它让一个物理网络上的所有系统知道主机当前所在的多播组。多播路由器需耍这些信息以便知道多播数据报应该向哪些接口转发oIGMP在RFC1112中定义[Deering1989].正如ICMP一样,IGMP也被当作IP层的一部分。IGMP报文通过IP数据报进行传输。不像我们己经见到的其他协议,IGMP有固定的报文长度,没有可选数据。图显示了IGMP报文如何封装在IP数据报中。IP数摇报IPiT部IGMP报文20字节8字节图13・1IGMP报文封装在IP数据报中IGMP(Internet组管理协议)报文及协议(
2、图一)IGMP报文通过IP首部中协议字段值为2来指明。2IGMP报文图13・2显示了长度为8字节的IGMP报文格式。4位IGMP版本⑴4位IGX1P类型(1Q未用检验和32位组地址(D类IP地址)31151678034图13JIGMP报文的了段格式g字节IGMP(Internet组管理协议)报文及协议(图二)这是版木为1的IGMP.IGMP类型为1说明是由多播路由器发出的查询报文,为2说明是主机发出的报告报文。检验和的计算和ICMP协议相同。组地址为D类IP地址。在查询报文中组地址设置为0,在报告报文中组地址为要参加的组地址。在下一节中,当介绍IGMP如何操作时,我们将会更详细地了解它
3、们。3IGMP协议3.1加入一个多播组多播的基础就是一个进程的概念(使用的术语进程是指操作系统执行的一个程序),该进程在一个主机的给定接口上加入了一个多播组。在一个给定接口上的多播组屮的成员是动态的一它随时因进程加入和离开多播纽而变化。这里所指的进程必须以某种方式在给定的接口上加入某个多播纽。进程也能离开先前加入的多播组。这些是一个支持多播主机中任何API所必需的部分。使用限定词“接口”是因为多播组中的成员是与接口相关联的。一个进程可以在多个接口上加入同一多播纟II。Stanford大学伯克利版Unix中的IP多播详细说明了有关socketAPI的变化,这些变化在Solaris2.xi
4、p(7)的文档屮也提供了。这里暗示一个主机通过组地址和接口来识别一个多播组。主机必须保留一个表,此表中包含所有至少含有一个进程的多播组以及多播组中的进程数量。3.2IGMP报告和查询多播路由器使用IGMP报文来记录与该路由器相连网络中组成员的变化情况。使用规则如下:1)当第一个进程加入一个组时,主机就发送一个IGMP报告。如果一个主机的多个进程加入同一哟1,只发送一个IGMP报告。这个报告被发送到进程加入纟II所在的同一接口上。2)进程离开一个组时,主机不发送IGMP报告,即便是组中的最后一个进程离开。主机知道在确定的组中已不再有组成员后,在随后收到的IGMP査询中就不再发送报告报文。
5、3)多播路由器定时发送IGMP查询来了解是否还有任何主机包含有属于多播组的进程。多播路由器必须向每个接口发送一个IGMP查询。因为路由器希望主机对它加入的每个多播组均发回一个报告,因此IGMP查询报文中的组地址被设置为0.4)主机通过发送IGMP报告来响应一个IGMP査询,对每个至少述包含一个进程的组均要发回IGMP报告。使用这些杏询和报告报文,多播路由器对每个接口保持一个表,表中记录接口上至少还包含一个主机的多播组。当路由器收到耍转发的多播数据报时,它只将该数据报转发到(使川相应的多播链路层地址)还拥有属于那个纟R主机的接口上。图13・3显示了两个IGMP报文,一个是主机发送的报告,
6、另一个是路由器发送的査询。该路由器正在要求那个接口上的每个主机说明它加入的每个多播组。IGMP报竹,TTL=1,IGblP组地址呦地址目的IP地址嗨地址漁IP地址=主机的I?地址IGMP查询,TTL=1.IG'IP组地址=0目的IP地址£24.001海IP地ill號由器IP地址图13・3IGMP的报告和查询3.3实现细节为改善该协议的效率,有许多实现的细节要考虑。首先,当一个主机首次发送IGMP报告(当第一个进程加入一个多播组)时,并不保证该报告被可靠接收(因为使用的是IP交付服务)。下一个报告将在间隔-段时间后发送。这个时间间隔由主机在0~10秒的范围内随机选择。MaxRespons
7、eTime其次,当一个主机收到一个从路由器发出的查询后,并不立即响应,而是经过一定的时间间隔后才发出-•些响应(采用“响应”的复数形式是因为该主机必须对它参加的每个组均发送一个响应)。既然参加同一多播组的多个主机均能发送一个报告,nJ将它们的发送间隔设置为随机时延。在一个物理网络中的所有主机将收到同组其他主机发送的所有报告,因为如图13・3所示的报告中的冃的地址是那个组地址。这意味着如果一个主机在等待发送报告的过程中,却收到了发自其他主机的和同
此文档下载收益归作者所有