CN101267331A - 一种组播转发表查找方法和装置 - Google Patents
一种组播转发表查找方法和装置 Download PDFInfo
- Publication number
- CN101267331A CN101267331A CNA2008100950244A CN200810095024A CN101267331A CN 101267331 A CN101267331 A CN 101267331A CN A2008100950244 A CNA2008100950244 A CN A2008100950244A CN 200810095024 A CN200810095024 A CN 200810095024A CN 101267331 A CN101267331 A CN 101267331A
- Authority
- CN
- China
- Prior art keywords
- level
- forward table
- multicast forward
- keyword
- multicast
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种组播转发表查找方法和装置,主要是从所接收的数据报文帧头中获取至少两个关键字,所述关键字至少包括第一级关键字和第二级关键字;根据所述第一级关键字,从第一级组播转发表中查找获得与第一级关键字对应的第二级组播转发表的地址索引;根据第二级组播转发表的地址索引和第二级关键字,从第二级组播转发表中查找获得与所述第二级组播转发表的地址索引和所述第二级关键字对应的表项内容。采用上述技术方案,可以节约存储空间,减少查找时间,并具有更好的通用性和可扩展性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种组播转发表查找方法和装置。
背景技术
随着网际协议(IP,International Protocol)网络的发展,网络应用也越来越丰富。出现了会议电视、电子白板等一类新型应用,这些应用与传统IP应用相比,数据量较大,并且每个发送点存在多个接收点,但又不是所有的网络节点。在这样的需求背景下,产生了IP多播技术,IP多播,也称为多址广播或组播,是一种允许一台或多台主机作为多播源,一次性地、同时向多台主机发送单一数据包的传输控制协议(TCP,Transfer Control Protocol)/IP网络技术。组播需要完成的功能是让发送端向一个组发送数据。与重复点对点通信方式和广播方式相比,在组播应用中,使用单一的数据流替代多个数据流,能够实现点到多点的通信同时避免不必要的带宽与处理时间浪费,从而在有限的网络资源上满足多播应用需求。
以下通过在以太网中的应用,来说明组播在交换设备中的具体处理过程:
在以太网交换设备中,一般包含多个快速转发单元(EFU,ExpressForwarding Unit)和流量管理器(TM,Traffic Manager),EFU由EFU上行单元和EFU下行单元组成。EFU与设备端***互,负责转发动作执行;TM分割转发的上下行数据,从EFU接收流量,负责流量的调度复制并将流量发送回EFU。为简便起见,以网络交换设备包含1个EFU和1个TM来简要说明网络交换设备的流量处理过程,参照图1,为现有技术中网络交换设备结构示意图,P1、P2、P3为设备端口号:
以下结合图1,分三步简要阐述交换设备中的组播处理过程:
第一步,快速转发单元(EFU,Express Forwarding Unit)上行单元处理:EFU与设备端***互,接收线路上过来的流量。首先假设P2、P3端口侧用户加入了某一个组播组G。当组播报文从P1端口进入后,会去查找组播媒体访问控制(MAC,Media Access Control)表,根据数据报文的目的mac地址查找到组播MAC表后,返回一个多播标识(MID,Multicast Identification),将该MID封装在帧头发送到TM;
第二步,TM处理:TM预先保存一个MID的出端口号和复制份数的链表,来管理TM芯片的表项,它具有对报文进行复制的功能。EFU将封装MID后的报文发送到TM后,TM会根据该MID得到对应的出端口号和该端口的复制份数,然后向该端口复制多份报文依次发送到EFU的下行,每一份复制后的数据报文对应一个复制份数序号;
第三步,EFU下行单元处理:TM按照MID对应的端口号和复制份数,对报文进行复制后重新发回到EFU;EFU下行会根据MID,对应端口号和复制后的每一个数据报文对应的复制份数序号去查找下行链接表(ELB,EgressLink Block),从而得到该报文的转发信息。
通常,假设交换设备可支持8K个MID,64个端口,每个端口对应一个端口号,每个端口的最大复制能力为128份,则在EFU下行,根据MID、端口号和复制份数序号去查找ELB表,则该ELB的规格就是:8K*64*128=64M条表项。
由于ELB相对较大,达到十兆级的容量,将其放在三态存储器(TCAM,Ternary Content Addressable Memory)中无法满足要求,只能放在有较大存储容量的静态随机存储器(SRAM,Synchronous Random Access Memory)和动态随机存储器(DRAM,Dynamic Content Addressable Memory)中。从成本上考虑,一般将该表放在比较廉价的DRAM中。参照图2,为现有技术中ELB示意图,查找该ELB的关键字由MID、端口号、复制份数序号构成。
在对现有技术的研究和实践过程中,发明人发现现有技术中,将ELB作为线性表存放在DRAM中,需要很大的存储空间,成本较高;同时,在进行组播大规格表项查找时,采用上述线性查找方法耗时较大,且很难维护。并且,即使MID或者PORT有一个增大的话,ELB的空间则会呈128的倍数增长,因此,可通用性和可扩展性差。而如果将ELB作为非线性表,通过哈希算法并采用二叉树的方法查找的话,则会大大增加微码操作的复杂度,尤其对于指令空间非常紧张的网络处理器(NP,Network Processor),很难实现。
发明内容
本发明实施例提供一种组播转发表查找方法和装置,能够节约存储空间,减少查找时间,提高可扩展性和可通用性。
为解决上述技术问题,本发明所提供的组播转发表查找方法和装置实施例是通过以下技术方案实现的:
本发明实施例提供了一种组播转发表查找方法,该方法包括:
从所接收的数据报文帧头中获取至少两个关键字,所述关键字至少包括第一级关键字和第二级关键字;
根据所述第一级关键字,查找第一级组播转发表,从所述第一级组播转发表中查找获得与所述第一级关键字对应的第二级组播转发表的地址索引;
根据所述第二级组播转发表的地址索引和所述第二级关键字,查找第二级组播转发表,从所述第二级组播转发表中查找获得与所述第二级组播转发表的地址索引和所述第二级关键字对应的表项内容。
本发明实施例提供了一种组播转发表查找装置,该装置包括:
关键字获取单元,用于从所接收的数据报文帧头中获取至少两个关键字,所述关键字至少包括第一级关键字和第二级关键字;
第一查找单元,用于根据所述第一级关键字,查找第一级组播转发表,从所述第一级组播转发表中查找获得与所述第一级关键字对应第二级组播转发表的地址索引;
第二查找单元,用于根据所述第二级组播转发表的地址索引和所述第二级关键字,查找第二级组播转发表,从所述第二级组播转发表中查找获得所述第二级组播转发表的地址索引以及第二级关键字对应的表项内容。
本发明实施例还提供了一种交换设备,该交换设备包括:TM单元和EFU下行单元,所述EFU下行单元与TM单元进行数据交互,所述EFU下行单元包括:
关键字获取单元,用于从所接收的数据报文帧头中获取至少两个关键字,所述关键字至少包括第一级关键字和第二级关键字;
第一查找单元,用于根据所述第一级关键字查找第一级组播转发表,从所述第一级组播转发表中查找获得与所述第一级关键字对应的第二级组播转发表的地址索引;
第二查找单元,用于根据所述第二级组播转发表的地址索引和所述第二级关键字查找第二级组播转发表,从所述第二级组播转发表中查找获得所述第二级组播转发表的地址索引和第二级关键字所对应的表项内容。
本发明实施例的技术方案通过获取至少两个关键字,且所述关键字至少包括第一级关键字和第二级关键字,根据所述第一级关键字查找第一级组播转发表,获取第二级组播转发表的地址索引,根据获取的第二级组播转发表的地址索引和所述第二级关键字,查找第二级组播转发表,获取所述第二级组播转发表的地址索引和第二级关键字对应的表项内容;由于上述技术方案中的组播转发表查找是通过将组播转发表分级实现的,将所查找的关键字分在至少两个组播转发表中并通过地址索引来表示其中的映射关系,对于大规格的组播转发表,通过分级表表示后,可以根据业务需要灵活分配除第一级组播转发表外的各级组播转发表中的关键字的数目,不需要所有关键字的数目都按照最大规格设置,因此可以节约存储空间,降低成本;同时,由于可以灵活配置组播转发表中关键字对应的个数,组播转发表的规格大大减小,因此可以极大地节约查找时间,而且不需要很大的微码操作复杂度,可以节约指令空间,适合于指令空间较紧张的网络处理器;并且,由于每个组播转发表都较小,因此易于维护,而且,根据实际需要分配各级组播转发表中所支持的关键字的个数,具有更好的通用性和可扩展性。
附图说明
图1为现有技术中网络交换设备结构示意图;
图2为现有技术中ELB示意图;
图3为本发明实施例中组播转发表查找方法流程图;
图4a为本发明实施例中第一级组播转发表查找示意图;
图4b为本发明实施例中第二级组播转发表查找示意图;
图5为本发明实施例中组播转发表查找装置实施例一结构示意图;
图6为本发明实施例中组播转发表查找装置实施例二结构示意图;
图7为本发明实施例中交换设备实施例一结构示意图;
图8为本发明实施例中交换设备实施例二结构示意图。
具体实施方式
本发明实施例提供了一种组播转发表查找方法和装置,该组播转发表查找方法中,通过获取至少两个关键字,所述关键字至少包括第一级关键字和第二级关键字;根据获取的第一级关键字,查找第一级组播转发表,从第一级组播转发表中查找获得与第一级关键字对应的地址索引;然后根据所获取的地址索引和已获取的第二级关键字,查找第二级组播转发表,从第二级组播转发表中查找获得与所述地址索引和第二级关键字对应的表项内容;当所述表项内容为所述第二级组播转发表的下一级组播转发表的地址索引时,依照上述查找所述第二级组播转发表的方式从所述第二级组播转发表的下一级组播转发表开始,逐级向下查找所述第二级组播转发表后的各级组播转发表,直至查找获得组播转发信息。这种组播转发表查找方法可以节约存储空间,减少查找时间,提高可扩展性和可通用性。
为使本发明实施例的目的、技术方案及优点更加清楚明了,以下参照附图,以应用在交换网设备中组播转发表的查找和转发为例进行详细说明:
参照图3,为本发明实施例中组播转发表查找方法实施例流程图,以下通过具体步骤进行详细说明:
步骤31、从对数据报文进行封装的帧头中获取MID、端口号和复制份数序号;
应用在交换网设备时,组播数据报文进入EFU上行单元后,可以通过查找组播MAC表来获得与所述组播数据报文的目的MAC地址对应的MID,然后将该MID封装在帧头中发送到TM,TM根据该MID获取到对应的端口号和复制份数序号后封装在帧头中发送到EFU下行单元。EFU下行单元解析该帧头获取MID、端口号和复制份数序号。
帧头通常是在数据报文进入交换设备后在数据报文的前边添加的一定字节的信息,所添加的信息为交换设备所私有的信息,用以标志报文在处理时的一些信息,如该报文的出端口号,报文为单播还是组播等私有标志,只在交换设备内部有效。在报文被处理完毕后从交换设备发出时,该信息被删除。
步骤32、根据获取的MID和端口号,查找第一级组播转发表,获取所述MID和端口号对应的地址索引;
将获得的MID和端口号作为第一级关键字,查找第一级组播转发表,从所述第一级组播转发表中查找获取该MID和端口号所对应的第二级组播转发表的地址索引,参照图4a,为本发明实施例中第一级组播转发表查找示意图,根据MID和端口号PORT,查找到对应的下行链路表偏移地址ELB OffsetAddress;
步骤33、根据获取的地址索引以及已获取的复制份数序号,查找第二级组播转发表,从第二级组播转发表中查找获取该地址索引和复制份数序号所对应的表项内容。
利用从第一级组播转发表中获取的地址索引以及之前获取的复制份数序号查找第二级组播转发表,参照图4b,为本发明实施例中第二级组播转发表查找示意图,复制份数序号作为第二级关键字,根据ELB Offset Address和复制份数序号,可以查找到对应的ELB数据,获取到报文的处理内容。
该表项包含该报文从该交换设备发送出去时的一些转发信息,如该报文是普通二层转发还是入虚拟私有网络服务(VPLS,Virtual Private LAN Service)及从该设备出去时封装的是虚拟网络标识vlanID或是链路转换协议(LSP,Link Switching Protocol)标识等。
假设MID个数有8K,仍支持64个端口,那么第一级组播转发表的规格为:8K*64=512K,而对于第二级组播转发表,可以根据设备实际需求来设置ELB表的规格,例如在实际环境中,并不需要所有的端口都复制128份,则可以通过第一级组播转发表中的ELB Offset Address值与第二级组播转发表中表项的映射关系以及复制份数序号来配置第二级组播转发表,实现第二级组播转发表的动态分配。例如,设备支持8K个MID,64个端口,所以第一级组播转发表的规格就是8K*64=512K条表项,即多播标识与端口号对应关系有512K种,而实际场景中假设只要支持512K中的72K就足够了,假设在场景中仅有部分端口要求复制128份,其他端口最大支持复制8份,其中复制128份的最大需求是8K,复制8份的最大需求是64K,那么ELB表的规格为:8K*128+64*8=1536K条表项,与单一线性ELB表的64M相比,从容量上来说减少了近40倍的存储空间。可见,对于一个交换设备,在实际应用中,虽然它支持8K个组播标识,但可能并不要求每一个组播标识都对应64个端口且每个端口都复制128份,因此,采用分级组播转发表进行查找,可以节约存储空间,减少查找时间消耗。
可见,通过获取的MID和端口号,查找第一级组播转发表,获取该MID和端口号对应的地址索引,并根据获取的地址索引及已获取的复制份数序号,查找第二级组播转发表,获取该多播标识、端口号和复制份数序号所对应的表项内容,并可以根据表项内容对数据报文进行处理。这种组播转发表查找方法是通过两级表实现的,由于将所查找的关键字分在两个表中并通过地址索引来表示其中的映射关系,对于大规格的组播转发表,通过两级表表示后,可以灵活分配除第一级组播转发表外的各级组播转发表中相应关键字的个数,因此,除第一级组播转发表外的各级组播转发表都不需要用最大规格表示,使得组播转发表总体规格大大减小,因此可以节约存储空间,降低成本;同时,由于组播转发表的规格大大减小,因此可以极大地节约查找时间,而且不需要很大的微码操作复杂度,可以节约指令空间,适合于指令空间较紧缺的网络处理器;而且,根据实际需要灵活分配第一级组播转发表中所支持的端口数和第二级组播转发表所支持的复制份数,具有更好的通用性和可扩展性。
可以理解的是,对于两个关键字的情况,这两个关键字将被划分为两级,分别作为第一级关键字和第二级关键字,假设这两个关键字为A、B,则可将A定义为第一级关键字,而B定主义为第二级关键字,也可将B定义为第一级关键字,而A定义为第二级关键字。根据所述第一级关键字,查找第一级组播转发表,获取第二级组播转发表的地址索引;然后根据从第一级组播转发表中获取的地址索引和第二级关键字,查找第二级组播转发表,从第二级组播转发表中查找获取所述第二级组播转发表的地址索引和第二级关键字对应的表项内容。可以根据需要设置第二级组播转发表中每个地址索引对应的第二级关键字的数目,因此可以减小组播转发表的规格,节约存储空间和查找时间,并提高所述组播转发表的通用性和可扩展性。
同样,对于三个以上关键字的情况,也可以将所述关键字划分为两级,假设所述关键字包括A1、B1、C1、D1,则可根据实际需要将这四个关键字划分为两级,例如可以将A1、或A1和B1、C1、D1中的任一个或两个作为第一级关键字,剩下的关键字则作为第二级关键字;当然,也可选择A1、或A1和B1、C1、D1中的任一个或两个作为第二级关键字,剩下的关键字则作为第一级关键字。根据所述第一级关键字,查找第一级组播转发表,获取第二级组播转发表的地址索引;然后根据从第一级组播转发表中获取的所述第二级组播转发表的地址索引和第二级关键字,查找第二级组播转发表,从第二级组播转发表中查找获取所述第二级组播转发表的地址索引和第二级关键字对应的表项内容,可以根据需要设置第二级组播转发表中每个地址索引对应的第二级关键字的数目,因此可以减小组播转发表的规格,节约存储空间和查找时间,并提高所述组播转发表的通用性和可扩展性。
可以理解的是,当关键字数目较多时,也可以按照上述组播转发表查找方法查找,首先获取关键字,这些关键字被划分为至少三级,例如,当有三级组播转发表时,每级组播转发表对应的关键字依次可以用第一级关键字、第二级关键字、第三级关键字表示,当有四级组播转发表时,每级组播转发表对应的关键字依次可以用第一级关键字、第二级关键字、第三级关键字、第四级关键字,对应的,组播转发表可称为第一级组播转发表、第二级组播转发表、第三级组播转发表、第四级组播转发表,依此类推。
例如,对于三级组播转发表的情况,可以根据获取的第一级关键字,查找第一级组播转发表,从第一级组播转发表中查找获取第二级组播转发表的地址索引;然后根据所述第二级组播转发表的地址索引和第二级关键字,查找第二级组播转发表,从所述第二级组播转发表中查找获取第三级组播转发表的地址索引;根据所述第三级组播转发表的地址索引和第三级关键字,查找第三级组播转发表,从所述第三级组播转发表中查找获取对应的表项内容,所述表项内容为组播转发信息。对于四级组播转发表的情况,则从上述第三级组播转发表中查找获取的不是组播转发信息,而是第四级组播转发表的地址索引,根据所述第四级组播转发表的地址索引和第四级关键字,继续查找第四级组播转发表,最后从所述第四级组播转发表中查找获取对应的表项内容,即组播转发信息。
因此,对于ELB等较大规格的组播转发表,可以分为两级或两级以上的组播转发表来表示,第一级组播转发表存放第二级组播转发表的地址索引,依次类推,通过查找上一级组播转发表获取本级组播转发表的地址索引,根据从上一级组播转发表获取的地址索引和本级关键字,查找本级组播转发表,从而获得本级具体的表项内容,当从本级组播转发表中查找获得的表项内容为本级组播转发表的下一级组播转发表的地址索引,而不是组播转发信息时,则可依照上述查找本级组播转发表的方式从本级组播转发表的下一级组播转发表开始,逐级向下查找本级组播转发表后的各级组播转发表,直至查找获得组播转发信息。由于可以灵活分配除第一级组播转发表外的各级组播转发表中相应级关键字的个数,决定各级组播转发表的规格,使得组播转发表总的规格大大减小,进而可以节约存储空间和查找时间,并提高所述组播转发表的通用性和可扩展性。
以上对本发明实施例所采用的组播转发表查找方法进行了详细描述,为使本领域技术人员更好地理解和实现本发明实施例,以下对上述方法中所采用的装置进行对应描述。
参照图5,为本发明实施例中组播转发表查找装置实施例一结构示意图,该装置包括:
关键字获取单元51,用于从所接收的数据报文帧头中获取至少两个关键字,所述关键字至少包括第一级关键字和第二级关键字;
第一查找单元52,用于根据关键字获取单元51获取的第一级关键字,查找第一级组播转发表,从所述第一级组播转发表中查找获取与所述第一级关键字对应的第二级组播转发表的地址索引;
第二查找单元53,用于根据第一查找单元52获取的地址索引和第二级关键字,查找第二级组播转发表,从所述第二级组播转发表中查找获取所述第二级组播转发表的地址索引和第二级关键字对应的表项内容。
此外,本发明实施例的组播转发表查找装置,还可以包括第三查找单元,用于在上述表项内容为所述第二级组播转发表的下一级组播转发表的地址索引时,依照上述查找所述第二级组播转发表的方式从所述第二级组播转发表的下一级组播转发表开始,逐级向下查找所述第二级组播转发表后的各级组播转发表,直至查找获得组播转发信息。
所述关键字获取单元51所获取的第一级关键字可以为MID、端口号,第二级关键字可以为复制份数序号。
该组播转发表查找装置由于可以根据获取的第一级关键字查找第一级组播转发表,获取第二级组播转发表的地址索引,并根据获取的第二级组播转发表的地址索引和已获取的第二级关键字,查找第二级组播转发表,获取所述第二级组播转发表的地址索引和第二级关键字对应的表项内容。由于通过分级查找,可以根据业务需要灵活分配第二级组播转发表中相应关键字的个数,只要满足业务需要即可,不需要每个关键字的数目都按照最大规格设置,因此可以节约存储空间,降低成本;同时,由于组播转发表的规格大大减小,可以极大地节约查找时间,而且不需要很大的微码操作复杂度,可以节约指令空间,适合于指令空间较紧张的网络处理器;并且,由于每个组播转发表都较小,因此易于维护,而且,根据实际需要分配各级组播转发表中所应用的关键字的个数,具有更好的通用性和可扩展性。
参照图6,为本发明实施例中组播转发表查找装置实施例二结构示意图,该装置包括:
关键字获取单元61,用于获取至少三个关键字,所述关键字至少包括第一级关键字、第二级关键字和第三级关键字;
第一查找单元62,用于根据关键字获取单元61获取的第一级关键字,查找第一级组播转发表,从所述第一级组播转发表中查找获取与所述第一级关键字对应的第二级组播转发表的地址索引;
第二查找单元63,用于根据第一查找单元62获取的地址索引和关键字获取单元61获取的第二级关键字,查找第二级组播转发表,从所述第二级组播转发表中查找获取与所述第二级组播转发表的地址索引和第二级关键字对应的第三级组播转发表的地址索引;
第三查找单元64,用于根据第二查找单元63获取的第三级组播转发表的地址索引和关键字获取单元61获取的第三级关键字,查找第三级组播转发表,从所述第三级组播转发表中查找获取与所述第三级组播转发表的地址索引以及第三级关键字对应的表项内容,所述表项内容为组播转发信息。
可以看出,在该组播转发表查找装置中,根据不同的关键字将组播转发表分级表示,对于除第一级组播转发表之外的各级组播转发表,可以根据需要设置各级关键字的数目,不需要将所有的关键字都按照最大数目设置,因此,可以大大减小组播转发表的规格,进而可以节约存储空间,降低成本;同时,由于组播转发表的规格大大减小,可以极大地节约查找时间,而且不需要很大的微码操作复杂度,可以节约指令空间,适合于指令空间较紧张的网络处理器;并且,由于每个组播转发表都较小,因此易于维护,而且,根据实际需要分配各级组播转发表中所支持的关键字的个数,具有更好的通用性和可扩展性。
参照图7,为本发明实施例中交换设备实施例一结构示意图,该交换设备包括:TM单元71和EFU下行单元72,EFU下行单元72和TM单元71进行数据交互,其中,EFU下行单元72包括:
关键字获取单元721,用于从来自TM的数据报文帧头中获取至少两个关键字,所述关键字至少包括第一级关键字和第二级关键字;
一般,通过对数据报文帧头解析可获得MID、端口号和复制份数序号等三个关键字。在本发明实施例中,所述MID和端口号为第一级关键字,所述复制份数序号为第二级关键字。
第一查找单元722,用于根据关键字获取单元721所获取的MID和端口号查找第一级组播转发表,从所述第一级组播转发表中查找获取所述MID和端口号对应的地址索引;
第二查找单元723,用于根据第一查找单元722所获取的地址索引和关键字获取单元721所获取的复制份数序号,查找第二级组播转发表,从所述第二级组播转发表中查找获取所述地址索引和复制份数序号所对应的表项内容,即组播转发信息。
可见,该交换设备通过获取的第一级关键字,查找第一级组播转发表,从所述第一级组播转发表中查找获取第二级组播转发表的地址索引,并根据获取的地址索引以及第二级关键字,查找第二级组播转发表,从所述第二级组播转发表中查找获取对应的表项内容,用于处理数据报文的转发。由此可知,本发明实施例的交换设备查找组播转发信息的方法是通过分级组播转发表实现的,由于将所查找的关键字分在两级组播转发表中并通过地址索引来表示其中的映射关系,对于大规格的组播转发表,通过分级表表示后,由于可以灵活分配第二级组播转发表中相应关键字的个数,使得组播转发表规格大大减小,因此可以节约存储空间,降低成本;同时,由于组播转发表的规格大大减小,因此可以极大地节约查找时间,而且不需要很大的微码操作复杂度,可以节约指令空间,适合于指令空间较紧缺的网络处理器;并且,由于每个组播转发表都较小,因此易于维护,还可以根据实际需要扩展组播转发表中所支持的多播标识个数和端口数,具有更好的通用性和可扩展性。
以下对一种支持三级及三级以上的组播转发表查找的交换设备通过具体实施例进行详细描述:
参照图8,为本发明实施例中交换设备实施例二结构示意图,该交换设备包括TM单元81和EFU下行单元82,所述EFU下行单元82与TM单元81进行数据交互,其特征在于,所述EFU下行单元82包括:
关键字获取单元821,用于从来自TM单元81的数据报文帧头中获取至少三个关键字,所述关键字至少包括第一级关键字、第二级关键字和第三级关键字;
第一查找单元822,用于根据关键字获取单元821获取的第一级关键字,查找第一级组播转发表,从所述第一级组播转发表中查找获取与所述第一级关键字对庆的第二级组播转发表的地址索引;
第二查找单元823,用于根据第一查找单元822获取的地址索引和关键字获取单元821获取的第二级关键字,查找第二级组播转发表,从所述第二级组播转发表中查找获取与所述第二级组播转发表的地址索引和第二级关键字对应的第三级组播转发表的地址索引;
第三查找单元824,用于根据第二查找单元823获取的第三级组播转发表的地址索引和关键字获取单元821获取的第三级关键字,查找第三级组播转发表,从所述第三级组播转发表中查找获取与所述第三级组播转发表的地址索引以及第三级关键字对应的表项内容,所述表项内容为组播转发信息。
由上可知,对于三级以上的组播转发表查找情况,本发明实施例交换设备的第三查找单元,用于在第二查找单元查找获得的表项内容为所述第二级组播转发表的下一级组播转发表的地址索引时,依照上述查找所述第二级组播转发表的方式从所述第二级组播转发表的下一级组播转发表开始,逐级向下查找所述第二级组播转发表后的各级组播转发表,直至查找获得组播转发信息。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括如下步骤:
从来自TM的数据报文帧头中获取至少两个关键字,所述关键字至少包括第一级关键字和第二级关键字;
根据所述第一级关键字,查找第一级组播转发表,从所述第一级组播转发表中查找获取与所述第一级关键字对应的第二级组播转发表的地址索引;
根据所第二级组播转发表的地址索引和所述第二级关键字,查找第二级组播转发表,从所述第二级组播转发表中查找获取所述第二级组播转发表的地址索引和所述第二级关键字对应的表项内容;
当所述表项内容为所述第二级组播转发表的下一级组播转发表的地址索引时,依照上述查找所述第二级组播转发表的方式从所述第二级组播转发表的下一级组播转发表开始,逐级向下查找所述第二级组播转发表后的各级组播转发表,直至查找获得组播转发信息。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括如下步骤:
从来自TM的数据报文帧头中获取至少三个关键字,所述关键字至少包括第一级关键字、第二级关键字和第三级关键字;
根据获取的第一级关键字,查找第一级组播转发表,从所述第一级组播转发表中查找获取与所述第一级关键字对应的第二级组播转发表的地址索引;
根据所述第二级组播转发表的地址索引和第二级关键字,查找第二级组播转发表,从所述第二级组播转发表中查找获取与所述第二级组播转发表的地址索引和第二级关键字对应的第三级组播转发表的地址索引;
根据所获取的第三级组播转发表的地址索引和第三级关键字,查找第三级组播转发表,从所述第三级组播转发表中查找获取与所述第三级组播转发表的地址索引以及第三级关键字对应的表项内容,所述表项内容为组播转发信息。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种组播转发表查找方法和装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1、一种组播转发表查找方法,其特征在于,包括:
从所接收的数据报文帧头中获取至少两个关键字,所述关键字至少包括第一级关键字和第二级关键字;
根据所述第一级关键字,查找第一级组播转发表,从所述第一级组播转发表中查找获得与所述第一级关键字对应的第二级组播转发表的地址索引;
根据所述第二级组播转发表的地址索引和所述第二级关键字,查找第二级组播转发表,从所述第二级组播转发表中查找获得与所述第二级组播转发表的地址索引和所述第二级关键字对应的表项内容。
2、如权利要求1所述的组播转发表查找方法,其特征在于,所述方法还包括:当所述表项内容为所述第二级组播转发表的下一级组播转发表的地址索引时,依照上述查找所述第二级组播转发表的方式从所述第二级组播转发表的下一级组播转发表开始,逐级向下查找所述第二级组播转发表后的各级组播转发表,直至查找获得组播转发信息。
3、如权利要求2所述的组播转发表查找方法,其特征在于,当所述关键字至少包括第一级关键字、第二级关键字和第三级关键字时,所述组播转发表查找方法具体为:
从来自流量管理器TM的数据报文帧头中获取所述第一级关键字、第二级关键字和第三级关键字;
根据所述第一级关键字,查找第一级组播转发表,从所述第一级组播转发表中查找获得与所述第一级关键字对应的第二级组播转发表的地址索引;
根据所述第二级组播转发表的地址索引和所述第二级关键字,查找第二级组播转发表,从所述第二级组播转发表中查找获得与所述第二级组播转发表的地址索引和所述第二级关键字对应的第三级组播转发表的地址索引;
根据所述第三级组播转发表的地址索引和所述第三级关键字,查找第三级组播转发表,从所述第三级组播转发表中查找获得与所述第三级组播转发表的地址索引和所述第三级关键字对应的所述组播转发信息。
4、如权利要求1或2所述的组播转发表查找方法,其特征在于,当所述关键字包括多播标识、端口号和复制份数序号时,所述组播转发表查找方法具体为:
从来自TM的数据报文帧头中获取所述多播标识、所述端口号和所述复制份数序号,所述多播标识和端口号为所述第一级关键字,所述复制份数序号为所述第二级关键字;
根据所述多播标识和端口号,查找第一级组播转发表,从所述第一级组播转发表中查找获得与所述多播标识和端口号对应的第二级组播转发表的地址索引;
根据所述第二级组播转发表的地址索引和所述复制份数序号,查找第二级组播转发表,从所述第二级组播转发表中查找获得与所述复制份数序号对应的组播转发信息。
5、一种组播转发表查找装置,其特征在于,包括:
关键字获取单元,用于从所接收的数据报文帧头中获取至少两个关键字,所述关键字至少包括第一级关键字和第二级关键字;
第一查找单元,用于根据所述第一级关键字,查找第一级组播转发表,从所述第一级组播转发表中查找获得与所述第一级关键字对应的第二级组播转发表的地址索引;
第二查找单元,用于根据所述第二级组播转发表的地址索引和所述第二级关键字,查找第二级组播转发表,从所述第二级组播转发表中查找获得所述第二级组播转发表的地址索引以及第二级关键字对应的表项内容。
6、如权利要求5所述的组播转发表查找装置,其特征在于,所述装置还包括第三查找单元,用于在所述表项内容为所述第二级组播转发表的下一级组播转发表的地址索引时,依照上述查找所述第二级组播转发表的方式从所述第二级组播转发表的下一级组播转发表开始,逐级向下查找所述第二级组播转发表后的各级组播转发表,直至查找获得组播转发信息。
7、如权利要求5或6所述的组播转发表查找装置,其特征在于,所述关键字获取单元用于从所接收的数据报文帧头中获取三个所述关键字,所述三个关键字分别为多播标识、端口号和复制份数序号,其中所述多播标识和端口号为所述第一级关键字,所述复制份数序号为所述第二级关键字;所述第二查找单元,用于根据所述第二级组播转发表的地址索引和所述第二级关键字,从所述第二级组播转发表中查找获得所述第二级组播转发表的地址索引以及第二级关键字对应的组播转发信息。
8、一种交换设备,包括流量管理器TM单元,其特征在于,还包括与所述TM单元进行数据交互的快速转发单元EFU下行单元,所述EFU下行单元包括:
关键字获取单元,用于从所接收的数据报文帧头中获取至少两个关键字,所述关键字至少包括第一级关键字和第二级关键字;
第一查找单元,用于根据所述第一级关键字,查找第一级组播转发表,从所述第一级组播转发表中查找获得与所述第一级关键字对应的第二级组播转发表的地址索引;
第二查找单元,用于根据所述第二级组播转发表的地址索引和所述第二级关键字,查找第二级组播转发表,从所述第二级组播转发表中查找获得所述第二级组播转发表的地址索引以及第二级关键字对应的表项内容。
9、如权利要求8所述的交换设备,其特征在于,所述EFU下行单元还包括第三查找单元,用于在所述表项内容为所述第二级组播转发表的下一级组播转发表的地址索引时,依照上述查找所述第二级组播转发表的方式从所述第二级组播转发表的下一级组播转发表开始,逐级向下查找所述第二级组播转发表后的各级组播转发表,直至查找获得组播转发信息。
10、如权利要求8或9所述的交换设备,其特征在于,所述关键字获取单元用于从所接收的数据报文帧头中获取三个所述关键字,所述三个关键字分别为多播标识、端口号和复制份数序号,其中所述多播标识和端口号为所述第一级关键字,所述复制份数序号为所述第二级关键字;所述第二查找单元,用于根据所述第二级组播转发表的地址索引和所述第二级关键字,从所述第二级组播转发表中查找获得所述第二级组播转发表的地址索引以及第二级关键字对应的组播转发信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100950244A CN101267331A (zh) | 2008-04-23 | 2008-04-23 | 一种组播转发表查找方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100950244A CN101267331A (zh) | 2008-04-23 | 2008-04-23 | 一种组播转发表查找方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101267331A true CN101267331A (zh) | 2008-09-17 |
Family
ID=39989482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100950244A Pending CN101267331A (zh) | 2008-04-23 | 2008-04-23 | 一种组播转发表查找方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101267331A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118310A (zh) * | 2011-01-19 | 2011-07-06 | 华中科技大学 | 基于网络编码分级流媒体多播的资源调度方法 |
CN102201979A (zh) * | 2011-03-21 | 2011-09-28 | 中兴通讯股份有限公司 | 一种对微码表项进行层次化处理的方法和装置 |
CN103023800A (zh) * | 2012-11-29 | 2013-04-03 | 北京航空航天大学 | 采用流表映射调度策略对多核网络处理器下的流量进行调度的方法 |
WO2014117327A1 (zh) * | 2013-01-29 | 2014-08-07 | 华为技术有限公司 | 报文处理方法和转发设备 |
CN103986660A (zh) * | 2014-05-30 | 2014-08-13 | 华为技术有限公司 | 加载微码的装置以及加载微码的方法 |
WO2014169874A1 (zh) * | 2013-08-12 | 2014-10-23 | 中兴通讯股份有限公司 | 表项管理装置、表项管理方法及计算机存储介质 |
CN104618247A (zh) * | 2014-12-30 | 2015-05-13 | 杭州华三通信技术有限公司 | 一种组播报文的传输方法及装置 |
WO2015074182A1 (zh) * | 2013-11-19 | 2015-05-28 | 华为技术有限公司 | 一种基于流表的表项寻址方法、交换机及控制器 |
CN108063715A (zh) * | 2016-11-09 | 2018-05-22 | 中兴通讯股份有限公司 | 虚拟局域网实现方法和终端设备 |
CN108322301A (zh) * | 2017-01-17 | 2018-07-24 | 上海华虹集成电路有限责任公司 | 软件级双轨逻辑中的s盒运算的实现方法 |
CN108683617A (zh) * | 2018-04-28 | 2018-10-19 | 新华三技术有限公司 | 报文分流方法、装置及分流交换机 |
CN110572322A (zh) * | 2019-08-16 | 2019-12-13 | 苏州工业职业技术学院 | 一种通过修改查找关键字提高组播转发效率的方法 |
CN111324382A (zh) * | 2018-12-13 | 2020-06-23 | 华为技术有限公司 | 指令处理方法和芯片 |
CN111327546A (zh) * | 2020-02-25 | 2020-06-23 | 杭州迪普科技股份有限公司 | 一种报文转发的方法及装置 |
CN112637070A (zh) * | 2020-12-21 | 2021-04-09 | 杭州迪普信息技术有限公司 | 一种表项查找的方法和设备 |
CN117411738A (zh) * | 2023-12-15 | 2024-01-16 | 格创通信(浙江)有限公司 | 组播复制方法、装置、电子设备和存储介质 |
-
2008
- 2008-04-23 CN CNA2008100950244A patent/CN101267331A/zh active Pending
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118310B (zh) * | 2011-01-19 | 2013-07-03 | 华中科技大学 | 基于网络编码分级流媒体多播的资源调度方法 |
CN102118310A (zh) * | 2011-01-19 | 2011-07-06 | 华中科技大学 | 基于网络编码分级流媒体多播的资源调度方法 |
CN102201979B (zh) * | 2011-03-21 | 2014-12-17 | 中兴通讯股份有限公司 | 一种对微码表项进行层次化处理的方法和装置 |
CN102201979A (zh) * | 2011-03-21 | 2011-09-28 | 中兴通讯股份有限公司 | 一种对微码表项进行层次化处理的方法和装置 |
WO2012126264A1 (zh) * | 2011-03-21 | 2012-09-27 | 中兴通讯股份有限公司 | 一种对微码表项进行层次化处理的方法和装置 |
CN103023800A (zh) * | 2012-11-29 | 2013-04-03 | 北京航空航天大学 | 采用流表映射调度策略对多核网络处理器下的流量进行调度的方法 |
US9749262B2 (en) | 2013-01-29 | 2017-08-29 | Huawei Technologies Co., Ltd. | Packet processing method and forwarding element |
CN104205742B (zh) * | 2013-01-29 | 2017-04-12 | 华为技术有限公司 | 报文处理方法和转发设备 |
CN104205742A (zh) * | 2013-01-29 | 2014-12-10 | 华为技术有限公司 | 报文处理方法和转发设备 |
WO2014117327A1 (zh) * | 2013-01-29 | 2014-08-07 | 华为技术有限公司 | 报文处理方法和转发设备 |
CN104378295A (zh) * | 2013-08-12 | 2015-02-25 | 中兴通讯股份有限公司 | 表项管理装置及表项管理方法 |
WO2014169874A1 (zh) * | 2013-08-12 | 2014-10-23 | 中兴通讯股份有限公司 | 表项管理装置、表项管理方法及计算机存储介质 |
CN104378295B (zh) * | 2013-08-12 | 2019-03-26 | 中兴通讯股份有限公司 | 表项管理装置及表项管理方法 |
WO2015074182A1 (zh) * | 2013-11-19 | 2015-05-28 | 华为技术有限公司 | 一种基于流表的表项寻址方法、交换机及控制器 |
CN105052087A (zh) * | 2013-11-19 | 2015-11-11 | 华为技术有限公司 | 一种基于流表的表项寻址方法、交换机及控制器 |
US10015095B2 (en) | 2013-11-19 | 2018-07-03 | Huawei Technologies Co., Ltd. | Flow table-based table entry addressing method, switch, and controller |
CN105052087B (zh) * | 2013-11-19 | 2018-10-09 | 华为技术有限公司 | 一种基于流表的表项寻址方法、交换机及控制器 |
CN103986660A (zh) * | 2014-05-30 | 2014-08-13 | 华为技术有限公司 | 加载微码的装置以及加载微码的方法 |
CN104618247A (zh) * | 2014-12-30 | 2015-05-13 | 杭州华三通信技术有限公司 | 一种组播报文的传输方法及装置 |
CN104618247B (zh) * | 2014-12-30 | 2018-10-26 | 新华三技术有限公司 | 一种组播报文的传输方法及装置 |
CN108063715A (zh) * | 2016-11-09 | 2018-05-22 | 中兴通讯股份有限公司 | 虚拟局域网实现方法和终端设备 |
CN108322301A (zh) * | 2017-01-17 | 2018-07-24 | 上海华虹集成电路有限责任公司 | 软件级双轨逻辑中的s盒运算的实现方法 |
CN108683617B (zh) * | 2018-04-28 | 2021-01-01 | 新华三技术有限公司 | 报文分流方法、装置及分流交换机 |
CN108683617A (zh) * | 2018-04-28 | 2018-10-19 | 新华三技术有限公司 | 报文分流方法、装置及分流交换机 |
US11442735B2 (en) | 2018-12-13 | 2022-09-13 | Huawei Technologies Co., Ltd. | Search instruction to access a TCAM and memory to return a program counter value from the TCAM |
CN111324382A (zh) * | 2018-12-13 | 2020-06-23 | 华为技术有限公司 | 指令处理方法和芯片 |
CN111324382B (zh) * | 2018-12-13 | 2023-03-03 | 华为技术有限公司 | 指令处理方法和芯片 |
CN110572322B (zh) * | 2019-08-16 | 2021-07-13 | 苏州工业职业技术学院 | 一种通过修改查找关键字提高组播转发效率的方法 |
CN110572322A (zh) * | 2019-08-16 | 2019-12-13 | 苏州工业职业技术学院 | 一种通过修改查找关键字提高组播转发效率的方法 |
CN111327546A (zh) * | 2020-02-25 | 2020-06-23 | 杭州迪普科技股份有限公司 | 一种报文转发的方法及装置 |
CN112637070A (zh) * | 2020-12-21 | 2021-04-09 | 杭州迪普信息技术有限公司 | 一种表项查找的方法和设备 |
CN112637070B (zh) * | 2020-12-21 | 2022-07-01 | 杭州迪普信息技术有限公司 | 一种表项查找的方法和设备 |
CN117411738A (zh) * | 2023-12-15 | 2024-01-16 | 格创通信(浙江)有限公司 | 组播复制方法、装置、电子设备和存储介质 |
CN117411738B (zh) * | 2023-12-15 | 2024-03-08 | 格创通信(浙江)有限公司 | 组播复制方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101267331A (zh) | 一种组播转发表查找方法和装置 | |
CN103117931B (zh) | 基于哈希表和tcam表的mac地址硬件学习方法及*** | |
CN101719877B (zh) | 一种报文转发装置、网络设备及方法 | |
CN100442775C (zh) | 一种在MAC in MAC网络中实现组播的方法 | |
CN104601959B (zh) | 一种视频监控***及其快速接入网络摄像机的方法 | |
CN101577679B (zh) | 实现指定路由器之间组播业务分担的状态管理方法和装置 | |
CN100433730C (zh) | 组播点播方法及*** | |
US20090190587A1 (en) | Method for deploying multicast network, multicast network and control server | |
CN100456684C (zh) | 一种组播业务的实现方法和网络设备 | |
CN100420193C (zh) | 一种组播转发表输出端口的虚拟标识方法 | |
JP2008079175A (ja) | フレーム転送システム | |
CN101702672A (zh) | 组播数据报文转发方法和转发装置 | |
CN101729425B (zh) | Vrrp组网中流量发送的方法及设备 | |
US9385936B2 (en) | Forwarding groups of multicast flows | |
WO2004092869A2 (en) | Data matrix method and system for distribution of data | |
WO2020114239A1 (zh) | 组播报文的处理方法及装置、存储介质、处理器 | |
CN102104488A (zh) | 一种组播报文处理方法及装置 | |
US8208418B1 (en) | Methods, systems, and computer readable media for conserving multicast port list resources in an internet protocol (IP) packet forwarding device | |
CN100384131C (zh) | 一种大容量组播路由表下提高组播数据转发效率的方法 | |
CN102377646A (zh) | 转发芯片、网络交换***及组播实现方法 | |
CN101924698B (zh) | 基于ip单播路由的二层域负载均衡方法、***和设备 | |
WO2003103302A2 (en) | Delivering multicast streams in a passive optical network | |
CN101132374A (zh) | 一种发送报文的方法及装置 | |
MX2011001608A (es) | Plataforma para enrutamiento de mensajes. | |
CN101510837A (zh) | 以太网桥设备、迁移聚合口地址的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080917 |