发明内容
本发明所要解决的技术问题是提供一种网络设备和报文转发方法,使得网络设备的报文转发处理能力得到有效提高。
为解决上述技术问题,本发明提供技术方案如下:
一种网络设备,包括双多核处理器,所述双多核处理器中包括第一多核处理器和第二多核处理器,其中:
第一多核处理器用于,将从第一多核处理器的外接口接收到的报文分为第一类型报文和第二类型报文,对第一类型报文进行解析查表后发送至第一多核处理器的出接口或者第一、二多核处理器间的接口,将第二类型报文发送至第一、二多核处理器间的接口;将从第一、二多核处理器间的接口接收到的经解析查表后的第二类型报文发送至第一多核处理器的出接口;
第二多核处理器用于,对从第一、二多核处理器间的接口接收到的第二类型报文进行解析查表,将解析查表后的第二类型报文发送至第二多核处理器的出接口或者第一、二多核处理器间的接口;将从第一、二多核处理器间的接口接收到的经解析查表后的第一类型报文发送至第二多核处理器的出接口。
上述的网络设备,其中,所述第一多核处理器中包括:第一分类单元和包括多个核单元的第一转发处理单元,所述第二多核处理器中包括:第二分类单元和包括多个核单元的第二转发处理单元;
第一分类单元用于,将从第一多核处理器的外接口接收到的报文分为第一类型报文和第二类型报文;从第一转发处理单元中选择核单元,将第一类型报文、第二类型报文以及从第一、二多核处理器间的接口接收到的经解析查表后的第二类型报文发送至所选的核单元;
第一转发处理单元中的核单元用于,对第一类型报文进行解析查表后发送至第一多核处理器的出接口或者第一、二多核处理器间的接口;将第二类型报文发送至第一、二多核处理器间的接口;将经解析查表后的第二类型报文发送至第一多核处理器的出接口;
第二分类单元用于,从第二转发处理单元中选择核单元,将从第一、二多核处理器间的接口接收到的第二类型报文以及经解析查表后的第一类型报文发送至所选的核单元;
第二转发处理单元中的核单元用于,对第二类型报文进行解析查表后发送至第二多核处理器的出接口或者第一、二多核处理器间的接口;将经解析查表后的第一类型报文发送至第二多核处理器的出接口。
上述的网络设备,其中,所述第一多核处理器中包括:第一分类单元、包括多个核单元的第一转发处理单元、包括至少一个核单元的第一快速处理单元,所述第二多核处理器中包括:第二分类单元、包括多个核单元的第二转发处理单元、包括至少一个核单元的第二快速处理单元;
第一分类单元用于,将从第一多核处理器的外接口接收到的报文分为第一类型报文和第二类型报文;从第一转发处理单元中选择核单元,将第一类型报文发送至所选的核单元;从第一快速处理单元中选择核单元,将第二类型报文以及从第一、二多核处理器间的接口接收到的经解析查表后的第二类型报文发送至所选的核单元;
第一转发处理单元中的核单元用于,对第一类型报文进行解析查表后发送至第一多核处理器的出接口或者第一、二多核处理器间的接口;
第一快速处理单元中的核单元用于,将第二类型报文发送至第一、二多核处理器间的接口;将经解析查表后的第二类型报文发送至第一多核处理器的出接口;
第二分类单元用于,从第二转发处理单元中选择核单元,将从第一、二多核处理器间的接口接收到的第二类型报文发送至所选的核单元;从第二快速处理单元中选择核单元,将从第一、二多核处理器间的接口接收到的经解析查表后的第一类型报文发送至所选的核单元;
第二转发处理单元中的核单元用于,对第二类型报文进行解析查表后发送至第二多核处理器的出接口或者第一、二多核处理器间的接口;
第二快速处理单元中的核单元用于,将经解析查表后的第一类型报文发送至第二多核处理器的出接口。
上述的网络设备,其中,所述第一多核处理器中还包括控制核单元,所述控制核单元用于生成指导报文解析查表的控制信息,将该控制信息发送至第一、二转发处理单元中的核单元;
第一、二转发处理单元中的核单元,进一步根据接收到的控制信息,对接收到的报文进行解析查表处理。
上述的网络设备,其中,所述控制信息包括:转发表、访问控制列表和业务配置信息。
上述的网络设备,其中,所述第一多核处理器中还包括第一辅助处理单元,所述第二多核处理器中还包括第二辅助处理单元;
所述第一辅助处理单元,用于对第一多核处理器的流量进行限制,和/或,实现对第一多核处理器接口的访问;
所述第二辅助处理单元,用于对第二多核处理器的流量进行限制,和/或,实现对第二多核处理器接口的访问。
一种报文转发方法,在网络设备中设置包括第一多核处理器和第二多核处理器的双多核处理器,所述方法还包括:
第一多核处理器将从第一多核处理器的外接口接收到的报文分为第一类型报文和第二类型报文,对第一类型报文进行解析查表后发送至第一多核处理器的出接口或者第一、二多核处理器间的接口,将第二类型报文发送至第一、二多核处理器间的接口;
第二多核处理器将从第一、二多核处理器间的接口接收到的第二类型报文进行解析查表,将解析查表后的第二类型报文发送至第二多核处理器的出接口或者第一、二多核处理器间的接口;
第二多核处理器将从第一、二多核处理器间的接口接收到的经解析查表后的第一类型报文发送至第二多核处理器的出接口;
第一多核处理器将从第一、二多核处理器间的接口接收到的经解析查表后的第二类型报文发送至第一多核处理器的出接口。
与现有技术相比,本发明的有益效果是:
在本发明中,可以根据特定策略对报文进行分类,使报文在第一、二多核处理器间得到均衡的处理。进一步,根据特定策略选择核单元,将报文分发到不同核单元,实现各个核单元之间的负载均衡,使得各个核单元能够并发地执行报文转发处理。依照本发明,能够有效地提高网络设备的报文转发处理能力,从根本上保证了网络设备的报文转发处理。
具体实施方式
双多核处理器是指在网络设备的转发单元上集成两个多核处理器,在无需提升单个多核处理器的工作频率、核单元数量、硬件架构的情况下,便可使网络设备的转发单元的处理能力得到很大提升。本发明实施例的报文转发方法,在网络设备的转发单元中设置双多核处理器,由所述双多核处理器中的两个多核处理器协调进行报文的转发,从而更加有效地提高网络设备的报文转发处理能力。
本发明实施例的基于双多核处理器的报文转发方法具体包括:
双多核处理器中的一个多核处理器(第一多核处理器)从其外接口接收到报文时,首先对接收到的报文进行分类,将该报文分为第一类型报文和第二类型报文。其中,第一类型报文是需要由第一多核处理器进行解析查表处理的报文,第二类型报文是需要由双多核处理器中的另外一个多核处理器(第二多核处理器)进行解析查表处理的报文。对报文进行分类的方法有多种,例如,根据第一、二多核处理器的负载情况进行平均分配;又例如,对报文进行基于由IP报文五元组确定的流的分类。具体采用哪种分类方法,本领域技术人员可以根据实际需要来确定。其中,对报文进行解析查表包括但不限于:识别不同或者相同种类的报文,提取报文中携带的转发信息,查找转发表,重新封装报文,和/或,为服务质量执行基于各种优先级的队列调度,满足各种业务需求的计费,网络地址转换,报文检测,报文过滤,流量统计。
第一多核处理器对第一类型报文进行解析查表,根据该报文的目的接口的不同,将经解析查表后的第一类型报文发送至第一多核处理器的出接口或者第一、二多核处理器间的接口。第一多核处理器对第二类型报文不进行解析查表,直接将其发送至第一、二多核处理器间的接口。
第二多核处理器从第一、二多核处理器间的接口接收到第二类型报文后,对其进行解析查表,根据该报文的目的接口的不同,将经解析查表后的第二类型报文发送至第二多核处理器的出接口或者第一、二多核处理器间的接口。
第二多核处理器从第一、二多核处理器间的接口接收到经解析查表后的第一类型报文后,直接将其发送至第二多核处理器的出接口。
第一多核处理器从第一、二多核处理器间的接口接收到的经解析查表后的第二类型报文后,直接将其发送至第一多核处理器的出接口。
其中,第一、二多核处理器之间通过控制总线和数据总线连接。所述控制总线可以为:PCI总线、PCI快速(PCI-E)总线、超级传输(Hyper Transport,HT)总线;所述数据总线可以为:XAUI(10Gb以太网连接单元接口)总线、XGMII(10Gb独立于媒体的接口)总线、SPI4(标称带宽为9.953Gb/s的SPI接口)总线。
图1为本发明实施例中一种基于双多核处理器的集中式转发网络设备的结构示意图;图2为本发明实施例中一种基于双多核处理器的分布式转发网络设备的结构示意图。如图1、2所示,所述网络设备的转发单元中包括双多核处理器,所述双多核处理器中包括:多核处理器0和多核处理器1,其中,
多核处理器0:包括多个核单元(core),从多核处理器0的外接口接收报文,对接收到的报文进行分类,将该报文分为第一类型报文和第二类型报文。对第一类型报文进行解析查表,根据该报文的目的接口的不同,将经解析查表后的第一类型报文发送至多核处理器0的出接口或者多核处理器0、1间的接口。将第二类型报文直接发送至多核处理器0、1间的接口。从多核处理器0、1间的接口接收经解析查表后的第二类型报文,直接将其发送至多核处理器1的出接口。
多核处理器1:包括多个核单元(core),从多核处理器0、1间的接口接收第二类型报文,对接收到的第二类型报文进行解析查表,根据该报文的目的接口的不同,将经解析查表后的第一类型报文发送至多核处理器1的出接口或者多核处理器0、1间的接口。从多核处理器0、1间的接口接收经解析查表后的第一类型报文,直接将其发送至多核处理器2的出接口。其中,多核处理器1到主控板中的交换芯片的接口可以认为是多核处理器1的一个出接口。
多核处理器0、1间包括数据总线和控制总线,数据总线传递两个多核处理器的报文数据,可以通过XAUI、XGMII、SPI4等实现,控制总线传递两个多核处理器的控制信息,可以通过PCI、PCI-E、HT等实现。较优的实现方式是控制信息和数据报文承载总线分离;当然也可以在一个总线中同时传递控制信息和数据报文。
图3为本发明实施例的网络设备中双多核处理器的结构示意图。如图3所示,双多核处理器中包括多核处理器0和多核处理器1,多核处理器0中包括:控制核单元、分类单元0和包括多个核单元的转发处理单元0;多核处理器1中包括:分类单元1和包括多个核单元的转发处理单元1。其中,
分类单元0:从多核处理器0的外接口接收报文,对接收到的报文进行分类,将该报文分为第一类型报文和第二类型报文。从多核处理器0、1间的接口接收经解析查表后的第二类型报文。从转发处理单元0中选择核单元,将第一类型报文、第二类型报文以及从多核处理器0、1间的接口接收到的经解析查表后的第二类型报文发送至所选的核单元。
转发处理单元0中的核单元:对第一类型报文进行解析查表,根据该报文的目的接口的不同,将经解析查表后的第一类型报文发送至多核处理器0的出接口或者多核处理器0、1间的接口。将第二类型报文直接发送至多核处理器0、1间的接口。将经解析查表后的第二类型报文发送至多核处理器0的出接口。
分类单元1:从转发处理单元1中选择核单元,将从多核处理器0、1间的接口接收到的第二类型报文以及经解析查表后的第一类型报文发送至所选的核单元;
转发处理单元1中的核单元:对第二类型报文进行解析查表,根据该报文的目的接口的不同,将经解析查表后的第二类型报文发送至多核处理器1的出接口或者多核处理器0、1间的接口。将经解析查表后的第一类型报文直接发送至多核处理器1的出接口。
控制核单元:用于生成指导报文解析查表的控制信息,将该控制信息发送至转发处理单元0、1中的核单元。所述控制信息包括:转发表、访问控制列表和业务配置信息。转发处理单元0、1中的核单元,进一步根据接收到的控制信息,对接收到的报文进行解析查表处理。
上述的分类单元0和分类单元1可以由多核处理器的一个或几个核实现,也可以由多核处理器的硬件报文解析加速引擎实现。控制核与转发处理单元0通过芯片内部的高速总线连接,控制核与转发处理单元1通过两个多核处理器的控制总线连接,如PCI总线、PCI-E总线、HT总线等。转发处理单元0和分类单元1之间、转发处理单元1和分类单元0之间可以通过XAUI、XGMII、SPI4等高速总线实现。
在上述实施例中,控制核单元位于多核处理器0中,其也可位于多核处理器1中。
在上述实施例中,对多核处理器0、1中各模块的功能描述是基于从多核处理器0的外接口接收到报文为基础的。当报文从多核处理器1的外接口进入网络设备时,对报文的转发处理与以上描述类似,即:由分类单元1对接收到的报文进行分类,将该报文分为第一类型报文和第二类型报文,仍然由转发处理单元0中的核单元对第一类型报文进行解析查表,由转发处理单元1中的核单元对第二类型报文进行解析查表,并根据报文目的接口的不同,将解析查表后的报文发送至多核处理器0或多核处理器1的出接口。
另外,从上述实施例的描述可知,转发处理单元0、1主要包括两种应用:第一种应用是对报文进行解析查表,第二种应用是无需对报文进行解析查表。显然,第二种应用可以用较少的核就可以实现。因此,在本发明的另一实施例中,还在多核处理器0、1中设置快速处理单元(快速处理单元中每个核单元的核数目小于转发处理单元中每个核单元的核数目),快速处理单元仅需要把接收到的报文从接口转发出去,接口包括:多核处理器0、1的出接口,多核处理器0、1间的接口。
参照图4,优化的双多核处理器中包括多核处理器0和多核处理器1,多核处理器0中包括:控制核单元、分类单元0、包括多个核单元的转发处理单元0、包括至少一个核单元的快速处理单元0;多核处理器1中包括:分类单元1、包括多个核单元的转发处理单元1、包括至少一个核单元的快速处理单元1。其中,
分类单元0:从多核处理器0的外接口接收报文,对接收到的报文进行分类,将该报文分为第一类型报文和第二类型报文。从多核处理器0、1间的接口接收经解析查表后的第二类型报文。从转发处理单元0中选择核单元,将第一类型报文发送至所选的核单元。从快速处理单元0中选择核单元,将第二类型报文以及从多核处理器0、1间的接口接收到的经解析查表后的第二类型报文发送至所选的核单元。
转发处理单元0中的核单元:对第一类型报文进行解析查表,根据该报文目的接口的不同,将经解析查表后的第一类型报文发送至多核处理器0的出接口或者多核处理器0、1间的接口。
快速处理单元0中的核单元:将第二类型报文发送至多核处理器0、1间的接口。将经解析查表后的第二类型报文发送至多核处理器0的出接口。
分类单元1:从转发处理单元1中选择核单元,将从多核处理器0、1间的接口接收到的第二类型报文发送至所选的核单元。从快速处理单元1中选择核单元,将从多核处理器0、1间的接口接收到的经解析查表后的第一类型报文发送至所选的核单元。
转发处理单元1中的核单元:对第二类型报文进行解析查表,根据该报文的目的接口的不同,将经解析查表后的第二类型报文发送至多核处理器1的出接口或者多核处理器0、1间的接口。
快速处理单元1中的核单元:将经解析查表后的第一类型报文发送至多核处理器1的出接口。
控制核单元:用于生成指导报文解析查表的控制信息,将该控制信息发送至转发处理单元0、1中的核单元。所述控制信息包括:转发表、访问控制列表和业务配置信息。转发处理单元0、1中的核单元,进一步根据接收到的控制信息,对接收到的报文进行解析查表处理。
图5为双多核处理器的另外一种优化结构示意图。图5所示的双多核处理器与图3中的双多核处理器的区别在于,为每个多核处理器预留至少一个核单元实现辅助处理单元,辅助处理单元可以实现限制多核处理器流量、特定处理器接口访问等,以保证多核处理器中的核单元高效可靠的工作。即,在多核处理器0中还包括辅助处理单元0,在多核处理器1中还包括辅助处理单元1。其中,
辅助处理单元0:用于对多核处理器0的流量进行限制,和/或,实现对多核处理器0接口的访问;
辅助处理单元1:用于对多核处理器1的流量进行限制,和/或,实现对多核处理器1接口的访问。
此外,基于复杂的网络转发应用,转发处理单元中的几个核单元也可以按照流行流水线的方式工作,以提高某些特定业务的转发性能。
以下给出本发明的一个应用实例。
参照图6,为基于双多核处理器实现基于开放式应用平台(OAP)架构的防火墙插卡,双多核处理器中的多核处理器0、1协同工作,提高了设备的性能。结合具体的应用,便于产品实现,相比较前面介绍的基于双多核处理器的网络设备,本实例中的网络设备及其处理流程进行了简化。
来自路由器、交换机、网关等的报文被多核处理器0的分类单元分发两类:第一类型报文和第二类型报文。第一类型报文交给多核处理器0内部的核处理,第二类型报文交给多核处理器1。多核处理器0内部的核处理完相应的业务(如访问控制列表、报文深度检测、应用层报文过滤等)后,将第一类型报文转发回到路由器、交换机、网关等。多核处理器0未作处理直接转发到多核处理器1的第二类型报文,被多核处理器1的分类单元分发给多核处理器1内部的核,多核处理器1内部的核处理完相应的业务后,将第二类型报文转发回到多核处理器0,多核处理器0再将该报文转发给路由器、交换机、网关等。
图7和图8分别为图6所示的防火墙插卡中的多核处理器0、1的报文处理流程示意图。如图6、7、8所示:
首先,预先在多核处理器0和多核处理器1中分别设置分类单元、包括多个核单元的转发处理单元、包括多个核单元的快速处理单元、包括多个核单元的辅助处理单元;
其次,在多核处理器0中预先设置控制核单元,在网络设备的运行过程中,控制核单元生成指导报文解析查表的控制信息,将控制信息发送到转发处理单元中的各个核单元,必要时需要多核处理器1的辅助处理单元协助完成控制信息的传递,控制信息可以是转发表、访问控制列表、防火墙业务配置信息等;
第三,当报文到达多核处理器0从外接口时,多核处理器0的分类单元接收该报文,将接收到的报文发送到所选择的核单元,基于配置一部分报文被发送到转发处理单元中的核单元,一部分报文被发送到快速处理单元中的核单元;
第四,多核处理器0的快速处理单元中的核单元不对报文进行解析查表处理,直接将报文转发到多核处理器0、1间的接口;
第五,多核处理器0的转发处理单元中的核单元对报文进行解析查表处理,处理完毕的报文从出接口转发出去;
第六,多核处理器1中的分类单元从多核处理器0、1间的接口接收到报文后,将接收到的报文发送到所选择的转发处理单元中的核单元;
第七,多核处理器1的转发处理单元中的核单元对报文进行解析查表处理,处理完毕的报文返回到多核处理器0、1间的接口;
第八,多核处理器0的报文分类单元将来自多核处理器1的报文分发给多核处理器0的快速处理单元中的核单元,该核单元将报文直接发送到出接口。
辅助处理单元不参与报文的业务处理和转发,其用于实现各种辅助的业务:对转发处理单元和快速处理单元的流量进行限制,确保转发处理单元和快速处理单元没有过负荷的运作;实现特定接口访问,如HT/PCI接口访问,确保该接口高速的总线性能。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案而非限制,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神范围,其均应涵盖在本发明的权利要求范围当中。