IGMPv3协议实例分析
IGMP V1 V2 V3 定义和区别
IGMP v1支持host membership query 和host membership report
report message是由IGMP host发给IGMP router来报告它加入的组播组.
query message是由IGMP router发给IGMP client来查询IGMP host所加入的组播组.
如果hostA想要加入一个新的组播地址224.100.1.3,它会发个report信息给想要加入的组播地址,router收到后加入IGMP table.
IGMPv2,包括membership query,membership report, Leave Group message .
membership query 包括general query,group-specific query.
下面这些是一些常见的IGMP multicast address ,
Range :
224.0.0.0~239.255.255.255
Well-known multicast group address:
224.0.0.1 - all systems on the subnet
224.0.0.2 - all routers on the subnet
下面来谈谈IGMP V1,V2,V3的区别,
IGMPv1 :主机可以加入组播组。没有离开信息(leave messages)。路由器使用基于超时的机制去发现其成员不关注的组。
IGMPv2 :该协议包含了离开信息,允许迅速向路由协议报告组成员终止情况,这对高带宽组播组或易变型组播组成员而言是非常重要的。
IGMP V3,
Membership Report
SNMPv3协议解析
息来自伪造的SNMP实体
数据加密
防止SNMP消息在传输过程中被窃听
2 SNMPv3的体系结构
2.1 SNMPv3的框架结构
SNMPv3实体的主要类型
管理器(Manager):请求发送与响应接收 代理(Agent):请求接收与响应发送 代理服务器(Proxy):请求与响应转发
3 SNMPv3的安全模型
3.1 USM的基本概念
SNMP消息的篡改与伪造,用户试图非法获得网络 设备的配置信息,或非法对网络设备进行网管操 作,这是SNMP面临的主要威胁
SNMP消息的窃听、延迟、重发与重排序,用户试 图获得SNMP消息的有用信息,或影响网络设备的 正常使用,这是SNMP面临的次要威胁
SnmpMessageProcessingModel:表示消息处理模 型的整数 SnmpEngineID:表示SNMP引擎标识符的字符串 SnmpSecurityLevel:表示安全级别的字符串
SnmpAdminString:表示管理信息的字符串
snmpFrameworkMIB组的基本结构
snmpFrameworkMIB(snmpModules 10) snmpFrameworkAdmin(snmpFrameworkMIB 1) snmpAuthProtocols(snmpFrameworkAdmin 1) snmpPrivProtocols(snmpFrameworkAdmin 2) snmpFrameworkMIBObjects(snmpFrameworkMIB 2) snmpEngine(snmpFrameworkMIBObjects 1) snmpEngineID(snmpEngine 1) snmpEngineBoots(snmpEngine 2) snmpEngineTime(snmpEngine 3) snmpEngineMaxMessageSize(snmpEngine 4) snmpFrameworkMIBConformance(snmpFrameworkMIB 3) snmpFrameworkMIBCompliances(snmpFrameworkMIBConformance 1) snmpFrameworkMIBCompliance(snmpFrameworkMIBCompliances 1) snmpFrameworkMIBGroups(snmpFrameworkMIBConformance 2) snmpEngineGroup(snmpFrameworkMIBGroups 1)
实验五 利用WIRESHARK分析IGMP协议
协议分析实验报告年级:姓名:学号:实验日期: 2013-04-10实验名称:利用wireshark分析IGMP协议一、实验目的分析IGMP协议二、实验环境与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。
三、协议简介Internet组管理协议(IGMP)是因特网协议家族中的一个组播协议,用于IP主机向任一个直接相邻的路由器报告他们的组成员情况。
IGMP信息封装在IP报文中,其IP的协议号为2。
它用来在ip主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
igmp不包括组播路由器之间的组成员关系信息的传播与维护,这部分工作由各组播路由协议完成。
所有参与组播的主机必须实现igmp。
报告报文字段说明:Type(8bit)0x22成员关系报告Reserved(8bit)和Reserved(16bit):都是表示保留字段,不过在IGMP中为了使它们都保持对应的长度,所以才有了长度上的区别,它在发送的时候是以0填充,在接收的时候是不作任何处理的。
校验和校验和是对整个IGMP消息以16位为一段进行取反求和。
为了计算校验和,校验和字段首先必须被置0。
当收到一个数据,在处理之前,必须先对校验和进行验证。
Number_of_Group_Records(M):该字段表示该报告报文中包含有几个组记录GroupRecord[i](i从1到M):一个主机可能需要点播多个组播地址的组播业务,每个记录包含了对应于其中一个组播地址的源地址列表等信息,它受到Number_of_Group_Records的大小的影响。
每一个组记录字段是一整块数据,其含有的信息是关于发送者在报告发送接口上的某一个多播组的成员关系。
每一个GroupReocrd的内部格式如下:字段说明:AuxDataLen:辅助数据长度含有在组记录中的辅助数据的实际长度,其单位是32bit字。
它有可能是0,这就表示辅助数据不存在。
IGMPv3协议原理及实现
IGMP v2 离开报文
离开报文目的地址为:224.0.0.2或者组播组地址, 类型:0x17
IGMP v2查询报文
注意:查询报文目的地址为:224.0.0.1, 类型:0x11
IGMPv3协议
IGMPv3: IGMPv3 在兼容和继承IGMPv1 和IGMPv2 的基础上,
进一步增强了主机的控制能力,并增强了查询和报告报文的功能。 (1)查询和报告功能增强,兼容低版本的普通组和特定组查询; 增加了对特定源组查询的支持; 批量报告:报文目的地址为:224.0.0.22,可以携带一个或多个 组记录; (2)主机空间能力增强,支持源过滤功能(INCLUDE/EXCLUDE);
用户2能够收到源为3,4的组播数据流;
组播组收到不同类型报文状态跃迁表
IGMPv3协议在FP8680上实现
FP8680采用线卡和主控两层控制机制实现IGMPv3协议;
(1)线卡记录由每个PON口发送的Report报文信息中所携 带的INCLDUE和ilter-Mode, 和源地址列表 (基于该线卡下所有用户发送的Report报文信息生成)。
IGMPv1协议介绍
IGMP: Internet 组管理协议,用于主机与路由器之间交互信息的
一种协议。共包括v1, v2, v3三种版本,当前比较常用的为 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)常规查询:用于确定哪些组播组是有活跃的,即该组是否还有成员在使用,常规查询地址由全零表示;特定组查询:用于查询某具体组播组是否还有组成员。
RFC3376-IGMPv3
RFC3376 網際網路組管理協議IGMPv3(譯)摘要本文檔說明了網際網路組管理協議的第3版,IGMPv3。
IGMP協定被IPv4系統用於向鄰接的多播路由器報告它們的組成員關係。
第3版的IGMP增加了對“源過濾”的支援,即系統能夠報告它只對接收到的發往某一特定多播組的資料報中,某些來自特定源位址的資料感興趣,或者是只對除了某些特定源位址之外的資料感興趣。
這個資訊能夠被多播路由協議用於避免把某些來自特定源位址的多播資料報發往對它不感興趣的網路。
1、簡介IGMP協定被IPv4系統(主機或路由器)用於向鄰接的多播路由器報告它們的組成員關係。
需要注意的是IP多播路由器本身也可能是一個或多個多播組的成員。
在這種情況下,它會既執行協議的“多播路由器部分”(為它的多播路由協定收集成員資訊),又執行協定的“組成員部分”(把自己的成員關係通知自己,其他主機,還有鄰接的多播路由器)。
IGMP協議還用於其他的IP多播管理功能,這通過使用組成員報告之外的其他的消息類型來實現。
這份文檔只描述組成員關係報告功能和消息。
這份文檔說明IGMP第3版。
第1版在RFC1112中說明,是第1個被廣泛使用的版本,也是第1個成為網際網路標準的版本。
第2版在RFC2236中說明,增加了對“組成員快速離開”的支持,即多播路由器獲知相連的網路中的某一個組中已經沒有組成員所花費的時間大大減少。
而第3版增加了對“源過濾”的支援,即系統有能力報告對發往某個特定多播位址的資料報,只希望接收某些特定源的,以支持特定源多播[SSM],或者只希望接收除了某些特定源的。
第3版被設計為能夠跟第1版,第2版互操作的。
多播偵聽者發現(MLD)是IPv6系統採用的一種相似的方法,MLD第1版實現了IGMP 第2版的功能,MLD第2版實現了IGMP第3版的功能。
2、用於IP多播接收的服務介面在一個IP系統內,有一個(至少概念上有)服務介面,被上層協定或者應用程式用於打開或者關閉IP層對發往某一特定IP多播位址的資料報的接收。
IGMPv3六种报告报文详细解读
IGMPv3 六种Report 报文之间的交互关系许小明 2012-1-10一. 参数说明和拓扑1.RFC 3376中定义的1.EXCLUDE 和 INCLUDE 的定义2. 变量A和B代表的含义3.Query的含义4.GMI 的定义2.本案例中定义的简写5代表地址为192.168.1.5;6代表地址为192.168.1.6;7代表地址为192.168.1.7, 3.本试验中的拓扑图二,RFC3376定义的一些参数1.三种查询包的类型查询消息有三种类型的变体:1、“普通查询”由多播路由器发出,用于获知邻接接口(即查询所传输的网络中所相连的接口)的完整的多播接收状态。
在一个普通查询中,组地址字段和源数量(N)字段都为0。
2、“指定组查询”由一台多播路由器发出,用于获知邻接接口中跟某一个IP地址相关的多播接收状态。
在指定组查询中,“组地址”字段含有需要查询的那个组地址,源数量(N)字段为0。
3、“指定组和源查询”由一台多播路由器发出,用于获知邻接接口是否需要接收来自指定的这些源的,发往指定组的多播数据报。
在一个指定组和源的查询中,组地址字段含有要查询的多播地址,源地址[i]字段含有相关的源地址。
2.组记录类型在一个报告消息中,有一定数量的不同类型的组记录:-“当前状态记录”由一个系统发出,用于响应在一个接口上收到的查询。
它报告了接口跟某一个多播IP地址相关的当前的接收状态。
当前状态记录的记录类型可以是下面两个值中的一个:值名字和含义1 MODE_IS_INCLUDE-标明接口相关于某一指定多播地址的过滤模式为INCLUDE。
该组记录中的源地址[i]字段含有该接口的相关于该多播地址的源列表(如果非空的话)。
2 MODE_IS_EXCLUDE-标明接口相关于某一指定多播地址的过滤模式为EXCLUDE。
该组记录中的源地址[i]字段含有该接口的相关于该多播地址的源列表(如果非空的话)。
-“过滤模式改变记录”是当本地的IPMulticastListen调用造成本地的接口层相关于某一特定多播IP地址的过滤模式的改变的时候(即从INCLUDE变到EXCLUDE,或者从EXCLUDE变到INCLUDE),由系统发出。
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协议的不断完善和更新,为多播网络的发展提供了重要的支持,使得多播技术在视频会议、流媒体等应用中得到了广泛的应用和推广。
SNMPv3分析及详解精品PPT课件
SNMPv3实体的组成结构图
1 SNMP协议引擎
SNMP协议引擎负责执行SNMP协议操作,为各类 SNMP应用程序提供服务。每个SNMP协议引擎由一个 SNMP协议引擎ID来标识。在整体上执行两种功能:
1)从SNMP应用中接收流出的PDU执行必要的处理, 包括插入鉴别代码和加密,然后把PDU封装到用于传 输的消息中去。
(2)信息更改(Modification of Information): 一个实体可以更改由另一授权实体产生的正在传
输的报文,从而导致越权的管理操作。这种威胁的本 质就是未授权的实体可以修改任何管理参数,包括配 置、操作和计费方面的参数。
(3)信息泄漏(Disclosure of Information): 实体可以观测管理者与代理之间的信息交换,
从而获得管理对象的值,并获知所报告的事件。例如, 通过观测更改口令的Set命令,可以使攻击者获知新 口令的内容。
(4)消息流更改(Message Stream Modification): SNMP被设计成在无连接的协议上运行。因此,
SNMP消息有可能被重排、延迟或者重放(复制), 从而导致越权的管理操作。例如,一个重新启动设 备的消息可能被复制,并在将来某一时刻重放,导 致非授权的操作。 (5)拒绝服务(Denial of service):
阻止管理者与代理之间的信息交换,或阻止通 信设备的正常使用和管理。这种攻击或者是阻止所 有发往特定目的站点的消息、或者是对网络进行破 坏使其不能运行、或者是发送大量消息使网络过载 从而降低其性能。 (6)流量分析(Traffic analysis):
分析管理者和代理之间信息交换的一般模式。
7.2 SNMPv3协议框架
4) 必要时提供对消息的加密保护,避免管理信息的暴 露。
IGMP 组播协议
1.IGMP (V3)Internet Group Management ProtocolIP D类地址:224.0.0.0 ~ 239.255.255.255 (前4个比特为1110)IGMP用于主机和路由器之间的通信(它也定义了路由器和主机的行为),从而进行组播组的管理,它使得一台主机可以接收:1)发往某个组播组的数据包2)从某些主机发往某个组播组的数据包3)不是从某些主机发出的,发往某个组播组的数据包IGMP协议:1)组播路由器保存所有临近网络中有成员存在的组播组列表。
(不是所有成员的列表)2)IGMP只有两类消息,查询(路由器查询是否有主机处于组播组)和报告(主机报告自己加入,处于,或离开组播组)。
(IGMP-V2中还有一个离开组消息)3)查询消息由路由器发往主机,分为一般查询(General Query):目的地址为224.0.0.1,数据包中组地址为0,源数量为0指定组查询(Group-Specific Query):目的地址为指定的组播地址,数据包中组地址为指定的组播地址,源数量为0指定组和源查询(Group-and-Source-Specific Query):目的地址为指定的组播地址,数据包中组地址为指定的组播地址,源数量不为04)一般查询的周期:IGMP-V1:正常一分钟不超过一次(路由器启动时周期短)IGMP-V2/3:缺省125秒(路由器启动时为1/4查询周期),一般查询消息中的最大的响应时间默认值为100(10秒),启动查询消息数量为健壮变量(Robustness Variable)查询消息5)不同IGMP版本的报告消息类型不一样:V1:0x12; V2: 0x16; V3: 0x226)IGMP-V3报告的记录类型MODE_IS_INCLUDE (包含某些源)MODE_IS_EXCLUDE (排除某些源)CHANGE_TO_INCLUDE_MODE (改变为包含某些源)CHANGE_TO_EXCLUDE_MODE (改变为排除某些源)ALLOW_NEW_SOURCE (增加某些源为允许接收)BLOCK_OLD_SOURCE (阻止某些源的接收)7)报告消息的目的地址:IGMP-V3:224.0.0.22 (IGMPv3路由器在这个地址上侦听)IGMP-V1/2: 消息中的组播地址成员关系报告消息Group Record 结构组播地址分配:224.0.0.0被保证不分配给任何组(包括网关)。
组播介绍(V1,V2,V3,IGMP)
学习目标:*理解组播的概念及技术*掌握IGMP协议及配置*掌握PIM协议及配置为什么要强调组播,因为在现实情况中,越来越多的一些应用都是基于一个特定群组。
这里要注意的是它不是全部用户,而是特定组,一组用户,这些特定群组的应用包括多媒体会议、数据群发、游戏、视频点播等,在这种情况下,如果使用以前所说的单播也好,广播也好,都不符合实际应用的情况,不管是单播还是广播都会大大的增加网络冗余的一些数据流量,为了实现这么一个特定群组的服务,最好的方式就是根据实际情况将应用的成员划分到一个群组里面,而数据的分发仅限于群组内部,这样就可以以尽可能少的数据流来实现群组的应用,这就是我们所说的组播技术。
组播的定义:组播是介于单播和广播之间的一种通讯方式,是主机向一组主机发送信息,这一组主机可以是全部主机也可以不是全部主机,主要看是否所有主机都需要接收这组信息,存在于某个组的所有主机都可以接收到组发送的信息,是一种点到多点的通讯方式,单播是点到点,广播是点到所有点,所以这三者是有区别的。
从这个意义上来说呢,可以这样认为:广播是一个最大化的组播。
当然两者还是有区别的,路由器在处理这两种数据包的处理方式是不同的,广播是不会被路由器所转发的,但是组播是可以穿越不同的网段。
另外广播发出后主机是被默认为是接收者,组播不一样,组播我发不发给你,你能不能去收,是需要看用户有没有一个加入行为,你要加入这个组才能接收这个组的信息。
单播与组播实现点对多点传输的比较:在没实现组播之前,我们是采用单播或者广播来实现,单播可以通过建立多个点到点的连接来实现点到多点的传输,这样的话,在中间节点的路由器,在针对单播传输的时候,都要维持一个会话,当然也就需要占用一份带宽,也就是说从发送方开始,就有多份数据发向不同的接收点,这种方式最大的网络负荷在服务器端,它增大了对服务器性能的要求,同时还会在网络中造成非常大的流量,从而增加了网络的负载。
那么如果我们采用广播的花会有什么问题呢,广播在通讯的时候有个特性,它只在有分叉的时候才会被复制并传输,但是广播缺省认为所有终端都要接收这个数据,这就会造成某个用户根本就不需要这个数据流,但是通过广播发送的数据流还是会转发一份给他,那么这也就浪费了有关的带宽。
IGMPv3协议原理及实现
1
提纲
组播基本概念
IGMP协议介绍 IGMPv3协议原理 IGMPv3协议在FP8680上实现
组播
组播方式实现点到多点传输,只有一个发送者和对该组 播地址感兴趣的多个接收者。
组播基本概念
组播组:使用一个IP 组播地址标识。任何用户主机(或 其他接收设备)加入一个组播组,就成为了该组成员,可 以识别并接收以该IP组播地址为目的地址的IP 报文。
(2)主控组播组表增加过滤模式Filter-Mode, 和源地址列表 (基于所有线卡下用户发送的Report报文信息生成)。 (3)下发三元组(组播组地址,组播源地址和端口)到交 换驱动,基于组播源和组播组地址进行转发;
IGMPv3协议在FP8680上实现
IGMPv3协议的主要功能是基于源地址进行过滤。
再次调用交换接口GenHwSwitchIpmcAdd下发三元组(组播组地址、源 地址,0)下发到交换驱动,将EXCLUDE中的指定源地址的组播数据 流丢弃;
自由通信·创造未来
Thank you!
含义
报告当前状态,说明当前组的模式是INCLUDE模式,收到查询报文时 触发,源地址列表中包含了该组的源地址S。
TO_IN(G,S)
ALLOW(G,S) BLOCK(G,S) IS_EX(G,S)
改变组播组过滤模式为INCLUDE,源地址列表中包含了新的源地址S 。TO_IN(G,{})表示离开G的所有源,相当于IGMPv2的离开报文。
用户2能够收到源为3,4的组播数据流;
组播组收到不同类型报文状态跃迁表
IGMPv3协议在FP8680上实现
FP8680采用线卡和主控两层控制机制实现IGMPv3协议;
(1)线卡记录由每个PON口发送的Report报文信息中所携 带的INCLDUE和EXCLUDE源列表信息;
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 V3
备忘录状态略摘要本文档说明了因特网组管理协议的第3版,IGMPv3。
IGMP协议被IPv4系统用于向邻接的多播路由器报告它们的组成员关系。
第3版的IGMP增加了对“源过滤”的支持,即系统能够报告它只对接收到的发往某一特定多播组的数据报中,某些来自特定源地址的数据感兴趣,或者是只对除了某些特定源地址之外的数据感兴趣。
这个信息能够被多播路由协议用于避免把某些来自特定源地址的多播数据报发往对它不感兴趣的网络。
1、简介IGMP协议被IPv4系统(主机或路由器)用于向邻接的多播路由器报告它们的组成员关系。
需要注意的是IP 多播路由器本身也可能是一个或多个多播组的成员。
在这种情况下,它会既执行协议的“多播路由器部分”(为它的多播路由协议收集成员信息),又执行协议的“组成员部分”(把自己的成员关系通知自己,其它主机,还有邻接的多播路由器)。
IGMP协议还用于其它的IP多播管理功能,这通过使用组成员报告之外的其它的消息类型来实现。
这份文档只描述组成员关系报告功能和消息。
这份文档说明IGMP第3版。
第1版在RFC1112中说明,是第1个被广泛使用的版本,也是第1个成为因特网标准的版本。
第2版在RFC2236中说明,增加了对“低离开延迟”的支持,即多播路由器获知相连的网络中的某一个组中已经没有组成员所花费的时间大大减少。
而第3版增加了对“源过滤”的支持,即系统有能力报告对发往某个特定多播地址的数据报,只希望接收某些特定源的,以支持特定源多播[SSM],或者只希望接收除了某些特定源的。
第3版被设计为能够跟第1版,第2版互操作的。
多播侦听者发现(MLD)是IPv6系统采用的一种相似的方法,MLD第1版实现了IGMP第2版的功能,MLD 第2版实现了IGMP第3版的功能。
2、用于IP多播接收的服务接口在一个IP系统内,有一个(至少概念上有)服务接口,被上层协议或者应用程序用于打开或者关闭IP层对发往某一特定IP多播地址的数据报的接收。
IGMPv1-v2-v3的原理报文形式_New.docx
IGMPv1-v2-v3的原理报文形式目录1 IGMP 协议 (3)1.1 IGMPv1协议 (3)1.1.1 IGMPv1的工作原理1.1.2 IGMPv1报文格式1.1.3 IGMPv1工作过程1.2 IGMPv2协议 (7)1.2.1 IGMPv2的工作原理1.2.2 IGMPv2的报文格式1.2.3 IGMPv2工作过程1.3 IGMPv3协议 (11)1.3.1 IGMPv3的工作原理1.3.2 IGMPv3的报文格式1.3.3 IGMPv3的主要改进2 MLD协议 (16)2.1 MLDv1协议 (16)2.1.1 MLDv1的工作原理 (16)2.1.2 MLDv1报文格式 (16)2.1.3 MLDv1工作流程 (18)2.2 MLDv2协议 (19)2.2.1 工作原理 (19)2.2.2 MLDv2报文格式 (20)2.2.3 MLDv2工作过程 (28)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-v3协议交流文档
+-
-+
.
.
.
.
.
.
| Source Addres +-
-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
|
.
Auxiliary Data
.
|
|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IP 为0Xc0),并且在IP头中携带 Router Alert O
2113]的方式发送。
? IGMP消息(黄色代表本文描述的):
Type Number (hex) 0x11
Message Name Membership Query
0x12 Version 1 Membersh 0x16 Version 2 Membersh 0x17 Version 2 Leave Gro
IPMulticastListen( socket, interface, multicast-address, filter-mode,
IGMPv3基本功能
IGMPv3基本功能1.1.1 IGMPv3基本功能I GMPv3较IGMPv2的改进之处在于增加了主机对组播源的选择能力。
一.主机指定源/组加入运行IGMPv3的主机在加入组播组的同时,能够明确的要求接收或不接收某特定组播源S 发出的组播信息。
例如,网络中存在S1和S2两个组播源,均向组播组G 发送组播报文,User 仅希望接收从组播源S1发往组播组G 的信息,典型组网如1-1所示。
图1-1 指定源/组的组播流路经 packets(S1,G)packets(S2,G)Source S1Source S2ReceiverUserISPRouterA RouterCRouterB RouterD如果主机和路由器之间应用IGMPv1或IGMPv2,User 加入到某组播组G 后,将同时接收到来自组播源S1和S2的组播信息。
如果采用IGMPv3,主机User 可以选择仅接收S1组播信息。
方法一:User 发送IGMPv3报告(G ,IS_IN ,(S1)),仅接收源S1向组播组G 发送的数据。
●方法二:User发送IGMPv3报告(G,IS_EX,(S2)),退出指定源S2对应的组播组G,从而仅有来自S1的组播信息才能传递到User。
二.组成员关系维护●查询周期性发送普遍组查询消息。
路由器根据反馈的组成员报告发现网段中的组成员,并维护组播组与源列表的对应关系。
●当查询器接收到离开某组播组的报告(G,IS_IN,(0) )时,发送指定组查询消息,试探网段中是否还存在该组成员。
路由器根据反馈的组成员报告更新该组对应的源列表。
●当查询器接收到改变组播组与源列表的对应关系的报告(G,BLOCK,(A) )时,发送指定源/组查询消息。
如果组成员希望接收其中任意一个源的组播数据,则将反馈Report消息。
路由器根据反馈的组成员报告更新该组对应的源列表。