igmpv3

 

Igmp用于主机或路由器加入某个组播组,igmpv3支持onlyall but两种类型指定源组播。

 

两种类型的service接口

The Join operation is equivalent to

 

      IPMulticastListen ( socket, interface, multicast-address,

                          EXCLUDE, {} )

 

   and the Leave operation is equivalent to:

 

      IPMulticastListen ( socket, interface, multicast-address,

                          INCLUDE, {} )

 

 

两类组播接收状态机

Socket组播接收状态机:

(interface, multicast-address, filter-mode, source-list)

Interface组播接收状态机:

(multicast-address, filter-mode, source-list)

 

Igmp报文的protocol=2ttl=1tos=0xc0,带有router alert option

 

Type Number (hex)   Message Name

      -----------------   ------------

 

            0x11          Membership Query

 

            0x22          Version 3 Membership Report

 

 

0x12          Version 1 Membership Report    [RFC-1112]

 

           0x16          Version 2 Membership Report    [RFC-2236]

 

           0x17          Version 2 Leave Group          [RFC-2236]

 

Membership Query format

       0                   1                   2                   3

       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |  Type = 0x11  | Max Resp Code |           Checksum            |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                         Group Address                         |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      | Resv  |S| QRV |     QQIC      |     Number of Sources (N)     |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                       Source Address [1]                      |

      +-                                                             -+

      |                       Source Address [2]                      |

      +-                              .                              -+

      .                               .                               .

      .                               .                               .

      +-                                                             -+

      |                       Source Address [N]                      |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

Max Resp Code

 

       0 1 2 3 4 5 6 7

      +-+-+-+-+-+-+-+-+

      |1| exp | mant  |

      +-+-+-+-+-+-+-+-+

 

If Max Resp Code < 128

Max response time= Max Resp Code

Else 

Max response time= (mant | 0x10) << (exp + 3)

 

Query的最大响应时间。单位为0.1秒。值小,可以调节leave latency;值大,可以调节report流量。Group member接收到query报文后,延时随机事件[0, Max response time]发送membership report报文

 

S

Suppress(阻止)其他组播路由器的处理。但是不影响host

 

QRV

Query robustness variant。为了保证multicast router可靠接收membership report报文,group member会重复发送QRV-1

 

QQIC

If QQIC < 128

QQIquerier’s query interval)= QQIC 

Else 

QQIquerier’s query interval)= (mant | 0x10) << (exp + 3)

 

查询时间间隔,单位为秒

 

三类查询

1、generic queryGroup Address 

2、Group-specific queryGroup Address为查询的组播地址,Number of Sources 为0

3、Group-and-source-specific queryGroup Address为查询的组播地址,Number of Sources 不为0

 

报文的目的ip地址

generic query的目的ip地址为224.0.0.1all-systems组播地址,所有的主机和路由器,包括组播路由器都要接收这个ip地址的报文),Group-specific queryGroup-and-source-specific query的目的ip地址为查询的组播地址。但是igmp系统(路由器或主机)需要接受和处理接口的单播和组播地址)

 

组播路由器会周期性的发送generic query,在接收到Filter-mode-change/Source-list-change 报文后,组播路由器发现有主机离开某个group或不接受某个指定源组播,会先发送Group-specific queryGroup-and-source-specific query报文,确认没有其他的host接收该组播,才会做相应的剪枝

 

Version 3 Membership Reports

 

format

      0                   1                   2                   3

       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |  Type = 0x22  |    Reserved   |           Checksum            |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |           Reserved            |  Number of Group Records (M)  |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                                                               |

      .                                                               .

      .                        Group Record [1]                       .

      .                                                               .

      |                                                               |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                                                               |

      .                                                               .

      .                        Group Record [2]                       .

      .                                                               .

      |                                                               |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                               .                               |

      .                               .                               .

      |                               .                               |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                                                               |

      .                                                               .

      .                        Group Record [M]                       .

      .                                                               .

      |                                                               |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

Group Record format

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |  Record Type  |  Aux Data Len |     Number of Sources (N)     |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                       Multicast Address                       |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                       Source Address [1]                      |

      +-                                                             -+

      |                       Source Address [2]                      |

      +-                                                             -+

      .                               .                               .

      .                               .                               .

      .                               .                               .

      +-                                                             -+

      |                       Source Address [N]                      |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                                                               |

      .                                                               .

      .                         Auxiliary Data                        .

      .                                                               .

      |                                                               |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 

Aux Data Len

Auxiliary Data域的数据长度,单位为32bit,目前没有使用

 

Record Type

Record Type

类型

说明

1

Current-state record

MODE_IS_INCLUDE,作为membership query的响应,报告接口的当前状态

2

Current-state record

MODE_IS_EXCLUDE,作为membership query的响应,报告接口的当前状态

3

Filter-mode-change record

CHANGE_TO_INCLUDE_MODE,根据server 接口IPMulticastListen触发接口的模式发生改变

4

Filter-mode-change record

CHANGE_TO_EXCLUDE_MODE,根据server 接口IPMulticastListen触发接口的模式发生改变

5

Source-list-change record

ALLOW_NEW_SOURCES,source-list增加了新成员,根据server 接口IPMulticastListen触发接口的模式发生改变

6

Source-list-change record

BLOCK_OLD_SOURCES,source-list删除了旧成员,根据server 接口IPMulticastListen触发接口的模式发生改变

 

报文的源ip地址

接口的ip地址或0.0.0.0

 

报文的目的ip地址

224.0.0.22,但是igmp系统(路由器)需要接受和处理接口的单播和组播地址)

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值