CN101631075A - 一种报文处理方法和设备 - Google Patents

一种报文处理方法和设备 Download PDF

Info

Publication number
CN101631075A
CN101631075A CN200910090536A CN200910090536A CN101631075A CN 101631075 A CN101631075 A CN 101631075A CN 200910090536 A CN200910090536 A CN 200910090536A CN 200910090536 A CN200910090536 A CN 200910090536A CN 101631075 A CN101631075 A CN 101631075A
Authority
CN
China
Prior art keywords
cpu
service processing
processing operation
interface board
identification information
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
Application number
CN200910090536A
Other languages
English (en)
Inventor
李洪波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN200910090536A priority Critical patent/CN101631075A/zh
Publication of CN101631075A publication Critical patent/CN101631075A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种报文处理方法和设备,该方法应用于包含多个接口板的网络交换设备中,每一接口板包含CPU,从各个接口板包含的CPU中确定出一个以上用于执行业务处理操作的CPU;该方法包括:A,所述网络交换设备的接口板当前接收到需要执行业务处理操作的报文时,从所述用于执行业务处理操作的CPU中确定用于对当前接收的报文执行业务处理操作的CPU;将所述当前接收的报文发送给该确定出的CPU,由该CPU对当前接收的报文执行业务处理。采用本发明,能够提高网络交换设备的业务性能处理能力。

Description

