IGMP及抓包分析(分享借鉴)

合集下载

实验五 利用WIRESHARK分析IGMP协议

实验五 利用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,这就表示辅助数据不存在。

IGMP原理与配置

IGMP原理与配置

IGMP的原理与配置一、概述1.简介:①IGMP 是Internet Group Management Protocol(互联网组管理协议)的简称②它是TCP/IP协议族中负责IP 组播成员管理的协议,用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系2.版本①IGMPv1(由RFC 1112 定义)②IGMPv2(由RFC 2236 定义)③IGMPv3(由RFC 3376 定义)注:1> 所有版本的IGMP都支持ASM(Any-Source Multicast,任意信源组播)模型2> IGMPv3 可以直接应用于SSM(Source-Specific Multicast,指定信源组播)模型3> IGMPv1 和IGMPv2 则需要在IGMP SSM Mapping 技术的支持下才能应用于SSM 模型二、IGMPv1工作原理1.工作机制①IGMPv1 主要基于查询和响应机制来完成对组播组成员的管理②需要有一个查询器(Querier)的选举机制来确定由哪台路由器作为IGMP 查询器③由组播路由协议(如PIM)选举出唯一的组播信息转发者DR(Designated Router,指定路由器)作为IGMP 查询器2.查询与响应实例分析①拓扑图②过程分析1> 主机会主动向其要加入的组播组发送IGMP 成员关系报告报文以声明加入,而不必等待IGMP 查询器发来的IGMP 查询报文【理想状态】2> IGMP 查询器周期性地以组播方式向本地网段内的所有主机与路由器发送IGMP 查询报文(目的地址为224.0.0.1)3> 在收到该查询报文后,关注G1 的Host B 与Host C 其中之一(这取决于谁的延迟定时器先超时)——譬如Host B 会首先以组播方式向G1 发送IGMP 成员关系报告报文,以宣告其属于G1(说明:A由于本地网段中的所有主机和路由器都能收到Host B 发往G1 的报告报文,因此当Host C 收到该报告报文后,将不再发送同样针对G1的报告报文B 因为IGMP路由器(Router A和Router B)已知道本地网段中有对G1 感兴趣的主机了。

IGMP使用详解

IGMP使用详解

IGMP一、Internet 组管理协议IGMP 是Internet 组管理协议(Internet Group Management Protocol)的缩写。

IGMP 在TCP/IP 协议中的位置:应用层协议(FTP,HTTP,SMTP)TCP UDP ICMP IGMPIPARP RARPMACPHY在了解 IGMP 协议的之前,我们首先看看以太网对报文的处理方法。

我们知道,目前使用的以太网(ethernet)有一个特点,当一个报文在一条线路上传输时,该线路上的所有主机都能够接收到这个报文。

只是当报文到达MAC 层时,主机会检测这个报文是不是发送给自己的,如果不是该报文就会被丢弃。

常用的抓包软件ethereal, sniffer 都可以捕获当前物理线路上的所有报文,不管该报文的目的地址是不是自己。

以太网中有一种特殊的报文广播包其目的mac 地址全为0xff,所有的主机都必须接收。

说到 IGMP 不能不提“组播”的概念。

假如现在一个主机想将一个数据包发给网络上的若干主机,有什么方法可以做到呢一个方法是采用广播包发送,这样网络上的所有主机都能够接收到,另一种方式是将数据包复制若干份分别发给目的主机。

这两个方法都存在问题:方法一,广播的方法导致网络上所有的主机都能接收到,占用了网络上其他主机的资源。

方法二,由于所有目的主机接收的报文都是相同的,采用单播方式显然效率很低。

为了解决上面所述的问题,人们提出了“组播”的概念,控制一个报文发送给对该报文感兴趣的主机,IGMP 就是组播管理协议。

我们来看一个简单的组播应用场景PC,如何处理呢首先STB 要发起一个连接请求,也就是IGMP report 报文,加入到电视直播的组播组中。

同样当STB 要断开连接的时候就发送一个IGMP leave 报文。

Router 也需要知道当前有哪些STB 加入了组播组,防止有的STB 异常掉线了,却依然占用系统资源。

Router 周期性的发送IGMP query 报文查询组播组情况,STB 接到query 报文后发送report 消息到router。

IGMP学习总结

IGMP学习总结

IGMP学习心得:有关IGMP的RFC文档,本人看过后,感觉实在是太枯燥泛味了,深受其“害”,为此,我对其作了一个简单的总结,如有错误之处及时指出。

在IGMP协议中定义了各种烦琐的定时器,以下我罗列出了一些比较重要的定时器。

有助于我们理解IGMP协议具体的实现过程。

查询间隔(query-interval)查询间隔是指查询者发送普通查询(general query)之间的时间间隔。

查询报告间隔(max query response time)就是周期性普通查询数据报中的最大响应时间,缺省值是100(10秒)。

当一台主机收到一个普通查询,它为收到查询的那个接口所在的组设置延迟定时器。

每个定时器都被设置成不同的随机值(降低并发的概率),该随机值采用主机所能达到的最高时间精度,值的范围是(0,max query response time)组成员关系间隔组成员关系间隔是指一台多播路由器在确定某一个网络内的某一个组内没有成员之前,必须要经过的时长。

其它查询者存在间隔(querier timeout)通常情况下,每一个物理网络只有一个查询者。

所有的多播路由器在启动的时候,在它的每一个相连的网络中都是查询者。

如果一个多播路由器接收到另一台多播由器的一个查询消息,并且它的IP地址要比自己小,那它在该网络中要马上变成一个非查询者,因为一个子网内只允许存在一个查询者。

其它查询者存在间隔是指一台路由器在确定网络内没有其它作为查询者的路由器存在之前,必须要经过的时长。

启动查询间隔启动查询间隔是指在查询者启动的时候,发送普通查询之间的间隔。

因为在多播路由器启动的时候,为了快速并可靠地确定组成员信息,路由器应当间隔较小的发送多个普通查询。

它的缺省值是1/4的查询间隔。

最后一个成员查询间隔(Last member query response time)最后一个成员查询间隔是指为响应离开组消息而发送的指定组查询(group specific query)中的最大响应时间,同时它也是指定组查询间的时间间隔。

小朱老师-EIGRP抓包详解

小朱老师-EIGRP抓包详解

EIGRP基础首先我们先来了解下CISCO开发EIGRP的背景。

CISCO在开发EIGRP之前有个叫IGRP的协议,这个协议的开发主要是针对RIPv1的,也是个有类的协议。

后来RIPv2出来后,CISCO就想,我要是还是个有类的肯定活不长,所以必须得改,但他并不是像RIP那样增加了那么些个特性就完事了,关键是这个时候OSPF已经诞生了,鉴于OSPF的强大与变态,若是小改那肯定也是干不过他的,所以CISCO干脆就大改,整个能跟OSPF相抗衡的东西出来,EIGRP vs OSPF,于是乎EIGRP就出来了,而不是IGRPv2什么的。

当然,EIGRP也不是完全没用IGRP 的东西,像IGRP的composite mertic(符合度量值)这样的好特性EIGRP还是继承下来了,不然也不会叫增强型内部网关路由协议。

接下来,让我们来看看EIGRP到底有哪些子值得称道的特性。

一、Fast Convergence(快收敛)。

相对于RIP的30/180和IGRP的90/270而言,EIGRP 的Hello和Dead时间是5s/15s(这里想不考虑多点链路小于T1的情况)。

那这就很不得了了,收敛时间非常之快,也就更能满足现在网络对于路由性能的要求。

二、Loop Free(无环)。

其实,对于这个特性并没有什么好值得炫耀的,因为对于路由协议来讲,你有环那你还是路由协议吗,谁敢用你,但这里说的无环是指他引入了一些比较好的机制来保障他的无环,而不是像RIP那样通过各种“补丁”技术来保障其无环。

三、Simply Configure(配置简单)。

这一点是针对OSPF来讲的,玩过OSPF的人都知道,当你要使用OSPF来达到某些特性时他的配置那是无比蛋疼,异常复杂,在那个时候你会觉得EIGRP的配置那真是一个简单,好使。

四、Unequal Loadbalance(非等价负载平衡)。

这个特性是EIGRP所特有的,也被CISCO申请了专利,这个特性能让你的网络在保障冗余的同时,有较高的利用率。

IGMP协议详解与测试方法

IGMP协议详解与测试方法

拟 制 人时 间IGMP 协议详解与测试方法1 基本信息1.1 摘要本文主要介绍IGMP协议与我司终端产品IGMP的测试方法。

1.2关键字IGMP,SNOOPING1.3 缩略语IGMP Internet Group Management Protocol Internet 组管理协议SMB SmartBits 思博伦通信网络分析仪CPE Customer Premise Equipment 用户侧设备2 协议解释2.1 IGMP 作用¾ 实现一对多数据流业务,有很多种实现方式,如广播,但是浪费带宽,会造成广播风暴:¾ 如果用IGMP 的话,根据成员的需要去接受数据流业务:组播成员2组播成员12.2 IGMP协议¾IGMP协议用于IPv4系统向任何邻居组播路由器报告其组播成员资格。

IP组播路由器自己本身也可以是一到多个组播组的成员。

这时,组播路由器要实现协议的组播路由器部分和组成员部分。

¾报文格式IGMP V1 报文格式Ver Type Reserved ChecksumGroup AddressIGMP V2 报文格式Type Max Resp Time ChecksumGroup AddressMembership Query: 成员关系查询(0x11)V1 Membership Report: 版本 1 成员关系报告(0x12)V2 Membership Report: 版本 2 成员关系报告(0x16)Leave Group: 离开组报告(0x17)¾IGMP组播地址组播IP地址用于标识一个IP组播组。

IANA把D类地址空间分配给IP组播,其范围是从224.0.0.0到239.255.255.255。

如下图所示(二进制表示),IP组播地址前四位均为1110。

八位组(1)八位组(2)八位组(3)八位组(4)1110XXXX XXXXXXXX XXXXXXXX XXXXXXXX组播地址的分类:保留——224.0.0.0 - 224.0.0.255用户组播地址——224.0.1.0 - 238.255.255.255本地管理组——239.0.0.0 - 239.255.255.255 (用于私人组播领域,类似私有IP地址)¾IGMP组播地址2层的MAC地址是如何与3层的IP地址进行映射的呢?通过将MAC地址的前25位强行规定位01.00.5e,而后23位对应IP地址的后23位,而组播IP地址的前4位均相同如:IP地址: 1110yyyy.yxxxxxxx.xxxxxxx.xxxxxxxxMAC地址: 00000001.00000000.01011110.0xxxxxxx.xxxxxxx.xxxxxxxx2.3 IGMP版本¾IGMP的不同版本Version 1:在[RFC-1112]中声明,是第一个广泛使用的IGMP版本。

IGMP协议模板

IGMP协议模板

介绍IGMP协议的背景和作用背景在计算机网络中,组播(Multicast)是一种将数据包从一个源节点发送到多个目标节点的通信方式。

与单播(Unicast)和广播(Broadcast)相比,组播可以有效地节省带宽和网络资源,并支持在分布式系统中进行实时数据传输。

然而,要实现组播通信,就需要一种能够管理和控制组播组(Multicast Group)成员的协议。

这就是Internet组管理协议(IGMP)的作用所在。

IGMP协议的作用IGMP是一种在IPv4网络中使用的协议,它允许主机或路由器向网络中的路由器提供有关组播组成员身份的信息。

IGMP协议使得路由器能够知道哪些主机是组播组的成员,从而能够有效地转发组播流量。

IGMP协议的主要作用如下:1.组播组成员管理:IGMP协议允许主机加入或离开特定的组播组。

主机可以通过发送IGMP报文来通知所在网络中的路由器它们的组播组成员身份。

这样,路由器就能够动态地维护组播组成员列表,并相应地转发组播数据。

2.组播路由器控制:IGMP协议使得组播路由器能够有效地管理组播流量的传输。

路由器可以通过监听和处理IGMP报文,了解组播组成员的变化情况,从而决定是否继续转发组播数据。

3.节省网络带宽:由于组播数据只需发送到组播组的成员,相比广播或单播,组播能够显著减少网络上的数据传输量,从而节省网络带宽和降低网络拥堵的可能性。

IGMP协议的存在使得组播通信更加高效和可行。

总结起来,IGMP协议在IPv4网络中扮演着关键的角色,它提供了组播组成员管理和组播路由器控制的功能,使得组播通信能够高效地进行。

通过使用IGMP协议,网络中的主机和路由器能够共同合作,实现可靠的组播数据传输,满足各种实时和多媒体应用的需求。

解释IGMP协议的工作原理和基本概念工作原理IGMP协议的工作原理可以概括为以下几个步骤:1.主机加入组播组:当主机要加入一个组播组时,它会向所在网络中的组播路由器发送一个特定的IGMP报文,表明它希望成为该组播组的成员。

IGMP及抓包分析复习进程

IGMP及抓包分析复习进程

I G M P及抓包分析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(Internet组管理协议)报文及协议

详解IGMP(Internet组管理协议)报文及协议

1引言本文将介绍用于支持主机和路由器进行多播的Internet组管理协议(IGMP)。

它让一个物理网络上的所有系统知道主机当前所在的多播组。

多播路由器需要这些信息以便知道多播数据报应该向哪些接口转发。

IGMP在RFC 1112中定义[Deering 1989].正如ICMP一样,IGMP 也被当作IP 层的一部分。

IGMP报文通过IP数据报进行传输。

不像我们已经见到的其他协议,IGMP有固定的报文长度,没有可选数据。

图13-1显示了IGMP报文如何封装在IP数据报中。

IGMP(Internet组管理协议)报文及协议(图一)IGMP报文通过IP首部中协议字段值为2来指明。

2 IGMP报文图1 3 - 2显示了长度为8字节的IGMP报文格式。

IGMP(Internet组管理协议)报文及协议(图二)这是版本为1的IGMP.IGMP类型为1说明是由多播路由器发出的查询报文,为2说明是主机发出的报告报文。

检验和的计算和ICMP协议相同。

组地址为D类IP地址。

在查询报文中组地址设置为0,在报告报文中组地址为要参加的组地址。

在下一节中,当介绍IGMP如何操作时,我们将会更详细地了解它们。

3 IGMP 协议3.1 加入一个多播组多播的基础就是一个进程的概念(使用的术语进程是指操作系统执行的一个程序),该进程在一个主机的给定接口上加入了一个多播组。

在一个给定接口上的多播组中的成员是动态的—它随时因进程加入和离开多播组而变化。

这里所指的进程必须以某种方式在给定的接口上加入某个多播组。

进程也能离开先前加入的多播组。

这些是一个支持多播主机中任何API所必需的部分。

使用限定词“接口”是因为多播组中的成员是与接口相关联的。

一个进程可以在多个接口上加入同一多播组。

Stanford大学伯克利版Unix中的IP 多播详细说明了有关socket API的变化,这些变化在Solaris 2.x和ip(7)的文档中也提供了。

这里暗示一个主机通过组地址和接口来识别一个多播组。

腾科IT教育集团:IGMP工作原理分析v1.0

腾科IT教育集团:IGMP工作原理分析v1.0

IGMP工作原理分析组播浅谈一、需求及背景组播源发送的数据可以被被路由器转发并发给多个在该组播组的PC,广泛用于路由协议的报文传输,多媒体娱乐业务优势:1.点对多点的传输节约带宽资源2.减轻设备负担3.数据接收的同时性组播封装于UDP劣势:1.不可靠2.没有拥塞机制3.收到重复报文二、组播地址1.概述范围:224.0.0.0-239.255.255.255组播地址不可能配置设备接口或作为终端的IP地址组播地址不可能是作为一个数据的源地址只能在目的地址上2.组播地址的分类224.0.0.0~224.0.0.255(保留组播地址),每一个组播都已经定义好了224.0.0.1 发给所有的设备 224.0.0.2 发给所有的路由器224.0.0.5 224.0.0.6 OSPF 224.0.0.9 RIP224.0.0.10 EIGRP 224.0.0.18 VRRP3.组播对应的MAC地址01005E+0(二进制)+ip组播地址的后23位三、IGMP1.IGMP v1两个报文:查询query 报告report特点:组员是安静离开,判断是否有组员的方式就是每60S发送一次Query,当在180S内没有回应report的时候认为没有组员2.IGMP v2四个报文:查询query 报告report 离开leave 特定查询specific query最大回应时间:pc收到query报文后的响应时间,默认最大为10S,IGMPv2以0.1S为单位,V1以1S为单位4.IGMPv2的工作过程1.路由器发送查询报文,开始选举查询者,IP地址小者查询报文如下:2.RTB成为查询者开始发送查询报文,PC1收到了查询报文,他会根据MAX reponse time去选择时间去响应,比如2.2S当PC1去发送response报文的时候,抑制其他PC发送目的组播IP地址和加入的组的ip地址一致,可以让同组的成员都收到report其他的PC就不会发送response特殊情况:。

IGMP及抓包分析

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及抓包分析.

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报文格式及协议分析

1、多播:用于向多个目的地址传送数据。

多播地址:地址由固定的4位1110 + 28位多播组ID构成,范围从224.0.0.0到239.255.255.255。

2、主机组:能够接收发往一个特定多播组地址数据的主机集合。

一些多播组地址被IANA 确定为知名地址,他们也被当作永久主机组。

例如:224.0.0.1代表“该子网内的所有系统组”,224.0.0.2代表“该子网内的所有路由器组”。

多播地址224.0.1.1用作网络时间协议NTP。

3、多播组地址到以太网地址的转换IANA(互联网数字分配机构)拥有一个以太网地址块,即高位24bit为00:00:5e,这意味着该地址块所拥有的地址范围从00:00:5e:00:00:00到00:00:5e:ff:ff:ff。

IANA将其中的一半分配为多播地址。

为了指明一个多播地址,任何一个以太网地址的首字节必须是01,这意味着与IP多播相对应的以太网地址范围从01:00:5e:00:00:00到01:00:5e:7f:ff:ff。

将多播地址的低23位映射到以太网地址的低23位,高25位为固定的24位的01:00:5e 加1位0。

这样就从多播组ip地址得到了对应的多播组mac地址。

由于多播组地址的高5位(即1110的后5位)在映射过程中被忽略,因此每个以太网多播地址对应的多播组不是唯一的,由于地址映射不是唯一的,所有需要设备驱动程序或IP 层对数据报进行过滤。

4、IGMP:internet组管理协议用于让一个物理网络上的所有系统知道主机当前所在的多播组。

多播路由器使用IGMP 报文来记录与该路由器相连网络中组成员的变化情况,首先,主机发送加入组播组报文到组播组,为了可靠,可以采取定时发送的方式向组播组发送加入报告报文。

同时组播组也会定发送查询报文,收到查询报文后回复报告报文。

如果主机已经离开了组播组则在收到查询报文后不发送报告报文。

IGMP被当做IP层的一部分,IGMP报文通过IP数据报进行传输。

IGMP协议解析组播管理的关键协议原理与应用

IGMP协议解析组播管理的关键协议原理与应用

IGMP协议解析组播管理的关键协议原理与应用组播(Multicast)是一种在网络中一对多进行数据传输的方式,它允许发送方将数据包发送给一组主机,而不是传统的一对一方式。

为了实现组播管理,网络协议中采用了一种被称为IGMP协议(Internet Group Management Protocol,互联网组管理协议)的协议。

一、协议原理IGMP协议用于主机和组播路由器之间的通信,通过该协议,主机可以加入到一个组播组,接收组播数据。

IGMP协议具体实现了以下几个重要原理:1. 组播组管理组播组是由一组主机共同组成的逻辑组,组播组成员可以通过IGMP协议加入或者离开组播组。

当主机需要接收某个组播组的数据时,它会向所连接的组播路由器发送IGMP报文,加入到该组播组中。

而当不再需要接收该组播组的数据时,主机会发送IGMP离开报文,通知组播路由器将其从组播组中移除。

2. 组播路由器查询为了了解主机的组播组成员情况,组播路由器会定期发送IGMP查询报文,询问所连接的主机是否还属于某个组播组。

主机在收到查询报文后,如果确实是该组播组的成员,则会发送IGMP成员报文回应,以告知组播路由器自己仍然是组播组的一员。

3. 组播数据转发当组播源发送数据时,它会向所在网络中的组播地址发送数据包。

组播路由器根据主机的组播组成员信息,将数据包仅转发给那些需要接收该组播组数据的主机。

这样,组播源只需发送一份数据包,就能够实现数据的一对多传输。

二、协议应用IGMP协议在各种网络环境中都有广泛的应用。

以下是几个主要领域中的应用示例:1. 视频流传输在IP视频会议、实时直播等场景中,使用组播技术可以实现高效的视频流传输。

IGMP协议的加入和离开机制保证了只有需要接收视频流的主机才会接收到数据,减轻了网络负载。

2. 软件升级和配置分发在大规模网络中,当需要对多个主机进行软件升级或者配置分发时,可以使用组播技术进行分发。

IGMP协议的组播数据转发机制可以确保数据只传输到需要接收的主机,提高了分发效率和节省了带宽资源。

抓包工具和抓包分析

抓包工具和抓包分析

抓包工具和抓包分析1概述在处理IP网络的故障时,经常使用以太网抓包工具来查看和抓取IP网络上某些端口或某些网段的数据包,并对这些数据包进行分析,定位问题。

在IMON项目里,使用抓包工具抓包进行分析的场景在EPG采集、引流模块和软终端监看模块,一般情况下EPG采集和引流模块比较稳定,软终端监看还涉及SS5代理,这部分出问题的几率比较大,这是就有可能要现场维护人员抓包进行分析、排查、定位问题,确定是网络问题还是软件问题,如果是软件问题则要将抓回的包发给研发解决。

EPG抓包可分为对鉴权过程、采集过程抓包验证,主要是通过通过抓包分析与IPTV鉴权服务器之间的TCP交互。

流媒体交互抓包可分为对组播、点播进行抓包,一般交互的协议分为IGMP、RTSP、RTMP等,组播一般是基于UDP的IGMP流,点播是基于RTP的RTSP流或基于TCP的RTMP流。

软终端抓包主要是抓取软终端与IPTV服务器交互、SS5与IPTV服务器交互的数据包,一般跟流媒体交互的报文协议差不多,也是分为组播IGMP、点播RTSP等协议,不过经过测试发现江苏的部分组播(可能是用户不同所致)发送的是RTSP的包。

2常用抓包工具2.1W ireSharkWireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析,不过要说明的是,这只是一个工具,用法是非常灵活的。

过滤器的区别捕捉过滤器(CaptureFilters):用于决定将什么样的信息记录在捕捉结果中。

需要在开始捕捉前设置。

显示过滤器(DisplayFilters):在捕捉结果中进行详细查找。

他们可以在得到捕捉结果后随意修改。

捕捉过滤器Protocol(协议):可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.如果没有特别指明是什么协议,则默认使用所有支持的协议。

详解IGMP(Internet组管理协议)报文及协议

详解IGMP(Internet组管理协议)报文及协议

1引言本文将介绍‎用于支持主‎机和路由器‎进行多播的‎I nter‎n et组管‎理协议(IGMP)。

它让一个物‎理网络上的‎所有系统知‎道主机当前‎所在的多播‎组。

多播路由器‎需要这些信‎息以便知道‎多播数据报‎应该向哪些‎接口转发。

IGMP在‎R FC 1112中‎定义[Deeri‎n g 1989].正如ICM‎P一样,IGMP 也被当作I‎P层的一部分‎。

IGMP报‎文通过IP‎数据报进行‎传输。

不像我们已‎经见到的其‎他协议,IGMP有‎固定的报文‎长度,没有可选数‎据。

图13-1显示了I‎G MP报文‎如何封装在‎I P数据报‎中。

IGMP(Inter‎n et组管‎理协议)报文及协议‎(图一)IGMP报‎文通过IP‎首部中协议‎字段值为2‎来指明。

2 IGMP报‎文图1 3 - 2显示了长‎度为8字节‎的IGMP‎报文格式。

IGMP(Inter‎n et组管‎理协议)报文及协议‎(图二)这是版本为‎1的IGM‎P.IGMP类‎型为1说明‎是由多播路‎由器发出的‎查询报文,为2说明是‎主机发出的‎报告报文。

检验和的计‎算和ICM‎P协议相同‎。

组地址为D‎类IP地址‎。

在查询报文‎中组地址设‎置为0,在报告报文‎中组地址为‎要参加的组‎地址。

在下一节中‎,当介绍IG‎M P如何操‎作时,我们将会更‎详细地了解‎它们。

3 IGMP 协议3.1 加入一个多‎播组多播的基础‎就是一个进‎程的概念(使用的术语‎进程是指操‎作系统执行‎的一个程序‎),该进程在一‎个主机的给‎定接口上加‎入了一个多‎播组。

在一个给定‎接口上的多‎播组中的成‎员是动态的‎—它随时因进‎程加入和离‎开多播组而‎变化。

这里所指的‎进程必须以‎某种方式在‎给定的接口‎上加入某个‎多播组。

进程也能离‎开先前加入‎的多播组。

这些是一个‎支持多播主‎机中任何A‎P I所必需‎的部分。

使用限定词‎“接口”是因为多播‎组中的成员‎是与接口相‎关联的。

详解IGMP(Internet组管理协议)报文及协议

详解IGMP(Internet组管理协议)报文及协议

详解IGMP(Internet组管理协议)报文及协议本文将介绍用于支持主机和路由器进行多播的Internet组管理协议(IGMP)。

它让一个物理网络上的所有系统知道主机当前所在的多播组。

多播路由器需要这些信息以便知道多播数据报应该向哪些接口转发。

IGMP在RFC 1112中定义[Deering 1989].也被当作IP 层的一部分。

IGMP报文通过IP数据报进行传输。

正如ICMP一样, IGMP 也被当作不像我们已经见到的其他协议, IGMP有固定的报文长度,没有可选数据。

图13-1显示了IGMP报文如何封装在IP数据报中。

IGMP(Internet组管理协议)报文及协议(图一)IGMP报文通过IP首部中协议字段值为2来指明。

2 IGMP报文显示了长度为8字节的IGMP报文格式。

图1 3 - 2IGMP(Internet组管理协议)报文及协议(图二)这是版本为1的IGMP.IGMP类型为1说明是由多播路由器发出的查询报文,为2说明是主机发出的报告报文。

检验和的计算和ICMP协议相同。

组地址为D类IP地址。

在查询报文中组地址设置为0,在报告报文中组地址为要参加的组地址。

在下一节中,当介绍IGMP如何操作时,我们将会更详细地了解它们。

协议3 IGMP3.1 加入一个多播组多播的基础就是一个进程的概念(使用的术语进程是指操作系统执行的一个程序),该进程在一个主机的给定接口上加入了一个多播组。

在一个给定接口上的多播组中的成员是动态的—它随时因进程加入和离开多播组而变化。

这里所指的进程必须以某种方式在给定的接口上加入某个多播组。

进程也能离开先前加入的多播组。

这些是一个支持多播主机中任何API所必需的部分。

使用限定词“接口”是因为多播组中的成员是与接口相关联的。

一个进程可以在多个接口上加入同一多播组。

Stanford大学伯克利版Unix中的IP 多播详细说明了有关socket API的变化,这些变化在Solaris 2.x和ip(7)的文档中也提供了。

linux igmp 分析

linux igmp 分析
IGMP 的 mac 地址为 01-00-5e-xx-xx-xx,其中后 23bits 是 ip 地址的低 23bits。从这也说 明了只要知道一个多播 ip 地址,即可换算出其 mac 地址,不需要通过 arp 请求获取 mac 地 址。
在具体实现功能时,又分为 IGMP SNOOPING 与 IGMP PROXY 两种。 对于 IGMP SNOOPING 这是在二层实现组播数据限制的一个功能。对于一个路由器或 者 2 层 switch,当 lan 层的一个端口发送一个 IGMP report 报文加入一个组播组后,如果没 有开启 IGMP SNOOPING,则数据会 flood 到所有 lan 側端口,这样会增加网络负载。如果 开启了 IGMP SNOOPING,路由器或者 2 层 switch 就会分析 IGMP 报文,为端口和 IGMP 组播组地址建立映射关系,这样下行的组播流数据就只会转发到加入组播组的端口,而不会
flood 到所有桥端口。
对于 IGMP PROXY,主要是拦截 lan 側 pc 发送的 igmp 报文,其在 wan 側作为 客户端相应上行路由的查询操作,而在 lan 側则作为服务端定期发送查询报文。
当 lan 側加入的组播组在 IGMP PROXY 设备上没有相应的组播路由时,才会 给上层发送组播加入报文,当 lan 側加入的组播组在 IGMP PROXY 设备上已经存 在时,则无需再将加入报文转发出去。这样不仅能够达到有效抑制二层组播泛滥 的问题,且能更有效的获取和控制用户信息,降低网络负载。
对于通用成员关系查询,需要将 Multicast ip address 设置为 0;对于特定组成员关系查询, 需要将 Multicast ip address 值设置为要查询的组播组地址。

IGMP协议详解与测试方法

IGMP协议详解与测试方法

IGMP协议详解与测试方法IGMP(Internet Group Management Protocol,Internet组管理协议)是一种用于IP网络的组播协议。

它允许主机加入到特定的组播组,并通过查询和报告机制通知路由器有关组播组成员的信息。

本文将详细介绍IGMP协议的工作原理,并提供一种测试IGMP功能的方法。

IGMP的工作原理如下:1. 主机加入组播组:主机通过发送IGMP报文加入到组播组。

IGMP 消息有三种类型:查询(Query)、报告(Report)和离开(Leave)。

查询消息由路由器发出,用于了解网络中的组播组成员。

报告消息由主机发出,用于加入到组播组或报告存在。

离开消息由主机发出,用于离开组播组。

2.路由器维护组播组成员表:路由器通过接收IGMP消息维护一个组播组成员表。

当收到报告消息时,路由器将主机添加到对应的组播组成员表中。

当收到离开消息时,路由器将主机从对应的组播组成员表中删除。

3.路由器转发组播流量:当路由器接收到组播数据包时,它会查找组播组成员表,确定需要转发数据包的接口。

然后,路由器根据IP协议的特性将数据包转发到指定接口。

IGMP的测试方法如下:1.确保网络拓扑正确:首先,需要构建一个符合组播网络拓扑的实验环境。

包括至少一个路由器和多个主机,确保它们的IP地址和子网掩码设置正确,并且路由器启用了IGMP功能。

2.观察组播组成员表:使用网络管理工具或命令行工具,查看路由器的组播组成员表。

确认路由器能够正确维护主机的加入和离开。

3. 加入组播组和报告存在:在其中一个主机上执行加入组播组操作,并发送报告消息。

可以使用命令行工具如"igmp join <组播组IP>"执行加入操作,并使用网络抓包工具观察IGMP报文。

4. 离开组播组和报告离开:在加入组播组的主机上执行离开组播组操作,并发送离开消息。

可以使用命令行工具如"igmp leave <组播组IP>"执行离开操作,并使用网络抓包工具观察IGMP报文。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IGMP
IGMP 是Internet Group Management Protocol(互联网组管理协议)的简称。

它是TCP/IP 协议族中负责IP 组播成员管理的协议,用来在IP 主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。

到目前为止,IGMP 有三个版本:
1、IGMPv1(由RFC 1112 定义)
2、IGMPv2(由RFC 2236 定义)
3、IGMPv3(由RFC 3376定义)
一、IGMPv1
1.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次查询周期过后)。

组播组超时,剪枝。

二、IGMPv2
2.1报文格式
1、类型
成员关系查询(0x11)
常规查询:用于确定哪些组播组是有活跃的,即该组是否还有成员在使用,常规查询地址由全零表示;
特定组查询:用于查询某具体组播组是否还有组成员。

版本2成员关系报告(0x16)
版本1成员关系报告(0x12)
离开组消息(0x17)
2、最大响应时间
以0.1秒为单位,默认值是100,即10秒。

3、校验和
4、组地址
在成员查询消息中,发送一个普遍查询报文时组地址域应设为0,当发送一个对特定组的查询报文时,则应设置组的地址。

在成员报告或离开组的消息中,组的地址域保留了要报告或要离开的地址。

2.2 组成员加入过程
当一个主机加入了一个组播组,则应该立即发送一个或多个版本2的成员关系报告给组播组。

相关文档
最新文档