天天看点

组播简介

通过组播,可以实现一个主机同时向组内的多台主机发送数据,节省网络带宽。

组播ip地址范围是224.0.0.0—–239.255.255.255,

其中

224.0.0.0—–224.0.0.255是有特殊用途的保留地址,

239.0.0.0—–239.255.255.255是私网地址,

224.0.1.0—–238.255.255.255是用于公网上的组播地址。

组播有一系列的协议支持包括:

1、用于主机和路由器之间的IGMP协议。实现主机加入、离开组播组等功能。

2、路由器之间的组播协议有:PIM-SM、PIM-DM。实现嫁接、剪枝等功能。

还有一个IGMP Snooping,用在交换机上。

开启IGMP Snooping功能的交换机可以对经过它的IMGP报文进行解析,建立组播转发表,这样一来,交换机就可以根据组播转发表转发组播数据。如果没有开启IGMP Snooping功能,交换机只能广播组播数据。IGMP Snooping的实际应用意义是:减少了网络上的主机由于接受到不必要的组播报文而产生的处理负荷。IGMP Snooping并不是一个协议,只能算是一个实现细节,一种应用。

IGMP Snooping分两种,一种是passive方式的,另一种是active方式的。passive方式的只解析组播报文,不对报文进行过滤。active方式的会过滤掉一些对路由器没有意义的组播报文。比如交换机下面有两个主机都加入了同一个组,这样交换机上面的路由器中就会有一条表项与之对应。如果一个主机想离开这个组,它就会发送离开报文给路由器(经过交换机转发)。但是此时,即使路由器收到了离开报文,它也并不会删除那条表项,因为还有另一个主机在组播组中。active方式的IGMP Snooping使交换机可以过滤掉此类报文。

下面说说IGMP的工作原理:

IGMP目前有三个版本,分别是IGMPV1、IGMPV2、IGMPV3,功能逐渐增强

IGMPV1中定义了加入报文、查询报文。

1、当主机加入某组播组时,会向路由器发送加入报文,告诉路由器自己加入了一个组播组,路由器会记录一条组播表项 。

2、查询路由器(IP最小的路由器)会定时从所有端口向外发送查询报文(按VLAN查询,如果该端口加入了多个VLAN,则发送多次查询报文),检查这些端口下是否有主机属于某组播组

3、主机收到查询报文后,如果自己没有加入任何组播组,则不进行响应;如果自己已经加入了某组播组,则会发送加入报文

4、主机离开组播组时,不发送任何报文,悄悄离开;路由器中纪录的该组播的表项会因查询超时而自动老化

5、查询报文的目的地址是224.0.0.1(表示所有路由器和支持IGMP的主机),组地址是0(表示查询所有组播组)

6、响应报文的目的地址是主机所在组的地址,组地址也是主机所在组的地址。如果网络上有多个主机加入了同一个组,那么只有一台主机(随机选取)会发送响应报文。由于响应报文的目的地址是主机所在组的地址,所以响应报文会被发送到主机所在组内的所有主机,其他的主机在收到该报文后,发现已经有人向路由器进行报告了,于是他们就不会再额外发送响应报文了。

继续阅读