一种报文处理方法和设备
技术领域
本发明涉及网络通信技术,特别涉及一种报文处理方法和设备。
背景技术
目前,网络交换设备比如路由器和交换机典型的结构主要由主控板和接口板组成。其中,主控板具有管理和控制接口板等功能,其至少包括:交换芯片(CROSSBAR),该CROSSBAR用于与该网络交换设备中的所有接口板连接;接口板具有报文转发功能,主要包括转发芯片(NP/ASIC)和CPU,其中,NP/ASIC用于负责报文的转发,CPU与主控板通信,主要包括:检测主控板的状态和接收主控板的指令,并按照该指令执行相应的操作。
参见图1,图1为现有技术中网络交换设备的结构图。如图1所示,该网络交换设备包括主控板和N个接口板,其中,主控板和每一接口板的功能如上所述。目前,随着网络技术的不断发展,越来越多的网络交换设备可以独立对传输中的业务流即会话的报文进行业务处理,其中,业务处理包括网络地址转换(NAT:Net Address Translation)、附带协议转换的网络地址转换(NATPT:Net Address Translation-Protocol Translation)、网络流统计(NS:Net Stream)和防火墙(FW:Fire Wall)中的至少一个。下面以图1所示的网络交换设备为例对现有网络交换设备独立执行业务处理的流程进行描述。
首先,从各个接口板包含的各个CPU中指定出一个用于执行业务处理操作的CPU。这里,可按照接口板上CPU业务处理性能高的原则指定用于执行业务处理操作的CPU,比如图1所示的各个接口板上,接口板1上CPU的业务处理性能高于其他接口板(接口板2至接口板N)上CPU的业务处理性能,如此,指定接口板1上的CPU为用于执行业务处理操作的CPU。
之后,当网络交换设备的其中一个接口板比如接口板2(当然也可为接口板1或者其他接口板,其执行的操作与接口板2类似)接收到一个报文后,接口板2上的NP/ASIC判断接收的报文是否满足预设的业务处理条件,其中,所述预设的业务处理条件为NAT、NATPT、NS和FW分别对应的业务处理条件中的至少一个;如果否(具体为接收的报文不满足NAT、NATPT、NS和FW分别对应的业务处理条件中的任何一个),接口板2查找到达下一跳的输出端口,并通过该输出端口发送接收的报文;如果是,接口板2上的NP/ASIC将接收的报文重定向到指定的CPU,并由该指定的CPU对该接收的报文执行相应的业务处理操作。其中,指定的CPU对该接收的报文执行相应的业务处理操作主要包括:指定的CPU判断接收的报文满足NAT、NATPT、NS和FW分别对应的业务处理条件中的哪一个,比如判断出接收的报文满足NAT对应的业务处理条件,则对该接收的报文执行NAT处理操作。当指定的CPU完成相应的业务处理后,该指定的CPU发送给与其处于同一接口板上的NP/ASIC,之后,按照现有的转发流程执行由指定的CPU执行了业务处理的报文。
通过以上描述可以看出,现有方法主要是由预先指定的一个CPU来对网络交换设备中所有接口板接收的报文执行业务处理操作,也就是说,现有方法是由一个固定的接口板上的CPU统一对网络交换设备中所有接口板上接收的报文执行业务处理操作,这样,就大大加重了该CPU的业务处理负荷,降低了业务处理速度,进而也降低了网络交换设备的业务处理能力。
发明内容
本发明提供了一种报文处理方法和设备,以便提高网络交换设备的业务处理能力。
一种报文处理方法,该方法应用于包含多个接口板的网络交换设备中,每一接口板包含CPU,从各个接口板包含的CPU中确定出一个以上用于执行业务处理操作的CPU;该方法包括:
A,所述网络交换设备的接口板当前接收到需要执行业务处理操作的报文时,从所述用于执行业务处理操作的CPU中确定用于对当前接收的报文执行业务处理操作的CPU;将所述当前接收的报文发送给该确定出的CPU,由该CPU对当前接收的报文执行业务处理。
一种报文处理设备,该设备应用于包含多个接口板的网络交换设备中,每一接口板包含CPU,该设备包括:第一确定单元、判断单元、第二确定单元和发送单元;其中,
所述第一确定单元用于从各个接口板包含的CPU中确定出一个以上用于执行业务处理操作的CPU;
所述判断单元用于在网络交换设备的接口板接收到报文时,判断该接口板接收到报文是否需要执行业务处理操作;
所述第二确定单元用于在所述判断单元的判断结果为是时,从所述第一确定单元确定出的用于执行业务处理操作的CPU中确定出用于对当前接收的报文执行业务处理操作的CPU;
所述发送单元将所述当前接收的报文发送给所述第二确定单元确定出的CPU,由该CPU对所述当前接收的报文执行业务处理。
由以上技术方案可以看出,本发明提供的方法和设备中,并非现有技术中由预先指定的一个CPU统一对网络交换设备中所有接口板接收的报文执行业务处理操作,而是在各个接口板接收到报文后,由各个接口板动态选择用于针对当前接收的报文执行业务处理操作的CPU,如此,避免了现有方法中由一个的固定的接口板上的CPU统一对网络交换设备中所有接口板上接收的报文执行业务处理操作的缺陷,大大提高了网络交换设备的业务处理能力。
附图说明
图1为现有技术中网络交换设备的结构图;
图2为本发明实施例提供的基本流程图;
图3为本发明实施例提供的详细流程图;
图4为本发明实施例提供的设备结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
在实际的业务实现中,网络交换设备包含了多块接口板,并且,网络交换设备中通常绝大多数接口板上的CPU甚至是全部接口板上的CPU都能够对报文执行相应的业务处理操作,因此,完全可以不必局限于现有技术使用固定的一个CPU执行业务处理操作的做法,而是完全可以灵活地选择对应地CPU执行业务处理操作,从而大大提高了网络交换设备的报文处理能力。
基于此,本发明提供了一种报文处理方法,具体可参见图2。图2为本发明实施例提供的基本流程图,本实施例可应用于包含多个接口板的网络交换设备中,其中,CPU是每一接口板上必不可少的硬件。如图2所示,该流程可包括以下步骤:
步骤201,从各个接口板包含的CPU中确定出用于执行业务处理操作的CPU。
这里,步骤201中的操作具体可由网络交换设备中的主控板执行。通常,网络交换设备中的接口板在启动时,该接口板就会向主控板发送注册请求,其中,该注册请求携带了该接口板上CPU的业务处理性能信息,比如业务处理性能值,或者该CPU的核数(随着CPU的处理性能不断提高,CPU也从单核技术发展到多核技术,如3核CPU,4核CPU等),如此,步骤201中主控板可根据各个接口板发送的注册请求所携带的CPU的业务处理性能信息来确定出用于执行业务处理操作的CPU。具体实现时可包括:根据实际情况设定适用于执行业务处理操作的CPU业务处理性能条件(可为CPU的业务处理性能阈值或核数阈值)之后,针对每一接口板,判断该接口板发送的注册请求携带的CPU的业务处理性能信息是否满足预设的CPU业务处理性能条件(比如,若注册请求携带的业务处理性能信息为业务处理性能值,CPU业务处理性能条件为CPU的业务处理性能阈值,则判断该注册请求携带的业务处理性能值是否大于或者等于CPU的业务处理性能阈值),如果是,确定该CPU为用于执行业务处理操作的CPU;如果否,确定该CPU不为用于执行业务处理操作的CPU。当然,为节省主控板资源,本发明实施例中,步骤201中的操作还可由用户预先根据各个接口板启动时发送的注册请求所携带的CPU的业务性能信息确定出用于执行业务处理操作的各个CPU,因此,图2所示的只是一种举例,并非限定本发明实施例的应用。
其中,优选地,步骤201中确定出的用于执行业务处理操作的CPU的个数至少为一个。为便于后续接口板接收到需要执行业务处理操作的报文后对该报文执行业务处理操作,在主控板确定出用于执行业务处理操作的CPU后,该主控板还需将确定出的CPU的信息告知给网络交换设备中的所有接口板。如此,即可执行步骤202。
步骤202,当网络交换设备中的一接口板接收到报文时,判断当前接收的报文是否需要执行业务处理操作,如果是,执行步骤203;否则,按照现有流程直接转发该接收的报文。
这里,判断当前接收的报文是否需要执行业务处理操作具体可为:判断当前接收的报文是否满足预设的业务处理条件,其中,预设的业务处理条件为NAT、NATPT、NS和FW分别对应的业务处理条件中的至少一个;其中,NAT、NATPT、NS和FW对应的业务处理条件可以相同,也可不同,如果是,确定当前接收的报文需要执行业务处理操作;否则,在判断出当前接收的报文不满足NAT、NATPT、NS和FW分别对应的业务处理条件中的任何一个时,确定当前接收的报文不需要执行业务处理操作。优选地,本实施例中判断当前接收的报文是否需要执行业务处理操作的具体判断方式,可与现有技术类似,这里不再赘述。
步骤203,从步骤201中确定出的用于执行业务处理操作的CPU中确定出用于对当前接收的报文执行业务处理操作的CPU。
这里,之所以执行步骤203,是为了保证本实施例中并非将所有接口板接收的报文的业务处理操作都集中到一个CPU上。比如,在步骤201中确定出的用于执行业务处理操作的CPU的个数为3,如此,执行到本步骤203时,需要从已确定出的3个用于执行业务处理操作的CPU中确定出其中一个来对当前接收的报文执行业务处理操作。
其中,步骤203的确定操作可按照负载均衡原则(记为原则1),和/或,两个用户之间交互的报文的业务处理操作由同一个CPU执行的原则(记为原则2)从步骤201中确定出的用于执行业务处理操作的CPU中确定出用于对当前接收的报文执行业务处理操作的CPU,其中,负载均衡原则是不使所有接口板接收的报文的业务处理操作都集中在一个固定的CPU上,而是使确定出的用于执行业务处理操作的CPU的业务处理分担均匀;而同一个CPU对两个用户之间交互的报文进行业务处理的原则是用户A发送给用户B的报文(其中,该报文的源地址和目的地址分别为用户A的地址和用户B的地址)和用户B发送给用户A的报文(其中,该报文的源地址和目的地址分别为用户B的地址和用户A的地址)的业务处理操作由同一个CPU执行。至于步骤203如何按照原则1和/或原则2确定出用于对当前接收的报文执行业务处理操作的CPU,具体参见图3所示的流程,这里不再详述。
步骤204,将当前接收的报文发送给步骤203确定出的CPU,由该CPU对当前接收的报文执行相应的业务处理。
如此,通过上述操作实现了本发明实施例提供的基本流程。为便于理解本发明实施例提供的方案,下面对本发明实施例提供的流程进行详述。
参见图3,图3为本发明实施例提供的详细流程图,该方法应用于网络交换设备中,其中,网络交换设备的结构以图1所示的结构为例,如图3所示,该流程可包括以下步骤:
步骤301,网络交换设备的主控板接收网络交换设备中各个接口板在启动时发送的注册请求。
这里,当网络交换设备的每一接口板启动时,该接口板就会向主控板发送注册请求,其中,该注册请求携带了该接口板上CPU的业务处理性能信息。
步骤302,判断接收的注册请求携带的业务处理性能信息是否满足预设的CPU业务处理性能条件,如果是,执行步骤303,否则,忽略该注册请求。
这里,步骤302中的判断操作具体实现时可有多种形式,比如:若注册请求携带的业务处理性能信息具体为业务处理性能值,则本步骤302中的CPU业务处理性能条件为CPU的业务处理性能阈值,如此,步骤302中的判断操作为:判断该注册请求携带的业务处理性能值是否大于或者等于CPU的业务处理性能阈值;若注册请求携带的业务处理性能信息具体为发送该注册请求的接口板上CPU的核数,本步骤302中的CPU业务处理性能条件为核数阈值比如3核,如此,步骤302中的判断操作为:判断该注册请求携带的CPU的核数是否大于等于核数阈值比如3核。当然,本发明也可采用其他方式确定出用于执行业务处理操作的CPU,这里并不具体限定。
这里,步骤302在判断出注册请求携带的业务处理性能信息满足预设的CPU业务处理性能条件时,可确定发送该注册请求的接口板上的CPU为用于执行业务处理操作的CPU。
步骤303,记录该接收的注册请求携带的CPU的标识信息。
这里,接口板启动时发送的注册请求中还携带了该接口板上CPU的标识信息,如此,主控板很容易在接收的注册请求携带的业务处理性能信息满足预设的CPU业务处理性能条件时,记录该注册请求携带的CPU的标识信息。
其中,CPU的标识信息具体可为用于唯一标识CPU的信息,具体实现时可有多种实现形式,本发明实施例以设备号和端口号作为CPU的标识信息为例,其中,设备号为CPU当前所处的接口板的号码(记为设备号),端口号为CPU当前所处的接口板上端口的号码(记为端口号)。
步骤304,从第一预设值起对步骤303记录的各个CPU的标识信息进行连续编号。
这里,第一预设值可为1或者为其他值,本发明实施例并不具体限定。比如,若步骤303记录的CPU的标识信息为3个CPU的标识信息,其中一个CPU的标识信息为:设备号为2,端口号为5,另一个CPU的标识信息为:设备号为3,端口号为5;最后一个CPU的标识信息为:设备号为4,端口号为5,如此,执行到本步骤304时,若第一预设值为1,则对这3个CPU的标识信息进行编号,具体可如表1所示:表1
  编号   设备号   端口号
  1   2   5
  2   3   5
  3   4   5
