IGMPv1-v2-v3的原理报文形式.doc

上传人:cl****1 文档编号:553896503 上传时间:2023-06-20 格式:DOC 页数:36 大小:734.04KB
返回 下载 相关 举报
IGMPv1-v2-v3的原理报文形式.doc_第1页
第1页 / 共36页
IGMPv1-v2-v3的原理报文形式.doc_第2页
第2页 / 共36页
IGMPv1-v2-v3的原理报文形式.doc_第3页
第3页 / 共36页
IGMPv1-v2-v3的原理报文形式.doc_第4页
第4页 / 共36页
IGMPv1-v2-v3的原理报文形式.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《IGMPv1-v2-v3的原理报文形式.doc》由会员分享,可在线阅读,更多相关《IGMPv1-v2-v3的原理报文形式.doc(36页珍藏版)》请在金锄头文库上搜索。

1、IGMPv1,v2,v3的原理报文形式目 录1 IGMP 协议11。1 IGMPv1协议11。1.1 IGMPv1的工作原理11。1.2 IGMPv1报文格式11.1.3 IGMPv1工作过程21。2 IGMPv2协议41。2.1 IGMPv2的工作原理41.2.2 IGMPv2的报文格式51。2。3 IGMPv2工作过程61。3 IGMPv3协议81。3.1 IGMPv3的工作原理81。3.2 IGMPv3的报文格式81.3.3 IGMPv3的主要改进112 MLD协议122.1 MLDv1协议132。1.1 MLDv1的工作原理132。1.2 MLDv1报文格式132。1。3 MLDv1工

2、作流程152。2 MLDv2协议152。2.1 工作原理162。2.2 MLDv2报文格式162.2.3 MLDv2工作过程221 IGMP 协议 IGMP用来动态的将各个主机注册到特定局域网中的一个组播组中。主机向本地的组播路由器发送IGMP消息来表明自己所属的组播组。在IGMP协议中,路由器侦听IGMP消息并周期的发出查询,以发现某个子网上哪些组是活动的,哪些是不活动的. IGMP消息在IP数据报内发送,用IP协议号2来标识。同时,将IP存活时间(TTL)字段值设定为1,因此IGMP信息处于本地范围本子网内传送并且不会被路由器转发。1989年,IGMP版本1(RFClll2)第一次详细定义

3、了IGMP规范。后来施乐公司对最早的IGMP版本1进行了大幅更新,产生了IGMP版本2(RFC2236).到目前为止IGMP版本3规范己经称为IETF正式标准(RFC3376),通用的是IGMPv2。IGMPvl实现简单,但是有离开延迟过大和选择查询路由器需要依赖组播路由协议的缺点,IGMPv2对此进行了改进。IGMPv3协议的主要目的是支持源特定组播,并进一步对IGMPv2进行完善。1。1 IGMPv1协议1。1.1 IGMPv1的工作原理在IGMPvl中定义了基本规则、组成员查询机制和报告机制。当某接收主机希望接收到某个组播组的数据时,它会向本地链路上的查询路由器发送加入消息,通知查询路由

4、器本机希望申请加入的组播组;查询路由器收到加入消息之后,把这条消息加入到查询路由器所维护的状态列表,同时向源发起建立组播分发树的请求;查询路由器在设定的周期内发起组成员查询消息;接收主机收到查询消息之后,会向查询路由器发送报告消息来应答查询,否则查询路由器会认为不存在接受主机;主机如果想离开某个组播组,就对路由器的查询保持沉默,经过一定时间,路由器便知道子网内没有组成员了。1.1。2 IGMPv1报文格式IGMPvl报文格式如图2-4所示,图2-4 IGMPv1报文格式 其主要内容包括:(1) 版本字段表示IGMP协议的版本号,在IGMP中置为1.(2) 类型字段,在IGMPv1中,只有两个值

