IGMP报文格式及协议分析

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

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数据报进行传输。其数据格式如下:

20字节的IP首部+8字节的IGMP报文

IGMP有3个版本(V1,V2,V3,)V1的报文格式如下:

➢4位版本:目前IGMP有V1,V2,V3三个版本,比如是V1则该4位为1,V3则该4位为3。

➢4位类型:有成员关系查询0x11 和成员关系报告0x12两种类型。

➢校验和:该8个字节的校验码。

➢32位组地址:当发送报文是成员关系报告时,该32位组地址即组播组地址。

当发送的报文是成员关系查询时,该32位为全0 。V1版本只支持通用关系查询,不支持特定组查询。

V2版本报文格式如下:

➢8位类型:有三种类型。

1、成员关系查询0x11:在V2和V3中成员关系查询增加特定组查询;

常规查询:用于确定哪些组播组是活跃的,即改组是否还有成员在使用,常规查询组地址由全零表示。

特定组查询:用于查询某具体组播组是否还有组成员。

2、成员关系报告0x16

3、离开组消息0x17。

➢8位最大响应时间,设置为0。

➢校验和:报文段8个字节的校验码。

➢组地址:

1、成员关系查询报文:常规查询组低位为全0 ,特定组查询则应设置

对应的组地址

2、成员报告或离开组消息:组地址为要报告或要离开的组地址。

用wireshark抓取成员关系报告报文如下:

✧目的组地址:6个字节,通过多播组地址转换而来

✧源主机mac地址:6个字节

✧type:0x800

✧version:即IP的版本是4

✧header length:IP段的长度32字节(截图上是version和header length 都对应0x48,

个人认为是version对应4,长度32字节是8个32位,所以对应8)。

✧differentiated:8位,默认是0x00

✧total length:16位,总长度40bytes,即IP段加IGMP报文段长度是40字节

✧identification: 16位,id识别码。

✧flgas:8位0x00,

✧fragment offset:8位,0x00

✧ttl:8位,生存时间,0x01

✧protocol:8位,IGMP为0x02

✧header checksum:16位,IP段校验码

✧source:32位,源ip地址,即发送报告报文的主机IP地址

✧destination:32位,组播组ip地址

✧options:12字节,填充字节,全为0

✧type:8位,IGMP报文类型,0x16,成员关系报告

✧max resp time:8位,最大相应时间,设置为0x00

✧header checksum:16位,IGMP报文段校验码

✧multicast address:32位,组播组地址

✧6个填充字节:都为0

✧src port:16位,0x0000

离开组消息报告

相关文档
最新文档