IP Multicast: IGMPv2

IGMP是主机和路由器之间的组管理协议,对于组播应用程序来讲这个应该是很重要的。我的理解是对于Receiver主机,组管理协议是必需的,毕竟是决定自己收不收组播数据流;但是对Source主机来讲,如果它是只发而不收任何组播数据,就不需要IGMP了。

先说一下实验拓扑:


跟上次一样http://blog.sina.com.cn/s/blog_4b5039210102e0vy.html Sender会持续循环不断的发往224.1.1.1一个字符串cisco.两个receiver进行接收。multicast网里运行pim密集模式进行组播数据转发。

1.对于主机

运行IGMPv2的主机主要使用下列三种类型的消息,不过我只见过第一种和第三种(启动receiver程序并在receiver1端抓包)

(1) membership report

(2) version 1 membership report

(3) Leave group

IGMPv2 membership report的包结构:



IP层注意几个地方(1)TTL=1;(2)protocol number = 2;(3)destination 为此组播目的地址224.1.1.1

IGMPv2的报文结构很简单。

version:2

Type: 0x16 代表是version 2 Membership Report;0x17是Leave Group;0x11 Membership Query;0x12 version 1 Membership Report,

Max Response Time:最大响应时间,对membership query有效。

Header Checksum:校验

Multicast Address:组播地址,此处表示想要接收224.1.1.1的组播数据包。

 

IGMPv2 Leave Group包结构:



python的组播程序关闭,产生离开消息。

2. 对于路由器

路由器发送的IGMPv2主要是查询消息,包括

(1) General Query 常规查询

(2) Group-Specific Query 特定组查询

 

General Query包结构:

General Query的作用和IGMP v1中queries的作用是一样的,当路由器发送General Query查询主机时,使用目的地址为224.0.0.1,当有主机回复时,便认为网络中存在组成员,则将组播发送到该网络,并且General Query每一分钟发送一次,主机每次都回复,如果连续三个General Query没有回复,那么路由器便认为网络中的组成员已经离开,也就停止向网络中发送组播数据了。


和Report不同的几点:

(1)目的地址是224.0.0.1 代表本子网内所有主机,即向所有主机询问是否有要加入组播组的;

(2)每隔一段时间会轮询一次,默认是60秒,路由器可配置修改此时间;


Group-Specific Query 的包结构:

在IGMP v2中,当网络中的组成员离开之后,会向路由器发送Leave Group来通告自己的离开,而只有向路由器发送过Membership Report的组成员离开时才需要发送Leave Group,其它组员离开时,也是没有任何动作的,因此当网络中的组成员离开后,路由器并不知道网络中是否还有其它组员,因为其它组员没有通告过自己的存在。所以如果路由器马上停止向子网转发组播的话,可能会造成某些还存在的组员无法接收组播。最终当路由器收到组成员离开时发来的Leave Group后,并不能马上停止组播的转发,还要向网络中发送Group-Specific Query,目的地址为组的地址,用来查询网络中是否还有别的组员存在,如果有组员回复了,那么组播流就不会中断。为了防止包丢失而误认为没有组员,路由器每1秒分别发两个Group-Specific Query。

 

组成员机制就先写这么多。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值