5、:取值为0x11,表示该报文为成员关系查询(Membership Query),主要是由路由器使用.取值为0x12,表示该报文为成员关系报告(Membership Report),主要是主机使用。(3) 校验和字段用于数据报文的校验.(4) 组地址字段。当用于成员关系查询时,本字段置为0,并被主机忽略;当用于成员关系报告时,本字段包含组播组地址。IGMPv1报文在网络中传输完整的报文格式如图25:图25 在网络中传输的IGMPv1报文1。1.3 IGMPv1工作过程在IGMPv1中,路由器利用查询一响应过程来确定在本地子网中是否有加入某个组播组的主机存在,如果有,则这台路由器就要完成向本子网组

6、播数据包的功能;如果没有,则这台路由器就不必向此子网转发组播包。路由器周期性地向子网上的所有主机发送组播成员关系查询报文,希望加入某个组播组的主机就响应该查询,发送一个组播成员关系报告报文到子网上,在IGMP报文的组地址地段中加入想要加入的组播组的地址。路由器接收到来自主机的成员关系报告报文后,就知道了在该子网上有主机要加入组播组,组播组地址在报文中可以获得,接下来,路由器就会根据所使用的路由协议建立起相应的转发状态。当一个子网上有多台主机想加入同一个组播组时,就可以利用报告响应抑制功能,来减少子网中的重复信息传递.处理流程如下:主机接收到IGMP成员关系查询报文后,对加入的每个组播组启动一个

7、倒数计时器。当计时器的值为0时,主机发送IGMP成员关系报告报文,通知路由器子网内仍有处于活动状态的组播接收者。当计时器到达0之前,若主机接收到来自其他主机发送的同一组成员关系报告报文,那么它就停止与该计时器得到的数,重新计时,这样,就避免了发送同一个成员关系报告报文给路由器。如果在一个子网中有多个组播路由器,那么多个路由器都发送IGMP查询报文是一种浪费,所以应当确定一个路由器作为查询路由器就可以了.但是在IGMPv1中,没有提供选举查询路由器的机制,而是把这一任务留给了组播路由协议。由于不同的协议使用不同的选举机制,会造成在一个子网中出现多个查询路由器,这也是IGMPv1的缺点之一.但是I

8、GMPv1的另一个缺点是缺乏显式的离开方式.当一台主机想要离开一个组播组时,并不显式地表示出来,而只是不再对路由器的查询报文进行响应。当一个网段内某个组播组的最后一个成员退出后,路由器还会继续组播这个组的数据,直到一段时间内路由器接收不到任何来自该组的成员响应,才会知道该组已经没有接收者了,然后停止转发该组的组播数据报文。因此,路由器中需要为子网中的每一个组维护一个计时器.当路由器接收到某台主机发送的报告报文时,就会将该组的计时器清零;当某个组的计时器超时后,就说明在本网段上已经没有接收者,于是停止转发该组报文.下面是工作过程图解:1)组成员加入图26 IGMPv1组成员加入2)查询与响应图2

9、7 IGMPv1组成员查询3) 响应抑制机制图2-8 IGMPv1响应抑制机制4)组成员离开图2-9 IGMPv1组成员离开1.2 IGMPv2协议1。2.1 IGMPv2的工作原理IGMPv1的主要缺点是离开延迟过大和选择查询路由器需要依赖组播路由协议进行。针对这些缺点,IGMPv2做了相关的改进。在IGMPv2中,增加了离开组的报文格式,当主机想要离开某个组播组时,不必等待路由器发出查询报文,而是可以直接向路由器发送成员关系报告报文,这样可以有效地缩短离开延迟。另外在IGMPv2中,还明确了查询路由器的选举机制。除此之外,IGMPv2的工作原理与IGMPv1基本一致1.2。2 IGMPv2

10、的报文格式IGMPv2的报文格式如图210所示:图2-10 IGMPv2报文格式它在IGMPvl的基础上,进行了两处改动:一个是将v1的版本字段和类型字段进行了合并;另一个是增加了最大响应时间字段 (MaxResponseTime).其主要内容如下:(1)类型字段,在兼容IGMPv1的基础上,IGMPv2中新增了两种报文类型。0xll:成员关系查询。与IGMPv1不同,IGMPv2的查询分为两种类型:通用查询 (GeneralQuery),组地址字段置为全0,对所有的组进行组成员查询;特定组查询 (GrouPpecificQuery),针对特定组进行组成员查询,组地址字段置为特定组的地址。0x