如此,通过步骤304,即可形成记录的各个CPU的标识信息和编号之间的对应关系。
需要说明的是,形成的各个CPU的标识信息和该各个CPU的标识信息的编号之间的对应关系并非一成不变的,其可随着增加或者删减网络交换设备中的接口板而动态变化。比如,假如当前形成的对应关系具体如表1所示,若需要在网络交换设备中增加一接口板,当该增加的接口板启动时会向主控板发送注册请求,该注册请求中携带了该增加的接口板上CPU的业务处理性能信息和该CPU的标识信息,如此,主控板可按照步骤302的操作判断该注册请求携带的CPU的业务处理性能信息是否满足预设的CPU业务处理性能条件,如果否,按照现有技术的流程处理该新增加的接口板;如果是,在表1中添加该增加的接口板上的CPU的标识信息和对应的编号(其中,该添加的编号具体可为表1中最后一个编号与1的和,即为3+1=4),若新增加的接口板上的CPU的标识信息为:设备号为5,端口号为4,则表1更新为下述的表2;
表2
  编号   设备号   端口号
  1   2   5
  2   3   5
  3   4   5
  4   5   4
当然,若当前有一接口板需要退出(记为需要在网络交换设备中删减接口板),在该接口板退出时,该接口板需要发送退出请求给主控板,该退出请求中携带了该要退出的接口板上CPU的标识信息,如此,当主控板接收到退出请求后,判断该退出请求携带的CPU的标识信息是否存在于当前已形成的对应关系中,如果否,按照现有技术的流程处理该退出的接口板;如果是,从当前存在的对应关系中删除该CPU的标识信息和该标识信息的编号,并相应调整后续CPU的标识信息的编号。以当前形成的对应关系如表1所示为例,若当前需要删减一接口板,即,使该接口板退出,当主控板接收到退出请求后,在表1中查找该退出请求携带的CPU的标识信息,如果没有查找到,则按照现有流程处理该退出的接口板;如果查找到,则在表1中删除该CPU的标识信息和该CPU的标识信息对应的编号,并相应调整后续CPU的标识信息的编号。比如,若发送的退出请求携带的CPU的标识信息为:设备号为3,端口号为5,根据表1可知,表1中存在设备号为3,端口号为5的信息,如此,在表1中删除设备号为3,端口号为5,以及编号为2之间的对应关系;并相应调整后续CPU的标识信息的编号,具体参见下述表3:表3
  编号   设备号   端口号
  1   2   5
  2   4   5
