背景技术
IP组播是对标准IP网络层协议的扩展,它通过使用特定的IP组播地址,按照最大投递的原则,将IP数据包传输到一个组播群组的主机集合。它的基本方法是:当发送者向一组接收者发送数据时,不必向每一个接收者都发送数据,只需发送到一个特定的预约地址,所有加入该组的接收者都可收到这份数据。这样发送者只需发送一次数据,所有的接收者都可以收到,这就大大减轻了网络的负载和发送者的负担。IP组播在Internet多媒体业务上有着广泛的应用,比如视频会议、远程教育、远程实况转播和视频点播等。
VLAN(Virtual LAN,虚拟局域网)可以限制网络上的广播,减少参与广播风暴的设备数量。
IGMP Snooping即IGMP侦听,其主要作用是在交换机上完成二层组播的注册。它使用IGMP报文,通过对收到的IGMP报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发组播数据。
由于IGMP V1/V2版本的组加入请求报文中不包含组播数据源服务器的IP地址,在支持二层组播交换设备同一个VLAN的多个端口上收到IGMP V1/V2组加入请求报文时,对同一个组,交换设备即使只发送一个IGMP组加入请求报文到组播路由设备,也不影响各端口接收组播数据。因为对组播路由设备来说,无论在连接交换设备的端口上收到一个IGMP组加入请求报文还是多个IGMP组加入请求报文,都会将从组播数据源服务器上发送出来的组播数据流传输到该端口上。
由于IGMP V3组加入请求报文中可指定组播数据源服务器的IP地址,所以在支持组播交换设备同VLAN不同端口上接收到主机设备发送来的组加入请求报文时,主机设备可能接收的是来自不同的组播数据源服务器发送出来的组播数据,如果交换设备只向组播路由设备发送一个IGMP组加入请求,可能会导致有些主机设备接收不到其真正想接收的组播数据源服务器发送出来的组播数据。
发明内容
本发明针对支持二层组播的交换设备端口上收到IGMP V3版本组加入报文,提供一种能够在不影响组播数据传输的情况下,减少交换设备向组播路由设备发送组加入报告报文的数量,进而减少网络带宽的浪费,减轻组播路由设备的处理负担。
本发明需解决的技术问题是克服上述的不足,提供一种组播报文的控制方法,包括:
交换设备同VLAN端口上收到IGMP V3版本组加入报文;
检查同VLAN的其他端口是否收到了相同的组加入报文;
若同VLAN的其他端口收到过相同的加入报告报文,则比较前后两个组加入报文的指定源地址;
若前组加入报文的源地址不包含后组加入报文的源地址,则所述交换设备向组播路由设备发送组加入报文。
优选的,所述前组加入报文的指定源地址和所述后组加入报文的指定源地址相同。
优选的,若同VLAN的其他端口没有收到过相同的组加入报文,则所述交换设备向组播路由设备发送组加入报文。
采用本发明方法后,在交换设备收到IGMP V3版本组加入报文后,判断之前的组加入报文是否能够满足后组加入报文的数据组播要求,如果后组加入报文数据组播要求由前组加入报文能够满足,则过滤掉后组加入报文,减少交换设备向组播路由设备发送组加入报告报文的数量,进而减少网络带宽的浪费,减轻组播路由设备的处理负担。
具体实施方式
为了使本领域相关技术人员更好地理解本发明的技术方案,下面将结合本发明实施方式的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。
下面结合附图和实施方式对本发明作进一步说明。
如图1所示,本发明主要涉及到支持二层组播的交换设备,相关设备包括组播数据源服务器,组播路由设备和主机设备。主机A、主机B、和主机C与交换机所连接的端口属于同一个VLAN,在二层交换机开启IGMP Snooping功能后,三个端口分别收到了来自主机A、主机B和主机C发送的IGMP V3组加入报告报文。
参阅图2,为本发明提供的一种实施方式的组播报文的控制方法,包括:
步骤S100,交换设备同VLAN端口上收到IGMP V3版本组加入报文;
交换设备开启IGMP侦听,分析收到的IGMP报文。
步骤S200,检查同VLAN的其他端口是否收到了相同的组加入报文;
交换设备在收到IGMPV3版本的组加入报文,即可指定源地址的组加入报文后,检查同VLAN的其他端口是否也收到了相同的组加入报文。若同VLAN的其他端口收到过相同的组加入报文,则执行步骤S300;若同VLAN的其他端口没有收到相同的组加入报文,则执行步骤S400。
步骤300,比较前后两个组加入报文的指定源地址,判断前组加入报文的源地址是否包含后组加入报文的指定源地址;若前组加入报文的指定源地址不包含后组加入报文的源地址,则执行步骤S400,否则执行步骤S500。
在优选实施方式中,前组加入报文的指定源地址和后组加入报文的指定源地址相同,则执行步骤S500。
步骤S400,交换设备向组播路由设备发送组加入报文;
步骤S500,交换设备过滤掉组加入报文,不向组播路由设备发送组加入报文。
通过上述步骤,过滤掉不必要向组播路由设备发送的组加入报文,同时不影响组播数据的正常组播,进而减少网络带宽的浪费,减轻组播路由设备的处理负担。
下面解释说明一下:
以(*,G)表示组播组G的组播数据源服务器IP为任一地址,以(S,G)表示组播组G的组播数据源服务器IP为S,在交换机与主机C相连的接口上接收到组加入报告报文,组为(S3,G)时,交换机已从与主机A相连的接口上接收到组为(S1,G)的组加入报告报文和从与主机B相连的接口上接收到组为(S2,G)的组加入报告报文,则会出现一下情形:
1,S1或S2为*,交换机不向组播路由器发送组加入报告报文;
2,S3为*,S1和S2都不为*时,交换机需向组播路由器发送组加入报告报文,组为(*,G)。
3,S3与S1或S2相同时,交换机不向组播路由器发送组加入报告报文。
4,S3所表示的范围包含于S1或S2所表示的范围时,交换机不向组播路由器发送组加入报告报文。
5,S1,S2和S3所表示的范围与S1和S2所表示的范围不一样时且S1、S2都不包含S3,交换机向组播路由器发送组加入报告报文,组为(S3,G)。
采用本发明方法后,在交换设备收到IGMP V3版本组加入报文后,判断之前的组加入报文是否能够满足后组加入报文的数据组播要求,如果后组加入报文数据组播要求由前组加入报文能够满足,则过滤掉后组加入报文,减少交换设备向组播路由设备发送组加入报告报文的数量,进而减少网络带宽的浪费,减轻组播路由设备的处理负担。
以上仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。