11、12:IGMPv1成员关系报告(为了向后兼容IGMPv1)。0x16:IGMPv2成员关系报告.0xl7:离开组.(2)最大响应时间字段,只有在成员关系查询报文中有效,主机必须在最大响应时间到达之前发出成员关系报告报文。通过该值,路由器可以调节组成员的离开延迟。(3)校验和字段,与IGMPv1中的一样。(4)组地址地段,与IGMPv1中的基本一样,当采用特定组查询时,该字段存放要查询的组播组的地址。IGMPv2报文在网络中传输完整的报文格式如图2-11:图2-11 在网络中传输的IGMPv2报文格式1。2。3 IGMPv2工作过程查询一响应过程与IGMPv1基本相同,但是有两点改进:增加了特定

12、组查询,特定组查询的目的是为了让路由器知道一个特定组在子网内是否还有组成员,以便判断是否还需要转发该组的数据报文;IGMPv2的成员关系报告的类型代码不一样.IGMPv2的组成员加入与 IGMPv1中的完全一样。IGMPv2离开过程与IGMPv1相比有了较大的改进。主机离开一个组时,需要显式地发送一个离开报文给路由器。其过程如下:要离开的主机发送一个离开报文给子网上所有路由器(目的地址224。0。0。2)。查询路由器接收到离开报文后,会立即发送一个特定组查询到子网上。如果子网上还有该组的成员,则会发回一个响应报文;如果子网上己经没有该组的成员,则没有主机回应,于是路由器就知道己经没有该组成员了

13、,就停止转发该组的数据。在IGMPv1中,选择查询路由器依赖于组播路由协议.而在IGMPv2中,明确了选择查询路由器的机制。其过程如下:开始时,子网上的每个路由器都假定自己就是查询路由器,发送一个通用查询报文给所有主机(目的地址224。0。0。1)。每个路由器都可以接收到来自其他路由器的报文,然后进行IP地址的比较,具有最低IP地址的路由器就成为查询路由器;非查询路由器启动一个计时器,无论何时接收到来自当选的查询路由器的通用查询报文,就将计时器复位。如果计时器超时,就认为当选的查询路由器发生故障,转向开始重新选择.计时器的取值一般为查询间隔的2倍图解工作过程如下:1)组成员加入图212 IGM

14、Pv2组成员加入2)查询与响应图213 IGMPv2组成员查询与响应3)查询器选举图214 IGMPv2查询路由器选择4)成员离开图215 IGMPv2组成员离开1.3 IGMPv3协议1。3。1 IGMPv3的工作原理IGMPv3的提出,主要是为了配合源特定组播的实现,即组播组成员可以指定接收或指定不接收某些组播源的报文.这样主机就可以有选择性接收来自某个特定组播源的数据包,而不是被动接收该组中所有组播源的数据包。IGMPv3的这一特性,可以实现源特定组播SSM技术.源特定组播(Source Specific Multicast,SSM)是一种区别于传统组播的新的业务模型,SSM保留了传统P

15、IMSM模式中的主机显式加入组播组的高效性,但是跳过了PIMSM模式中的共享树和RP规程。SSM直接建立由(S,G)标志的一个组播最短路径树。SSM的一个(S,G)对也被称为一个频道(Channel).PIM-SSM是对传统PIM协议的扩展,使用SSM,用户能直接从组播源接收组播报文,需要汇聚点(RP)的帮助.IGMPv3在IGMPvl/v2的基础上提供了额外的源过滤组播功能(Source FilteredMulticast,SFM)。在IGMPvl/v2中,主机只根据组地址来决定加入某个组,并从任何一个源接收发给该组地址的报文。具有源过滤组播功能(SFM)的主机使用IGMPv3来表示主机所希望加入的组播组,同时还表示该主机所希望接收的组播源的地址。主机可以使用一个包括列表(Inclusion List)或一个排除列表 (Exclusion List)来表示对源地址的限制。即组播组成员可以指定接收或指定不接收某些组播源的报文。这样主机就可以有选择性接收来自某个特定组播源的数据包,而不是被动接收该组中所有组播源的数据包.1.3.2 IGMPv3的报文格式IGMPv3的报文类

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号