需要说明的是,上述步骤302至步骤304的操作是由主控板动态执行的。优选地,为节省主控板资源,本发明实施例中,还可由用户根据各个接口板启动时发送的注册请求所携带的CPU的业务性能信息和标识信息手工配置出用于执行业务处理操作的各个CPU的标识信息和编号之间的对应关系,之后,执行步骤305。因此,图3所示的只是一种举例,并非限定本发明实施例的应用。
步骤305,主控板将各个CPU的标识信息和该各个CPU的标识信息的编号之间的对应关系发送给所有的接口板。
这里,主控板通过CROSSBAR将各个CPU的标识信息和该各个CPU的标识信息的编号之间的对应关系发送给所有接口板。
步骤306,接口板将接收到的主控板发送的各个CPU的标识信息和该各个CPU的标识信息的编号之间的对应关系存储到自身的NP/ASCIC上。
如此,通过上述步骤,实现了各个接口板获取主控板形成的用于执行业务处理操作的各个CPU的标识信息和该各个CPU的标识信息的编号之间的对应关系的操作。
步骤307,当网络交换设备的一接口板接收到报文时,该接口板上的NP/ASCIC判断当前接收的报文是否满足预设的业务处理条件,如果是,执行步骤308,如果否,按照现有流程直接进行报文的转发。
这里,由于业务处理包括:NAT、NATPT、NS和FW中的至少一个;因此,本步骤307中预设的业务处理条件具体可为NAT、NATPT、NS和FW分别对应的业务处理条件中的至少一个。需要说明的是,NAT、NATPT、NS和FW分别对应的业务处理条件可相同,也可不同。具体地,接口板上的NP/ASCIC判断当前接收的报文是否满足预设的业务处理条件具体可与现有技术类似,这里不再赘述。
其中,当判断当前接收的报文满足预设的业务处理条件时,确定该当前接收的报文为需要执行业务处理操作的报文,之后,执行步骤308;在判断结果为否时,确定该当前接收的报文为不需要执行业务处理操作的报文,按照现有流程直接进行该报文的转发。
步骤308,将所述源地址和所述目的地址进行异或运算,得到第一异或结果。
通常,网络中传输的报文携带的源地址和目的地址的位(bit)数相同,比如为32bit,或者64bit等。若源地址和目的地址的大小为32bit,则步骤308可用下式表示:
32bit SIP XOR 32bit DIP  =result_1。
其中,SIP为源地址,DIP为目的地址,XOR为异或运算,result_1为第一异或结果。
步骤309,将第一异或结果中的高N位和低N位进行异或运算,得到第二异或结果。
这里,N为正整数,大于等于1,且小于源地址或目的地址的位数,本实施例以16为例。其中,高N位具体是从高位开始的N位;低N位具体是从低位开始的N位。
若步骤308中的第一异或结果为result_1,N为16,则步骤309可用下式表示:
result_1高16位XORresult_1低16位=第二异或结果。
需要说明的是,上述步骤308和步骤309主要是为了保证两个用户之间交互的报文的业务处理操作由同一个CPU执行。本领域技术人员知道,防火墙有一项基本功能,即,受保护区域的用户1(地址设为IP1)主动向非保护区域的用户2(地址设为IP2)发起访问后,非保护区域的用户2才能访问保护区域用户1,为了实现该功能,就需要用户2返回给用户1的报文的防火墙处理操作和用户1返回给用户2的报文的防火墙处理操作由同一个CPU执行。这是因为:在用户1发送报文(记为报文1)给用户2的过程中,若报文1满足了预设的防火墙处理条件,则用于对报文1执行防火墙处理的CPU(记为CPU1)记录了用户1访问用户2的一条表项,当用户2返回报文(记为报文2)给用户1时,用于对报文2执行业务处理的CPU查找用户1访问用户2的记录,如果该CPU为CPU1,则能查找到用户1访问用户2的记录,如此,即可允许用户2访问用户1,否则禁止用户2访问用户1。因此,为了实现该防火墙的上述功能,需要执行上述步骤308至步骤309。
步骤310,将第二异或结果除以确定出的用于执行业务处理操作的CPU的总数,得到余数。
这里,确定出的用于执行业务处理操作的CPU的总数为步骤303中记录的CPU的标识信息的个数。
其中,步骤308中得到的余数最小为0,最大为确定出的用于执行业务处理操作的CPU的总数与1的差。
步骤311,将步骤310得到的余数和第一预设值相加,得到相加的结果X,从当前存储的CPU的标识信息和编号之间的对应关系中查找到编号为X的CPU的标识信息。
这里,由于步骤304是从第一预设值开始对步骤303记录的各个CPU的标识信息进行连续编号的,并且在步骤310中,得到的余数最小为0,最大为确定出的用于执行业务处理操作的CPU的总数与1的差,因此,本步骤311为了便于查找到对应的CPU的标识信息,需要将得到的余数与该第一预设值相加,得到X;之后,在当前存储CPU的标识信息和编号之间的对应关系中查找到编号为X的标识信息,将该标识信息对应的CPU确定出对用于对当前接收的报文执行业务处理操作的CPU。比如,若当前存储的CPU的标识信息和编号之间的对应关系如表1所示,本步骤中的X为2,则在表1中查找编号为2的标识信息,即设备号为3,端口号为5;如此,将设备号为3,端口号为5所对应的CPU(具体为接口板3上处于端口号为5的端口上的CPU)为用于对当前接收的报文执行业务处理操作的CPU。
需要说明的是,步骤310至步骤311简单可概括为:根据第二异或结果从用于执行业务处理操作的CPU中确定出用于对当前接收的报文执行业务处理操作的CPU的操作,具体实现方式可为上述步骤310至步骤311的操作,或者其他方式,之所以执行该步骤310至步骤311,目的是为了保证本实施例中并非将所有接口板接收的报文的业务处理操作都集中到一个CPU上。
如此,通过上述步骤308至步骤311可实现确定出用于对当前接收的报文执行业务处理操作的CPU的操作。
需要说明的是,上述实施例是以按照原则1,和/或原则2确定出用于对当前接收的报文执行业务处理操作的CPU的操作。优选地,本发明实施例也可不按照原则1和原则2两个原则中任何一个实现确定出用于对当前接收的报文执行业务处理操作的CPU的操作,具体实现时可有多种实现形式,比如,从各个接口板包含的CPU中确定出一个以上用于执行业务处理操作的CPU;每一接口板接收到报文后,若该报文满足预设的业务处理条件,则该接口板判断与其最相邻的接口板上的CPU是否为确定出的用于执行业务处理操作的CPU,如果是,将当前接收的报文发送给与其最相邻的接口板上的CPU,由该CPU执行相应的业务处理操作。当然,本领域技术人员根据本申请的主要思想也可得到即使本发明实施例按照原则1和原则2两个原则中至少一个确定出用于对当前接收的报文执行业务处理操作的CPU的操作时,也可不执行上述步骤,比如,从各个接口板包含的CPU中确定出一个以上用于执行业务处理操作的CPU;每一接口板接收到报文后,若该报文满足预设的业务处理条件,将当前接收的报文携带的源地址和目的地址进行异或运算,得到第一异或结果;将第一异或结果中的高N位和低N位进行异或运算,得到第二异或结果;之后,根据第二异或结果从确定出的用于执行业务处理操作的CPU中确定出用于对当前接收的报文执行业务处理操作的CPU。其中,根据第二异或结果从确定出的用于执行业务处理操作的CPU中确定出用于对当前接收的报文执行业务处理操作的CPU具体实现时可有多种形式,比如:判断设备号为第二异或结果的接口板上的CPU是否为用于执行业务处理操作的CPU,如果是,将该设备号为第二异或结果的接口板上的CPU确定为用于对当前接收的报文执行业务处理操作的CPU;或者将第二异或结果除以预设值,得到余数,判断设备号为该余数的接口板上的CPU是否为用于执行业务处理操作的CPU,如果是,将该设备号为余数的接口板上的CPU确定为用于对当前接收的报文执行业务处理操作的CPU。如此,可以看出,图3所示的只是一种举例,并非限定本发明实施例的应用。
步骤312,将查找到的标识信息封装到该当前接收的报文中,之后,发送该报文给步骤311查找到的标识信息对应的CPU,由该CPU对接收的报文执行相应的业务处理操作。
这里,步骤312中的操作具体可为:将查找到的标识信息封装到该报文的转发头中,之后,发送该报文给主控板;主控板接收到报文后,根据接收的报文的转发头上封装的标识信息将该报文发送给对应的接口板,这里,若标识信息为设备号和端口号,则主控板根据接收的报文的转发头上封装的设备号将该报文发送给该设备号对应的接口板;接口板接收到报文后,根据接收的报文中转发头上封装的端口号发送该接收的报文给处于该端口号对应的端口上的CPU,如此,当CPU接收到报文后,按照现有流程对该报文执行相应的业务处理。
如此,通过上述操作实现了本发明实施例提供的流程。
需要说明的是,CPU执行的一些业务处理操作,比如NAT,或者NATPT中需要对接收的报文(记为正向报文)携带的地址(源地址和/或目的地址)进行转换,这样,当后续再需要发送响应该接收的报文的报文(记为反向报文)时,就会导致该反向报文不能正确到达对端。比如,用户1(源地址,记为IP1)主动向用户2(目的地址,记为IP2)发送报文(记为正向报文,两个用户之间第一次交互的报文),当接口板1接收到该正向报文后,判断出该正向报文满足预设的业务处理条件,则按照上述步骤308至步骤311的操作确定用于对正向报文执行业务处理的CPU(记为CPU1),之后,发送正向报文给CPU1,当CPU1按照现有流程确定出需要对该正向报文执行NAT处理,若该NAT处理需要对正向报文携带的源地址变换,如此,CPU1对正向报文携带的源地址进行变换,比如从IP1变换为IP3,并记录变换之前的源地址IP1和变换之后的源地址IP3的对应关系,之后,将该变换后的源地址IP3和目的地址携带在正向报文中发送给下一跳。若用户2(源地址,记为IP2)需要发送响应用户1发送的正向报文的报文(记为反向报文),则发送该反向报文给用户1(由于用户2接收到的正向报文携带的源地址为IP3,也就是说,用户1对用户2公布的地址为IP3,因此,用户2发送的反向报文的目的地址为IP3,而不是IP1),当接口板2接收到报文后,判断出该报文满足预设的业务处理条件,由于地址发生了变化,如此,通过上述步骤308至步骤311的操作确定出的用于对反向报文执行业务处理操作的CPU可能不为CPU1,这里,假如确定出的CPU为CPU2,之后,发送反向报文给CPU2,由CPU2对该反向报文执行相应的业务处理操作,当CPU2完成相应的业务处理操作后,由于CPU2中并没有记录变换之前的IP1和变换之后的IP3的对应关系,进而也不存在该变换之后的地址IP3对应的路由表项,这样,CPU2无法知道将该完成业务处理操作的反向报文发送给谁,如此,该反向报文不能正确到达用户A。
可以看出,若用户1和用户2之间交互的报文执行的业务处理包含了该报文携带的地址(源地址和/或目的地址)的转换,则会导致用户1和用户2之间的反向报文不能正确到达对端。本实施例中,为了避免两个用户之间交互的反向报文不能正确到达对端的缺陷,可在CPU对正向报文执行对该正向报文携带的地址(源地址和/或目的地址)的转换(NAT和/或NATPT)处理时,将变换前后的地址全局同步给其他所有用于执行业务处理操作的CPU,如此,当其他用于执行业务处理操作的CPU接收到反向报文后,可获取该反向报文携带的地址(源地址和/或目的地址变换之前的信息),之后,根据获取的地址信息进行相应的路由转发。如此,即可实现两个用户之间交互的反向报文能正确到达对端。
以上对本发明提供的流程进行了描述,下面结合具体实施例对本发明提供的设备进行描述。
参见图4,图4为本发明实施例提供的设备结构图。如图4所示,该设备应用于包含多个接口板的网络交换设备中,每一接口板包含CPU,该设备包括:第一确定单元401、判断单元402、第二确定单元403和发送单元404;
其中,第一确定单元401用于从各个接口板包含的CPU中确定出一个以上用于执行业务处理操作的CPU;
判断单元401用于在网络交换设备的接口板接收到报文时,判断该接口板接收到报文是否需要执行业务处理操作,其中,该判断操作具体实现时可为:判断该接口板接收到报文是否满足预设的业务处理条件。
第二确定单元403用于在判断单元402的判断结果为是时,从第一确定单元401确定出的用于执行业务处理操作的CPU中确定出用于对当前接收的报文执行业务处理操作的CPU;
发送单元404将所述当前接收的报文发送给第二确定单元403确定出的CPU,由该CPU对所述当前接收的报文执行业务处理。
第二确定单元403按照负载均衡原则,和/或两个用户之间交互的报文的业务处理操作由同一个CPU执行的原则从确定出的用于执行业务处理操作的CPU中确定出用于对当前接收的报文执行业务处理操作的CPU。
优选地,第一确定单元401具体可为网络交换设备的主控板。如图4所示,第一确定单元401可包括:接收子单元4011、判断子单元4012和第一确定子单元4013。
其中,接收子单元4011用于接收网络交换设备的各个接口板在启动时发送的注册请求,所述注册请求携带了启动的接口板上CPU的业务处理性能信息和标识信息;
判断子单元4012用于判断接收的注册请求携带的业务处理性能信息是否满足预设的CPU业务处理性能条件;
第一确定子单元4013用于在判断子单元4012的判断结果为是时,记录所述接收的注册请求携带的CPU的标识信息,将所述标识信息对应的CPU确定为用于执行业务处理操作的CPU;并从第一预设值起对记录的各个标识信息进行连续编号,形成各个标识信息和编号之间的对应关系,将所述对应关系发送给所述网络交换设备的所有接口板存储;
如图4所示,第二确定单元403可包括:计算子单元和第二确定子单元。
其中,计算子单元4031用于将当前接收的报文携带的源地址和所述目的地址进行异或运算,得到第一异或结果;将所述第一异或结果中的高N位和低N位进行异或运算,得到第二异或结果;以及将所述第二异或结果除以所述确定出的用于执行业务处理操作的CPU的总数,得到余数;
第二确定子单元4032用于将所述余数和所述第一预设值相加,得到相加结果,从存储的所述对应关系中查找到编号为所述相加结果的标识信息,将查找到的标识信息对应的CPU确定为用于对当前接收的报文执行业务处理操作的CPU。
其中,CPU的标识信息为该CPU所处的接口板的设备号和该CPU所处的端口的端口号;
发送单元404将第二确定子单元4032查找到的设备号和端口号携带在当前接收的报文中发送给第二确定子单元4032查找到的设备号和端口号对应的CPU中;若所述查找到的设备号和端口号对应的CPU执行的业务处理包含了所述当前接收的报文携带的源地址和/或目的地址的变换,则记录变换前后的源地址和/或目的地址,将记录的变换前后的源地址和/或目的地址全局同步到所述第一确定子单元4013确定出的除自身之外的所有CPU中。
由上可见,本发明提供的方法和设备中,并非现有技术中由预先指定的一个CPU统一对网络交换设备中所有接口板接收的报文执行业务处理操作,而是在各个接口板接收到报文后,由各个接口板动态选择用于针对当前接收的报文执行业务处理操作的CPU,如此,避免了现有方法中由一个的固定的接口板上的CPU统一对网络交换设备中所有接口板上接收的报文执行业务处理操作的缺陷,大大提高了网络交换设备的业务处理能力。
进一步地,本发明中,由于可使多个CPU执行报文的业务处理操作,这样,在多个接口板同时接收到满足预设的业务处理条件的报文时,可使多个CPU同时执行业务处理操作,极大地提高了网络交换设备的业务处理能力。
更近一步地,本领域技术人员应该知道,各个CPU的内存资源是独立,本发明在CPU执行包含了对当前接收的报文携带的源地址和/或目的地址的业务处理后,可将处理前后的源地址和/或目的地址全局同步到确定出的用于执行业务处理操作的所有其他所有CPU中,使各个CPU之间相互关联。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1、一种报文处理方法,该方法应用于包含多个接口板的网络交换设备中,每一接口板包含CPU,其特征在于,从各个接口板包含的CPU中确定出一个以上用于执行业务处理操作的CPU;该方法包括:
A,所述网络交换设备的接口板当前接收到需要执行业务处理操作的报文时,从所述用于执行业务处理操作的CPU中确定用于对当前接收的报文执行业务处理操作的CPU;将所述当前接收的报文发送给该确定出的CPU,由该CPU对当前接收的报文执行业务处理。
2、根据权利要求1所述的方法,其特征在于,所述步骤A中的确定包括:
A1,按照负载均衡原则,和/或,两个用户之间交互的报文的业务处理操作由同一个CPU执行的原则从所述用于执行业务处理操作的CPU中确定用于对当前接收的报文执行业务处理操作的CPU。
3、根据权利要求2所述的方法,其特征在于,所述接收的报文中携带源地址和目的地址,所述源地址和目的地址的位数相同;所述步骤A1包括:
A11,将所述源地址和所述目的地址进行异或运算,得到第一异或结果;将所述第一异或结果中的高N位和低N位进行异或运算,得到第二异或结果;
A12,根据所述第二异或结果从所述用于执行业务处理操作的CPU中确定出用于对当前接收的报文执行业务处理操作的CPU。
4、根据权利要求3所述的方法,其特征在于,所述一个以上用于执行业务处理操作的CPU由所述网络交换设备的主控板确定,包括:
A00,所述主控板接收网络交换设备的各个接口板在启动时发送的注册请求,所述注册请求携带了启动的接口板上CPU的业务处理性能信息和标识信息;判断接收的注册请求携带的业务处理性能信息是否满足预设的CPU业务处理性能条件,如果是,记录该接收的注册请求携带的CPU的标识信息,并将记录的标识信息对应的CPU确定为用于执行业务处理操作的CPU;
在步骤A00和步骤A之前,进一步包括:从第一预设值起对记录的各个标识信息连续编号,形成各个标识信息和编号之间的对应关系,将所述对应关系发送给所述网络交换设备的所有接口板存储;所述A12包括:
A121,将所述第二异或结果除以所述用于执行业务处理操作的CPU的总数,得到余数;
A122,将所述余数和所述第一预设值相加,得到相加结果,从存储的所述对应关系中查找到编号为所述相加结果的标识信息,将查找到的标识信息对应的CPU确定为用于对当前接收的报文执行业务处理操作的CPU。
5、根据权利要求4所述的方法,其特征在于,当需要在所述网络交换设备中增加或者删减接口板时,该方法进一步包括:
若该需要增加或者删减的接口板上的CPU为确定出的用于执行业务处理操作的CPU,则在当前形成的对应关系中增加或者删减该接口板上的CPU的标识信息和编号之间的对应关系,并将增加或者删减该接口板上的CPU的标识信息和编号之间的对应关系发送给所述网络交换设备的所有接口板存储。
6、根据权利要求4所述的方法,其特征在于,所述CPU的标识信息为该CPU所处的接口板的设备号和该CPU所处的端口的端口号;
所述步骤A中的发送包括:将所述步骤A122中查找到的设备号和端口号携带在当前接收的报文中发送给步骤A122查找到的设备号和端口号对应的CPU中;
若步骤A中执行的业务处理包含了所述当前接收的报文携带的源地址和/或目的地址的变换,则进一步包括:记录变换前后的源地址和/或目的地址,将记录的变换前后的源地址和/或目的地址全局同步到所述步骤A00中确定出的除自身之外的所有CPU中。
7、一种报文处理设备,该设备应用于包含多个接口板的网络交换设备中,每一接口板包含CPU,其特征在于,该设备包括:第一确定单元、判断单元、第二确定单元和发送单元;其中,
所述第一确定单元用于从各个接口板包含的CPU中确定出一个以上用于执行业务处理操作的CPU;
所述判断单元用于在网络交换设备的接口板接收到报文时,判断该接口板接收到报文是否需要执行业务处理操作;
所述第二确定单元用于在所述判断单元的判断结果为是时,从所述第一确定单元确定出的用于执行业务处理操作的CPU中确定出用于对当前接收的报文执行业务处理操作的CPU;
所述发送单元将所述当前接收的报文发送给所述第二确定单元确定出的CPU,由该CPU对所述当前接收的报文执行业务处理。
8、根据权利要求7所述的设备,其特征在于,所述第二确定单元按照负载均衡原则,和/或两个用户之间交互的报文的业务处理操作由同一个CPU执行的原则从确定出的用于执行业务处理操作的CPU中确定出用于对当前接收的报文执行业务处理操作的CPU。
9、根据权利要求8所述的设备,其特征在于,所述第一确定单元包括:
接收子单元,用于接收网络交换设备的各个接口板在启动时发送的注册请求,所述注册请求携带了启动的接口板上CPU的业务处理性能信息和标识信息;
判断子单元,用于判断接收的注册请求携带的业务处理性能信息是否满足预设的CPU业务处理性能条件;
第一确定子单元,用于在所述判断子单元的判断结果为是时,记录所述接收的注册请求携带的CPU的标识信息,将所述标识信息对应的CPU确定为用于执行业务处理操作的CPU;并从第一预设值起对记录的各个标识信息进行连续编号,形成各个标识信息和编号之间的对应关系,将所述对应关系发送给所述网络交换设备的所有接口板存储;
所述第二确定单元包括:
计算子单元,用于将当前接收的报文携带的源地址和所述目的地址进行异或运算,得到第一异或结果;将所述第一异或结果中的高N位和低N位进行异或运算,得到第二异或结果;将所述第二异或结果除以所述确定出的用于执行业务处理操作的CPU的总数,得到余数;
第二确定子单元,用于将所述余数和所述第一预设值相加,得到相加结果,从存储的所述对应关系中查找到编号为所述相加结果的标识信息,将查找到的标识信息对应的CPU确定为用于对当前接收的报文执行业务处理操作的CPU。
10、根据权利要求9所述的设备,其特征在于,所述CPU的标识信息为该CPU所处的接口板的设备号和该CPU所处的端口的端口号;
所述发送单元将所述第二确定子单元查找到的设备号和端口号携带在当前接收的报文中发送给所述第二确定子单元查找到的设备号和端口号对应的CPU中;若所述查找到的设备号和端口号对应的CPU执行的业务处理包含了所述当前接收的报文携带的源地址和/或目的地址的变换,则记录变换前后的源地址和/或目的地址,将记录的变换前后的源地址和/或目的地址全局同步到所述第一确定子单元确定出的除自身之外的所有CPU中。
CN200910090536A 2009-08-19 2009-08-19 一种报文处理方法和设备 Pending CN101631075A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910090536A CN101631075A (zh) 2009-08-19 2009-08-19 一种报文处理方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910090536A CN101631075A (zh) 2009-08-19 2009-08-19 一种报文处理方法和设备

