CN100362812C - 一种用户组播权限的管理方法 - Google Patents
一种用户组播权限的管理方法 Download PDFInfo
- Publication number
- CN100362812C CN100362812C CNB2005101169802A CN200510116980A CN100362812C CN 100362812 C CN100362812 C CN 100362812C CN B2005101169802 A CNB2005101169802 A CN B2005101169802A CN 200510116980 A CN200510116980 A CN 200510116980A CN 100362812 C CN100362812 C CN 100362812C
- Authority
- CN
- China
- Prior art keywords
- multicast
- authority
- multicast authority
- user
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种用户组播权限的管理方法,包括:将不同用户所具有的相同的组播权限组成至少一个组播权限组;组播权限管理设备保存每个用户所具有的组播权限和/或组播权限组;用户发送请求加入一组播组的请求消息到所述组播权限管理设备,所述请求消息携带有该用户申请加入的组播组对应的组播地址;组播权限管理设备在自身保存的该用户所具有的组播权限和/或组播权限组中查找与所述组播地址对应的组播权限,并根据查找结果允许或禁止该用户加入所述组播组,可以节省组播权限管理设备的存储空间,降低组播权限管理设备进行组播权限管理和维护的工作量。
Description
技术领域
本发明涉及到数据通信技术领域,特别涉及到对用户组播权限进行管理的方法。
背景技术
组播是一种数据包传输方式。通过组播方式,一个主机可以将相同的数据包同时发送到同一组播组内的多个主机上。在实际的应用中,组播的源主机将224.0.0.0-239.255.255.255的D类因特网协议(IP)地址作为组播地址发出组播数据包,在网络中如果有其他主机对这个组播数据包有兴趣,可以申请加入该组播数据包目的地址对应的组播组,从而接收该组播组的组播数据包,而其他没有加入该组播组的主机无法获得该组播组的组播数据包。
实现组播的关键技术之一是对用户组播权限的管理。目前,用户组播权限的管理可以通过因特网组管理协议(IGMP,Internet Group ManageProtocol)实现,其主要方法就是在用户通过IGMP请求加入某个组播组时,由进行用户组播权限管理的组播权限管理设备根据该用户的组播权限选择接受或者拒绝该用户请求加入组播组的IGMP请求,即允许或拒绝该用户加入所述的组播组,从而实现对用户组播权限的管理。
所述的组播权限管理设备可以是具有IGMP监听功能的局域网交换机(LAN Switch)、数字用户线接入复用器(DSLAM,Digital Subscriber LineAccess Multiplexer)、处理IGMP的路由器或接入服务器等等。
在现有的组播权限管理设备上通常存储有每个用户的组播权限表,如图1A和图1B所示。其中,用户表项为标识不同用户组播权限表的标识,所述用户表项可以是用户帐户、该用户表项所对应用户主机的IP地址、媒体接入控制层(MAC)地址、虚拟局域网(VLAN)号、对于ATM方式还可以是永久虚电路(PVC)的虚通道号(VPI)、虚电路号(VCI)和/或端口号等等。在每个用户的组播权限表中,每一条记录称为一个组播权限,每个组播权限由组播地址、掩码及权限三部分组成。其中,组播地址表示组播组的地址,该地址可以是IPv4的组播地址也可以是IPv6的组播地址;掩码用于表示组播地址的范围;权限为用户对应该组播地址的组播权限,表示该用户是否可以加入该组播地址对应的组播组,其值包括允许或禁止。
从图1A可以看出,允许用户张三加入的组播组的组播地址为230.1.1.2、224.5.6.0以及ff::1,禁止用户张三加入的组播组的组播地址为0.0.0.0。从图1B可以看出,允许用户李四加入的组播组的组播地址为0.0.0.0,禁止用户李四加入的组播组的组播地址为230.1.1.2及224.5.6.0。
在某个用户通过IGMP请求加入某个组播组时,组播权限管理设备首先通过该用户的用户表项,找到该用户的组播权限表,再查找该用户组播权限表中的各项组播权限记录,判断该用户是否可以加入该组播组。
上述对用户进行组播权限管理的过程可以通过以下两种方法来实现:
第一种,优先匹配算法,如图2所示,主要包括以下步骤:
步骤201:从该用户发送的IGMP请求中获取该用户申请加入的组播地址;
步骤202:根据该用户的用户表项查找到该用户的组播权限表;
步骤203:获取步骤202所述组播权限表中的第一条记录;
步骤204:判断该条记录中的组播地址是否与步骤201所述的组播地址匹配,如果不是,执行步骤205;如果是,执行步骤207;
步骤205:判断当前记录是否为所述组播权限表中的最后一条记录,如果是则执行步骤209,否则,执行步骤206;
步骤206:获取所述组播权限表中的下一条记录,然后返回步骤204;
步骤207:判断该记录中组播地址对应的组播权限,如果是“允许”,则执行步骤208;否则执行步骤209;
步骤208:接受该用户的IGMP请求,允许该用户加入该组播组,该用户获得该组播组的组播权限,然后结束;
步骤209:拒绝该用户的IGMP请求,不允许该用户加入该组播组,该用户没有该组播组的组播权限,然后结束。
在上述方法中,组播权限管理设备将用户通过IGMP请求申请加入的组播地址和该用户的组播权限表中各条记录的组播地址进行匹配,并且在匹配到第一条记录后,根据该条记录的组播权限,允许或者拒绝该用户加入所述的组播组,实现对用户组播权限的管理。
第二种,完整匹配算法,如图3所示,主要包括以下步骤:
步骤301:从该用户发送的IGMP请求中获取该用户申请加入的组播地址;
步骤302:根据该用户的用户表项查找到该用户的组播权限表;
步骤303:将该用户对应步骤301所述组播地址的组播权限初始化为“禁止”,并获取步骤302所述组播权限表中的第一条记录;
步骤304:判断该条记录中的组播地址是否与步骤301所述的组播地址匹配,如果不是,执行步骤305;如果是,执行步骤307;
步骤305:判断当前记录是否为所述组播权限表中的最后一条记录,如果是,则执行步骤308,否则,执行步骤306;
步骤306:获取所述组播权限表中的下一条组播权限记录,然后返回步骤304;
步骤307:该记录中的组播权限与该用户当前的组播权限进行比较,记录其中级别较高的组播权限作为该用户当前的组播权限,然后执行步骤305;
所述的组播权限包括“允许”和“禁止”,并且“允许”的组播权限级别要高于“禁止”,因此,若该记录中的组播权限为“允许”,而当前该用户的组播权限为“禁止”,则在本步骤中,会将该用户当前的组播权限更新为级别较高的“允许”;若该记录中的组播权限为“禁止”,而当前该用户的组播权限为“允许”,则在本步骤中,该用户当前的组播权限将保持“允许”不变;
步骤308:根据所记录的该用户的最高组播权限接受或拒绝该用户的IGMP请求,允许或拒绝该用户加入该组播组,然后结束。
在该步骤中,若该用户的最高组播权限为“允许”,则接受该用户的IGMP请求,允许该用户加入该组播组,设置该用户获得该组播组的组播权限;若该用户的最高组播权限为“禁止”,则拒绝该用户的IGMP请求,不允许该用户加入该组播组,设置该用户没有该组播组的组播权限。
在上述方法中,组播权限管理设备遍历该用户的组播权限列表,获取该用户级别最高的组播权限后,按照该用户级别最高的组播权限确定该用户的组播权限,然后根据组播权限选择接受、拒绝该用户的IGMP加入请求,实现对用户组播权限的管理。
从上述对用户的组播权限进行管理的方法可以看出,现有方法需要在组播权限管理设备为每个用户配置详细的组播权限表,即使在多个用户的组播权限相同或者部分相同时,组播权限管理设备还是需要进行重复配置,这不仅大大浪费了组播权限管理设备的存储空间,同时也大大增加了组播权限管理设备进行组播权限管理和维护的工作量。
发明内容
为了解决上述技术问题,本发明提供了一种用户组播权限管理的方法,可以减少组播权限管理设备的存储空间,同时大大降低组播权限管理设备进行组播权限管理和维护的工作量。
本发明所述的用户组播权限的管理方法,确定每个用户所具有的组播权限,并根据每个用户的组播权限确定允许或禁止该用户加入的组播地址,包括:
A、将不同用户所具有的相同的组播权限组成至少一个组播权限组;
B、组播权限管理设备保存每个用户所具有的组播权限和/或组播权限组;
C、用户发送请求加入一组播组的请求消息到所述组播权限管理设备,所述请求消息携带有该用户申请加入的组播组对应的组播地址;
D、组播权限管理设备在自身保存的该用户所具有的组播权限和/或组播权限组中查找与所述组播地址对应的组播权限,并根据查找结果允许或禁止该用户加入所述组播组。
步骤B所述保存为:组播权限管理设备为每个用户建立一张由该用户的用户表项标识的、保存该用户所具有的组播权限和/或组播权限组的组播权限表;
在步骤C之后、步骤D之前进一步包括:组播权限管理设备根据所述用户的用户表项找到自身保存的该用户对应的组播权限表。
本发明所述组播权限表至少采用线性表结构、树结构、链表结构或哈希结构来存储所述组播权限和/或组播权限组。
本发明所述方法在步骤A之后、步骤B之前进一步包括:组播权限管理设备将所述至少一个组播权限组记录在自身存储的组播权限组表中,每个组播权限组通过组播权限组标识来标识自身。
本发明所述组播权限组表至少采用线性表结构、树结构、链表结构或哈希结构来存储每个组播权限组所包含的组播权限。
步骤D所述查找与所述组播地址对应的组播权限,并根据查找结果允许或禁止该用户加入所述组播组包括:
D11、获取所述组播权限表中的第一条组播权限记录;
D12、判断该组播权限记录是否为组播权限组记录,如果是,则执行步骤D14;否则,判断该组播权限记录中的组播地址是否与所述组播地址匹配,如果是,执行步骤D15;如果不是,执行步骤D13;
D13、判断当前的组播权限记录是否为所述组播权限表中的最后一条记录,如果是,则禁止该用户加入该组播组,然后结束;否则,获取所述组播权限表中的下一条组播权限记录,然后返回步骤D12;
D14、根据该条组播权限组记录的组播权限组标识,组播权限管理设备在自身保存的组播权限组表中查找与所述组播地址相匹配的组播权限,如果查找到匹配的组播权限,则执行步骤D15,否则,执行步骤D13;
D15、判断该组播权限记录中组播地址对应的组播权限,如果是允许,则允许该用户加入该组播组,然后结束;否则,禁止该用户加入该组播组,然后结束。
步骤D14所述根据该条组播权限组记录的组播权限组标识,组播权限管理设备在自身保存的组播权限组表中查找与所述组播地址相匹配的组播权限包括:
D141、根据该组播权限组记录的组播权限组标识,在组播权限组表中查找到对应的组播权限组,并获取该组播权限组的第一条组播权限记录;
D142、判断该组播权限记录的组播地址是否与所述的组播地址匹配,如果是,则找到匹配的组播权限,然后结束;否则,执行步骤D143;
D143、判断当前的组播权限记录是否为所述组播权限组的最后一条记录,如果是,则没有找到匹配的组播权限,并结束,否则,获取该组播权限组的下一条组播权限记录,然后返回步骤D142。
步骤D所述查找与所述组播地址对应的组播权限,并根据查找结果允许或禁止该用户加入所述组播组包括:
D21、将所述用户对应所述组播地址的组播权限初始化为禁止,并获取所述组播权限表中的第一条组播权限记录;
D22、判断该组播权限记录是否为组播权限组记录,如果是,则组播权限管理设备遍历自身保存的组播权限组表中的所有组播权限,记录与所述组播地址相匹配的组播权限中级别最高的组播权限,然后执行步骤D24;否则,执行步骤D23;
D23、判断该组播权限记录中的组播地址是否与所述的组播地址匹配,如果不是,执行步骤D24;如果是,执行步骤D25;
D24、判断当前记录是否为所述组播权限表中的最后一条记录,如果是,则根据所记录的用户的最高组播权限允许或拒绝该用户加入该组播组,然后结束;否则,获取所述组播权限表中的下一条记录,然后返回步骤D22;
D25、将该记录中的组播权限与该用户当前的组播权限进行比较,记录其中级别较高的组播权限作为该用户当前的组播权限,然后执行步骤D24。
步骤D22所述组播权限管理设备遍历自身保存的组播权限组中的所有组播权限,记录与所述组播地址相匹配的组播权限中级别最高的组播权限包括:
D221、根据该组播权限组记录的组播权限组标识,在组播权限组表中查找到对应的组播权限组,获取该组播权限组的第一条组播权限记录;
D222、判断该组播权限记录的组播地址是否与所述的组播地址匹配,如果是,则执行步骤D224;否则,执行步骤D223;
D223、判断当前组播权限记录是否为所述组播权限组的最后一条记录,如果是,则结束;否则,获取该组播权限组的下一条组播权限记录,然后返回步骤D222;
D224、将该组播权限记录中的组播权限与该用户当前的组播权限进行比较,记录其中级别较高的组播权限作为该用户当前的组播权限,然后执行步骤D223。
本发明所述判断该组播权限记录是否为组播权限组记录为:判断该条组播权限记录是否具有特殊的组播地址、或特殊的掩码、或特殊的权限数值、或特殊标识组播权限组字段,如果有,则是组播权限组记录;否则,不是组播权限组记录。
本发明所述获取下一条组播权限记录对应于所述组播权限表或组播权限组表的存储结构,通过顺序查找、深度遍历或广度遍历查找、或哈希查找冲突检测实现。
由此可以看出,本发明所述的组播权限管理方法设置记录多个组播权限的组播权限组,每个用户可以使用组播权限组及单独的组播权限来表示自身的组播权限,这样不仅大大的节省了组播权限管理设备的存储空间,还能够降低播权限管理设备进行组播权限管理和维护的工作量。
附图说明
图1A、图1B为组播权限管理设备存储的用户的组播权限表示意图;
图2为通过优先匹配算法进行用户组播权限管理的流程图;
图3为通过完整匹配算法进行用户组播权限管理的流程图;
图4A、图4B为本发明所述的组播权限管理设备存储的用户的组播权限表示意图;
图5为本发明优选实施例所述的通过优先匹配算法进行用户组播权限管理的流程图;
图6为图5所述实施例中在组播权限组表中查找与所述组播地址相匹配的组播权限的流程图;
图7为本发明另一个优选实施例所述的通过完整匹配算法进行用户组播权限管理的流程图;
图8为图7所述实施例中,记录与所述组播地址相匹配的组播权限中级别最高的组播权限的流程图。
具体实施方式
为了解决现有技术中存在的问题,本发明提出了一种用户组播权限管理的方法,其核心思想是引入组播权限组的概念,将相同的组播权限配置为一个权限组,这样,在组播权限管理设备对每个用户进行组播权限配置时,可以直接为用户配置组播权限组也可以为用户配置单独的组播权限。这样一来,当多个用户的组播权限相同或者部分相同时,只需要为其中的每个用户配置一个或者多个权限组就可以了,而不需要分别为每个用户配置单独的组播权限,从而可以大大减少存储空间,同时大大减少组播权限管理维护的工作量。
本发明所配置的组播权限组将存储在所述的组播权限管理设备的组播权限组表中,所述组播权限组表中的每个组播权限组记录了一个以上的组播权限信息,每条组播权限信息包括:组播地址以及对应该组播地址的掩码及组播权限。所述组播地址可以是IPv4地址,也可以是IPv6地址。
表1显示了本发明优选实施例所述的在组播权限管理设备中存储的组播权限组表,该表主要包括:各个组播权限组的组播权限组标识、该组播权限组包含的组播地址、每个组播地址对应的掩码及组播权限。
权限组标识 | 组播地址 | 掩码 | 权限(允许/禁止) |
1 | 230.1.1.2 | 32 | 允许 |
224.5.6.0 | 32 | 允许 | |
ff::1 | 24 | 允许 | |
0.0.0.0 | 0 | 禁止 | |
2 | 230.1.1.2 | 32 | 禁止 |
225.0.0.1 | 25 | 允许 | |
0.0.0.0 | 0 | 允许 |
表1
特别地,在上述组播权限表中可以删除权限这一列,而固定配置所有配置项的权限为“允许”或者“禁止”,对于未配置组播地址的权限则缺省为“禁止”或者“允许”。同时,还可以再删除掩码这一列,而固定配置所有组播地址都是单个组播源地址,而不是通过掩码表示的网段地址。也就是说,所述组播权限组表至少包含组播地址一项。此时,所述组播权限组表仍然可以清楚示出对应每个组播地址的组播权限。
在配置了上述组播权限组之后,具有相同组播权限的用户就可以使用相同的组播权限组标识来表示自身的组播权限了。
需要说明的是,表1给出的仅是组播权限组的具体示例,所述组播权限组表具体可以包含多少个组播权限组,以及每个组播权限组将包含哪些组播权限将在实际应用中根据实际情况确定。
除了组播权限组表之外,组播权限管理设备中还将保存每个用户的组播权限表。图4A、图4B为本发明所述组播权限管理设备存储的用户的组播权限表示意图。如图4A和图4B所示,在用户的权限表中可以包含单独的组播权限,也可以包含组播权限组,例如,用户张三的组播权限表中包含组播权限组1,还包含组播地址为227.1.1.2的单独的组播权限;用户李四的组播权限表中包含组播权限组2,还包含组播地址为255.0.0.1的单独的组播权限。
另外,从图4A和图4B可以看出,每个用户组播权限表的格式可以和现有图1A和图1B所示的组播权限表一致,但对于每个用户组播权限表中的组播权限组需要标出该组播权限组的标识,并且还需要通过特殊的组播地址、特殊的掩码或特殊的权限数值、特殊字段与单独的组播权限区分开。比如,可以将组播权限组的组播地址前缀设置为网络中不会出现的特殊地址前缀,或者将组播权限组的掩码设置为网络中不会出现的掩码,又或者将组播权限组的权限数值设置为特殊的数值等等方式来表示该组播权限为一个组播权限组,甚至可以添加一个新的特殊字段标识某项为组播权限还是组播权限组,从而与其他单独的组播权限进行区别。
特别地,为了进一步减少存储空间,在上述组播权限表中可以删除权限这一列,而固定配置所有配置项的权限为“允许”或者“禁止”,对于未配置组播地址的权限则缺省为“禁止”或者“允许”。同时,还可以再删除掩码这一列,而固定配置所有组播地址都是单个组播源地址,而不是通过掩码表示的网段地址。也就是说,所述组播权限表至少包含组播地址或组播组标识一项。
在实际的应用中,组播权限管理设备可以采用多种存储结构来存储上述用户的组播权限表或组播权限组表,例如,使用线性表结构、树结构、链表结构、哈希(Hash)存储结构或其他各种数据存储结构来存储。
从上述在组播权限管理设备中存储的组播权限表可以看出,本发明所述的方法通过设置组播权限组,使得每个用户可以直接使用组播权限组来表示自身的组播权限,从而大大降低了存储用户组播权限所需的存储空间,同时也可以降低组播权限管理设备进行组播权限管理和维护的工作量。
由于在所述组播权限管理设备中存储的每个用户的组播权限表发生了变化,组播权限管理设备的组播权限管理的方法也将相应地发生变化。
本发明的一个优选实施例给出了一种通过优先匹配算法进行用户组播权限管理的方法,如图5所示,该方法主要包括以下步骤:
步骤501:从该用户发送的IGMP请求中获取该用户申请加入的组播地址;
步骤502:根据该用户的用户表项查找到该用户的组播权限表;
所述用户表项可以是用户帐户、该用户主机的IP地址、MAC地址、VLAN号、ATM的VPI、VCI或端口号等等;
步骤503:获取步骤502所述组播权限表中的第一条组播权限记录;
步骤504:判断该组播权限记录是否为组播权限组记录,如果是,则执行步骤508;否则,执行步骤505;
该步骤所述判断该组播权限记录是否为组播权限记录可以通过该条组播权限记录所具有的特殊的组播地址、特殊的掩码或特殊的权限数值、特殊字段来进行判断;
步骤505:判断该组播权限记录中的组播地址是否与步骤501所述的组播地址匹配,如果不是,执行步骤506;如果是,执行步骤509;
步骤506:判断当前的组播权限记录是否为所述组播权限表中的最后一条记录,如果是,则执行步骤511,否则,执行步骤507;
步骤507:获取所述组播权限表中的下一条组播权限记录,然后返回步骤504;
步骤508:根据该条组播权限组记录的组播权限组标识,在预先保存的组播权限组表中查找与步骤501所述组播地址相匹配的组播权限,如果查找到匹配的组播权限,则执行步骤509,否则,执行步骤506;
步骤509:判断该组播权限记录中组播地址对应的组播权限,如果是“允许”,则执行步骤510;否则,执行步骤511;
步骤510:接受该用户的IGMP请求,允许该用户加入该组播组,该用户获得该组播组的组播权限,然后结束;
步骤511:拒绝该用户的IGMP请求,不允许该用户加入该组播组,该用户没有该组播组的组播权限,然后结束。
上述步骤508所述的在组播权限组表中查找与步骤501所述组播地址相匹配的组播权限的方法如图6所示,具体包括以下步骤:
步骤5081:根据该组播权限组记录的组播权限组标识,在组播权限组表中查找到对应的组播权限组;
步骤5082:获取该组播权限组的第一条组播权限记录;
步骤5083:判断该组播权限记录的组播地址是否与步骤501所述的组播地址匹配,如果是,则找到匹配的组播权限,结束组播权限组的匹配,返回步骤508;否则,执行步骤5084;
步骤5084:判断当前的组播权限记录是否为所述组播权限组的最后一条记录,如果是,则没有找到匹配的组播权限,结束组播权限组的匹配,返回步骤508,否则,执行步骤5085;
步骤5085:获取该组播权限组的下一条组播权限记录,然后返回步骤5083。
上述步骤507或步骤5085所述的获取下一条组播权限记录可以根据用户组播权限表或组播权限组表的存储结构采用多种方法来实现,例如,若用户的组播权限表或组播权限组表是线性表结构的,则组播权限管理设备可以通过顺序查找的方法获得下一条组播权限记录;若用户的组播权限表或组播权限组表是树结构的,则组播权限管理设备可以通过深度遍历或广度遍历查找的方法获得下一条组播权限记录;而对应于Hash结构的存储方式,组播权限管理设备则可以使用Hash查找冲突检测等方法来获得下一条组播权限记录。
本发明的另一个优选实施例给出了一种通过完整匹配算法进行用户组播权限管理的方法,如图7所示,该方法主要包括以下步骤:
步骤701:从该用户发送的IGMP请求中获取该用户申请加入的组播地址;
步骤702:根据该用户的用户表项查找到该用户的组播权限表;
步骤703:将用户对应步骤701所述组播地址的组播权限初始化为“禁止”,并获取步骤702所述组播权限表中的第一条组播权限记录;
步骤704:判断该组播权限记录是否为组播权限组记录,如果是,则执行步骤709;否则,执行步骤705;
该步骤所述判断该组播权限记录是否为组播权限记录的方法与步骤504所述的方法相同,即可以通过该条组播权限记录所具有的特殊的组播地址、特殊的掩码或特殊的权限数值、特殊字段来进行判断;
步骤705:判断该组播权限记录中的组播地址是否与步骤701所述的组播地址匹配,如果不是,执行步骤706;如果是,执行步骤708;
步骤706:判断当前记录是否为所述组播权限表中的最后一条记录,如果是,则执行步骤710,否则,执行步骤707;
步骤707:获取所述组播权限表中的下一条记录,然后返回步骤704;
步骤708:将该记录中的组播权限与该用户当前的组播权限进行比较,记录其中级别较高的组播权限(“允许”高于“禁止”)作为该用户当前的组播权限,然后执行步骤706;
步骤709:遍历预先配置的组播权限组中的所有组播权限,记录与步骤701所述组播地址相匹配的组播权限中级别最高的组播权限,然后执行步骤706;
步骤710:根据所记录的用户的最高组播权限接受或拒绝该用户的IGMP请求,允许或拒绝该用户加入该组播组,然后结束。
在该步骤中,若该用户的最高组播权限为允许,则接受该用户的IGMP请求,允许该用户加入该组播组,设置该用户获得该组播组的组播权限;若该用户的最高组播权限为拒绝,则拒绝该用户的IGMP请求,不允许该用户加入该组播组,设置该用户没有该组播组的组播权限。
上述步骤709具体包括以下步骤,如图8所示:
步骤7091:根据该组播权限组记录的组播权限组标识,在组播权限组表中查找到对应的组播权限组;
步骤7092:获取该组播权限组的第一条组播权限记录;
步骤7093:判断该组播权限记录的组播地址是否与步骤701所述的组播地址匹配,如果是,则执行步骤7096;否则,执行步骤7094;
步骤7094:判断当前组播权限记录是否为所述组播权限组的最后一条记录,如果是,则返回,否则,执行步骤7095;
步骤7095:获取该组播权限组的下一条组播权限记录,然后返回步骤7093;
步骤7096:将该组播权限记录中的组播权限与该用户当前的组播权限进行比较,记录其中级别较高的组播权限作为该用户当前的组播权限,然后执行步骤7094。
同样,在上述步骤707或步骤7095中,对应用户组播权限表和组播权限组表的存储方式,组播权限管理设备可以通过顺序查找、深度遍历或广度遍历、Hash查找冲突检测等方法来获得下一条组播权限记录。
如上所述,由于在所述组播权限表及组播权限组表中可以省略权限这一项,而固定配置所有组播地址项的权限为“允许”或者“禁止”,对于未配置组播地址的权限则缺省为“禁止”或者“允许”。因此,在这种情况下,在上述步骤501~511以及步骤701~710所述的方法中,当在所述组播权限表或组播权限组表中找到与用户所希望加入的组播组地址匹配的组播地址后,就可以直接判断出该组播地址对应的权限是“允许”还是“禁止”,而不需要进一步查找组播权限表或组播权限组表中的权限一项来获得该组播地址对应的权限了,从而在简化组播权限存储结构的同时也简化了组播权限管理的处理过程。
从上述方法可以看出,在配置了组播权限组之后,组播权限管理设备可以通过上面两个实施例所述的方法实现用户组播权限的管理。由于将不同用户所具有的相同的组播权限用同一个组播组进行标识,从而有效地节省了组播权限管理设备的存储空间,同时还降低了播权限管理设备进行组播权限管理和维护的工作量。
Claims (11)
1.一种用户组播权限的管理方法,确定每个用户所具有的组播权限,并根据每个用户的组播权限确定允许或禁止该用户加入的组播地址,其特征在于,所述方法包括:
A、将不同用户所具有的相同的组播权限组成至少一个组播权限组;
B、组播权限管理设备保存每个用户所具有的组播权限和/或组播权限组;
C、用户发送请求加入一组播组的请求消息到所述组播权限管理设备,所述请求消息携带有该用户申请加入的组播组对应的组播地址;
D、组播权限管理设备在自身保存的该用户所具有的组播权限和/或组播权限组中查找与所述组播地址对应的组播权限,并根据查找结果允许或禁止该用户加入所述组播组。
2.如权利要求1所述的用户组播权限的管理方法,其特征在于,步骤B所述保存为:组播权限管理设备为每个用户建立一张由该用户的用户表项标识的、保存该用户所具有的组播权限和/或组播权限组的组播权限表;
在步骤C之后、步骤D之前进一步包括:组播权限管理设备根据所述用户的用户表项找到自身保存的该用户对应的组播权限表。
3.如权利要求2所述的用户组播权限的管理方法,其特征在于,所述组播权限表至少采用线性表结构、树结构、链表结构或哈希结构来存储所述组播权限和/或组播权限组。
4.如权利要求2所述的用户组播权限的管理方法,其特征在于,所述方法在步骤A之后、步骤B之前进一步包括:组播权限管理设备将所述至少一个组播权限组记录在自身存储的组播权限组表中,每个组播权限组通过组播权限组标识来标识自身。
5.如权利要求4所述的用户组播权限的管理方法,其特征在于,所述组播权限组表至少采用线性表结构、树结构、链表结构或哈希结构来存储每个组播权限组所包含的组播权限。
6.如权利要求4所述的用户组播权限的管理方法,其特征在于,步骤D所述查找与所述组播地址对应的组播权限,并根据查找结果允许或禁止该用户加入所述组播组包括:
D11、获取所述组播权限表中的第一条组播权限记录;
D12、判断该组播权限记录是否为组播权限组记录,如果是,则执行步骤D14;否则,判断该组播权限记录中的组播地址是否与所述组播地址匹配,如果是,执行步骤D15;如果不是,执行步骤D13;
D13、判断当前的组播权限记录是否为所述组播权限表中的最后一条记录,如果是,则禁止该用户加入该组播组,然后结束;否则,获取所述组播权限表中的下一条组播权限记录,然后返回步骤D12;
D14、根据该条组播权限组记录的组播权限组标识,组播权限管理设备在自身保存的组播权限组表中查找与所述组播地址相匹配的组播权限,如果查找到匹配的组播权限,则执行步骤D15,否则,执行步骤D13;
D15、判断该组播权限记录中组播地址对应的组播权限,如果是允许,则允许该用户加入该组播组,然后结束;否则,禁止该用户加入该组播组,然后结束。
7.如权利要求6所述的用户组播权限的管理方法,其特征在于,步骤D14所述根据该条组播权限组记录的组播权限组标识,组播权限管理设备在自身保存的组播权限组表中查找与所述组播地址相匹配的组播权限包括:
D141、根据该组播权限组记录的组播权限组标识,在组播权限组表中查找到对应的组播权限组,并获取该组播权限组的第一条组播权限记录;
D142、判断该组播权限记录的组播地址是否与所述的组播地址匹配,如果是,则找到匹配的组播权限,然后结束;否则,执行步骤D143;
D143、判断当前的组播权限记录是否为所述组播权限组的最后一条记录,如果是,则没有找到匹配的组播权限,并结束,否则,获取该组播权限组的下一条组播权限记录,然后返回步骤D142。
8.如权利要求4所述的用户组播权限的管理方法,其特征在于,步骤D所述查找与所述组播地址对应的组播权限,并根据查找结果允许或禁止该用户加入所述组播组包括:
D21、将所述用户对应所述组播地址的组播权限初始化为禁止,并获取所述组播权限表中的第一条组播权限记录;
D22、判断该组播权限记录是否为组播权限组记录,如果是,则组播权限管理设备遍历自身保存的组播权限组表中的所有组播权限,记录与所述组播地址相匹配的组播权限中级别最高的组播权限,然后执行步骤D24;否则,执行步骤D23;
D23、判断该组播权限记录中的组播地址是否与所述的组播地址匹配,如果不是,执行步骤D24;如果是,执行步骤D25;
D24、判断当前记录是否为所述组播权限表中的最后一条记录,如果是,则根据所记录的用户的最高组播权限允许或拒绝该用户加入该组播组,然后结束;否则,获取所述组播权限表中的下一条记录,然后返回步骤D22;
D25、将该记录中的组播权限与该用户当前的组播权限进行比较,记录其中级别较高的组播权限作为该用户当前的组播权限,然后执行步骤D24。
9.如权利要求8所述的用户组播权限的管理方法,其特征在于,步骤D22所述组播权限管理设备遍历自身保存的组播权限组中的所有组播权限,记录与所述组播地址相匹配的组播权限中级别最高的组播权限包括:
D221、根据该组播权限组记录的组播权限组标识,在组播权限组表中查找到对应的组播权限组,获取该组播权限组的第一条组播权限记录;
D222、判断该组播权限记录的组播地址是否与所述的组播地址匹配,如果是,则执行步骤D224;否则,执行步骤D223;
D223、判断当前组播权限记录是否为所述组播权限组的最后一条记录,如果是,则结束;否则,获取该组播权限组的下一条组播权限记录,然后返回步骤D222;
D224、将该组播权限记录中的组播权限与该用户当前的组播权限进行比较,记录其中级别较高的组播权限作为该用户当前的组播权限,然后执行步骤D223。
10.如权利要求6或8所述的用户组播权限的管理方法,其特征在于,所述判断该组播权限记录是否为组播权限组记录为:判断该条组播权限记录是否具有特殊的组播地址、或特殊的掩码、或特殊的权限数值、或特殊标识组播权限组字段,如果有,则是组播权限组记录;否则,不是组播权限组记录。
11.如权利要求6至9任一项所述的用户组播权限的管理方法,其特征在于,所述获取下一条组播权限记录对应于所述组播权限表或组播权限组表的存储结构,通过顺序查找、深度遍历或广度遍历查找、或哈希查找冲突检测实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101169802A CN100362812C (zh) | 2005-10-28 | 2005-10-28 | 一种用户组播权限的管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101169802A CN100362812C (zh) | 2005-10-28 | 2005-10-28 | 一种用户组播权限的管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1859179A CN1859179A (zh) | 2006-11-08 |
CN100362812C true CN100362812C (zh) | 2008-01-16 |
Family
ID=37298045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101169802A Active CN100362812C (zh) | 2005-10-28 | 2005-10-28 | 一种用户组播权限的管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100362812C (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100551044C (zh) * | 2007-04-06 | 2009-10-14 | 华为技术有限公司 | 实现视频直播的方法、设备及*** |
CN101321073B (zh) * | 2007-06-04 | 2010-09-08 | 华为技术有限公司 | 一种组播业务授权控制的方法及装置 |
CN101399718A (zh) * | 2007-09-29 | 2009-04-01 | 上海贝尔阿尔卡特股份有限公司 | 接入网络中控制用户设备接入组播业务的方法和装置 |
CN101202715B (zh) * | 2007-11-27 | 2012-02-22 | 杭州华三通信技术有限公司 | 组播权限自动部署方法和装置 |
CN102523098B (zh) * | 2011-11-21 | 2014-12-10 | 华为技术有限公司 | 一种业务接入的方法、装置及*** |
CN103716170A (zh) * | 2013-12-13 | 2014-04-09 | 上海斐讯数据通信技术有限公司 | 一种可控组播实现方法 |
CN111934892B (zh) * | 2020-07-09 | 2021-08-17 | 北京航空航天大学 | 一种基于多播的民航信息高效共享方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002199011A (ja) * | 2000-12-26 | 2002-07-12 | Toshiba Corp | マルチキャスト通信装置及びマルチキャスト通信方法 |
CN1395388A (zh) * | 2001-07-09 | 2003-02-05 | 深圳市中兴通讯股份有限公司 | 一种对组播业务进行认证的方法 |
US20040100983A1 (en) * | 2002-11-26 | 2004-05-27 | Shinsuke Suzuki | Packet forwarding equipment |
CN1540920A (zh) * | 2003-04-23 | 2004-10-27 | 华为技术有限公司 | 可控组播业务的实现方法 |
-
2005
- 2005-10-28 CN CNB2005101169802A patent/CN100362812C/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002199011A (ja) * | 2000-12-26 | 2002-07-12 | Toshiba Corp | マルチキャスト通信装置及びマルチキャスト通信方法 |
CN1395388A (zh) * | 2001-07-09 | 2003-02-05 | 深圳市中兴通讯股份有限公司 | 一种对组播业务进行认证的方法 |
US20040100983A1 (en) * | 2002-11-26 | 2004-05-27 | Shinsuke Suzuki | Packet forwarding equipment |
CN1540920A (zh) * | 2003-04-23 | 2004-10-27 | 华为技术有限公司 | 可控组播业务的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1859179A (zh) | 2006-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100362812C (zh) | 一种用户组播权限的管理方法 | |
EP3499799B1 (en) | Forwarding policy configuration | |
US9704574B1 (en) | Method and apparatus for pattern matching | |
CN108848034B (zh) | 一种网络设备及表项学习方法 | |
EP3661153B1 (en) | Building decision tree for packet classification | |
US20060233173A1 (en) | Policy-based processing of packets | |
CA2532189A1 (en) | Method and apparatus for providing network security using role-based access control | |
CN107770076A (zh) | 一种哈希冲突的处理方法、装置及交换设备 | |
CN101635702B (zh) | 应用安全策略的数据包转发方法 | |
US20170366459A1 (en) | Jump on a Match Optimization for Longest Prefix Match using a Binary Search Tree | |
CN108255912B (zh) | 一种表项数据存储、查询方法及其装置 | |
US20120246163A1 (en) | Hash table storage and search methods and devices | |
US20090158006A1 (en) | Facilitating management of layer 2 hardware address table based on packet priority information | |
EP1583291B1 (en) | Individually programmable most significant bits of VLAN ID | |
CN104836738B (zh) | 路由硬件表项资源管理方法、装置及网络设备 | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
CN102164084A (zh) | 一种组播报文转发方法及其设备 | |
CN107040393A (zh) | 一种路由管理方法和设备 | |
US10880109B2 (en) | Forwarding multicast data packet | |
CN100459583C (zh) | 一种数据转发控制方法和装置 | |
CN107547535A (zh) | 防攻击的mac地址学习方法、装置和网络设备 | |
CN109768909A (zh) | 报文转发方法和装置 | |
CN100488173C (zh) | 对流分类算法进行自动选择的方法 | |
CN101534218B (zh) | 一种开放应用架构的管理方法、装置和*** | |
CN105721627B (zh) | 一种ip网络流数据在线匿名化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |