「Network」- IGMP version 3,报文格式

  CREATED BY JENKINSBOT

Membership Query

IGMPv3 Query 报文重要字段说明:

Type:报文类型,取值为0x11,IGMPv3的查询报文共有三类(通过其他字段是否有值来区分):
1)普遍组查询报文(General Query),作用与IGMPv1、IGMPv2中的普遍组查询报文作用一致。
2)特定组查询报文(Group-Specific Query),作用与 IGMPv2 中的特定组查询报文作用一致。
3)特定源组查询报文(Group-and-Source-Specific Query),用于查询该组成员是否愿意接收特定源发送的数据。特定源组查询通过在报文中携带一个或多个 Multicast Source Address 来达到这一目的。

Max Response Code:最大响应时间。成员主机在收到IGMP查询器发送的普遍组查询报文后,需要在最大响应时间内做出回应。

Group Address:组播组地址。在普遍组查询报文中,该字段设为0;在特定组查询报文和特定源组查询报文中,该字段为要查询的组播组地址。

Number of Sources:报文中包含的组播源的数量。对于普遍组查询报文和特定组查询报文,该字段为0;对于特定源组查询报文,该字段非0。此参数的大小受到所在网络MTU大小的限制。

Source Address:组播源地址,其数量受到Number of Sources字段值大小的限制。

Packet Example: General Query

Frame 32: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface -, id 0
Ethernet II, Src: HuaweiTe_49:02:cb (00:e0:fc:49:02:cb), Dst: IPv4mcast_01 (01:00:5e:00:00:01)
Internet Protocol Version 4, Src: 192.168.2.254, Dst: 224.0.0.1
Internet Group Management Protocol
    [IGMP Version: 3]
    Type: Membership Query (0x11)
    Max Resp Time: 10.0 sec (0x64)
    Checksum: 0xec5f [correct]
    [Checksum Status: Good]
    Multicast Address: 0.0.0.0
    .... 0... = S: Do not suppress router side processing
    .... .010 = QRV: 2
    QQIC: 60
    Num Src: 0

Membership Report

IGMPv3 Membership Report 报文,除了通告组成员的期望的 Multicast Group 信息外,还能通告组成员希望接收的 Multicast Source 信息。

在 IP Layer 中,IGMPv3 Membership Report 报文使用 224.0.0.22 作为目的地址;

报文格式如下:

IGMPv3 Membership Report 报文重要字段说明:

Type

报文类型,取值为0x22。

Number of Group Records

报文中包含的组记录的数量。

在 IGMPv3 Membership Report 能够携带多个组播组信息,而之前的版本一个成员关系报告只能携带一个组播组。这样在IGMPv3中报文数量大大减少。

Group Record

组记录。Membership Report 的 Multicast Group 、 Multicast Source 信息的关系会记录在组记录(Group Record)字段,发送给 IGMP 查询器。

通告组播源主要有两种模式:INCLUDE:希望接收来自特定组播源的组播流量;EXCLUDE:希望过滤来自特定组播源的组播流量;

Record Type:组记录的类型。共分为三大类:
1)Current-State Record,当前状态报告。用于对 Query 报文进行响应,通告自己目前的状态,共两种:
—- MODE_IS_INCLUDE(RecordType=1):针对发往该组的组播数据的源,如果包含在该源地址列表中,则接收。如果指定源地址列表为空,该报文无效;
—- MODE_IS_EXCLUDE(RecordType=2):针对发往该组的组播数据的源,如果包含在该源地址列表中,则拒收
2)Filter-Mode-Change Record ,过滤模式改变报告。当组和源的关系在 INCLUDE 和 EXCLUDE 间切换时,会通告过滤模式发生变化,共两种:
—- CHANGE_TO_INCLUDE_MODE(RecordType=3),表示过滤模式由 EXCLUDE 转换到 INCLUDE,接收源地址列表包含的新组播源发往该组播组的数据。如果指定 Source Address 为空,表示主机将离开组播组(离组机制将使用该种报文);
—- CHANGE_TO_EXCLUDE_MODE(RecordType=4),表示过滤模式由 INCLUDE 转换到 EXCLUDE,拒绝源地址列表包含的新组播源发往该组的组播数据。
3)Source-List-Change Record,源列表改变报告。当指定源发生改变时,会通告源列表发生变化,共两种:
—- ALLOW_NEW_SOURCES(RecordType=5),表示在现有的基础上,需要接收源地址列表包含的组播源发往该组播组的组播数据。如果当前对应关系为INCLUDE,则向现有源列表中添加这些组播源;如果当前对应关系为 EXCLUDE,则从现有阻塞源列表中删除这些组播源;
—- BLOCK_OLD_SOURCES(RecordType=6),表示在现有的基础上,不再接收源地址列表包含的组播源发往该组播组的组播数据。如果当前对应关系为INCLUDE,则从现有源列表中删除这些组播源;如果当前对应关系为 EXCLUDE,则向现有源列表中添加这些组播源。

Number of Sources:本记录中包含的源地址数量。

Multicast Address:组播组地址。

Sources Address:组播源地址。

Packet Example: MODE_IS_INCLUDE

Frame 271: 94 bytes on wire (752 bits), 94 bytes captured (752 bits) on interface -, id 0
Ethernet II, Src: HuaweiTe_5a:28:cc (54:89:98:5a:28:cc), Dst: IPv4mcast_16 (01:00:5e:00:00:16)
Internet Protocol Version 4, Src: 192.168.2.1, Dst: 224.0.0.22
Internet Group Management Protocol
    [IGMP Version: 3]
    Type: Membership Report (0x22)
    Reserved: 00
    Checksum: 0xee92 [correct]
    [Checksum Status: Good]
    Reserved: 0000
    Num Group Records: 2
    Group Record : 239.1.1.1  Mode Is Include
        Record Type: Mode Is Include (1)
        Aux Data Len: 0
        Num Src: 4
        Multicast Address: 239.1.1.1
        Source Address: 192.168.1.1
        Source Address: 192.168.1.2
        Source Address: 192.168.1.3
        Source Address: 192.168.1.4
    Group Record : 239.1.1.4  Mode Is Include
        Record Type: Mode Is Include (1)
        Aux Data Len: 0
        Num Src: 4
        Multicast Address: 239.1.1.4
        Source Address: 192.168.1.1
        Source Address: 192.168.1.2
        Source Address: 192.168.1.3
        Source Address: 192.168.1.4

Packet Example: CHANGE_TO_INCLUDE_MODE (Leave Group)

Frame 8191: 70 bytes on wire (560 bits), 70 bytes captured (560 bits) on interface -, id 0
Ethernet II, Src: HuaweiTe_5a:28:cc (54:89:98:5a:28:cc), Dst: IPv4mcast_16 (01:00:5e:00:00:16)
Internet Protocol Version 4, Src: 192.168.2.1, Dst: 224.0.0.22
Internet Group Management Protocol
    [IGMP Version: 3]
    Type: Membership Report (0x22)
    Reserved: 00
    Checksum: 0x04eb [correct]
    [Checksum Status: Good]
    Reserved: 0000
    Num Group Records: 3
    Group Record : 239.1.1.1  Change To Include Mode
        Record Type: Change To Include Mode (3)
        Aux Data Len: 0
        Num Src: 0
        Multicast Address: 239.1.1.1
    Group Record : 239.1.1.4  Change To Include Mode
        Record Type: Change To Include Mode (3)
        Aux Data Len: 0
        Num Src: 0
        Multicast Address: 239.1.1.4
    Group Record : 239.1.1.7  Change To Include Mode
        Record Type: Change To Include Mode (3)
        Aux Data Len: 0
        Num Src: 0
        Multicast Address: 239.1.1.7