IGMP snooping和IGMP proxy的区别

谈到IGMP snooping,又难免会想到IGMP proxy,有的时候多想像,多思考一下或许有更深的体会哦.

那他们之间的区别是什么呢,先来看下面这个图,l2 switch开启了IGMP snooping,router1是一个远程multicast router,用PIM协议来转发组播包. 

 开启IGMP snooping的作用是侦听IGMP router 和IGMP client之间的IGMP report,query,leave信息,在这个过程中,对于IGMP report,它会在switch的MAC filter database记录下GDA(组目的地址) mac address和哪个端口关联.

IGMP Snooping相对比较简单,它是通过监听客户端和路由器端之间的IGMP报文,从而在建立针对某个组播的组播表条目。包括了组播地址、物理端口和VLAN的映射关系。通过使用IGMP Snooping可以在不支持IGMP的二层交换设备上建立组播表,从而达到节省带宽,控制组播报文转发方向的目的。

对于leave message(IGMP v2),当switch收到client发来的leave message时,switch会发送组查询来查看是不是真的没有这个组的PC了,如果没有回复,就会删除那条entry.

对于IGMPV1没有leave message的情况下,IGMP router会周期的发224.0.0.1查询,switch会根据database发给关联的port,如果连续3次没回,就会把那条entry 删除掉. 

IGMP snooping的好处是什么呢?说了这么多,大家应该明白了吧..

1,对于不支持IGMP snooping的switch收到组播包后,会flood到每个端口去,因为对应于组播地址来说,它的MAC address是GDA(01:00:5E:XX:XX:XX),在switch里面并不存在这样的entry,这样可以节省带宽.

2, 对于收费节目来说可以控制访问.

 

下面来看一下IGMP proxy,

topo和上面的一样,只不过在layer2 switch上开启IGMP proxy.

proxy,就是代理的意思,和http proxy,arp proxy过程差不多.

IGMP router通过拦截IGMP 报文来建立组播表,它的功能分两块来看,

上联端口执行主机角色,下联端口执行路由器角色.

1.上联端口执行主机的角色,响应来自路由器的查询,当新增用户组或者某组最后一个用户退出时,主动发送成员报告包或者离开包。 

2.下联端口执行路由器的角色,完全按照IGMP中规定的机制执行,包括查询者选举机制,定期发送通用查询信息,收到离开包时发送特定查询等.

 

IGMP snooping 的实现机理是:交换机通过侦听主机向路由器的IGMP成员报告消息的方式,形成组成员和交换机接口的对应关系;交换机根据该对应关系将收到组播数据包只转给具有组成员的接口。   

IGMP Proxy与IGMP Snooping实现功能相同但机理相异:IGMP Snooping只是通过侦听IGMP的消息来获取有关信息,而IGMP Proxy则拦截了终端用户的IGMP请求并进行相关处理后,再将它转发给上层路由器.

所以在IGMP snooping里面形成的table是组成员和交换机接口的对应关系,在IGMP Proxy里面形成的是组播路由表.

相当于IGMP snooping来说,实现了IGMP proxy的二层网络设备,对用户侧承担Server的角色,定期查询用户信息,对于网络路由侧又承担Client的角色,在需要时将当前的用户信息发送给网络.不仅能够达到抑制二层组播泛滥的目的更能有效地获取和控制用户信息,同时在减少网络侧协议消息以降低网络负荷方面起到一定作用。

不难看出,IGMP Snooping只是监听IGMP报文来建立组播表,而IGMP报文的产生是通过上端的路由器和客户端来完成的。也就是说如果没有路由器存在,就不能实现组播表的建立,而只能采用广播的形式来实现数据的传输。而Proxy则更多的参与了进来,它直接和客户端和上端的路由器来进行对话,而不再是一个完全透明的角色。因为它做了更多的本地处理,减少了对于上端的路由器的依赖程度,但是也增加了本地的系统负担。但是,从另一方面来讲,使用IGMP Proxy可以减轻上端路由器的负荷。正如上面提到的,Proxy会参与组播组的建立工作,当有一个用户请求提交上来,Proxy首先会检查本地的组播组,如果在本地已经有这个组播组存在,那么它就把该用户加入到这个组播组的成员中,而不需要向上端的路由器发送加入申请;反之,如果在本地没有找到相应的组播组,那么Proxy就会向上端的路由器发送申请,并在本地建立组播组。在组播成员退出的时候,Proxy也会检查该组播组中是否有其它的组播成员存在,如果有,那么它只是把组播组中申请退出的成员删去;反之,它才会通知上端的路由器,注销该组播组。

所以,上述的两种应用方案各有利弊,基于应用应视整体环境而定。

需要补充说明的是,上面介绍的是在局域网的环境中实施的组播功能,在DSLAM和xDSL环境中也是类似的原理和应用,其中DSLAM设备充当了局域网中支持IGMP Snooping或者Proxy的交换机的角色,原理是一样的。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值