组播数据报文转发方法、装置和交换机与流程

文档序号:14924576发布日期:2018-07-13 15:42阅读:447来源:国知局
本发明涉及网络安全领域,特别涉及一种组播数据报文转发方法、装置和交换机。
背景技术
:IP(InternetProtocol,网络互连协议)组播通信指的是IP组播数据报文从一个源端发出,而被转发到一组特定的接收端,IP组播可以有效地节约网络带宽、降低网络负载,所以在IPTV(IP电视)、实时数据传送和多媒体会议等诸多方面都有广泛的应用。用户端在需要网络服务时,可以先向DHCP(DynamicHostConfigurationProtocol,动态主机配置协议)服务器申请一个动态IP地址,在申请动态IP地址的过程中,所经过的接入交换机可以使能动态主机配置侦听协议DHCPSnooping,以侦听用户端与DHCP服务器之间通信的DHCP协议报文,根据DHCP协议报文可以知道该用户端的动态IP地址。在该用户端获取动态IP地址之后,用户端可以请求网络服务,比如,当该用户端需要点播组播源服务器发送的组播组A的组播数据流时,会向接入路由器发送IGMP(InternetGroupManagementProtocol,组管理协议)加入报文,以告诉接入路由器下游有用户需要组播组A的组播数据流;接入交换机可以使能组播侦听协议IGMPSnooping,以侦听该用户端与接入路由器之间的IGMP加入报文,接入交换机获知接入交换机在截取到该IGMP加入报文时所使用的端口以及IGMP加入报文中所携带的组播组A的组播组地址,接入交换机将该端口和组播组A的组播组地址作为一个转发表项记录在组播转发表中;接入路由器与组播源服务器通过PIM(ProtocolIndependentMulticast,协议无关组播)协议交互后,获取组播组A的组播数据流,并向接入交换机发送获取的组播数据流;接入交换机根据查找到具有组播组A的组播组地址的转发表项,根据该转发表项中的端口将组播组A的组播数据流发送给用户端。在实现本发明的过程中,发明人发现现有技术至少存在以下问题:当用户端不需要任何网络服务时,如果在没有离开组播组A时就向DHCP服务器释放申请的动态IP地址,此时接入交换机上仍然会存在该用户端之前申请组播数据流时所产生的转发表项,仍然会向该用户端持续的发送组播数据流,造成带宽浪费。技术实现要素:为了解决现有技术中当用户端释放IP地址之后,接入交换机仍根据转发表项向该用户端持续发送组播数据报文而造成的带宽浪费的问题,本发明实施例提供了一种组播数据报文转发方法、装置和交换机。所述技术方案如下:第一方面,提供了一种组播数据报文转发方法,其特征在于,所述方法包括:当存在用于指示用户端请求释放所述用户端的网络互连协议IP地址的动态主机配置协议DHCP释放报文时,获取所述DHCP释放报文中携带的所述IP地址;在预存的组播转发表中删除具有所述IP地址的转发表项;根据删除所述转发表项之后的所述组播转发表转发接收到的组播数据报文。在第一方面的第一种可能的实施方式中,在所述获取所述DHCP释放报文中携带的所述IP地址之前,还包括:接收用于指示所述用户端请求加入组播组的组管理协议IGMP加入报文;获取所述IGMP加入报文携带的IP地址、组播组地址以及接收所述IGMP加入报文的端口;将所述IP地址、所述组播组地址以及所述端口确定为一个转发表项;将所述转发表项放入所述组播转发表中,将所述组播转发表确定为所述预存的组播转发表。结合第一方面或者第一方面的第一种可能的实施方式,在第二种可能的实施方式中,在所述将所述IP地址、所述组播组地址以及所述端口确定为一个转发表项之前,还包括:检测所述组播组地址以及所述端口是否已经同时存在于所述组播转发表的一个已有的转发表项中;若检测结果为所述组播组地址以及所述端口已经同时存在于所述组播转发表的一个已有的转发表项中,则将所述IP添加至所述转发表项中;若检测结果为所述组播组地址以及所述端口还未同时存在于所述组播转发表的任何一个已有的转发表项中,则执行将所述IP地址、所述组播组地址以及所述端口确定为一个转发表项的步骤。结合第一方面、第一方面的第一种可能的实施方式或者第一方面的第二种可能的实施方式,在第三种可能的实施方式中,在所述在预存的组播转发表中删除具有所述IP地址的转发表项之前,还包括:在所述预存的组播转发表中查找具有所述IP地址的转发表项;检测所述转发表项中是否还存在其他IP地址;若检测结果为所述转发表项还存在其他IP地址,则删除所述转发表项中的所述DHCP释放报文携带的所述IP地址;若检测结果为所述转发表项不存在其他IP地址,则执行在预存的组播转发表中删除具有所述IP地址的转发表项的步骤。结合第一方面、第一方面的第一种可能的实施方式、第一方面的第二种可能的实施方式或者第一方面的第三种可能的实施方式,在第四种可能的实施方式中,所述根据删除所述转发表项之后的所述组播转发表转发接收到的组播数据报文,包括:当接收到组播数据报文时,获取所述组播数据报文中携带的组播组地址;查询删除所述转发表项之后的所述组播转发表中具有所述组播组地址的转发表项;通过所述转发表项中的端口发送所述组播数据报文。第二方面,提供了一种组播数据报文转发装置,其特征在于,所述装置包括:第一获取模块,用于当存在用于指示用户端请求释放所述用户端的网络互连协议IP地址的动态主机配置协议DHCP释放报文时,获取所述DHCP释放报文中携带的所述IP地址;第一删除模块,用于在预存的组播转发表中删除具有所述IP地址的转发表项;转发模块,用于根据删除所述转发表项之后的所述组播转发表转发接收到的组播数据报文。在第二方面的第一种可能的实施方式中,所述装置还包括:接收模块,用于接收用于指示所述用户端请求加入组播组的组管理协议IGMP加入报文;第二获取模块,用于获取所述IGMP加入报文携带的IP地址、组播组地址以及接收所述IGMP加入报文的端口;确定模块,用于将所述IP地址、所述组播组地址以及所述端口确定为一个转发表项;放入模块,用于将所述转发表项放入所述组播转发表中,将所述组播转发表确定为所述预存的组播转发表。结合第二方面或者第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述装置还包括:第一检测模块,用于检测所述组播组地址以及所述端口是否已经同时存在于所述组播转发表的一个已有的转发表项中;添加模块,用于在所述第一检测模块的检测结果为所述组播组地址以及所述端口已经同时存在于所述组播转发表的一个已有的转发表项中时,将所述IP添加至所述转发表项中;确定模块,还用于在所述第一检测模块的检测结果为所述组播组地址以及所述端口还未同时存在于所述组播转发表的任何一个已有的转发表项中时,将所述IP地址、所述组播组地址以及所述端口确定为一个转发表项。结合第二方面、第二方面的第一种可能的实施方式或者第二方面的第二种可能的实施方式,在第三种可能的实施方式中,所述装置还包括:查找模块,用于在所述预存的组播转发表中查找具有所述IP地址的转发表项;第二检测模块,用于检测所述转发表项中是否还存在其他IP地址;第二删除模块,用于在所述第二检测模块的检测结果为所述转发表项还存在其他IP地址时,删除所述转发表项中的所述DHCP释放报文携带的所述IP地址;第一删除模块,还用于在所述第二检测模块的检测结果为所述转发表项不存在其他IP地址时,在预存的组播转发表中删除具有所述IP地址的转发表项。结合第二方面、第二方面的第一种可能的实施方式、第二方面的第二种可能的实施方式或者第二方面的第三种可能的实施方式,在第四种可能的实施方式中,所述转发模块,包括:获取单元,用于当接收到组播数据报文时,获取所述组播数据报文中携带的组播组地址;查询单元,用于查询删除所述转发表项之后的所述组播转发表中具有所述组播组地址的转发表项;发送单元,用于通过所述转发表项中的端口发送所述组播数据报文。第三方面,提供了一种交换机,其特征在于,所述交换机包括如第二方面以及第二方面的可能的实施方式中所描述的组播数据报文转发装置。第四方面,还提供了一种交换机,该交换机包括处理器和发送机,所述处理器和所述发送机耦合;所述处理器,用于当存在用于指示用户端请求释放所述用户端的网络互连协议IP地址的动态主机配置协议DHCP释放报文时,获取所述DHCP释放报文中携带的所述IP地址;所述处理器,还用于在预存的组播转发表中删除具有所述IP地址的转发表项;所述发送机,用于根据所述处理器删除所述转发表项之后的所述组播转发表转发接收到的组播数据报文。在第四方面的第一种可能的实现方式中,所述交换机还包括接收机,所述处理器还与接收机耦合;所述接收机,用于接收用于指示所述用户端请求加入组播组的组管理协议IGMP加入报文;所述处理器,还用于获取所述接收机接收到的所述IGMP加入报文携带的IP地址、组播组地址以及接收所述IGMP加入报文的端口;所述处理器,还用于将所述IP地址、所述组播组地址以及所述端口确定为一个转发表项;所述处理器,还用于将所述转发表项放入所述组播转发表中,将所述组播转发表确定为所述预存的组播转发表。结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器,还用于检测所述组播组地址以及所述端口是否已经同时存在于所述组播转发表的一个已有的转发表项中;所述处理器,还用于在检测结果为所述组播组地址以及所述端口已经同时存在于所述组播转发表的一个已有的转发表项中时,将所述IP添加至所述转发表项中;所述处理器,还用于在检测结果为所述组播组地址以及所述端口还未同时存在于所述组播转发表的任何一个已有的转发表项中时,将所述IP地址、所述组播组地址以及所述端口确定为一个转发表项。结合第四方面的第一种可能的实现方式或者第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理器,还用于在所述预存的组播转发表中查找具有所述IP地址的转发表项;所述处理器,还用于检测所述转发表项中是否还存在其他IP地址;所述处理器,还用于在检测结果为所述转发表项还存在其他IP地址时,删除所述转发表项中的所述DHCP释放报文携带的所述IP地址;所述处理器,还用于在检测结果为所述转发表项不存在其他IP地址时,在预存的组播转发表中删除具有所述IP地址的转发表项。结合第四方面的第一种可能的实现方式、第四方面的第二种可能的实现方式或者第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理器,还用于当接收到组播数据报文时,获取所述组播数据报文中携带的组播组地址;所述处理器,还用于查询删除所述转发表项之后的所述组播转发表中具有所述组播组地址的转发表项;所述发送机,还用于通过所述处理器查询到的所述转发表项中的端口发送所述组播数据报文。本发明实施例提供的技术方案带来的有益效果是:通过在转发表项中增加一个与端口对应的IP地址,当感知某一个用户端释放IP地址时,在预存的组播转发表中删除具有该IP地址的转发表项,根据删除该转发表项之后的组播转发表转发接收到的组播数据报文;解决了现有技术中当用户端释放IP地址之后,接入交换机仍根据转发表项向该用户端持续发送组播数据报文而造成的带宽浪费的问题;当确定用户端是释放了IP地址,则删除具有该IP地址的转发表项,这样当再次获取到与该IP地址相关的组播数据报文时,由于与该IP地址相关的转发表项已经删除,因此不会再按照原有转发表项中的端口将组播数据报文下发给该用户端,达到了可以快速断开向该用户端发送的组播数据流,节省了带宽的效果。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明一部分实施例中提供的组播数据报文转发方法所涉及的实施环境的示意图;图2是本发明一个实施例中提供的组播数据报文转发方法的方法流程图;图3是本发明另一个实施例中提供的组播数据报文转发方法的方法流程图;图4A是本发明另一部分实施例中提供的组播数据报文转发方法所涉及的实施环境的示意图;图4B是本发明再一个实施例中提供的组播数据报文转发方法的方法流程图;图5是本发明一个实施例中提供的组播数据报文转发装置的结构示意图;图6是本发明另一个实施例中提供的组播数据报文转发装置的结构示意图;图7是本发明一个实施例中提供的交换机的结构示意图;图8是本发明另一个实施例中提供的交换机的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。请参见图1所示,其示出了本发明部分实施例中提供的组播数据报文转发方法所涉及的实施环境的示意图,该实施环境可以包括:组播源服务器102、DHCP服务器104、接入路由器106、接入交换机108和用户端110,接入交换机108分别与用户端110以及接入路由器106连接,接入路由器106分别与组播源服务器102、DHCP服务器104连接。用户端110在需要网络服务时,需要向该DHCP服务器104发送一个用于向DHCP服务器104请求分配一个动态IP地址DHCP获取报文,以获取一个动态IP地址;当用户端110不再需要网络服务时,则向DHCP服务器104发送用于向DHCP服务器104释放该动态IP地址的DHCP释放报文。用户端110在需要获取组播源服务器102发送的组播数据时,首先需要向接入路由器106发送IGMP加入报文,以告知该接入路由器106下游有用户需要组播源服务器102发送的组播数据流,在接入路由器106与组播源服务器102通过PIM协议交互后,接入路由器106将组播源服务器102发送的组播数据流发送接入交换机108,由加入交换机108将组播数据流发送给用户端110。接入交换机108可以通过使能DHCPSnooping截获并分析DHCP获取报文、DHCP释放报文以及与DHCP协议相关的其他报文,接入交换机108还可以通过使能IGMPSnooping截获并分析IGMP加入报文以及与IGMP协议相关的其他报文。请参见图2所示,其示出了本发明一个实施例中提供的组播数据报文转发方法的方法流程图。本实施例主要是以该组播数据报文转发方法应用于图1中的接入交换机108中进行举例说明的。该组播数据报文转发方法可以包括:201,当存在用于指示用户端请求释放用户端的网络互连协议IP地址的DHCP释放报文时,获取DHCP释放报文中携带的IP地址;接入交换机108中可以使能DHCPSnooping截取经过接入交换机108的所有DHCP类型的报文,比如用于请求DHCP服务器分配IP地址的DHCP分配报文,或用于请求DHCP服务器释放IP地址的DHCP释放报文等。DHCPSnooping还可以对截取的DHCP报文进行解析,比如可以对DHCP释放报文进行解析,以获取DHCp释放报文中携带的IP地址。也即,当一个用户端请求释放IP地址时,接入交换机108则可以或者是那个用户端想要释放IP地址。202,在预存的组播转发表中删除具有IP地址的转发表项;通常情况下,加入交换机108会根据转发表项对组播数据报文进行转发。通常,转发表项中包括组播组地址和端口,加入交换机首先根据组播数据报文中所携带的组播组地址,找到具有该组播组地址的转发表项,然后将该组播数据报文从该转发表项中的端口中发送出去。203,根据删除转发表项之后的组播转发表转发接收到的组播数据报文。综上所述,本发明实施例中提供的组播数据报文转发方法,通过在转发表项中增加一个与端口对应的IP地址,当感知某一个用户端释放IP地址时,在预存的组播转发表中删除具有该IP地址的转发表项,根据删除该转发表项之后的组播转发表转发接收到的组播数据报文;解决了现有技术中当用户端释放IP地址之后,接入交换机仍根据转发表项向该用户端持续发送组播数据报文而造成的带宽浪费的问题;当获取到与该IP地址相关的组播数据报文时,由于与该IP地址相关的转发表项已经删除,因此不会再按照转发表项中的端口将组播数据报文下发给该用户端,达到了可以快速断开向该用户端发送的组播数据流,节省了带宽的效果。请参见图3所示,其示出了本发明另一个实施例中提供的组播数据报文转发方法的方法流程图,本实施例主要是以该组播数据报文转发方法应用于图1中的接入交换机108中进行举例说明的。该组播数据报文转发方法可以包括:301,接收用于指示用户端请求加入IGMP加入报文;当用户端想要获取组播数据时,首先需要向与发送该组播数据的服务器连接的接入路由器发送IGMP加入报文,在此过程中,接入交换机可以使能IGMPSnooping,以截取经过接入交换机的IGMP加入报文。302,获取IGMP加入报文携带的IP地址、组播组地址以及接收IGMP加入报文的端口;接入交换机在截取到IGMP加入报文之后,可以对IGMP加入报文进行,通常来讲,IGMP加入报文可以包括源IP地址、目标IP地址,对应的,该接入交换机则可以获取IGMP加入报文所携带的IP地址(即IGMP加入报文中的源IP地址)、组播组地址(即IGMP加入报文中的目标IP地址)以及接入交换机在接收到IGMP加入报文时的端口。303,将IP地址、组播组地址以及端口确定为一个转发表项;将每一个IGMP加入报文中获取的IP地址、组播组地址以及端口确定为一个转发表项。304,将转发表项放入组播转发表中,将该组播转发表确定为预存的组播转发表;该组播转发表中包含有三个转发表项,其中每个转发表项中均可以包含组播组地址、IP地址和端口,其中端口为用于获取IGMP加入报文的地址。请参见表1所示:组播组地址IP地址端口GROUP1IP1PORT1GROUP2IP2PORT2GROUP3IP1PORT1表1表1中每一行为确定的一个转发表项,每一个表项中包含有组播组地址和端口,当接入交换机获取到具有组播组地址的组播数据报文时,会根据与该组播组地址对应的端口将组播数据报文发送出去。需要说明的是,在实际应用中,该转发表项还可能包含其他的内容,比如VLAN(VirtualLocalAreaNetwork,虚拟局域网)网标识等。305,当存在用于指示用户端请求释放用户端的IP地址的DHCP释放报文时,获取DHCP释放报文中携带的IP地址;当一个用户端不再需要网络服务时,可以向DHCP服务器释放该用户端所具有的动态IP地址,此时,用户端会向DHCP服务器发送一个用于指示用户端请求释放用户端的IP地址的DHCP释放报文,以将该IP释放给DHCP服务器。在该过程中,接入交换机可以使能DHCPSnooping,以截获该DHCP释放报文,并解析该DHCP释放报文以获取该DHCP释放报文中所携带的IP地址,即具有该IP地址的用户端想要释放IP地址。306,在预存的组播转发表中删除具有IP地址的转发表项;当一个用户端想要释放IP地址时,则表明该用户端不再想获取网络服务,因此为了避免再次向该用户端发送组播数据,此时接入交换机会删除具有该IP地址的转发表项。举例来讲,可以参见表2所示:表2当解析出的DHCP释放报文中携带的IP地址为IP1时,则根据在预存的组播转发表中删除具有该IP1的转发表项,即删除第一行的转发表项和第三行的转发表项,这样当接入交换机再次接收到具有组播组地址GROUP1或GROUP3的组播数据报文时,由于查找不到具有该PORT1的转发表项,因此不会将该具有组播组地址GROUP1或GROUP3的组播数据报文发送给具有IP1地址的用户端。307,当接收到组播数据报文时,获取组播数据报文中携带的组播组地址;当接入交换机在接收到组播数据报文时,获取该组播数据报文中携带的组播组地址。308,查询删除转发表项之后的组播转发表中具有组播组地址的转发表项;查询经过步骤306之后保存的组播转发表中具有该组播组地址的转发表项,举例来讲,仍参见表2,比如该组播组地址为GROUP2,则获取具有该GROUP2的转发表项,该转发表项信息的端口PORT2。309,通过转发表项中的端口发送组播数据报文。仍参见表2,当获取的转发表项为第二行所对应的转发表项时,可以根据该端口PORT2将组播组地址为GROUP2的组播数据报文发送与该端口PORT2对应的用户端。综上所述,本发明实施例中提供的组播数据报文转发方法,通过在转发表项中增加一个与端口对应的IP地址,当感知某一个用户端释放IP地址时,在预存的组播转发表中删除具有该IP地址的转发表项,根据删除该转发表项之后的组播转发表转发接收到的组播数据报文;解决了现有技术中当用户端释放IP地址之后,接入交换机仍根据转发表项向该用户端持续发送组播数据报文而造成的带宽浪费的问题;当获取到与该IP地址相关的组播数据报文时,由于与该IP地址相关的转发表项已经删除,因此不会再按照转发表项中的端口将组播数据报文下发给该用户端,达到了可以快速断开向该用户端发送的组播数据流,节省了带宽的效果。在实际应用中,请参见图4A所示,其示出了本发明另一部分实施例中提供的组播数据报文转发方法所涉及的实施环境的示意图,图4A中所示的实施环境中与图1中所示的实施环境相比,除了可以包含组播源服务器102、DHCP服务器104、接入路由器106、接入交换机108和用户端110之外,还可能包含集线器(HUB)112,集线器用于将至少两个用户端110连接至接入交换机108的一个端口中,也即,集线器连接的多个用户端可以同时获取从交换机中的该端口下发的相同的数据。此时,当连接在同一个集线器上的多个用户端在申请具有同一个组播组地址的组播数据报文时,转发表项中同时与该组播组数据地址以及端口对应的IP地址则为多个。这种情况下,当转发表项中的一个IP地址被释放,为了保证其他用户端仍然能够正常的接收到组播数据报文,还存在其他的IP地址时,仅删除该转发表项中被释放的IP地址,具体参见对图4B的描述。请参见图4B所示,其示出了本发明再一个实施例中提供的组播数据报文转发方法的方法流程图,本实施例主要是以该组播数据报文转发方法应用于图1中的接入交换机108中进行举例说明的。该组播数据报文转发方法可以包括:401,接收用于指示用户端请求加入组播组的IGMP加入报文;当用户端想要获取组播数据时,首先需要向与发送该组播数据的服务器连接的接入路由器发送IGMP加入报文,在此过程中,接入交换机可以使能IGMPSnooping,以截取经过接入交换机的IGMP加入报文。402,获取IGMP加入报文携带的IP地址、组播组地址以及接收IGMP加入报文的端口;接入交换机在截取到IGMP加入报文之后,可以对IGMP加入报文进行,通常来讲,IGMP加入报文可以包括源IP地址、目标IP地址,对应的,该接入交换机则可以获取IGMP加入报文所携带的IP地址(即IGMP加入报文中的源IP地址)、组播组地址(即IGMP加入报文中的目标IP地址)以及接入交换机在接收到IGMP加入报文时的端口。403,检测该组播组地址以及该端口是否已经同时存在于组播转发表的一个已有的转发表项中,若检测结果为组播组地址以及端口已经同时存在于组播转发表的一个已有的转发表项中,则执行404,若检测结果为组播组地址以及端口还未同时存在于组播转发表的任何一个已有的转发表项中,则执行405;如果连接同一个集线器的多个用户端的其中一个用户端已经申请具有某一个组播组地址的组播数据流时,则接入交换机会建立一个具有该组播组地址以及与该集线器对应的端口的转发表项;当连接该集线器的另一个用户端也申请具有该组播组地址的组播数据流时,则需要检测该组播组地址以及该端口是否已经同时存在于组播转发表的一个已有的转发表项中。404,若检测结果为组播组地址以及端口已经同时存在于组播转发表的一个已有的转发表项中,则将IP添加至转发表项中;举例来讲,当具有IP1的用户端A和具有IP2的用户端B同时连接一个集线器中,该集线器通过端口1与接入交换机连接,当用户端A已经申请组播组地址P的组播数据报文,接入交换机会针对用户端A建立一个转发表项,该转发表项中具有组播组地址P、端口1和IP1;而当用户端B也想获取组播组地址P发送的组播数据报文,则会发送一个IGMP加入报文,接入交换机在获取该IGMP加入报文之后,解析该IGMP报文中所携带的IP地址为IP1,此时会检测到该组播组地址P以及端口a已经同时存在于组播转发的一个已有的该转发表项中,这时则需要将该用户端B的IP地址IP2加入该转发表项中。也就是说,当连接在同一个集线器上多个用户端请求获取同一个组播组地址发送的组播数据报文时,同时对应于该端口以及该组播组地址的转发表项中会具有多个IP地址。请参见表3所示:组播组地址IP地址端口GROUP1IP1、IP4PORT1GROUP2IP2PORT2GROUP3IP1PORT1表3在表3中具有IP1的用户端1以及具有IP2的用户端4同时连接在一个集线器上,交换机通过端口PORT1与该集线器连接,用户端1和用户端4均请求了获取组播组地址为GROUP1发送的组播数据报文,此时第一个转发表项中包含的IP地址则为IP1和IP2。405,若检测结果为组播组地址以及端口还未同时存在于组播转发表的任何一个已有的转发表项中,则将IP地址、组播组地址以及端口确定为一个转发表项;当组播组地址以及端口还未同时存在于组播转发表的任何一个已有的转发表项中,则表明需要建立一个新的转发表项。举例来讲,当具有IP2的用户端B请求获取组播组地址GROUP2发送的组播数据报文,则检测出的GROUP1和端口PORT2还没有同时存在于转发数据表中,此时可以建立一个具有该GROUP1、端口PORT2以及IP2的转发表项,请参见表3所示。406,将转发表项放入组播转发表中,将组播转发表确定为预存的组播转发表;407,当存在用于指示用户端请求释放用户端的IP地址的DHCP释放报文时,获取DHCP释放报文中携带的IP地址;当一个用户端不再需要网络服务时,可以向DHCP服务器释放该用户端所具有的动态IP地址,此时,用户端会向DHCP服务器发送一个DHCP释放报文,以将该IP释放给DHCP服务器。在该过程中,接入交换机可以使能DHCPSnooping,以截获该DHCP释放报文,并解析该DHCP释放报文以获取该DHCP释放报文中所携带的IP地址,即具有该IP地址的用户端想要释放IP地址。408,在预存的组播转发表中查找具有IP地址的转发表项;当一个用户端想要释放IP地址时,则表明该用户端不再想获取网络服务,因此为了避免再次向该用户端发送组播数据,此时接入交换机会删除具有该IP地址的转发表项。举例来讲,可以参见表3所示,当该IP地址为IP1时,则具有该IP1的转发表项包括第一行对应的转发表项和第三行对应的转发表项。409,检测转发表项中是否还存在其他IP地址,若检测结果为转发表项还存在其他IP地址,则执行410,若检测结果为转发表项不存在其他IP地址,则执行411;由上可知,有些转发表项中可能不仅存在一个IP地址,因此为了保证其他IP地址所对应的用户端仍旧可以正常接收到组播数据报文,在删除该IP地址所对应的转发表项之前,还需要检测转发表项中是否还存在其他IP地址。410,若检测结果为转发表项还存在其他IP地址,则删除转发表项中的DHCP释放报文携带的IP地址;当检测结果为转发表项还存在其他IP地址,则表明目前还有其他的用户端需要继续根据该转发表项中的组播组地址以及端口接收组播数据报文,此时仅需要删除步骤407中确定的DHCP释放报文中所携带的IP地址。请参见表3所示,当DHCP释放报文中的IP地址为IP1时,则获取到的具有IP1的转发表项为第一行转发表项和第三行转发表项,由于检测到第一行转发表项还具有其他的IP地址IP4,因此在第一行转发表项中仅需要删除该IP1即可。411,若检测结果为转发表项不存在其他IP地址,则在预存的组播转发表中删除具有IP地址的转发表项;当检测结果为转发表项不存在其他IP地址,则表明目前仅有该DHCP释放报文所携带的IP地址所对应的用户端需要继续根据该转发表项中的组播组地址以及端口接收组播数据报文,因此为了保证该用户端不再接收到该组播组地址发送的组播数据报文,此时则需要删除步骤407中确定的DHCP释放报文中所携带的IP地址。请参见表3所示,当DHCP释放报文中的IP地址为IP1时,则获取到的具有IP1的转发表项为第一行转发表项和第三行转发表项,由于检测到第三行转发表项不具有其他的IP地址,因此直接删除第三行转发表项。举例来讲,对表3中具有的IP地址IP1进行删除时,删除后的转发数据表可以具体可以参见图4:表4412,根据删除转发表项之后的组播转发表转发接收到的组播数据报文。接入交换机根据删除转发表项之后的组播转发表转发接收到的组播数据报文,可以包括:第一,当接收到组播数据报文时,获取组播数据报文中携带的组播组地址;第二,查询删除转发表项之后的组播转发表中具有组播组地址的转发表项;查询经过步骤410和411之后保存的组播转发表中具有该组播组地址的转发表项,举例来讲,仍参见表4,比如该组播组地址为GROUP2,则获取具有该GROUP2的转发表项,该转发表项信息的端口PORT2。第三,通过转发表项中的端口发送组播数据报文。仍参见表4,当获取的转发表项为第二行所对应的转发表项时,可以根据该端口PORT2将组播组地址为GROUP2的组播数据报文发送与该端口PORT2对应的用户端。综上所述,本发明实施例中提供的组播数据报文转发方法,通过在转发表项中增加一个与端口对应的IP地址,当感知某一个用户端释放IP地址时,在预存的组播转发表中删除具有该IP地址的转发表项,根据删除该转发表项之后的组播转发表转发接收到的组播数据报文;解决了现有技术中当用户端释放IP地址之后,接入交换机仍根据转发表项向该用户端持续发送组播数据报文而造成的带宽浪费的问题;当获取到与该IP地址相关的组播数据报文时,由于与该IP地址相关的转发表项已经删除,因此不会再按照转发表项中的端口将组播数据报文下发给该用户端,达到了可以快速断开向该用户端发送的组播数据流,节省了带宽的效果。需要补充说明的是,接入交换机在检测到用户端发送的用于请求获取IP地址的DHCP获取报文时,会为该用户端建立一个绑定表项,该绑定表项中可以包含该用户端的MAC地址、IP地址、接收该DHCP获取报文时的端口等,并将该绑定表项放入绑定表中;当接入交换机在检测到用户端发送的用于请求释放IP地址的DHCP释放报文时,则接入交换机会从绑定表中删除具有该IP地址的绑定表项。同时,根据上述的步骤,接入交换机还会删除转发表项中具有该IP地址的转发表项或删除转发表项中具有的IP地址。请参见图5所示,其示出了本发明一个实施例中提供的组播数据报文转发装置的结构示意图,本实施例主要是以该组播数据报文转发装置应用于图1中的接入交换机108中进行举例说明的。该组播数据报文转发装置可以包括但不限于:第一获取模块502、第一删除模块504和转发模块506。第一获取模块502,可以用于当存在用于指示用户端请求释放用户端的网络互连协议IP地址的动态主机配置协议DHCP释放报文时,获取DHCP释放报文中携带的IP地址;第一删除模块504,可以用于在预存的组播转发表中删除具有IP地址的转发表项;转发模块506,可以用于根据删除转发表项之后的组播转发表转发接收到的组播数据报文。综上所述,本发明实施例中提供的组播数据报文转发装置,通过在转发表项中增加一个与端口对应的IP地址,当感知某一个用户端释放IP地址时,在预存的组播转发表中删除具有该IP地址的转发表项,根据删除该转发表项之后的组播转发表转发接收到的组播数据报文;解决了现有技术中当用户端释放IP地址之后,接入交换机仍根据转发表项向该用户端持续发送组播数据报文而造成的带宽浪费的问题;当获取到与该IP地址相关的组播数据报文时,由于与该IP地址相关的转发表项已经删除,因此不会再按照转发表项中的端口将组播数据报文下发给该用户端,达到了可以快速断开向该用户端发送的组播数据流,节省了带宽的效果。请参见图6所示,其示出了本发明一个实施例中提供的组播数据报文转发装置的结构示意图,本实施例主要是以该组播数据报文转发装置应用于图1中的接入交换机108中进行举例说明的。该组播数据报文转发装置可以包括但不限于:第一获取模块601、第一删除模块602和转发模块603。第一获取模块601,可以用于当存在用于指示用户端请求释放用户端的网络互连协议IP地址的动态主机配置协议DHCP释放报文时,获取DHCP释放报文中携带的IP地址;第一删除模块602,可以用于在预存的组播转发表中删除具有IP地址的转发表项;转发模块603,可以用于根据删除转发表项之后的组播转发表转发接收到的组播数据报文。在本实施例中的第一种可能的实现方式中,该组播数据报文转发装置还可以包括接收模块604、第二获取模块605、确定模块606和放入模块607。接收模块604,可以用于接收用于指示用户端请求加入组播组的组管理协议IGMP加入报文;第二获取模块605,可以用于获取IGMP加入报文携带的IP地址、组播组地址以及接收IGMP加入报文的端口;确定模块606,可以用于将IP地址、组播组地址以及端口确定为一个转发表项;放入模块607,可以用于将转发表项放入组播转发表中,将组播转发表确定为预存的组播转发表。在本实施例中的第二种可能的实现方式中,该组播数据报文转发装置还可以包括第一检测模块608和添加模块609。第一检测模块608,可以用于检测组播组地址以及端口是否已经同时存在于组播转发表的一个已有的转发表项中;添加模块609,可以用于在第一检测模块608的检测结果为组播组地址以及端口已经同时存在于组播转发表的一个已有的转发表项中时,将IP添加至转发表项中;确定模块606,还可以用于在第一检测模块608的检测结果为组播组地址以及端口还未同时存在于组播转发表的任何一个已有的转发表项中时,将IP地址、组播组地址以及端口确定为一个转发表项。在本实施例中的第三种可能的实现方式中,该组播数据报文转发装置还可以包括查找模块610、第二检测模块611、第二删除模块612。查找模块610,可以用于在预存的组播转发表中查找具有IP地址的转发表项;第二检测模块611,可以用于检测转发表项中是否还存在其他IP地址;第二删除模块612,可以用于在第二检测模块611的检测结果为转发表项还存在其他IP地址时,删除转发表项中的DHCP释放报文携带的IP地址;第一删除模块602,还可以用于在第二检测模块611的检测结果为转发表项不存在其他IP地址时,在预存的组播转发表中删除具有IP地址的转发表项。在本实施例中的第四种可能的实现方式中,转发模块603,包括:获取单元603a、查询单元603b和发送单元603c。获取单元603a,可以用于当接收到组播数据报文时,获取组播数据报文中携带的组播组地址;查询单元603b,可以用于查询删除转发表项之后的组播转发表中具有组播组地址的转发表项;发送单元603c,可以用于通过转发表项中的端口发送组播数据报文。综上所述,本发明实施例中提供的组播数据报文转发装置,通过在转发表项中增加一个与端口对应的IP地址,当感知某一个用户端释放IP地址时,在预存的组播转发表中删除具有该IP地址的转发表项,根据删除该转发表项之后的组播转发表转发接收到的组播数据报文;解决了现有技术中当用户端释放IP地址之后,接入交换机仍根据转发表项向该用户端持续发送组播数据报文而造成的带宽浪费的问题;当获取到与该IP地址相关的组播数据报文时,由于与该IP地址相关的转发表项已经删除,因此不会再按照转发表项中的端口将组播数据报文下发给该用户端,达到了可以快速断开向该用户端发送的组播数据流,节省了带宽的效果。需要说明的是:上述实施例提供的组播数据报文转发装置在转发组播数据报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将交换机的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的组播数据报文转发装置与组播数据报文转发方法实施例属于同一构思其具体实现过程详见方法实施例,这里不再赘述。请参见图7所示,其示出了本发明一个实施例中提供的交换机的结构示意图,本实施例主要是以该交换机可以为图1中的接入交换机108进行举例说明的。该交换机可以包括但不限于:处理器702、发送机704和存储器706,处理器702分别与发送机704和存储器706耦合,存储器706中包含有至少一个计算机应用程序,处理器702可以根据这些计算机应用程序进行相关的操作。处理器702,可以用于当存在用于指示用户端请求释放用户端的网络互连协议IP地址的动态主机配置协议DHCP释放报文时,获取DHCP释放报文中携带的IP地址;处理器702,还可以用于在预存的组播转发表中删除具有IP地址的转发表项;发送机704,可以用于根据处理器702删除转发表项之后的组播转发表转发接收到的组播数据报文。综上所述,本发明实施例中提供的交换机,通过在转发表项中增加一个与端口对应的IP地址,当感知某一个用户端释放IP地址时,在预存的组播转发表中删除具有该IP地址的转发表项,根据删除该转发表项之后的组播转发表转发接收到的组播数据报文;解决了现有技术中当用户端释放IP地址之后,接入交换机仍根据转发表项向该用户端持续发送组播数据报文而造成的带宽浪费的问题;当获取到与该IP地址相关的组播数据报文时,由于与该IP地址相关的转发表项已经删除,因此不会再按照转发表项中的端口将组播数据报文下发给该用户端,达到了可以快速断开向该用户端发送的组播数据流,节省了带宽的效果。请参见图8所示,其示出了本发明另一个实施例中提供的交换机结构示意图,本实施例主要是以该交换机可以为图1中的接入交换机108进行举例说明的。该交换机可以包括但不限于:处理器802、发送机804和存储器806,处理器802分别与发送机804和存储器806耦合,存储器806中存储有至少一种计算机软件,处理器802可以根据这些计算机软件进行相关的操作。处理器802,可以用于当存在用于指示用户端请求释放用户端的网络互连协议IP地址的动态主机配置协议DHCP释放报文时,获取DHCP释放报文中携带的IP地址;处理器802,还可以用于在预存的组播转发表中删除具有IP地址的转发表项;发送机804,可以用于根据处理器802删除转发表项之后的组播转发表转发接收到的组播数据报文。在本实施例中的第一种可能的实现方式中,该交换机还可以包括接收机808,接收机808和处理器802耦合;接收机808,可以用于接收用于指示用户端请求加入组播组的组管理协议IGMP加入报文;处理器802,还可以用于获取接收机808接收到的IGMP加入报文携带的IP地址、组播组地址以及接收IGMP加入报文的端口;处理器802,还可以用于将IP地址、组播组地址以及端口确定为一个转发表项;处理器802,还可以用于将转发表项放入组播转发表中,将组播转发表确定为预存的组播转发表。在本实施例中的第二种可能的实现方式中,处理器802,还可以用于检测组播组地址以及端口是否已经同时存在于组播转发表的一个已有的转发表项中;处理器802,还可以用于在检测结果为组播组地址以及端口已经同时存在于组播转发表的一个已有的转发表项中时,将IP添加至转发表项中;处理器802,还可以用于在检测结果为组播组地址以及端口还未同时存在于组播转发表的任何一个已有的转发表项中时,将IP地址、组播组地址以及端口确定为一个转发表项。在本实施例中的第三种可能的实现方式中,处理器802,还可以用于在预存的组播转发表中查找具有IP地址的转发表项;处理器802,还可以用于检测转发表项中是否还存在其他IP地址;处理器802,还可以用于在的检测结果为转发表项还存在其他IP地址时,删除转发表项中的DHCP释放报文携带的IP地址;处理器802,还可以用于在检测结果为转发表项不存在其他IP地址时,在预存的组播转发表中删除具有IP地址的转发表项。在本实施例中的第四种可能的实现方式中,处理器802,还可以用于当接收到组播数据报文时,获取组播数据报文中携带的组播组地址;处理器802,还可以用于查询删除转发表项之后的组播转发表中具有组播组地址的转发表项;发送机804,还可以用于通过处理器802查询的转发表项中的端口发送组播数据报文。综上所述,本发明实施例中提供的交换机,通过在转发表项中增加一个与端口对应的IP地址,当感知某一个用户端释放IP地址时,在预存的组播转发表中删除具有该IP地址的转发表项,根据删除该转发表项之后的组播转发表转发接收到的组播数据报文;解决了现有技术中当用户端释放IP地址之后,接入交换机仍根据转发表项向该用户端持续发送组播数据报文而造成的带宽浪费的问题;当获取到与该IP地址相关的组播数据报文时,由于与该IP地址相关的转发表项已经删除,因此不会再按照转发表项中的端口将组播数据报文下发给该用户端,达到了可以快速断开向该用户端发送的组播数据流,节省了带宽的效果。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1