一种快速接入组播用户的方法

文档序号:7927019阅读:251来源:国知局
专利名称:一种快速接入组播用户的方法
技术领域
本发明属于组播转发技术领域,特别涉及一种用于包括主控和多个线卡的 分布式系统中快速接入组播用户的方法。
背景技术
因特网组管理协议(Internet Group Management Protocol, IGMP )负责所 连网络组成员关系的收集和维护。IGMP作为基本的信令机制,通知子网中的 路由器某个主机渴望成为某个组播组的成员,在主机和组播路由器之间建立并 维护这些组成员关系。当一个组播主机成员希望加入指定的组播组并且期望接 收组播流量时,就发送IGMP消息以通知本地的组播路由器。组播路由器通过 IGMP获得主机的信息,并根据获得的信息建立和维护组播成员关系表。
对于以太网路由交换机来说,接收到从某网络设备下发的组播数据流,会 向3层出"l妄口所在虚拟局域网(vlan)转发,直"l妻在vlan内洪泛。为了有效的 控制组播流量在vlan内扩散,引入了组播窃听(Igmp snooping)技术。Igmp sno叩ing是交换机二层功能的一项特性,可以限制IP组播流量的转发。IGMP 协议运行在网络层,而IGMP Snooping运行在链路层。Igmp Snooping对主机 和路由器之间的IGMP协议通信进行监听,使交换机在转发组播数据包前学习 到哪些端口属于组播成员,可以得到组播转发。这样,组播包只会按照组播成 员关系表转发到这些成员端口,而不是所有端口,从而限制交换机上组播包扩 散,避免不必要的网络带宽浪费,提高交换机的利用率。
目前,组播处理方式有两种分布式处理一在线卡(又称为堆叠设备)上 窃听到用户加入才艮文(IGMP加入消息)后,首先在线卡上处理并形成表项, 将表项直接写入到本线卡的组播成员关系表中,然后再由线卡将表项同步到主 控(又称为主设备)中,主控再将该表项同步到其他线卡中;集中式处理一线 卡窃听到IGMP报文后,将该IGMP报文发送到主控,由主控形成表项并同步 到线卡,线卡再将表项写入到各自的组播成员关系表中。分布式处理的好处是:
降低了主控的负担,并且可以大大的缩短用户的点播时间,提升用户接入速度。
下面结合一个基本实例,介绍igmp snooping用户加入基本功能。图1为 分布式系统的组网示意闺。如图l所示,上游为组播路由器,中间设备为以太 网路由交换机(包括主控和线卡1、线卡2),用户端为主机。主机1和主2 在同一个网4殳,与线卡1相连端口分别为端口 a、 b,而端口a、 b、 c、 d都属 于vlan 100。
主机1期望接收组224.1.1.1的组播数据流,首先会发送igmp report (igmp 加入)报文到组播路由器,这个时候线卡1会监听到主机1发送了组224丄1.1 的组加入消息vlan 100,端口号为a,线卡1分配一个索引(index )给vlan 100 内的组224丄U,并创建组播成员关系表,并将表项通过主控同步到线卡2 的组播成员关系表中。
线卡1在端口 c上接收组^番组地址为224.1.1.1的组4番数据流,此时主机1 便可正常接收流量了 。当主机2也请求接收vlan 100内的组224.1.1.1的流量 时,同样会发送igmp report报文,线卡1从端口 b窃听到报文,;险查组播成 员关系表,得知已经有vlan 100内的组224丄1.1的组用户存在,此时只需将 端口b添加到组播成员关系表的出接口位图中,如此,主机2也可收到组播流 量。
从上述描述中可以得知,当用户添加时,线卡会分配索引(组播转发索引) 给vlan的组。其中,索引的作用简单描述为在某一个线卡上组播数据流来 了,根据组播的MAC地址+vlanid(vlan标识)查组播成员关系表,查到以后, 在此线卡里按照出口的端口位图来转发;但是其他线卡也有出口表,也要需要 进行组播转发,这时到其他线卡带的是组4番转发索引。組播流到达其他线卡后, 直接按照组播转发索引来查组播成员关系表,而不是按照MAC地址+vlan id 来查表了。
索引的计算需要满足发生沖突的概率尽量小,所以需要选取较好的算法。 计算索引时, 一般选取组播组地址和vlanid做为关键字来进行hash运算,如 果计算出来的索引在空闲队列(未被使用),则分配给该组播组使用;如果计 算出来的索引已经被使用,则需要采用其他方式分配索引。
当 一个机架上的多个线卡容量极限不同,用户在其中 一个线卡上加入后会
有什么现象呢?以一个igmp snooping用户接入的例子来"说明。
继续参照图1,以太网路由交换机上有2种线卡,线卡1的组播容量为 1024,线卡2的组4番容量为256,路由交换机上跑igmp snooping业务。
线卡1从端口 1窃听到主机1发送的igmp report报文,此时,线卡1根 据igmp report报文中携带的igmp信息判断为请求加入报文vlan id为100, 组地址为224丄1.1,然后根据hash算法计算出相应索引为500,形成组播成员 关系表项(index 500, mac 01005e010101 , vlan 100),并将此表项通过主控同 步到线卡2的组播成员关系表中去,不同的是,线卡l还会将端口 l添加到线 卡1的组成员关系表中,而线卡2上此时没有用户加入所以组播成员关系表的 出口位图为空。
由于线卡2容量仅为线卡1的1/4,根据上面描述的索引计算方法可知, 索引分配与线卡容量相关,而hash算法是固定的,这样会出现一种现象线 卡1上根据自身容量算出来的索引在线卡2容量范围之外,所以线卡1分配的 索引同步到线卡2时会导致同步不成功,线卡2上无法形成相应表项,此为索 引冲突的表现之一。
线卡2从端口 d接收到vlan 100的组地址为224.1.1.1的组播数据流时, 流量应该通过索引查找到线卡1的组播成员关系表,将流量直接转发到线卡1 的端口 l上。但是,由于线卡2上没有相应的组播成员关系表项,所以转发失 败。用户需要再次加入乃至多次加入并结合当前线卡上容量情况,才可能在加 入后正确纟妄收流量。
因此,需要通过一种方式来回避上述问题,以提高用户接入速率。

