字段 | 长度 | 描述 |
Type | 8比特 | Type = 0x22成员关系报告 |
Reserved | 8比特 | 保留字段,在发送的时候是以0填充,在接收的时候是不作任何处理的。 |
Checksum | 16比特 | 校验和是对整个IGMP消息以16位为一段进行取反求和。为了计算校验和,校验和字段首先必须被置0。当收到一个数据,在处理之前,必须先对校验和进行验证。 |
Reserved | 16比特 | T保留字段,在发送的时候是以0填充,在接收的时候是不作任何处理的。 |
Number of Group Records (M) | 16比特 | 该字段表示该报告报文中包含有几个组记录。 |
Group Record | 变长 | 一个主机可能需要点播多个组播地址的组播业务,每个记录包含了对应于其中一个组播地址的源地址列表等信息,它受到Number_of_Group_Records的大小的影响。 每一个组记录字段是一整块数据,其含有的信息是关于发送者在报告发送接口上的某一个多播组的成员关系。 |
Record Type | 8比特 | Group Record消息的类型。- MODE_IS_INCLUDE:接收源地址列表包含的源发往该组的组播数据。如果指定源地址列表为空,该消息为无效消息。
- MODE_IS_EXCLUDE:不接收源地址列表包含的源发往该组的组播数据。
- CHANGE_TO_INCLUDE_MODE:过滤模式由EXCLUDE转换到INCLUDE,接收源地址列表包含的新组播源发往该组播组的数据。如果指定源地址列表为空,主机离开组播组。
- CHANGE_TO_EXCLUDE_MODE:过滤模式由INCLUDE转换到EXCLUDE,拒绝源地址列表中新组播源发往该组的组播数据。
- ALLOW_NEW_SOURCES:表示在现有的基础上,需要接收源地址列表包含的源发往该组播组的组播数据。如果当前对应关系为INCLUDE,则向现有源列表中添加这些组播源;如果当前对应关系为EXCLUDE,则从现有阻塞源列表中删除这些组播源。
- BLOCK_OLD_SOURCES:表示在现有的基础上,不再接收从源地址列表包含的源组播源发往该组播组的组播数据。如果当前对应关系为INCLUDE,则从现有源列表中删除这些组播源;如果当前对应关系为EXCLUDE,则向现有源列表中添加这些组播源。
|
Aux Data Len | 8比特 | 辅助数据长度含有在组记录中的辅助数据的实际长度,其单位是32bit字。它有可能是0,这就表示辅助数据不存在。 |
Number of Sources (N) | 16比特 | 源数量(N)字段标明在组记录中存在多少源地址。 |
Multicast Address | 32比特 | 多播地址字段标明该组记录从属的多播IP地址。 |
Source Address | 32比特 | 源地址字段是一个数组,含有n个单播地址。n就是该记录的源数量(N)字段的值。 |
Additional Data | 变长 | 附加数据。如果收到的报告中的IP首部的数据报长度字段标明在最后一个组记录后面有附加的数据存在。IGMPv3的实现必须在计算和验证校验和的时候包含这些附加数据,但是同时必须忽略这些附加数据。当发送一个报告时,一个IGMPv3的实现在最后一个组记录后面不能包含附加数据。 |