Publications (1)

Publication Number Publication Date
CN101631075A true CN101631075A (zh) 2010-01-20

Family

ID=41576027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910090536A Pending CN101631075A (zh) 2009-08-19 2009-08-19 一种报文处理方法和设备

Country Status (1)

Country Link
CN (1) CN101631075A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101834850A (zh) * 2010-04-01 2010-09-15 上海庚商网络信息技术有限公司 安全型智能网关及安全型智能网关的组网方法
CN101848154A (zh) * 2010-05-17 2010-09-29 华为技术有限公司 基于高级电信计算架构的系统
CN102571443A (zh) * 2012-01-20 2012-07-11 华为技术有限公司 一种异常处理的方法和装置
CN108170533A (zh) * 2017-12-27 2018-06-15 杭州迪普科技股份有限公司 报文的处理方法及装置、计算机可读存储介质
CN109120680A (zh) * 2018-07-27 2019-01-01 北京华为数字技术有限公司 一种控制系统、方法及相关设备
CN109218229A (zh) * 2017-06-30 2019-01-15 华为技术有限公司 一种报文处理方法、网络设备及存储介质
CN109302447A (zh) * 2018-08-16 2019-02-01 京信通信系统(中国)有限公司 报文处理方法、装置及系统
CN110855528A (zh) * 2019-11-22 2020-02-28 新华三技术有限公司 报文处理方法及测试设备
CN113014689A (zh) * 2021-03-01 2021-06-22 杭州迪普科技股份有限公司 一种网络地址转换的方法和装置
CN115086274A (zh) * 2022-06-10 2022-09-20 北京启明星辰信息安全技术有限公司 一种网络流量分配方法、装置、设备和存储介质

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101834850A (zh) * 2010-04-01 2010-09-15 上海庚商网络信息技术有限公司 安全型智能网关及安全型智能网关的组网方法
CN101848154A (zh) * 2010-05-17 2010-09-29 华为技术有限公司 基于高级电信计算架构的系统
CN101848154B (zh) * 2010-05-17 2012-04-04 华为技术有限公司 基于高级电信计算架构的系统
CN102571443A (zh) * 2012-01-20 2012-07-11 华为技术有限公司 一种异常处理的方法和装置
CN102571443B (zh) * 2012-01-20 2015-04-08 华为技术有限公司 一种异常处理的方法和装置
CN109218229A (zh) * 2017-06-30 2019-01-15 华为技术有限公司 一种报文处理方法、网络设备及存储介质
CN108170533A (zh) * 2017-12-27 2018-06-15 杭州迪普科技股份有限公司 报文的处理方法及装置、计算机可读存储介质
CN109120680A (zh) * 2018-07-27 2019-01-01 北京华为数字技术有限公司 一种控制系统、方法及相关设备
CN109302447A (zh) * 2018-08-16 2019-02-01 京信通信系统(中国)有限公司 报文处理方法、装置及系统
CN109302447B (zh) * 2018-08-16 2021-04-27 京信通信系统(中国)有限公司 报文处理方法、装置及系统
CN110855528A (zh) * 2019-11-22 2020-02-28 新华三技术有限公司 报文处理方法及测试设备
CN110855528B (zh) * 2019-11-22 2021-10-29 新华三技术有限公司 报文处理方法及测试设备
CN113014689A (zh) * 2021-03-01 2021-06-22 杭州迪普科技股份有限公司 一种网络地址转换的方法和装置
CN115086274A (zh) * 2022-06-10 2022-09-20 北京启明星辰信息安全技术有限公司 一种网络流量分配方法、装置、设备和存储介质
CN115086274B (zh) * 2022-06-10 2023-12-22 北京启明星辰信息安全技术有限公司 一种网络流量分配方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
CN101631075A (zh) 一种报文处理方法和设备
US20190342117A1 (en) Method for controlling a remote service access path and relevant device
JP7345059B2 (ja) ルーティング制御方法、装置、プログラム及びコンピュータ装置
CN101150527B (zh) 一种pcie数据传输的方法、系统及设备
CN108270676B (zh) 一种基于Intel DPDK的网络数据处理方法及装置
WO2020248963A1 (zh) 一种建立端到端网络连接的方法、装置及网络系统
CN108429680B (zh) 一种基于虚拟私有云的路由配置方法、系统、介质及设备
CN104618243B (zh) 路由方法、装置及系统、网关调度方法及装置
JP2020520612A (ja) パケット伝送方法、エッジデバイス及び機械可読記憶媒体
CN107094110B (zh) 一种dhcp报文转发方法及装置
US9525628B2 (en) Packet forwarding method and system
CN115225634B (zh) 虚拟网络下的数据转发方法、装置及计算机程序产品
CN112887229B (zh) 一种会话信息同步方法及装置
WO2021008591A1 (zh) 数据传输方法、装置及系统
CN101808107B (zh) 一种存储设备与用户二层互通的方法、装置及系统
CN107070790B (zh) 一种路由学习方法及路由设备
CN112671941A (zh) 报文处理方法、装置、设备及介质
US20230370899A1 (en) Packet forwarding method, packet processing method, and device
CN102664811B (zh) 报文转发方法和装置
CN108667735B (zh) 一种组播数据的转发方法和装置
CN107483628B (zh) 基于dpdk的单向代理方法及系统
WO2021147357A1 (zh) 路由信息的发布方法、装置及系统
CN105939398B (zh) 一种IPv6过渡方法及装置
CN111865801B (zh) 一种基于Virtio端口传输数据的方法和系统
KR102526770B1 (ko) 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치

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

Application publication date: 20100120