发明内容
本发明所要解决的技术问题是提供一种快速接入组播用户的方法,在组播 业务采取分布式处理时,更合理的创建线卡上组播成员关系表,防止具有不同
组播容量的各种线卡共机架跑组播业务时,由于组播转发索引沖突引起的组播 流量转发失败或冗余现象,使组播用户能够快速接入。 为解决上述技术问题,本发明提供技术方案如下
一种快速接入组播用户的方法,用于包括主控和多个线卡的分布式系统 中,包括如下步骤
在主控和每个线卡中建立组播容量对比表,所述组播容量对比表的每个表
项包括线卡标识、线卡的组播容量值和组播容量是否可用标志;
线卡窃听到用户发送的IGMP加入消息,且确定需要在本线卡的组播成员
关系表中增加表项时,从本线卡的组播容量对比表中获取可用的最小组播容量
值,根据所述可用的最小组播容量值以及用户请求加入的组播組地址、VLAN
标识获取组播转发索引;
所述窃听到IGMP加入消息的线卡将所述组播转发索引、组播组地址、
VLAN标识和接收所述IGMP加入消息的端口信息添加到本线卡的组播成员
关系表中,并将所述组播转发索引、组播组地址、VLAN标识通过主控同步到
其他线卡的组播成员关系表中。
上述的方法,其中,所述建立组播容量对比表包括各线卡发送包括线卡
标识、线卡的组播容量值和组播容量是否可用标志的消息到主控,主控根据接
收到的消息建立组播容量对比表,并将建立的组播容量对比表信息发送到各线卡。
上述的方法,其中,所述获取组播转发索引包括将组播组地址和VLAN 标识作为关键字,并依照所述可用的最小组播容量值,用hash算法计算组播 转发索引。
上述的方法,其中,还包括具有可用的最小组播容量值的线卡达到容量 范围时,更新其组播容量对比表中的组播容量是否可用标志,并将该更新信息 通过主控同步到其他线卡的组播容量对比表中。
上述的方法,其中,各线卡定时发送包括线卡标识、线卡的组播容量值和 组播容量是否可用标志的消息到主控;主控根据接收到的消息建立或者更新组 播容量对比表,并将建立或更新的组播容量对比表信息发送到各线卡。
上述的方法,其中,还包括主控在定时时间内没有接收到线卡发送的消 息,确定线卡离线,则删除组播容量对比表中该离线线卡的相关信息,并将更 新的组播容量对比表信息发送到其他线卡。
上述的方法,其中,还包括线卡上线后,发送包括线卡标识、线卡的组 播容量值和组播容量是否可用标志的消息到主控,主控根据接收到的消息更新 组播容量对比表,并将更新的组播容量对比表信息发送到各线卡。
采用本发明的方法后,在组播业务采取分布式处理时,能够给线卡上用户 分配更合理的组播转发索引,緩解具有不同组播容量的各种线卡共机架跑组播 业务时,由于索引冲突引起的组播流量转发失败或冗余现象,使组播用户能够 快速接入,提升交换机的性能。


