IGMP版本
IGMP协议
IGMP协议IGMP协议是一种基于IP协议的组播协议,它定义了用于在Internet上进行组播传输的支持协议。
IGMP协议允许主机加入和离开一个组播组,以便接收该组的组播数据。
IGMP协议的全称是Internet Group Management Protocol,它是一种通信协议,用于在Internet上进行组播传输。
组播传输是一种数据传输方式,在这种方式下,一组数据同时可以被多个地址接收。
组播传输在许多应用中都非常有用,比如视频会议和实时数据分发等。
IGMP协议是在不同计算机之间通信的IP网络中进行组播传输的重要协议之一。
在IP网络中,IGMP协议负责协调主机的组播群体,确保组播数据能够从数据源传递到所有指定接收者,同时保证网络资源被合理利用。
在本文中,我们将详细讨论IGMP协议的工作方式、协议数据单元、协议版本和应用领域等问题。
一、IGMP协议的工作方式在IP网络中,组播传输需要一个有效的组播群组来工作。
组播群组是由一个组播地址来定义的,这个地址分配给一个特定的IP多播地址。
IGMP协议可以帮助确定哪个主机位于一个组播群体的成员,以便组播数据包来源发送组播数据包并控制它们的传递路由。
如果没有IGMP协议的支持,组播路由可能会向协议类型为多路广播的所有接口转发数据,尽管这些接口上没有主机加入组播群体。
这将产生不必要的网络流量和负载,相应地消耗更多的网络资源。
此外,如果没有IGMP协议的支持,多个接口所在的网络上可能会出现群体成员的不一致状态。
由此可见IGMP协议对组播传输的工作非常重要。
在IGMP 协议的支持下,主机可以向网络上发送特殊的IGMP包,以通知路由设备它们希望加入或离开组播群体。
路由设备通过接收和处理这些IGMP包来维护组播群体和转发组播数据包。
IGMP 协议的工作方式为主机和路由设备间的通信建立了一套规范的协议内容。
二、IGMP协议的协议数据单元IGMP协议的协议数据单元(Protocol Data Unit,PDU)是IGMP报文,如图1所示。
IGMP协议
IGMP协议本合同目录一览1. IGMP协议概述1.1 IGMP协议的作用1.2 IGMP协议的版本1.3 IGMP协议的报文类型2. IGMP协议的运行原理2.1 IGMP协议的运行流程2.2 IGMP协议的查询过程2.3 IGMP协议的报告过程3. IGMP协议的配置与参数3.1 IGMP协议的配置文件3.2 IGMP协议的参数设置3.3 IGMP协议的参数优化4. IGMP协议的调试与维护4.1 IGMP协议的调试工具4.2 IGMP协议的故障排查4.3 IGMP协议的维护策略5. IGMP协议的安全性与稳定性5.1 IGMP协议的安全机制5.2 IGMP协议的稳定性保障5.3 IGMP协议的故障应对措施6. IGMP协议的兼容性与扩展性6.2 IGMP协议的扩展功能6.3 IGMP协议的升级策略7. IGMP协议在网络中的应用场景7.1 IGMP协议在组播中的应用7.2 IGMP协议在VPN中的应用7.3 IGMP协议在流媒体中的应用8. IGMP协议的实施与监管8.1 IGMP协议的实施规范8.2 IGMP协议的监管要求8.3 IGMP协议的违规处理9. IGMP协议的培训与技术支持9.1 IGMP协议的培训内容9.2 IGMP协议的技术支持范围9.3 IGMP协议的培训与支持期限10. IGMP协议的知识产权与保密10.1 IGMP协议的知识产权归属10.2 IGMP协议的保密条款10.3 IGMP协议的保密期限11. IGMP协议的违约责任与争议解决11.1 IGMP协议的违约行为11.2 IGMP协议的违约责任11.3 IGMP协议的争议解决方式12. IGMP协议的签订与生效12.2 IGMP协议的签订程序12.3 IGMP协议的生效条件13. IGMP协议的变更与解除13.1 IGMP协议的变更条件13.2 IGMP协议的解除条件13.3 IGMP协议的变更与解除程序14. IGMP协议的终止与后续事宜14.1 IGMP协议的终止条件14.2 IGMP协议的终止程序14.3 IGMP协议终止后的后续事宜第一部分:合同如下:1. IGMP协议概述1.1 IGMP协议的作用IGMP(Internet Group Management Protocol,互联网组管理协议)是一种由互联网协议族(IP)定义的协议,主要用于在IP网络中,组播路由器与主机之间进行组播组成员关系的维护和管理。
组播(二)---IGMP
组播(⼆)---IGMP⽬录组播(⼆)---IGMP组播⾥⾯⾮常重要的两个协议 IGMP和PIM,我们先学⼀个简单的那就IGMP,IGMP运⾏于终端与最后⼀跳路由器中间(注意是终端与最后⼀跳路由器,⽽不是第⼀跳路由器)。
IGMP有三个版本,V1/V2/V3,V1最为简陋,我们要从V1开始学起,V2弥补了V1的⼀些坑,使⽤的频率⽐较⼴,V3最⼤特点是⽀持SSM,SSM还记得吗?SSM是特定组播源的意思,换句话说V1和V2是不⽀持SSM的。
IGMP的全称是internet group management protocol,名字叫的点⼤,互联⽹组管理协议,我们先从第⼀个版本聊起。
IGMP是构建在IP报⽂的基础上IGMP和ICMP协议看着有点像,是否还记得⼀张OSI七层参考模型的图,在⽹络层这个地⽅,有IP,然后有ICMP和IGMP,IGMP和ICMP们于IP之上,但⼜位于传输层之下,当时不理解这是什么意思,⼯作多年后才发现,ICMP和IGMP都是在IP基本上,也就说数据的结构这样的:帧头--IP头---IGMP报⽂,我们也可以再进⼀步,IP头是晚于IGMP或ICMP封装的,也就是我们可以通过IP的头部的字段来判断出上层协议是什么?如上图所⽰,在IP层的protocol字段当中显⽰为1,意味着他的上层协议是ICMP,如果这个字段是2呢?2其实就是代表上层协议是IGMP,那arp报⽂是什么样?arp是建⽴IP报⽂之上吗?其实arp并不是建⽴在IP之上的,⽽应该在IP之下,所以arp到底是⼆层协议还是三层协议,从这个⾓度来看,arp协议应该是⼆层协议。
IGMPV1IGMPV1的报⽂⽐较简单,就两种类型的报⽂,请求和通告,请求报⽂是周期性发送的,默认是60秒。
请求报⽂是路由器发送的,发送给谁呢?发送给终端,其实就是路由器问⼀下当前接⼝下有没有组员,如果有组员的话,组员通过特定的MAC地址就会收到路由器请求的报⽂,然后组员会通过通告报⽂,告诉路由器(其实也就是⽹关)⾃⼰所属的组,然后路由器会记录下来,知道⾃⼰所连接的某⼀个接⼝下有⼀个组播组,收到这个组的流量要转发到此接⼝;如果没有组员呢?其实没有组员,路由器就收不到通告,路由器悻悻⽽归,知道了⾃⼰的接⼝下没有主机属于某个组,当到了某个组的流量,也不会转发,⽆动于衷。
IGMP基础知识
• Membership Report是主机发向想要加入的组播组,目的地址是某个 具体的组播组
Leave Group
• 当主机退出一个组时,它用Leave Group来通知本地的路由器
不再向该组发送组播数 据
• Leave Group是发向子网中所有路由器的,目的地址是224.0.0.2 • 不管是Membership Report还是Leave Group消息,它们的组地址都
Membership Report
• Membership Report用于指示一台主机希望加入一个组播组,当主机 首次加入到一个组播组时,它会主动向该组发送一个Membership Report
• Membership Report还用来响应本地路由器发出的General Query和 Group-Specific Query
• 如果主机与路由器之间运行的是IGMP v1或IGMP v2,Host B加入组播 组G时无法对组播源进行选择,无论Host B是否需要,来自Source1和 Source2的组播数据都将传递给Host B
• 当主机与路由器之间运行了IGMP v3后,Host B就可以要求只接收来自 Source1而拒绝来自Source2的组播数据
IGMP v2:支持三种包类型,Membership Query,Membership Report和Leave Group。其中,Membership Query又包括两种,分别 是正常的Query,类似于v1,查询所有的组是否有成员,还有一种是 特殊的Query,在收到主机发往某组播组的Leave Group后,路由器 所发的只查询该特定组的Query
IGMP v3工作机制
IGMPv3在兼容和继承IGMPv1和IGMPv2的基础上,进一步增强了主 机的控制能力,并增强了查询和报告报文的功能
IGMP及抓包分析.
IGMPIGMP 是Internet Group Management Protocol(互联网组管理协议)的简称。
它是TCP/IP 协议族中负责IP 组播成员管理的协议,用来在IP 主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
到目前为止,IGMP 有三个版本:1、IGMPv1(由RFC 1112 定义)2、IGMPv2(由RFC 2236 定义)3、IGMPv3(由RFC 3376定义)一、IGMPv11.1报文格式1、版本:版本字段包含IGMP版本标识,因此设置为1。
2、类型:成员关系查询(0x11)成员关系报告(0x12)3、校验和4、组地址:当一个成员关系报告正被发送时,组地址字段包含组播地址。
当用于成员关系查询时,本字段为0,并被主机忽略。
1.2组成员加入过程当一个主机希望接收一个组播组的数据,则发送成员加入报告给组播组。
IGMPv1 join包如下:1.3查询与响应过程路由器RTA(IGMP查询器)周期性地(默认60秒)向子网内所有主机(224.0.0.1代表子网内所有主机)发送成员关系查询信息。
所有主机收到IGMPv1成员关系查询信息,一主机首先向组播组发送IGMPv1成员关系报告。
组的其他成员监听到报告后抑制自己的成员关系报告发送。
1.4 抑制机制当主机收到IGMP成员关系查询时,对它已经加入的每个组播组启动一个倒计数报告计时器。
各个报告计时器初始值为从0到最大响应之间一个随机数,默认值是10秒。
计时器到时的主机则主动发送成员关系报告,目的地为该主机所属的组地址。
其它主机收到该成员关系报告,则抑制成员关系报告的发送,并删除计时器。
1.5 组成员离开过程主机“默不作声”地离开组(不发送报告了)。
路由器发送成员关系查询信息。
路由器没有收到该组的IGMP报告,则再发送成员关系信息(3次查询周期过后)。
组播组超时,剪枝。
二、IGMPv22.1报文格式1、类型成员关系查询(0x11)常规查询:用于确定哪些组播组是有活跃的,即该组是否还有成员在使用,常规查询地址由全零表示;特定组查询:用于查询某具体组播组是否还有组成员。
IGMP协议
IGMP协议IGMP(Internet Group Management Protocol)是一种用于在IP多播网络中管理组成员身份的通信协议。
它允许主机向路由器发送多播组成员资格查询,以及向路由器发送多播组成员资格报告。
IGMP协议的主要作用是在主机和路由器之间提供多播组成员资格的查询和报告机制,以便路由器可以知道哪些主机属于哪些多播组,从而可以正确地转发多播数据包。
IGMP协议的工作原理如下,当一个主机希望加入一个多播组时,它会向相应的路由器发送一个IGMP成员报告。
路由器收到成员报告后,会将这个成员加入到相应的多播组中,并开始向该组发送多播数据包。
如果一个主机不再希望接收某个多播组的数据包,它会向路由器发送一个IGMP成员离开报告,路由器收到报告后会将该成员从多播组中移除,并停止向该成员发送多播数据包。
IGMP协议的版本有IGMPv1、IGMPv2和IGMPv3。
IGMPv1是最早的版本,它只支持成员报告和成员离开报告,不支持组成员查询。
IGMPv2在IGMPv1的基础上增加了组成员查询功能,以提高多播组成员管理的效率。
而IGMPv3在IGMPv2的基础上增加了对多播源的支持,使得主机可以选择特定的多播源进行数据接收。
在实际应用中,IGMP协议通常与PIM(Protocol Independent Multicast)协议一起使用,PIM协议用于在多播网络中进行路由选择和数据包转发,而IGMP协议用于管理主机的多播组成员身份。
两者结合起来,可以实现高效的多播数据传输。
总的来说,IGMP协议是在IP多播网络中起到关键作用的协议之一,它通过提供成员查询和报告机制,实现了对多播组成员的管理,保证了多播数据包能够正确地传输到各个成员。
IGMP协议的不断完善和更新,为多播网络的发展提供了重要的支持,使得多播技术在视频会议、流媒体等应用中得到了广泛的应用和推广。
IGMPv1,v2,v3的原理报文形式
目录1 IGMP 协议 (2)1.1 IGMPv1协议 (2)1.1.1 IGMPv1的工作原理 (2)1.1.2 IGMPv1报文格式 (2)1.1.3 IGMPv1工作过程 (3)1.2 IGMPv2协议 (5)1.2.1 IGMPv2的工作原理 (5)1.2.2 IGMPv2的报文格式 (6)1.2.3 IGMPv2工作过程 (7)1.3 IGMPv3协议 (9)1.3.1 IGMPv3的工作原理 (9)1.3.2 IGMPv3的报文格式 (9)1.3.3 IGMPv3的主要改进 (12)2 MLD协议 (13)2.1 MLDv1协议 (14)2.1.1 MLDv1的工作原理 (14)2.1.2 MLDv1报文格式 (14)2.1.3 MLDv1工作流程 (16)2.2 MLDv2协议 (16)2.2.1 工作原理 (17)2.2.2 MLDv2报文格式 (17)2.2.3 MLDv2工作过程 (23)1 IGMP 协议IGMP用来动态的将各个主机注册到特定局域网中的一个组播组中。
主机向本地的组播路由器发送IGMP消息来表明自己所属的组播组。
在IGMP协议中,路由器侦听IGMP消息并周期的发出查询,以发现某个子网上哪些组是活动的,哪些是不活动的。
IGMP消息在IP数据报内发送,用IP协议号2来标识。
同时,将IP存活时间(TTL)字段值设定为1,因此IGMP信息处于本地范围本子网内传送并且不会被路由器转发。
1989年,IGMP版本1(RFClll2)第一次详细定义了IGMP规范。
后来施乐公司对最早的IGMP版本1进行了大幅更新,产生了IGMP版本2(RFC2236)。
到目前为止IGMP版本3规范己经称为IETF 正式标准(RFC3376),通用的是IGMPv2。
IGMPvl实现简单,但是有离开延迟过大和选择查询路由器需要依赖组播路由协议的缺点,IGMPv2对此进行了改进。
IGMPv3协议的主要目的是支持源特定组播,并进一步对IGMPv2进行完善。
IGMP原理简介
IGMP原理简介IGMP 协议是IP 组播在末端网络上使用的主机对路由器的信令机制,分为两个功能部分:主机侧和路由器侧。
IGMP 工作机制如下所述:1. 接收者主机向所在的共享网络报告组成员关系。
2. 处于同一网段的所有使能了IGMP 功能的组播路由器选举出一台作为查询器,查询器周期性地向该共享网段发送组成员查询消息。
3. 接收者主机接收到该查询消息后进行响应以报告组成员关系。
4. 网段中的组播路由器依据接收到的响应来刷新组成员的存在信息。
如果超时无响应,组播路由器就认为网段中没有该组播组的成员,从而取消相应的组播数据转发。
5. 所有参与组播传输的接收者主机必须应用IGMP 协议。
主机可以在任意时间、任意位置、成员总数不受限制地加入或退出组播组。
6. 支持组播的路由器不需要也不可能保存所有主机的成员关系,它只是通过IGMP协议了解每个接口连接的网段上是否存在某个组播组的接收者,即组成员。
而各主机只需要保存自己加入了哪些组播组。
IGMPv1工作机制IGMPv1 协议主要基于查询和响应机制完成组播组管理。
在多路由器共享网段上,由三层路由协议选举出唯一的组播信息转发者(Assert Winner 或DR),并作为IGMPv1 的查询器,负责该网段的组成员关系查询。
网络上IGMPv1 消息交互如图9-1 所示。
主机加入组播组的基本过程如下:1. IGMP 查询器(RouterB)周期性地向共享网段内所有主机以组播方式(目的地址为组播地址)发送普遍组Query 查询消息。
该报文的目的地址为224.0.0.1,表示该网段上的所有主机和路由器。
2. 网段内所有主机都接收到该普遍组查询消息。
如果主机(如HostB 和HostC)希望加入某组播组G1,则以组播方式发送Report 报告。
该报文的目的地址为224.0.0.1,报文中携带组播组G1 的地址信息。
3. 网段中所有主机和路由器都接收到该Report 报告,并获知组播组G1 地址信息,此时网段中其它也希望加入该组播组G1 的主机将不再发送针对相同组播组的Report 报告。
华为路由器 配置IGMP
华为路由器配置IGMP华为路由器配置IGMP文档范本本文档详细介绍了如何在华为路由器上配置IGMP。
IGMP (Internet Group Management Protocol)是一种用于支持IP多播的协议,它允许主机向路由器发送多播组成员加入和离开的请求,并通过路由器传递这些请求。
以下是华为路由器配置IGMP的详细步骤:1.IGMP概述IGMP是一种用于支持IP多播的网络协议。
它允许主机加入和离开多播组,并通过路由器传递这些请求。
IGMP有三个版本:IGMPv1、IGMPv2和IGMPv3.在华为路由器上,我们可以配置相应的IGMP版本。
2.IGMP配置准备在开始配置IGMP之前,确保你已经获得以下信息:●多播组的IP地质●路由器的接口信息●IGMP版本(v1、v2或v3)3.配置IGMP SnoopingIGMP Snooping是一种IGMP协议的扩展,用于在交换机上实现多播流量的优化转发。
在华为路由器上,通过以下步骤配置IGMP Snooping:●登录路由器管理界面●进入相应的接口视图●启用IGMP Snooping●配置接口为多播组的上游或下游4.配置IGMP版本在华为路由器上,你可以通过以下步骤配置IGMP版本:●登录路由器管理界面●进入系统视图●配置全局IGMP版本5.配置IGMP静态加入你可以通过以下步骤在华为路由器上配置IGMP静态加入:●登录路由器管理界面●进入相应的接口视图●执行IGMP静态加入命令6.配置IGMP查询IGMP查询用于周期性地检测多播组成员是否正常。
在华为路由器上,你可以通过以下步骤配置IGMP查询:●登录路由器管理界面●进入系统视图●配置查询间隔和查询次数附件:●本文档不涉及附件。
法律名词及注释:●IGMP(Internet Group Management Protocol):用于支持IP多播的协议。
浅析多播协议igmp三个版本的区别
Science &Technology Vision 科技视界1多播协议IGMP 介绍IGMP Internet Group Management Protocol,,TCP/IP ,IP 。
,V1/V2/V3。
IGMP “”;V3“”,V1V2IGMP “”。
2多播工作原理图1IGMP 查询原理图2.1v1v1IGMP 。
,IGMP ,,IGMP ,IGMP 。
1,PC -B PC -C G1,PC -A G2,IGMP (RB ):1),IGMP IGMP ;2)IGMP 224.0.0.1IGMP ;3),G1()IGMP G1。
,,,,IGMG G1。
,;4),G2,G2,G2G2。
5),IGMP G1G2,浅析多播协议IGMP 三个版本的区别王浦衡(湖南化工职业技术学院,湖南株洲412000)【摘要】随着计算机通信技术的发展,多播通信以其高效、快捷的数据传输技术得到广泛应用。
本文主要论述IGMP 协议v1,v2,v3三个版本的原理和区别。
【关键词】多播协议;IGMP ;TCP /IP中图分类号:TP212.9;TN929.5文献标识码:A 文章编号:2095-2457(2019)34-0207-002DOI :10.19694/ki.issn2095-2457.2019.34.096Analysis on the Difference of Three Versions of Multicast Protocol IGMPWANG Pu -heng(Hunan Chemical Vocational and Technical College ,Zhuzhou Hunan 412000,China )【Abstract 】With the development of computer communication technology ,multicast communication has been widely used for its efficient and fast data transmission technology.This paper mainly discusses the principles and differences of three versions of IGMP protocol v1,V2and v3.【Key words 】Multicast protocol ;IGMP ;TCP /IP作者简介:王浦衡,男,湖南株洲人,硕士,讲师,计算机网络技术。
IGMPV1V2V3定义和区别
IGMPV1V2V3定义和区别IGMP V1 V2 V3 定义和区别前两天遇到了一个IGMP的问题,应用在IGMP的一些概念.那就让我们完整的看一下这个组播协议把,以下是我学习过程重总结的一些东西, 先来认识一下IGMP这个协议吧,它的全称是Internet Group Management Protocol,它和unicast和multicast的区别是它是发往一组计算机(属于它这个组播组的所有计算机),IGMP主要用于在线的视频和在线游戏,像IPTV就是一种比较广泛的应用.现在IGMP有3个版本V1(RFC1112),V2(RFC2236),V3(RFC3376), IGMP v1支持host membership query 和host membership reportreport message是由IGMP host发给IGMP router来报告它加入的组播组.query message是由IGMP router发给IGMP client来查询IGMP host所加入的组播组.这样做之后,IGMP路由器就记录了它所在网段主机加入的所有组播地址.下面看这个例子之后可能大家就比较清楚了,在IGMP router的LAN端有2台PC,hostA,hostB,hostC,hostA 加入了224.100.1.1,hostB加入了224.100.1.2,hostC没有加入任何的组播.当IGMP router想要查询lan端的组播地址是,它以组播地址224.0.0.1 发到它的lan端,224.0.0.1代表子网中所有支持多播的设备的多播地址, 这个时候如果pc和IGMP router之间用hub或者layer2的交换机(没有enable IGMP snooping),那么包括hostC的3台主机都会收到,只不过hostC不会回应,hostA和hostB会发送报告信息给router,内容分别为224.100.1.1和224.100.1.2.如果hostA想要加入一个新的组播地址224.100.1.3,它会发个report信息给想要加入的组播地址,router收到后加入IGMP table.IGMPv2,包括membership query,membership report, Leave Group message .membership query 包括general query,group-specific query.general query和IGMP V1一样,发224.0.0.1来查询在网络中有哪些组播组.group-specific query,用来查询是否在网络中存在特定的组播组.membership report,这个和V1一样,加入一个新的GROUP也一样.Leave Group message是由这个组的最后一个成员发给224.0.0.2(网络中的所有组播路由器),内容为这个组播地址,IGMP router收到后,会发送一个group-specific query来查询是否网络中的这个组播地址已经不存在了,如果没有回应,就把这个组从IGMP table 中删除.IGMP V3,Membership Report其中Membership Query分为三种:General Query,用于查询接口下所有多播成员信息;Group-Specific Query,用于查询接口下指定组的成员信息;Group-and-Source-Specific Query,该类型为IGMPv3中新增加的,用于查询接口下是否有成员需要接收指定源列表中的源所发出的特定组的多播流。
组播——IGMP各版本浅析+IGMP特性
组播——IGMP各版本浅析+IGMP特性验证理论IGMP特性 IGMP Snooping IGMP Proxy实验拓扑初始配置配置接⼝地址,使能路由器组播功能和接⼝pim dm配置电脑IP地址为PC1:10.1.1.10;PC2:10.1.1.20[AR1]multicast routing-enable[AR1-GigabitEthernet0/0/0]ip add 10.1.1.1 24[AR1-GigabitEthernet0/0/0]pim dm[AR2]multicast routing-enable[AR2]int g 0/0/0[AR2-GigabitEthernet0/0/0]ip add 10.1.1.2 24[AR2-GigabitEthernet0/0/0]pim dm初始结果实验步骤第⼀步: IGMPv1查询,加组,离组,查询器选举⾸先看单边PC1和AR1,关闭AR2和PC2.设置AR1接⼝下的IGMP版本为版本1(默认是版本2)[AR1-GigabitEthernet0/0/0]igmp enable[AR1-GigabitEthernet0/0/0]igmp version 1[AR1]dis igmp interface GigabitEthernet 0/0/0Interface information of VPN-Instance: public netGigabitEthernet0/0/0(10.1.1.1): //接⼝类型与编号(接⼝的IP地址)IGMP is enabled //接⼝已使能IGMP,通过igmp enable配置Current IGMP version is 1 //接⼝配置的IGMP版本,通过igmp version配置IGMP state: up //IGMP接⼝状态,up或downIGMP group policy: none //IGMP组策略的ACL编号,⽤于限制该接⼝上可以加⼊的组。
IGMP版本
IGMP版本4.1.1 IGMP的版本到⽬前为⽌,IGMP有三个版本:●IGMPv1(由RFC 1112定义)●IGMPv2(由RFC 2236定义)●IGMPv3(由RFC 3376定义)所有版本的IGMP都⽀持ASM(Any-Source Multicast,任意信源组播)模型;IGMPv3为可以直接应⽤于SSM(Source-Specific Multicast,指定信源组播)模型。
4.1.2 IGMPv1⼯作机制IGMPv1主要基于查询和响应机制来完成对组播组成员的管理。
当⼀个⽹段内有多台组播路由器时,由于它们都能从主机那⾥收到IGMP成员关系报告报⽂(Membership Report Message),因此只需要其中⼀台路由器发送IGMP查询报⽂(Query Message)就⾜够了。
这就需要有⼀个查询器(Querier)的选举机制来确定由哪台路由器作为IGMP查询器。
对于IGMPv1来说,由组播路由协议(如PIM)选举出唯⼀的组播信息转发者DR(Designated Router,指定路由器)作为IGMP查询器。
说明:有关DR的介绍,请参见“5.1.4 2. DR选举”。
图4-1 IGMP查询响应⽰意图如图4-1所⽰,假设Host B与Host C想要收到发往组播组G1的组播数据,⽽Host A想要收到发往组播组G2的组播数据,那么主机加⼊组播组以及IGMP 查询器(Router B)维护组播组成员关系的基本过程如下:(1)主机会主动向其要加⼊的组播组发送IGMP成员关系报告报⽂以声明加⼊,⽽不必等待IGMP查询器发来的IGMP查询报⽂;(2)IGMP查询器周期性地以组播⽅式向本地⽹段内的所有主机与路由器发送IGMP查询报⽂(⽬的地址为224.0.0.1);(3)在收到该查询报⽂后,关注G1的Host B与Host C其中之⼀(这取决于谁的延迟定时器Delay Timer先超时)——譬如Host B会⾸先以组播⽅式向G1发送IGMP成员关系报告报⽂,以宣告⾃⼰要加⼊G1。
浅析多播协议IGMP三个版本的区别
浅析多播协议IGMP三个版本的区别王浦衡【期刊名称】《《科技视界》》【年(卷),期】2019(000)034【总页数】2页(P207-208)【关键词】多播协议; IGMP; TCP/IP【作者】王浦衡【作者单位】湖南化工职业技术学院湖南株洲 412000【正文语种】中文【中图分类】TP212.9; TN929.51 多播协议IGMP 介绍IGMP 英文全称Internet Group Management Protocol,中文称多播协议或者组播协议,是TCP/IP 协议簇中负责联网设备节点多播成员管理的协议,用于管理各IP 主机以及和其连接的路由器共同搭建维护多播组成员关系。
截至目前,有V1/V2/V3 三个版本多播协议。
这三个版本的IGMP 都支持“任意信源多播”;V3 版本可以直接支持“指定信源多播”,而V1 和V2 两个版本则需要在IGMP 指定信源多播映射技术支持下才能支持“指定信源多播”。
2 多播工作原理图1 IGMP 查询原理图2.1 v1 版多播协议工作机制v1 版IGMP 协议通过查询报文和响应报文来实现对多播组成员的管理。
当一个多播网络中存在多个多播路由器时,因为所有的多播路由器都能从主机节点接收到IGMP 成员发送过来的关系报告报文,所以,只需要指定一个路由器能发送IGMP 查询报文就可以了,因此这个时候就需要有一个选举机制来选出其中某一个路由器作为IGMP 查询器。
如图1 所示,假设PC-B 与PC-C 想要接收到多播组信源为G1 的多播数据,而PC-A 想要收到多播组信源为G2 的多播数据,那么主机加入多播组以及IGMP 协议查询器路由器(RB)与主机构建成员组关系的基本过程应该是:1)网络中的主机首先将主动向查询路由器发送成员关系报告报文用来申明它要加入的多播组,而不是被动等待IGMP 协议查询路由器发来的IGMP 查询报文;2)IGMP 查询路由器以目的地址为224.0.0.1 周期性向本地网段内的所有路由器与主机发送IGMP 查询报文;3)本网段内主机和路由器收到查询报文之后,延时定时器先到时的主机或路由器会先以多播的方式向G1(查询器)发送IGMP 成员关系报文报告自己属于多播组G1。
IGMP简介
IGMP简介要使组播报文最终能够到达接收者,需要将接收者主机接入IP组播网络,并加入到相应的组播组中。
IGMP(Internet Group Management Protocol)是IP组播在用户网段使用的主机对路由器的信令机制。
通过在接收者主机和与其直连的组播路由器上配置IGMP,可以实现主机动态加入和组播路由器对本地网络组成员信息的管理。
到目前为止,IGMP有三个版本:IGMPv1版本(由RFC1112定义)、IGMPv2版本(由RFC2236定义)和IGMPv3(由RFC3376定义)版本。
所有IGMP版本都支持ASM(Any-Source Multicast)模型。
IGMPv3可以直接应用于SSM (Source-Specific Multicast)模型,而IGMPv1和IGMPv2则需要SSM-Mapping 技术的支持。
一.IGMP消息IGMP通过在主机侧和路由器侧交互IGMP消息实现组成员管理功能。
IGMP消息封装在IP报文中,如图1-1。
图1-1IGMP消息的封装格式IP 报文头IGMP 消息●IP报文头的协议类型字段值为2,用来标识数据部分封装了IGMP消息。
●IP报文头的目的地址字段用来标识该IGMP消息的目的接收端。
●IP报文头的TTL字段值为1,表示IGMP消息只在本地网段传播。
●不同版本的IGMP协议,支持的IGMP消息也不同。
二.IGMP 基本功能图1-2 IGMP 典型组网图 EthernetHostA HostB HostC RouterARouterBISP● 主机发送Report 消息加入组播组,发送Leave 消息离开组播组,自主决定接收哪些组播组的报文。
●路由器发送查询消息并接收主机反馈的Report 消息和Leave 消息,了解接口连接的网段上有哪些组播组存在接收者,也就是组成员。
如果出现组成员,组播路由器应将组播数据报文转发到这个网段;如果没有成员则不转发。
IGMP协议
IGMP协议
IGMP协议,全称是Internet组管理协议,是一种在IP
多播环境下使用的协议。
它在网络中的路由器和主机之间起到重要的作用,允许主机加入和离开多播组。
过去,当多播流需要被发送到一个组中的多个主机时,每个数据包都需要单独的被复制并发送到每个主机。
这种方式无疑会造成严重的网络拥堵和稳定性问题。
而IGMP协议可以允许主机仅接收他们需要
的数据包,以达到减少网络流量和提高性能的目的。
IGMP协议的工作原理是:当一个主机加入一个多播组时,它会发送一个IGMP报文通知路由器。
路由器通过响应的多播
地址,学习到哪些主机加入了相应的地址,并记录这些信息。
当路由器收到一个多播数据包,它会检查它的记录,然后仅复制数据包并发送给已经加入了多播组的主机。
IGMP协议有三种版本:IGMP版本1(IGMPv1)、IGMP版
本2(IGMPv2)和IGMP版本3(IGMPv3)。
前两个版本比较旧,而IGMPv3是最新的版本。
在IGMPv1中,主机只能加入或者离开一个多播组,而IGMPv2则允许主机查询那些多播组是活动的。
IGMPv3进一步增强了多播管理功能,添加了更好的安全
性和灵活性,并增加了一些新的查询类型。
总之,IGMP协议是实现多播数据传输时不可或缺的一种
协议。
它通过减少网络流量、降低网络拥塞和增加网络性能等多种方式来提高网络的效率和稳定性。
掌握IGMPv协议IPv组播通信的高级协议与配置
掌握IGMPv协议IPv组播通信的高级协议与配置IGMPv协议(Internet Group Management Protocol,简称IGMP)是一种用于IPv组播通信的协议。
通过掌握IGMPv协议,网络管理员可以实现对组播流量的有效控制和管理。
本文将介绍IGMPv协议的相关知识,包括高级协议和配置方法。
一、IGMPv协议概述IGMPv协议是用于在IPv4网络中进行组播通信的一种协议。
它在主机和组播路由器之间进行通信,使主机能够加入和离开特定的组播组,并在组播流量传输过程中提供控制信息。
IGMPv协议定义了三种角色:组播源(源主机)、组播接收器(接收组播流的主机)和组播路由器。
组播源就是生成和传输组播数据的主机,组播接收器是接收组播数据的主机,而组播路由器则负责管理和转发组播数据。
二、IGMPv协议的工作原理当主机想要加入一个组播组时,它会向所在网络的组播路由器发送IGMP报文,选择加入指定组播组。
路由器收到响应后,会在转发树上动态地创建或更新组播数据转发条目,并将组播数据转发到指定的主机。
当主机不再需要接收组播数据时,会向组播路由器发送离开报文,路由器收到后会相应地更新转发树,并停止向该主机转发组播数据。
三、IGMPv协议的版本目前,IGMPv协议有三个主要版本,分别是IGMPv1、IGMPv2和IGMPv3。
IGMPv1是最早的版本,主要用于支持IPv4网络中的组播通信。
它的功能相对简单,只能进行基本的组播组管理。
IGMPv2在IGMPv1的基础上进行了改进,增加了一些新的功能,如查询报文和延迟报文,提高了组播路由器的效率和稳定性。
IGMPv3是最新的版本,引入了多用户直播(MULD)和源特定多播(SSM)等新特性。
它支持更灵活的组播组管理和更精确的源数据过滤。
四、IGMPv协议的配置方法为了使主机和组播路由器能够正常使用IGMPv协议,需要进行相应的配置。
1. 配置组播路由器组播路由器需要支持IGMPv协议,并在相应的接口上开启IGMP功能。
icmp和igmp报文格式
icmp和igmp报文格式
ICMP报文格式:
ICMP报文由ICMP报头和ICMP数据组成。
ICMP报头包含以下字段:
- 类型(Type):表示ICMP报文的类型,常见的类型有回显请求和回显回答等。
- 代码(Code):对ICMP报文类型的进一步说明和分类。
- 校验和(Checksum):校验和字段用于检测传输过程中是否出现错误。
- 其他字段:部分ICMP报文类型会使用其他字段进行附加信息的传递。
IGMP报文格式:
IGMP报文由IGMP报头和IGMP数据组成。
IGMP报头包含以下字段:
- 版本(Version):表示IGMP报文的版本,目前常用的版本是IGMPv2和IGMPv3。
- 类型(Type):表示IGMP报文的类型,常见的类型有查询报文和报告报文等。
- 校验和(Checksum):校验和字段用于检测传输过程中是否出现错误。
- 组地址(Group Address):IGMP报文中的组地址字段用于指定IGMP会话的组地址。
- 其他字段:部分IGMP报文类型会使用其他字段进行附加信息的传递。
需要注意的是,IGMP报文是在IP报文中进行封装的,所以IGMP报文格式需要在IP报文格式上进行补充。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.1.1 IGMP的版本到目前为止,IGMP有三个版本:●IGMPv1(由RFC 1112定义)●IGMPv2(由RFC 2236定义)●IGMPv3(由RFC 3376定义)所有版本的IGMP都支持ASM(Any-Source Multicast,任意信源组播)模型;IGMPv3为可以直接应用于SSM(Source-Specific Multicast,指定信源组播)模型。
4.1.2 IGMPv1工作机制IGMPv1主要基于查询和响应机制来完成对组播组成员的管理。
当一个网段内有多台组播路由器时,由于它们都能从主机那里收到IGMP成员关系报告报文(Membership Report Message),因此只需要其中一台路由器发送IGMP查询报文(Query Message)就足够了。
这就需要有一个查询器(Querier)的选举机制来确定由哪台路由器作为IGMP查询器。
对于IGMPv1来说,由组播路由协议(如PIM)选举出唯一的组播信息转发者DR(Designated Router,指定路由器)作为IGMP查询器。
说明:有关DR的介绍,请参见“5.1.4 2. DR选举”。
图4-1 IGMP查询响应示意图如图4-1所示,假设Host B与Host C想要收到发往组播组G1的组播数据,而Host A想要收到发往组播组G2的组播数据,那么主机加入组播组以及IGMP查询器(Router B)维护组播组成员关系的基本过程如下:(1)主机会主动向其要加入的组播组发送IGMP成员关系报告报文以声明加入,而不必等待IGMP查询器发来的IGMP查询报文;(2)IGMP查询器周期性地以组播方式向本地网段内的所有主机与路由器发送IGMP查询报文(目的地址为224.0.0.1);(3)在收到该查询报文后,关注G1的Host B与Host C其中之一(这取决于谁的延迟定时器Delay Timer先超时)——譬如Host B会首先以组播方式向G1发送IGMP成员关系报告报文,以宣告自己要加入G1。
由于本地网段中的所有主机和路由器都能收到Host B发往G1的报告报文,因此当Host C收到该报告报文后,将不再发送同样针对G1的报告报文,因为IGMP路由器(Router A和Router B)已知道本地网段中有对G1感兴趣的主机了。
这个机制称为IGMP成员关系报告抑制机制,该机制有助于减少本地网段的信息流量;(4)与此同时,由于Host A关注的是G2,所以它也将以组播方式向G2发送报告报文,以宣告自己要加入G2;(5)经过以上的查询和响应过程,IGMP路由器了解到本地网段中有组播组G1和G2的成员,于是由组播路由协议(如PIM)生成(*,G1)和(*,G2)组播转发项作为组播数据的转发依据,其中的“*”代表任意组播源;(6)当由组播源发往G1或G2的组播数据经过组播路由到达IGMP路由器时,由于IGMP路由器上存在(*,G1)和(*,G2)组播转发项,于是将该组播数据转发到本地网段,接收者主机便能收到该组播数据了。
IGMPv1没有专门定义离开组播组的报文。
当运行IGMPv1的主机离开某组播组时,将不会向其要离开的组播组发送报告报文。
当网段中不再存在该组播组的成员后,IGMP路由器将收不到任何发往该组播组的报告报文,于是IGMP路由器在一段时间之后便删除该组播组所对应的组播转发项。
4.1.3 IGMPv2的改进与IGMPv1相比,IGMPv2增加了查询器选举机制和离开组机制。
1. 查询器选举机制在IGMPv1中,当某共享网段上存在多个组播路由器时,由组播路由协议(如PIM)选举的指定路由器充当查询器。
在IGMPv2中,增加了独立的查询器选举机制,其选举过程如下:(1)所有IGMPv2路由器在初始时都认为自己是查询器,并向本地网段内的所有主机和路由器发送IGMP普遍组查询(General Query)报文(目的地址为224.0.0.1);(2)本地网段中的其它IGMPv2路由器在收到该报文后,将报文的源IP地址与自己的接口地址作比较。
通过比较,IP地址最小的路由器将成为查询器,其它路由器成为非查询器(Non-Querier);(3)所有非查询器上都会启动一个定时器(即非查询器存在时间定时器OtherQuerier Present Timer)。
在该定时器超时前,如果收到了来自查询器的IGMP查询报文,则重置该定时器;否则,就认为原查询器失效,并发起新的查询器选举过程。
2. 离开组机制在IGMPv1中,主机离开组播组时不会向任何组播路由器发出任何通知,导致组播路由器只能依靠组播组成员查询的响应超时来获知组播组成员的离开。
而在IGMPv2中,当一个主机离开某组播组时:(1)该主机向本地网段内的所有组播路由器(目的地址为224.0.0.2)发送离开组(Leave Group)报文;(2)当查询器收到该报文后,向该主机所声明要离开的那个组播组发送特定组查询(Group-Specific Query)报文(目的地址字段和组地址字段均填充为所要查询的组播组地址);(3)如果该网段内还有该组播组的其它成员,则这些成员在收到特定组查询报文后,会在该报文中所设定的最大响应时间(Max Response Time)内发送成员关系报告报文;(4)如果在最大响应时间内收到了该组播组其它成员发送的成员关系报告报文,查询器就会继续维护该组播组的成员关系;否则,查询器将认为该网段内已无该组播组的成员,于是不再维护这个组播组的成员关系。
4.1.4 IGMPv3的改进IGMPv3在兼容和继承IGMPv1和IGMPv2的基础上,进一步增强了主机的控制能力,并增强了查询和报告报文的功能。
1. 主机控制能力的增强IGMPv3在特定组查询的基础上增加了针对组播源的过滤模式(INCLUDE/EXCLUDE),使主机在加入某组播组G的同时,能够明确要求接收或拒绝来自某特定组播源S的组播信息。
当主机加入组播组时:●若要求只接收来自指定组播源如S1、S2、……的组播信息,则其报告报文中可以标记为INCLUDE Sources(S1,S2,……);●若拒绝接收来自指定组播源如S1、S2、……的组播信息,则其报告报文中可以标记为EXCLUDE Sources(S1,S2,……)。
如图4-2所示,网络中存在Source 1(S1)和Source 2(S2)两个组播源,均向组播组G发送组播报文。
Host B仅对从Source 1发往G的信息感兴趣,而对来自Source 2的信息没有兴趣。
图4-2 指定源组的组播流路经如果主机与路由器之间运行的是IGMPv1或IGMPv2,Host B加入组播组G时无法对组播源进行选择,因此无论Host B是否需要,来自Source 1和Source 2的组播信息都将传递给Host B。
当主机与路由器之间运行了IGMPv3之后,Host B就可以要求只接收来自Source 1、发往G的组播信息(S1,G),或要求拒绝来自Source 2、发往G 的组播信息(S2,G),这样就只有来自Source 1的组播信息才能传递给Host B了。
2. 查询和报告报文功能的增强(1)携带源地址的查询报文IGMPv3不仅支持IGMPv1的普遍组查询和IGMPv2的特定组查询,而且还增加了对特定源组查询的支持:●普遍组查询报文中,既不携带组地址,也不携带源地址;●特定组查询报文中,携带组地址,但不携带源地址;●特定源组查询报文中,既携带组地址,还携带一个或多个源地址。
(2)包含多组记录的报告报文IGMPv3报告报文的目的地址为224.0.0.22,可以携带一个或多个组记录。
在每个组记录中,包含有组播组地址和组播源地址列表。
以及数目不等的源地址信息。
组记录可以分为多种类型,如下:●IS_IN:表示组播组与组播源列表之间的对应方式为INCLUDE,即只接收从指定组播源列表发往该组播组的组播数据。
如果此时的指定组播源列表为空,则表示离开该组播组。
●IS_EX:表示组播组与组播源列表之间的对应方式为EXCLUDE,即只接收从指定组播源列表之外的组播源发往该组播组的组播数据。
●TO_IN:表示组播组与组播源列表之间的对应方式由EXCLUDE转变为INCLUDE。
●TO_EX:表示组播组与组播源列表之间的对应方式由INCLUDE转变为EXCLUDE。
●ALLOW:表示在现有状态的基础上,还希望从某些组播源接收组播数据。
如果当前的对应关系为INCLUDE,则向现有组播源列表中添加这些组播源;如果当前的对应关系为EXCLUDE,则从现有组播源列表中删除这些组播源。
●BLOCK:表示在现有状态的基础上,不再希望从某些组播源接收组播数据。
如果当前的对应关系为INCLUDE,则从现有组播源列表中删除这些组播源;如果当前的对应关系为EXCLUDE,则向现有组播源列表中添加这些组播源。
4.1.5 协议规范与IGMP相关的协议规范有:●RFC 1112:Host Extensions for IP Multicasting●RFC 2236:Internet Group Management Protocol, Version 2●RFC 3376:Internet Group Management Protocol, Version 3。