图1为分布式系统的组网示意图2为本发明实施例的快速接入组播用户的方法流程图。
具体实施例方式
本发明的关键在于,在主控(主设备)和线卡(堆叠设备)间互相传送携 带组播容量值的消息,从而实现在主控和线卡上各维护一张组播容量对比表, 使具有组播容量各异的线卡共机架跑组播业务时,能够根据线卡上组播容量 对比表信息通过hash算法更合理分配组播转发索引,避免由于组播转发索引 冲突引起的组播流量转发失败或冗余,造成组播用户不能及时接入的问题。
参照图l和图2,本发明实施例的快速接入组播用户的方法,用于包括主 控和多个线卡的分布式系统中,所述方法主要包括如下步骤
步骤201:在主控和每个线卡中建立组播容量对比表;
通过添加线卡到主控和主控到线卡的消息(消息内携带本地组播容量对比 表信息),"f吏每个线卡知道机架上各线卡组播容量信息,同时在每个线卡和主 控都维护一张组播容量对比表,所述组播容量对比表的每个表项包括线卡标 识,线卡的组播容量值,組播容量是否可用标志flag (flag可以为y或n, y 代表相应的组播容量值可以用于hash算法来计算索引,n代表相应的组播容量 值不能再用于hash算法来计算索引)。具体地,各线卡发送包括线卡标识、线 卡的组播容量值和flag的消息到主控,主控根据接收到的消息建立组播容量对 比表,并将建立的组播容量对比表信息发送到各线卡。
为了使消息能更准确的在各个线卡和主控间传送,可以通过添加线卡到主 控和主控到线卡的定时同步消息来解决,保证消息不会因为系统忙碌而丢失, 提供安全保证。具体地,各线卡定时发送包括线卡标识、线卡的组播容量值和 组播容量是否可用标志的消息到主控;主控根据接收到的消息建立或者更新组 播容量对比表,并将建立或更新的组播容量对比表信息发送到各线卡。
以图1中的以太网路由交换机为例,线卡1的组播容量为1024,线卡2 的组播容量为256,则在主控、线卡l、线卡2中建立组播容量对比表,初始 时,该对比表中包括有两个表项(线卡l, 1024, y),(线卡2, 256, y)。
步骤202:线卡窃听到用户发送的IGMP加入消息,且确定需要在本线卡 的组播成员关系表中增加表项时,从本线卡的组播容量对比表中获取可用的最 小组播容量值,根据所述可用的最小组播容量值以及用户请求加入的组播组地 址、VLAN标识获取组播转发索? 1;
用户接入时,例如,线卡1从端口 1窃听到主机1发送的igmp report报 文,线卡1根据igmp report报文中携带的igmp信息判断为请求加入报文vlan id为100,组播组地址为224.1.1.1。此时,线卡1的组播成员关系表中还没有 vlan 100内的组224.1.1.1的表项,且线卡1的组播容量尚未用尽,则根据hash 算法计算出相应的索引,并在组播成员关系表中增加相应表项。
具体地,线卡1首先从组播容量对比表中查询到当前可用的最小组播容量 值为256,则将组播组地址和VLAN标识作为关键字,并依照所述可用的最小 组播容量值256,用hash算法计算索引,判断计算得到的索引是否已经被使用, 若是,将hash表的空闲链的链首对应的索引作为组播转发索引;否则,将所 述计算得到的索引作为组播转发索引。由于在hash运算时,引入了最小组播 容量值参数,得到的索引就一定在当前可用的最小组^"容量值范围之内,如此, 能够尽量避免索引的冲突。
步骤203:所述窃听到IGMP加入消息的线卡将所述组播转发索引、组播 組地址、VLAN标识和4妄收所述IGMP加入消息的端口信息添加到本线卡的组 播成员关系表中,并将所述组播转发索引、组播组地址、VLAN标识通过主控 同步到其他线卡的组播成员关系表中;
假设步骤202中得到的索引值为200,则在线卡1中形成组播成员关系表 项(index200, mac 01005e010101 , vlan 100,端口 1),在线卡2中形成纽i番 成员关系表项(index 200, mac 01005e010101, vlan 100)。
步骤204:具有可用的最小组播容量值的线卡达到容量范围时,更新其组 播容量对比表中的组播容量是否可用标志,并将该更新信息通过主控同步到其 他线卡的组播容量对比表中。
用户不断从线卡1或线卡2上加入,每加入一个用户,就用掉一个索引值, 当加入的用户数达到256时,线卡2的组播容量达到极限。此时,线卡2将组 播容量对比表中的表项(线卡2, 256, y)更新为(线卡2, 256, n),线卡2 上不再允许用户加入,并将表项(线卡2, 256, n)通过主控同步到线卡l中。
线卡1上再有用户加入时,线卡1首先从组播容量对比表中查询到当前可 用的最小组播容量值为1024,并按照步骤202中的方法计算索引,此时,得 到的索引在当前最小组播容量1024范围之内。
需要说明的是,在线卡2的容量用尽时,线卡l将新生成的表项同步到线 卡2时也会失败。但是,采用本发明的方法至少可以避免在线卡2的容量没用 尽时,线卡1计算出的索引无法同步到线卡2上的现象,尽量避免了索引的沖
下面举例说明本发明在特定情况下的详细实施方法。 情况l:机架重启
当机架上线卡复位后主动发送消息(线卡标识,组播容量值,flag: y)给 主控。主控在确认收到各个线卡发来的消息后,建立一张组播容量对比表,再 将对比表的内容封装在消息中发给各个线卡,线卡收到主控发送的此类消息后 保存下来,将此信息收集在自己的组播容量对比表内,用于hash算法使用。 线卡上有用户请求接入时,首先从组播容量对比表中获取可用的最小组播容量 值,依照当前最小组播容量值来计算索引,若最小容量线卡上达到满用户,那 么此线卡不再允许添加,此时自身将对比表中此容量值flag置为n,同时发送 消息给主控,主控通知其他各个线卡更新对比表。若其他线卡还需添加新用户, 可以再根据更新后的对比表查询次小组播容量值用于hash算法,以此类推。
情况2:机架上某线卡离线
主控在定时时间内没有接收到线卡发送的消息,确定线卡离线,根据线卡 标识匹配组播容量对比表,删除此线卡的相关信息,再依照最新的组播容量对 比表,将更新过的内容封装在消息中发送给各个线卡。
若拔走的线卡组播容量值就是整机架中容量最小的,线卡上已经分配一哈组 的索引不再变化,新加入用户时,需根据更新后组播容量对比表获取可用的最 小容量值用于hash计算分配索引给组。具有当前最小组播容量的线卡达到容
量范围后则不再允许添加,此时自身将对比表中此容量值flag至为n,同时发 送消息给主控,主控通知其他各个线卡更新对比表。若其他线卡还需添加新用 户,可以再根据更新后的对比表查询次小组播容量值用于hash算法,以此类推。
若拔走的线卡组播容量值非整机架中容量最小的,线卡上已经分配给组的 索引不再变化。
情况3:机架上某线卡上线
当线卡复位后会主动发送消息(包含线卡标识,组播容量值,flag: y)给 主控,主控收到新的消息后,查看消息中线卡标识字段,如果组播容量对比表 中没有该线卡标识,则主动刷新组播容量对比表,再发送消息给各个线卡,更 新本地表信息。
若插入的线卡容量值小于当前最小容量值,线卡上已经分配给组的索引不 再变化,新加入用户时,需根据更新后的组播容量对比表获取可用的最小容量 值用于hash计算分配索引给组。对于此块线卡,自身组4番容量为最小的,所 以若计算的索引为空闲队列值则直接分配给组,若再也无法计算出属于空闲队 列的索引分配给组,此时已经达到此线卡满用户状态,则不再允许添加,此时 自身将对比表中此容量值flag至为n,同时发送消息给主控,主控通知其他各 个线卡更新对比表。若其他线卡还需添加新用户,可以再根据更新后的对比表 查询次小组播容量值用于hash算法,以此类推。
若插入的线卡容量值大于当前最小容量值,线卡上已经分配给组的索引不 再变化。
由以上述技术方案可见,通过添加线卡到主控和主控到线卡的消息,并在 各个主控和线卡上维护一张组播容量对比表(线卡标识,组播容量值,flag), 通过选择合理的容量值用于hash算法,可以防止由于组播容量值各异的线卡 共机架跑组播引起的索引冲突。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情
这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
例如,本发明中交换设备仅以三层交换机为例,本发明适用于任何以太网
设备,且适用于多种不同组播容量的线卡共机架跑组播业务的情况。
另外,本发明没有局限于某种特定的消息,也不局限于维护的对比表内某 些特定属性。只要线卡发送消息给主控使得主控和每块线卡都维护一张组^番容
量对比表,且线卡上根据此对比表信息能够实时获取到最小容量值并用于hash 计算,通过这种方法促进组播用户快速接入,那么就属于本发明保护范围之内。
权利要求
1.一种快速接入组播用户的方法,用于包括主控和多个线卡的分布式系统中,其特征在于,包括如下步骤在主控和每个线卡中建立组播容量对比表,所述组播容量对比表的每个表项包括线卡标识、线卡的组播容量值和组播容量是否可用标志;线卡窃听到用户发送的IGMP加入消息,且确定需要在本线卡的组播成员关系表中增加表项时,从本线卡的组播容量对比表中获取可用的最小组播容量值,根据所述可用的最小组播容量值以及用户请求加入的组播组地址、VLAN标识获取组播转发索引;所述窃听到IGMP加入消息的线卡将所述组播转发索引、组播组地址、VLAN标识和接收所述IGMP加入消息的端口信息添加到本线卡的组播成员关系表中,并将所述组播转发索引、组播组地址、VLAN标识通过主控同步到其他线卡的组播成员关系表中。
2. 如权利要求1所述的方法,其特征在于所述建立组播容量对比表包括各线卡发送包括线卡标识、线卡的组播容 量值和组播容量是否可用标志的消息到主控,主控根据接收到的消息建立组4番 容量对比表,并将建立的组播容量对比表信息发送到各线卡。
3. 如权利要求l所述的方法,其特征在于所述获取组播转发索引包括将组播组地址和VLAN标识作为关键字, 并依照所述可用的最小组播容量值,用hash算法计算组播转发索引。
4. 如权利要求3所述的方法,其特征在于,还包括具有可用的最小组播容量值的线卡达到容量范围时,更新其组播容量对比 表中的组播容量是否可用标志,并将该更新信息通过主控同步到其他线卡的组 播容量对比表中。
5. 如权利要求4所述的方法,其特征在于各线卡定时发送包括线卡标识、线卡的组播容量值和组播容量是否可用标 志的消息到主控;主控根据接收到的消息建立或者更新组播容量对比表,并将建立或更新的 組播容量对比表信息发送到各线卡。
6. 如权利要求5所述的方法,其特征在于,还包括 主控在定时时间内没有接收到线卡发送的消息,确定线卡离线,则删除组播容量对比表中该离线线卡的相关信息,并将更新的组播容量对比表信息发送 到其他线卡。
7. 如权利要求6所述的方法,其特征在于,还包括线卡上线后,发送包括线卡标识、线卡的组播容量值和组播容量是否可用 标志的消息到主控,主控根据接收到的消息更新组播容量对比表,并将更新的 组播容量对比表信息发送到各线卡。
全文摘要
本发明提供一种快速接入组播用户的方法,包括在主控和每个线卡中建立组播容量对比表;线卡窃听到用户发送的IGMP加入消息时,从本线卡的组播容量对比表中获取可用的最小组播容量值,根据所述可用的最小组播容量值以及用户请求加入的组播组地址、VLAN标识获取组播转发索引;所述线卡将所述组播转发索引、组播组地址、VLAN标识和端口信息添加到本线卡的组播成员关系表中,并将所述组播转发索引、组播组地址、VLAN标识通过主控同步到其他线卡的组播成员关系表中。依照本发明,能够更合理的创建线卡上组播成员关系表,防止具有不同组播容量的各种线卡共机架跑组播业务时,由于组播转发索引冲突引起的组播流量转发失败或冗余现象,使组播用户能够快速接入。
文档编号H04L12/18GK101364889SQ200810222889
公开日2009年2月11日 申请日期2008年9月24日 优先权日2008年9月24日
发明者鸾 王 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1