CN109218229A - 一种报文处理方法、网络设备及存储介质 - Google Patents
一种报文处理方法、网络设备及存储介质 Download PDFInfo
- Publication number
- CN109218229A CN109218229A CN201710527956.0A CN201710527956A CN109218229A CN 109218229 A CN109218229 A CN 109218229A CN 201710527956 A CN201710527956 A CN 201710527956A CN 109218229 A CN109218229 A CN 109218229A
- Authority
- CN
- China
- Prior art keywords
- message
- cpu
- address
- handling
- grouping
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种报文处理方法、网络设备及存储介质。该方法包括:网络设备接收第一报文时,根据第一报文的源地址确定处理的CPU分组,从该CPU分组中确定处理的CPU,接收第二报文时,根据第二报文的目的地址确定处理的CPU分组,从该CPU分组中确定处理的CPU。如此,网络设备针对不同传输方向的报文采取了不同的处理方式,第一报文的源地址和第二报文的目的地址也均为第一设备的地址,因此,网络设备可采用同一CPU分组处理该第一设备收发的所有报文,当需要统计某一时长内第一设备占用的带宽时,仅通过该CPU分组中就可获取到第一设备的收发的双向报文的处理速率,可以有效减少带宽计算过程中的运算量,可以提高网络设备的处理效率。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种报文处理方法、网络设备及存储介质。
背景技术
现有的通信系统,如图1所示,经由各种类型的网络设备将各个通信子网(即内网)与外网连接起来,形成互联的通信网络。这些网络设备包括路由器、交换机、防火墙等等,它们用于内网与外网之间通信报文的存储、处理和转发等。
目前,通信系统中的网络设备可包括一个或多个CPU,其中,CPU的数量较多时可能达到几百个甚至更多。因此,网络设备需对从内网或者外网接收到的报文,采用一定的分配原则,将报文分配到各个CPU上进行转发处理。
现有技术中,网络设备采用固定的单一哈希方式为报文分配负责处理的CPU,即只采用源IP地址进行哈希,或者只采用目的IP地址进行哈希。对于某一个内网IP地址来说,它的双向报文包括由该内网IP地址发送到外网一侧的所有上行报文,以及外网一侧发送给该内网IP地址的所有下行报文。以网络设备采用源IP地址进行哈希为例,由于该内网IP地址的上行报文的源IP地址为该内网IP地址,而该内网IP地址的下行报文的源IP地址为外网中的IP地址,由于源IP地址不同,该内网IP地址的上行报文和下行报文会分配到不同的CPU上进行处理。在与该内网IP地址进行通信的外网IP地址较多的情况下,该内网IP地址的双向报文可能会被分配到很多个CPU上处理,而且,由于不同时刻与该内网IP地址通信的外网IP地址可能不同,在不同时刻负责处理该内网IP地址的双向报文的各个CPU也不同。如此,若采用现有技术中的方案,当网络设备事后需要统计某一时长内该内网IP地址的双向报文占用的带宽时,无法得知在此时长内处理该内网IP地址的双向报文的各个CPU,因此,需要在该网络设备的所有CPU中同步该内网IP地址的双向报文的处理速率,这一过程的运算量非常庞大,不仅极大地消耗网络设备的处理资源,还有可能影响路由器其他业务的处理。
因此,目前亟需要一种报文处理方法,用于解决现有技术中网络设备在统计内网IP地址的双向报文所占用的带宽时存在的运算量过大、网络设备性能消耗过多的技术问题。
发明内容
本申请实施例提供一种报文处理方法、网络设备及存储介质,用于解决现有技术中网络设备在统计内网IP地址的双向报文所占用的带宽时存在的运算量过大、网络设备性能消耗过多的技术问题。
第一方面,本申请实施例提供一种报文处理方法,所述方法应用于网络设备,所述网络设备一侧连接内网,另一侧连接外网,所述网络设备包括多个CPU分组,所述多个CPU分组中的任一CPU分组包括一个或多个CPU。
所述网络设备接收内网中的第一设备发送到外网的第一报文时,根据所述第一报文的源地址确定处理所述第一报文的CPU分组,并从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU,处理所述第一报文的CPU分组的分组标识是根据所述第一报文的源地址确定的;所述网络设备在接收到外网中的任一设备发送给所述第一设备的第二报文时,根据所述第二报文的目的地址确定处理所述第二报文的CPU分组,并从处理所述第二报文的CPU分组中确定处理所述第二报文的CPU,其中,所述第一报文的CPU分组和所述第二报文的CPU分组为同一CPU分组。
由此可知,网络设备接收内网中的第一设备发送到外网的第一报文时,根据第一报文的源地址确定处理该报文的CPU分组,接收到外网中的任一设备发送给该第一设备的第二报文时,根据第二报文的目的地址确定处理该报文的CPU分组。可见,网络设备针对不同传输方向的报文采取了不同的处理方式,但是由于报文的源地址和目的地址是相对的,第一报文的源地址为第一设备的地址,第二报文的目的地址也为第一设备的地址,因此,采用本申请中的技术方案,网络设备可采用同一CPU分组处理该第一设备收发的双向的所有报文,当网络设备需要统计某一时长内该第一设备占用的带宽时,仅通过该第一设备对应的CPU分组中就可获取到该第一设备的双向报文的处理速率,因而,可以有效减少带宽计算过程中的运算量,可以提高网络设备的处理效率。
在一个可能的设计中,从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU时,
所述网络设备可以获取所述第一报文的目的地址,根据所述第一报文的目的地址在所述第一报文的CPU分组中确定处理所述第一报文的第一CPU,所述第一CPU的标识与所述第一报文的目的地址相关。
在一个可能的设计中,从处理所述第二报文的CPU分组中确定处理所述第二报文的CPU时,所述网络设备获取所述第二报文的源地址,根据所述第二报文的源地址在所述第二报文的CPU分组中确定处理所述第二报文的第二CPU,所述第二CPU的标识与所述第二报文的源地址相关。
可见,网络设备在确定出处理第一报文和第二报文的CPU分组后,根据第一报文的目的地址在处理该第一报文的CPU分组中,进一步确定出处理该第一报文的CPU,根据第二报文的源地址在处理该第二报文的的CPU分组中,进一步确定出处理该第二报文的CPU,由于处理第一报文的CPU分组与处理第二报文的CPU分组为同一CPU分组,且第一报文的目的地址和第二报文的源地址均为外网中的设备的地址,因此,若第一报文和第二报文均为第一设备与外网中的同一设备之间通信的报文,则第一报文和第二报文将会分配到同一CPU分组中的同一CPU处理,若第一报文和第二报文为第一设备与外网中的不同设备之间通信的报文,则第一报文和第二报文可能会分配到同一CPU分组中的不同CPU处理。也就是说,采用本申请中的技术方案,网络设备可采用同一CPU处理该第一设备与外网中的某一设备之间双向通信的所有报文,当网络设备需要统计某一时长内该第一设备与该外网中的设备之间的双向通信占用的带宽时,仅通过该对应的CPU中就可获取到该第一设备与该外网中的设备之间双向通信的所有报文的处理速率,可以有效减少带宽计算过程中的运算量,提高网络设备的处理效率。
在一种可能的设计中,根据所述第一报文的源地址确定处理所述第一报文的CPU分组时,所述网络设备将所述第一报文的源地址作为第一计算规则的参数,基于所述第一计算规则计算得到结果值,将CPU分组的标识为所述结果值的CPU分组作为处理所述第一报文的CPU分组;所述根据所述第一报文的目的地址在处理所述第一报文的CPU分组中确定处理所述第一报文的第一CPU时,所述网络设备将所述第一报文的目的地址作为第二计算规则的参数,基于所述第二计算规则计算得到结果值,将CPU标识为所述结果值的CPU作为处理所述第一报文的第一CPU。
所述根据所述第二报文的目的地址确定处理所述第二报文的CPU分组时,所述网络设备将所述第二报文的目的地址作为所述第一计算规则的参数,基于所述第一计算规则计算得到结果值,将CPU分组的标识为所述结果值的CPU分组作为处理所述第二报文的CPU分组;所述根据所述第二报文的源地址在处理所述第二报文的CPU分组中确定处理所述第二报文的第二CPU时,所述网络设备将所述第二报文的源地址作为所述第二计算规则的参数,基于所述第二计算规则计算得到结果值,将CPU标识为所述结果值的CPU作为处理所述第二报文的第二CPU。
在一种可能的设计中,所述网络设备根据所述第二报文的目的地址确定处理所述第二报文的CPU分组之前,还可以确认自身未配置有网络地址转换功能。若所述网络设备确认自身配置有网络地址转换功能时,可以在从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU之后,对所述第一报文的源地址进行私网地址到公网地址的网络地址转换,得到转换后的公网源地址,并记录所述第一报文的公网源地址和处理所述第一报文的CPU的标识的第一对应关系;所述网络设备在接收到外网中的任一设备发送给所述第一设备的第二报文时,根据所述第二报文的目的地址在所述第一对应关系中确定用于处理第二报文的CPU标识。
此外,若所述网络设备若确认自身配置有网络地址转换功能,可以在接收到外网中的任一设备发送给所述第一设备的第二报文时,对所述第二报文的目的地址进行公网地址到私网地址的网络地址转换,得到转换后的私网目的地址,根据所述私网目的地址确定处理所述第二报文的CPU分组,处理所述第二报文的CPU分组的分组标识是根据所述第二报文的私网目的地址确定的;所述网络设备获取所述第二报文的源地址,根据所述第二报文的源地址从处理所述第二报文的CPU分组中确定第二CPU,所述第二CPU的标识与所述第二报文的源地址相关。
在一种可能的设计中,所述网络设备可以根据上述第一方面中同一CPU分组中的各个CPU在预设时长内处理与所述第一设备进行收发的所有报文的流量,得到所述第一设备在所述预设时长内占用的带宽。
第二方面,本申请实施例提供一种网络设备,该网络设备具有实现上述第一方面方法示例中的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或所述软件包括一个或多个与上述功能相对应的模块。
第三方面,本申请实施例提供另一种网络设备,该网络设备包括:通信接口、处理器、存储器和总线系统;其中,通信接口、处理器和存储器可以通过总线系统连接在一起,存储器,存储有计算机程序,处理器1102读取存储器1103中的信息,结合通信接口执行一下方法步骤。
通信接口,用于接收内网中的第一设备发送到外网的第一报文,以及接收外网中的任一设备发送给所述第一设备的第二报文;
处理器,用于根据所述第一报文的源地址确定处理所述第一报文的CPU分组,并从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU,处理所述第一报文的CPU分组的分组标识是根据所述第一报文的源地址确定的;以及,
根据所述第二报文的目的地址确定处理所述第二报文的CPU分组,并从处理所述第二报文的CPU分组中确定处理所述第二报文的CPU,其中,处理所述第二报文的CPU分组的分组标识是根据所述第二报文的目的地址确定的,处理所述第一报文的CPU分组和所述第二报文的CPU分组为同一CPU分组。
在一种可能的设计中,所述处理器具体用于:
获取所述第一报文的目的地址,根据所述第一报文的目的地址在处理所述第一报文的CPU分组中确定处理所述第一报文的第一CPU,所述第一CPU的标识与所述第一报文的目的地址相关;
获取所述第二报文的源地址,根据所述第二报文的源地址在处理所述第二报文的CPU分组中确定处理所述第二报文的第二CPU,所述第二CPU的标识与所述第二报文的源地址相关。
在一种可能的设计中,所述处理器具体用于:
将所述第一报文的源地址作为第一计算规则的参数,基于所述第一计算规则计算得到结果值,将CPU分组的标识为所述结果值的CPU分组作为处理所述第一报文的CPU分组;
将所述第一报文的目的地址作为第二计算规则的参数,基于所述第二计算规则计算得到结果值,将CPU标识为所述结果值的CPU作为处理所述第一报文的第一CPU;
将所述第二报文的目的地址作为所述第一计算规则的参数,基于所述第一计算规则计算得到结果值,将CPU分组的标识为所述结果值的CPU分组作为处理所述第二报文的CPU分组;
将所述第二报文的源地址作为所述第二计算规则的参数,基于所述第二计算规则计算得到结果值,将CPU标识为所述结果值的CPU作为处理所述第二报文的第二CPU。
在一种可能的设计中,所述处理器还用于,根据所述第二报文的目的地址确定处理所述第二报文的CPU分组之前,确认所述网络设备未配置有网络地址转换功能。
在一种可能的设计中,所述处理器还用于:
若根据所述第二报文的目的地址确定处理所述第二报文的CPU分组之前,确认所述网络设备配置有网络地址转换功能,在从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU之后,对所述第一报文的源地址进行私网地址到公网地址的网络地址转换,得到转换后的外网源地址,并记录所述第一报文的公网源地址和处理所述第一报文的CPU的标识的第一对应关系;
在接收到外网中的任一设备发送给所述第一设备的第二报文时,根据所述第二报文的目的地址在所述第一对应关系中确定用于处理第二报文的CPU标识。
在一种可能的设计中,所述处理器具体用于:
若根据所述第二报文的目的地址确定处理所述第二报文的CPU分组之前,确认所述网络设备配置有网络地址转换功能,在接收到外网中的任一设备发送给所述第一设备的第二报文时,对所述第二报文的目的地址进行公网地址到私网地址的网络地址转换,得到转换后的私网目的地址,根据所述私网目的地址确定处理所述第二报文的CPU分组,处理所述第二报文的CPU分组的分组标识是根据所述第二报文的私网目的地址确定的;
获取所述第二报文的源地址,根据所述第二报文的源地址从处理所述第二报文的CPU分组中确定第二CPU,所述第二CPU的标识与所述第二报文的源地址相关。
在一种可能的设计中,所述处理器还用于:
根据所述同一CPU分组在预设时长内处理与所述第一设备进行收发的所有报文的流量,得到所述第一设备在所述预设时长内占用的带宽。
本申请还提供了一种计算机可读存储介质,所述存储介质存储有指令,当所述指令在计算机上运行时,使得计算机实现执行上述任意一种设计提供的通信方法。
本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任意一种设计提供的通信方法。
附图说明
图1为本发明实施例中通信系统的架构示意图;
图2为本发明实施例适用的一种系统架构示意图;
图3为本发明实施例一提供的一种网络设备中的报文处理方法所对应的流程示意图;
图4为本发明实施例一提供的上行报文发送过程中确定CPU的具体示意图;
图5为本发明实施例一提供的下行报文发送过程中确定CPU的具体示意图;
图6为本发明实施例一中网络设备中配置有网络地址转换功能情况下的一种报文处理方法所对应的方法流程图;
图7为本发明实施例一中网络设备中配置有网络地址转换功能情况下的另一种报文处理方法所对应的方法流程图;
图8为本发明实施例二提供的一种网络设备中的报文处理方法所对应的流程示意图;
图9为本发明实施例三提供的一种网络设备中的报文处理方法所对应的流程示意图;
图10为本发明实施例四提供的一种网络设备中的报文处理方法所对应的流程示意图;
图11为本发明实施例提供的一种网络设备的结构示意图。
具体实施方式
下面将结合附图对本申请实施例作进一步地详细描述。
本发明实施例中的网络设备中的报文处理方法可适用于多种系统架构。图2为本发明实施例适用的一种系统架构示意图。如图2所示,该系统架构中包括网络设备201,以及与该网络设备连接的内网202和外网203。其中,所述内网中连接有多台主机,每一台主机均具有MAC(Media Access Control,媒体访问控制)地址和IP(Internet Protocol,互联网协议)地址,其中,该IP地址可在整个互联网的范围内都是唯一的,也可以不唯一,若内网中的IP地址在整个互联网的范围内不唯一,则意味着其他内网中也可具有相同的IP地址,在这种情况下,IP地址又可称为内网IP地址,或私网IP地址。相应地,外网中也连接有多台主机,每台主机均具有一个IP地址,称之为外网IP地址或公网IP地址,在外网中,各台主机的外网IP地址作为主机的标识,在整个互联网的范围内都是唯一的。
上述网络设备连接内网和外网,并可实现内网与外网中各台主机之间的互相通信。具体来说,网络设备可接收内网中某一主机发送的报文,并在将该报文进行相应处理后,转发给外网中的对应的主机,这时内网中的主机的地址称为源地址,即该内网中的主机的MAC地址称为源MAC地址,IP地址称为源IP地址,外网中的主机的地址称为目的地址,即该外网中的主机的MAC地址称为目的MAC地址,IP地址称为目的IP地址。相应地,网络设备也可接收外网中的某一台主机发送的报文,并在将该报文进行相应处理后,转发给内网中的对应的主机,这时外网中的主机的地址称为源地址,即该外网中的主机的MAC地址称为源MAC地址,IP地址称为源IP地址,内网中的主机的地址称为目的地址,即该内网中的主机的MAC地址称为目的MAC地址,IP地址称为目的IP地址。
本发明实施例中,所述网络设备可以为多种类型的具有报文存储、处理、转发等功能的通信设备,具体来说,所述网络设备可以是二层或三层设备,如为路由器、交换机、防火墙等通信设备,或者也可以为其他类型的通信设备,此处不做具体限制。
具体的,所述网络设备通过设置在网络设备中接口来接收外网和/或内网中发送的报文。其中,所述接口具有多种可能的实现形式,比如说,可以为硬件的接口,或者也可以为逻辑上的接口,此处不做具体限制。此外,所述接口可以为一个或多个,在具体的应用场景中,随着网络设备转发和处理的能力的不同,网络设备中接口的数量也不同,一般来说,若网络设备需要处理的流量较大,接口也会相应地较多,本发明实施例中,网络设备中接口的数量可以由本领域技术人员根据实际业务的需要来具体设置,本发明对此不做具体限制。
需要说明的是,网络设备转发的每一个报文均具有相应的传输方向。本发明实施例中,若某一报文是由内网中的设备发送到外网中的报文,即该报文的源地址为内网地址,目的地址为外网地址,则该报文的传输方向为上行,该报文为上行报文。若某一报文是由外网中的设备发送到内网中的报文,即该报文的源地址为外网地址,目的地址为内网地址,则该报文的传输方向为下行,该报文为下行报文。
实施例一
基于上述描述,参见图3,为本发明实施例一提供的一种报文处理方法所对应的流程示意图。该方法包括:
步骤S301:内网中的第一设备向外网发送第一报文;
步骤S302:网络设备接收内网中的第一设备发送到外网的第一报文时,根据所述第一报文的源地址确定处理所述第一报文的CPU分组,并从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU,处理所述第一报文的CPU分组的分组标识是根据所述第一报文的源地址确定的;
步骤S303:外网中的任一设备向所述第一设备发送第二报文;
步骤S304:网络设备在接收到外网中的任一设备发送给所述第一设备的第二报文时,根据所述第二报文的目的地址确定处理所述第二报文的CPU分组,并从处理所述第二报文的CPU分组中确定处理所述第二报文的CPU,其中,处理所述第二报文的CPU分组的分组标识是根据所述第二报文的目的地址确定的,处理所述第一报文的CPU分组和所述第二报文的CPU分组为同一CPU分组。
本发明实施例中,网络设备接收内网中的第一设备发送到外网的第一报文时,根据第一报文的源地址确定处理该报文的CPU分组,接收到外网中的任一设备发送给该第一设备的第二报文时,根据第二报文的目的地址确定处理该报文的CPU分组,进而,在分别在确定出的CPU分组中确定出处理第一报文和第二报文的CPU。可见,网络设备针对不同传输方向的报文采取了不同的处理方式,但是由于报文的源地址和目的地址是相对的,第一报文的源地址为第一设备的地址,第二报文的目的地址也为第一设备的地址,因此,采用本申请中的技术方案,网络设备可采用同一CPU分组处理该第一设备收发的双向的所有报文,当网络设备需要统计某一时间段内该第一设备占用的带宽时,仅通过该第一设备对应的CPU分组中就可获取到该第一设备的双向报文的处理速率,因而,可以有效减少带宽计算过程中的运算量,提高网络设备的处理效率。
可以看出,现有技术中采用单一IP地址确定CPU的方式,会造成内网中的同一设备收发的双向报文被分配到不同的CPU上处理,在与该内网设备通信的外网设备较多的情况下,网络设备为分配该内网设备收发的双向报文处理的CPU也不固定;而本发明实施例将同一内网IP地址的双向报文分配到同一个CPU分组中,相比现有技术可减轻了带宽统计时的计算量。
关于上述步骤S301至步骤S304,还需要说明以下几点:
(1)本发明实施例中,所述网络设备中可具有多个CPU,根据该网络设备中报文存储、处理、转发能力的不同,网络设备中CPU的数量也不同。该网络设备中的CPU的数量可以为几个、几十个、上百个、几百个甚至更多。本发明实施例中,网络设备中CPU的数量可由本领域技术人员根据实际需要进行具体的配置,本发明对比不做具体限制。
(2)为了更有效地实现流量或带宽的分配,本发明实施例中将网络设备中的多个CPU分为多个CPU分组,多个CPU分组中的任一CPU分组中包括一个或多个CPU。具体的,多个CPU分组中包括的CPU的数量可以相同,也可以不相同。任一CPU分组中CPU的数量可以为可少于10个,比如说,可以为2个或3个。需要说明的是,依据具体的业务的不同,本领域技术人员可对网络设备中CPU的分组进行具体的配置,本发明对此不做具体限制。
(3)本发明实施例中的网络设备一侧与内网连接,另一侧与外网连接。由于内网与外网进行通信,必须要通过网络设备的转发,因此,网络设备可接收任意一侧发送的报文,并将其转发到另一侧。
(4)一般情况下,网络设备可根据待转发报文的源地址和目的地址,确定出报文的传输方向,即待转发报文为内网中的设备发送到外网的上行报文,还是外网中的设备发送到内网的下行报文,但是由于报文的源地址和目的地址一般都封装在报文内,网络设备在处理该报文之前无法获知报文的源地址和目的地址,从而无法通过源地址和目的地址判断出报文的传输方向。因此,本发明实施例中网络设备可将自身的多个接口分为上行接口和下行接口两类,其中,上行接口与外网一侧连接,仅用于接收外网中的设备发送给内网中的设备的报文;下行接口与内网一侧连接,仅用于接收内网中的设备发送给外网中的设备的报文。
本发明实施例中,网络设备通过定义上行接口和下行接口,实现无需读取报文的源地址和目的地址,即可确定报文的传输方向的目的,从而可对不同传输方向的报文进行有针对性的处理。而且,本发明实施例中网络设备中上行接口与下行接口的数量,可以相同,也可以不相同,具体的,可由本领域技术人员根据实际业务的需要进行设置,本发明对此不做具体限制。
(5)本发明实施例中,所述源地址可以为源IP地址或源MAC地址,所述目的地址可以为目的IP地址或目的MAC地址。具体的,若网络设备为三层设备,则源地址指的是源IP地址,目的地址指的是目的IP地址,若网络设备为二层设备,则源地址指的是源MAC地址,目的地址指的是目的MAC地址。为了简便,本发明实施例中,以网络设备为三层的路由设备,源地址和目的地址均为IP地址的情形为例,来具体说明本发明中的报文处理方法中的技术方案。
下面对上述步骤S301至步骤S304进行展开说明。
在步骤S301,内网中的第一设备向外网发送第一报文,具体的,该第一报文首先发送给网络设备,由该网络设备再转发给外网中对应的设备。其中,该第一设备可以为内网中的任一设备,该第一报文可以为该任一设备向外网发出的任一上行报文。
在步骤S302中,网络设备通过其下行接口接收内网中的第一设备发送到外网的第一报文,获取该第一报文的源地址,根据该第一报文的源地址,从网络设备的多个CPU分组中,确定出处理所述第一报文的CPU分组。其中,处理所述第一报文的CPU分组的分组标识是根据所述第一报文的源地址确定的。
具体的,网络设备将第一报文的源地址作为第一计算规则的参数,基于第一计算规则计算得到结果值,将CPU分组的标识为所述结果值的CPU分组作为处理所述第一报文的CPU分组。
随后,由于网络设备确定出的处理该第一报文的CPU分组中仍可包括多个CPU,因而,网络设备可获取第一报文的目的地址,根据该第一报文的目的地址,从处理该第一报文的CPU分组中出确定处理该第一报文的第一CPU。其中,该第一CPU的标识与所述第一报文的目的地址相关。
具体的,网络设备将该第一报文的目的地址作为第二计算规则的参数,基于所述第二计算规则计算得到结果值,将CPU标识为所述结果值的CPU作为处理所述第一报文的第一CPU。
在步骤S303中,外网中的任一设备向所述第一设备发送第二报文,具体的,该第二报文首先发送给网络设备,由该网络设备再转发给内网中的该第一设备。其中,该第二报文可以为该外网中的任一设备向该第一设备发送的任一报文。
在步骤S304中,网络设备通过其上行接口接收该外网中的任一设备向第一设备发送的第二报文,获取该第二报文的目的地址,根据该第二报文的目的地址确定处理该第二报文的CPU分组。其中,处理所述第二报文的CPU分组的分组标识是根据所述第二报文的目的地址确定的,处理所述第一报文的CPU分组和所述第二报文的CPU分组为同一CPU分组。
具体的,网络设备将第二报文的目的地址作为第一计算规则的参数,基于第一计算规则计算得到结果值,将CPU分组的标识为所述结果值的CPU分组作为处理所述第二报文的CPU分组,
随后,由于网络设备确定出的处理该第二报文的CPU分组中仍可包括多个CPU,因而,网络设备可获取第二报文的源地址,根据该第二报文的源地址,在处理所述第二报文的CPU分组中确定处理所述第二报文的第二CPU,所述第二CPU的标识与所述第二报文的源地址相关。
具体的,网络设备将所述第二报文的源地址作为所述第二计算规则的参数,基于所述第二计算规则计算得到结果值,将CPU标识为所述结果值的CPU作为处理所述第二报文的第二CPU。
需要说明的是,本发明实施例中,网络设备在接收内网或外网发送来的任一报文时,根据接收报文的接口是预先定义的上行接口还是下行接口,来判断报文的传输方向,即接收到的报文是第一报文还是第二报文。其中,第一报文是指内网中的设备发送给外网中的设备的上行报文,第二报文是指外网中的设备发送给内网中的设备的下行报文。若报文从下行接口接收,则该报文为第一报文,网络设备在对其进行相应处理后,通过上行接口将其转发到外网,若报文从上行接口接收,则该报文为第二报文,网络设备在对其进行相应处理后,通过下行接口将其转发到内网。
由上述内容可知,网络设备针对第一报文,首先将第一报文的源地址作为第一计算规则的参数,基于第一计算规则计算得到处理该第一报文的CPU分组,进而,在确定出的CPU分组中,再将第一报文的目的地址作为第二计算规则的参数,基于第二计算规则进行计算得到处理该第一报文的CPU。针对第二报文,首先将第二报文的目的地址作为第一计算规则的参数,基于第一计算规则计算得到处理该第二报文的CPU分组,进而,在确定出的CPU分组中,再将第二报文的目的地址作为第二计算规则的参数,基于第二计算规则进行计算得到处理该第二报文的CPU。如此,在第一报文为第一设备发送到外网中的报文,第二报文为外网中的任一设备发送给第一设备的报文时,第一报文的源地址与第二报文的目的地址相同,均为第一设备的地址,因此,在此基础上,网络设备根据同一参数,采用相同的第一计算规则进行计算,得到的处理第一报文和处理第二报文的CPU分组也为同一CPU分组。也就是说,网络设备可将第一设备收发的双向的所有报文均分配给多个CPU分组中的同一CPU分组处理。
而且,由于第一报文的目的地址和第二报文的源地址均为外网中的设备的地址,当第一报文和第二报文为第一设备与外网中的第二设备之间通信的报文时,第一报文的目的地址和第二报文的源地址均为第二设备的地址,因此,在此基础上,网络设备根据同一参数,采用相同的第二计算规则进行计算,得到的处理第一报文和处理第二报文的CPU也为同一CPU分组中的同一CPU。当第一报文和第二报文为第一设备与外网中两个不同的设备之间通信的报文时,第一报文的目的地址和第二报文的源地址为不同的外网中的设备的地址,因此,网络设备根据不同的参数,采用相同的第二计算规则进行计算,得到的处理第一报文和处理第二报文的CPU可能为同一CPU分组中的不同CPU。也就是说,网络设备为报文分配处理的CPU分组之后,还进一步将第一设备与同一外网设备之间通信的双向报文均分配给同一CPU处理,将第一设备与不同的外网设备之间通信的双向报文则分配给不同的CPU处理。
本发明实施例中,所述第一计算规则和所述第二计算规则具体可以是哈希算法,即分别为第一哈希算法和第二哈希算法。下面以第一报文和第二报文的源地址、目的地址均为IP地址,网络设备为路由器等三层设备为例具体说明。
具体的,根据哈希运算的散列特性可知,针对上行报文,网络设备首先将该上行报文的源IP地址作为哈希参数,基于第一哈希算法进行哈希运算,从多个CPU分组中确定出负责处理的CPU分组。也就是说,具有相同源IP地址的上行报文,即内网中的同一设备发出的多个上行报文,将会分配给同一CPU分组处理;而具有不同源IP地址的上行报文,即内网中的不同设备发出的上行报文,依据所采用的第一哈希算法,可能会被分配给同一CPU分组处理,也可能被分配给不同的CPU分组处理,此处不做具体限制。
进而,网络设备将该上行报文的目的IP地址作为哈希参数,基于第二哈希算法进行哈希运算,从上一步中确定的CPU分组的多个CPU中确定出负责处理该上行报文的CPU,也就是说,即具有相同源IP地址,同时也具有相同目的IP地址的上行报文,即内网中的同一设备发送给外网中的同一设备的多个上行报文,会被分配给同一CPU分组中的同一CPU处理,而具有相同源IP地址,但具有不同目的IP地址的上行报文,即内网中的同一设备发送给外网中的不同设备的上行报文,依据所采用的第二哈希算法,可能会被分配给同一CPU分组中的同一CPU处理,也可能分配给同一CPU分组中的不同CPU处理,此处不做具体限制。
针对下行报文,网络设备首先将下行报文的目的IP地址作为哈希参数,基于第一哈希算法进行哈希运算,从多个CPU分组中确定出负责处理的CPU分组,也就是说,具有相同目的IP地址的下行报文,即发送给内网中同一设备的多个下行报文,将会分配给同一CPU分组处理,而具有不同目的IP地址的下行报文,即发送给内网中的不同设备的下行报文,依据所采用第一哈希算法,可能会被分配给同一CPU分组处理,也可能被分配给不同的CPU分组处理,此处不做具体限制。
进而,网络设备将下行报文的源IP地址作为参数,基于第二哈希算法,进行哈希运算,从上一步中确定的CPU分组中的多个CPU中确定出负责处理的CPU,也就是说,即具有相同目的IP地址,同时也具有相同源IP地址的下行报文,即外网中的同一设备发送给内网中的同一设备的多个下行报文会被分配给同一CPU分组中的同一CPU处理,而具有相同源IP地址但具有不同目的IP地址的下行报文,即外网中同一设备发送给内网中的不同设备的下行报文,依据所采用的第二哈希算法,可能会被分配给同一CPU分组中的同一CPU处理,也可能分配给同一CPU分组中的不同CPU处理,此处不做具体限制。
由上述内容可以看出,虽然针对上行报文和下行报文在进行两次哈希运算时采用的参数的顺序不相同,上行报文先采用源IP地址,后采用目的IP地址作为哈希参数,而下行报文先采用目的IP地址,后采用源IP地址作为参数。但是对于同一内网IP地址收发的上行报文和下行报文来说,网络设备在进行第一次哈希运算时,均根据该内网IP地址作为参数基于第一哈希算法进行哈希运算,因此,为该内网IP地址收发的上行报文和下行报文分配的CPU分组相同。若该上行报文和下行报文为内网IP地址与某一外网IP地址之间通信的双向报文,则该上行报文的目的IP地址,以及下行报文的源IP地址均为该外网IP地址,因此,网络设备在进行第二次哈希运算时,均根据该外网IP地址作为参数基于第二哈希算法进行哈希运算,因而,为该上行报文和下行报文在上一步中确定出的CPU分组中分配的CPU也相同。
也就是说,采用本发明实施例中进行两次哈希运算的方式,同一内网IP地址收发的双向报文均会被分配到同一CPU分组中处理,进一步地,同一内网IP地址和同一外网IP地址两点之间的双向的所有报文都会被分配到同一CPU上处理。此种方式相对于将同一内网IP地址的双向流量都分配到同一CPU上的分配原则来说,不会存在因流量过大造成单个CPU无法承载的问题。此外,本发明实施例是根据报文收发双方的IP地址确定处理的CPU,将收发双方的IP地址均相同的报文分配给同一CPU处理,如第一IP地址与第二IP地址的双向报文由CPU分组1中的CPU1来处理;第一IP地址与第三IP地址的双向报文由CPU分组1中的CPU2来处理,既实现了将第一IP地址的双向流量控制在同一CPU分组内,同时也便于实现第一IP地址对外网访问的报文处理及针对同一内网IP的精准统计。
在此基础上,当需要计算某一内网IP地址的占用带宽时,仅需要根据负责处理该内网IP地址的双向报文的CPU分组中处理的,与该内网IP地址相关的各个报文的转发速率进行运算,无需在网络设备的所有CPU中进行报文转发速率的同步,从而大大降低了带宽计算过程的运算量,提高网络设备的处理效率。
举例来说,若网络设备中具有6个CPU,分为2个CPU分组,分别为CPU组1和CPU组2。其中每个CPU分组中均包括3个CPU。内网中包括IP地址IP_A1、IP_A2,外网中包括IP地址IP_B1、IP_B2、IP_B3、IP_B4。
以上行方向为例,如图4中所示,在某一时刻,若IP_A1向IP_B1发送上行报文1,向IP_B2发送上行报文2;IP_A2向IP_B3发送上行报文3,向IP_B4发送上行报文4。采用本发明实施例一中的报文处理方法,网络设备根据第一哈希算法,进行第一次哈希,将IP_A1发送的上行报文(包括上行报文1和上行报文2)均分配给CPU组1处理,而将IP_A2发送的上行报文(包括上行报文3和上行报文4)均分配给CPU组2处理,实现了相同IP地址的上行报文分配到同一CPU组处理,不同源IP地址发送的上行报文分配到不同的CPU组中处理。随后,网络设备根据第二哈希算法,进行第二次哈希,将IP_A1发送给IP_B1的上行报文1分配给CPU组1中的CPU1处理,将发送给IP_B2的上行报文2分配给CPU组1中的CPU2处理,同理,网络设备采用相同方法将上行报文3分配给CPU组2中的CPU4处理,将上行报文4分配给CPU组2中的CPU5处理,实现了将不同目的地址的上行报文分配到同一组内的不同CPU上。
相应地,如图5中所示,在某一时刻,若IP_B1向IP_A1发送下行报文1,IP_B2向IP_A2发送下行报文2,IP_B3向IP_A2发送下行报文3,IP_B4向IP_A2发送下行报文4。采用本发明实施例一中的报文方法,网络设备根据第一哈希算法,进行第一次哈希,将到达IP_A1的下行报文(即下行报文1和下行报文2)均分配给CPU组1处理,而将到达IP_A2的下行报文(包括下行报文3和下行报文4)均分配给CPU组2处理,实现了相同目的IP地址的下行报文分配到同一CPU组中处理,不同目的IP地址的下行报文分配到不同的CPU组中处理。随后,网络设备根据第二哈希算法,进行第二次哈希,将IP_B1发送的下行报文1分配给CPU组1中的CPU1处理,将IP_B2发送的下行报文2分配给CPU组1中的CPU2处理,同理,网络设备采用相同方法将下行报文3分配给CPU组2中的CPU4处理,将下行报文4分配给CPU组2中的CPU5处理,实现了将不同源IP地址的下行报文分配到同一组内的不同CPU上。
可以看出,无论上行报文还是下行报文,网络设备为报文分配处理的CPU分组时均采用第一哈希算法,在确定出的CPU分组中为报文分配处理的CPU时均采用第二哈希算法,但需要说明的是,本发明实施例中,仅对网络设备进行哈希运算时具体采用的哈希参数作了限制,但是对于具体采用何种哈希算法并不做限制,本领域技术人员可根据实际的业务需要对具体采用的哈希算法进行设计,此处不做具体限制。而且,所述第一哈希算法与第二哈希算法可以相同也可以不相同,所述第一哈希算法和第二哈希算法中可以只采用报文的源或目的地址作为哈希参数,也可以采用报文的源或目的地址和端口号等其他参数一并作为哈希参数,本发明对此不做具体限制。
此外,本发明实施例中,网络设备还可采用其他计算规则为报文确定出处理的CPU分组、在确定出的CPU分组中确定出处理的CPU,只要能达到将具有相同的源IP地址的上行报文,分配给同一CPU组处理;具有相同源IP地址和相同目的IP地址的上行报文,分配给该同一CPU组的同一个CPU处理;具有相同的目的IP地址的下行报文,分配给同一CPU组处理;具有相同目的IP地址和相同源IP地址的下行报文,分配给该同一CPU组中的同一CPU处理。
本发明实施例中,所述网络设备还可以根据所述同一CPU分组在预设时长内处理与所述第一设备进行收发的所有报文的流量,得到所述第一设备在所述预设时长内占用的带宽,比如说,所述预设时长也可以为1秒,也可以为其他时长,并且,可由本领域技术人员根据实际需要进行设置,此处不做具体限制。
需要说明的是,本发明实施例中,本领域技术人员还可根据网络设备实际应用的场景的需求(比如说,考虑到内网的安全性需求),为该网络设备配置NAT(Network AddressTranslation,网络地址转换)转换功能。其中,所述NAT转换包括源NAT地址转换、目的NAT地址转换、或者二者的结合等多种类型,而且,任一种NAT转换可以仅转换报文的IP地址,也可以根据需要在转换IP地址的同时,也转换报文的端口号,具体以本领域技术人员在网络设备中的配置为准,此处不做具体限制。
若网络设备配置有源NAT地址转换,则意味着网络设备对其连接的内网中的设备发送到外网的上行报文的源地址进行转换,比如说,将该上行报文的源IP地址转换为该内网的一个全局IP地址,再转发到外网,在这种场景下,隐藏了该上行报文的真正的源IP地址,因此,内网中的设备可以主动向外网中的设备发送报文,但外网中的IP地址并不主动向内网中的设备发送报文,仅会在接收到内网中的某一设备发送的上行报文后,向该内网设备反馈回应报文,采用对网络设备配置源NAT转换的方案,可有效避免内网外部对内网发起的网络攻击,提高内网的网络安全。
例如,若IP_A为内网中设备的IP地址,IP_B为外网中设备的IP地址,则IP_A在向IP_B发送上行报文时,IP_A首先将该上行报文发送给网络设备,网络设备将该上行报文的源IP地址转换为该内网的全局IP地址IP_C后,再发送给IP_B。可以看出,由于设置了源IP地址转换,IP_B在接收到该上行报文后,仅能得知该上行报文的源IP地址为IP_C,当IP_B向网络设备发送回应报文时,目的IP地址即为IP_C,网络设备可根据其配置的源IP地址转化的对应关系进行逆向查找,确定出该回应报文在内网中的目的地址为IP_A,再转发给IP_A。
需要说明的是,某一内网可具有一个或多个全局IP地址,若该内网仅具有一个全局IP地址,则该内网中的所有内网设备发送的上行报文的源IP地址均转换为该全局IP地址,在这种情况下,为了对各个内网设备发送的报文进行有效区分,网络设备还需对各个报文的端口号进行转换,以使各个内网设备发送的报文在转换后具有不同的端口号,从而,当外网中的设备返回回应报文时,网络设备可根据回应报文的目的地址和端口号进行逆向查找,从而,确定出该报文在内网中的目的IP地址。
若该内网具有多个全局IP地址,则网络设备可将该内网中设备发送的上行报文的源IP地址进行静态NAT转换,或者也可以对源IP地址进行动态NAT转换。所述静态NAT转换,即指网络设备将内网中某一设备发出的上行报文的源IP地址均固定地转化为该内网的某一全局IP地址,内网IP地址与全局IP地址一一对应,且映射关系是保持不变的。当内网中的设备发送上行报文时,网络设备均将该报文的源IP地址固定地转换为该设备的内网IP地址对应的全局IP地址,再转发到外网中。所述动态NAT转换是指内网中涉笔发送的上行报文的源IP地址转换后的全局IP地址是不固定的,设备的内网IP地址与全局IP地址不是一一对应的,而是按照一定的规则进行动态地分配的,也就是说,对于某一内网IP地址发送的多个上行报文,各个报文转化后的全局IP地址可能相同,也可能不相同。
若网络设备配置有目的IP地址转换,则意味着网络设备对其连接的外网中的设备发送的下行报文的目的IP地址进行转换,也就是说,在进行目的NAT转换前,下行报文的目的IP地址均为该内网的全局IP地址,网络设备接收到下行报文后,将报文的目的IP地址由内网的全局IP地址转换为内网IP地址,再转发给内网。在这种场景下,隐藏了下行报文真正的目的IP地址,外网中的设备可以主动地向内网中的设备发送报文,但内网中的设备并不主动地向外网中的设备发送报文,仅会在接收到外网中的设备发送的下行报文后,向该外网设备反馈回应报文,由于外网中的设备不会得知其发送的下行报文的真正目的IP地址,因而,也可有效避免内网外部对内网发起的网络攻击,提高内网的网络安全。
具体的,本发明实施例中,网络设备在根据所述第二报文的目的地址确定处理所述第二报文的CPU分组之前,还包括判断自身是否配置有网络地址转换的步骤。图6为本发明实施例一中网络设备中配置有网络地址转换功能情况下的一种报文处理方法所对应的方法流程图,如图6所示,所述方法包括如下步骤S601至步骤S607:
步骤S601:内网中的第一设备向外网发送第一报文;
步骤S602:网络设备接收内网中的第一设备发送到外网的第一报文时,根据所述第一报文的源地址确定处理所述第一报文的CPU分组,并从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU,处理所述第一报文的CPU分组的分组标识是根据所述第一报文的源地址确定的;
步骤S603:外网中的任一设备向所述第一设备发送第二报文;
步骤S604:网络设备判断自身是否配置有网络地址转换功能;
步骤S605:网络设备若确认自身未配置有网络地址转换功能,则在接收到外网中的任一设备发送给所述第一设备的第二报文时,根据所述第二报文的目的地址确定处理所述第二报文的CPU分组,并从处理所述第二报文的CPU分组中确定处理所述第二报文的CPU,其中,处理所述第二报文的CPU分组的分组标识是根据所述第二报文的目的地址确定的,处理所述第一报文的CPU分组和所述第二报文的CPU分组为同一CPU分组。
步骤S606:网络设备若确认自身配置有网络地址转换功能,在从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU之后,对所述第一报文的源地址进行私网地址到公网地址的网络地址转换,得到转换后的公网源地址,并记录所述第一报文的公网源地址和处理所述第一报文的CPU的标识的第一对应关系;
步骤S607:所述网络设备在接收到外网中的任一设备发送给所述第一设备的第二报文时,根据所述第二报文的目的地址在所述第一对应关系中确定用于处理第二报文的CPU标识。
需要说明的是,上述步骤编号仅是一种执行顺序的示例性表示,本申请中对执行顺序不做具体限定。比如说,上述网络设备判断自身是否配置有网络地址转换功能的步骤S604具体可在网络设备上电时便执行,也可在步骤S601至步骤S605中的任一步骤前执行,此处不做限制。
此外,本发明实施例中,网络设备可以先接收内网中的第一设备发送的第一报文,也可以先接收外网中的任一设备发送的第二报文,或者也可以同时接收第一报文和第二报文,此处不做具体限制。具体的,网络设备对第一报文和第二报文的处理过程相互独立,互不干扰,步骤S601、步骤S602、步骤S606用于描述网络设备对第一报文的处理过程,所述步骤S602在步骤S601之后执行,步骤S606在步骤S602之后执行;步骤S603和步骤S607用于描述网络设备对第二报文的处理过程,步骤S607在步骤S603之后执行。
在上述步骤S601至步骤S607具体是指网络设备中配置有源网络地址转换功能下的报文处理方法,在这种场景下,网络设备接收到内网发送到外网的第一报文后,根据第一报文的源地址确定出处理第一报文的CPU分组,随后,根据第一报文的目的地址从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU,进而,网络设备通过确定出的CPU对该第一报文的源地址进行私网地址到外网地址的网络地址转换,得到转换后的外网源地址,并将转换后的第一报文的外网源地址和处理第一报文的CPU的标识记录在第一对应关系中。
本发明实施例中,网络设备对第一报文的源地址进行私网地址到外网地址的网络地址转换具体是指将第一报文的源地址由第一设备的地址转换为该内网的全局地址。
以网络设备为路由器等三层设备、报文的源地址和目的地址均为IP地址为例,所述第一对应关系可指网络设备已转发的各上行报文转换后的源IP地址与对应处理的CPU的对应关系。在具体的应用场景中,网络设备可在转换上行报文的源IP地址的同时,也可对源端口号进行相应地转换,因此,所述第一对应关系可指网络设备已转发的各上行报文转换后的源IP地址、转换后的源端口号与对应处理的CPU之间的对应关系。一般来说,在网络设备中该第一对应关系又可称为CPU与NAT资源的映射关系表,网络设备在每转发一个上行报文后都对该第一对应关系进行相应更新,该映射关系表的具体格式可以如表1所示:
表1第一对应关系的格式的示例
转换后的源IP地址 | 转化后的源端口号 | 对应处理的CPU |
IP_C | PORT_A1’ | CPU1 |
IP_C | PORT_A1’ | CPU2 |
上述表1示出了源IP地址分别为IP_A1、IP_A2的上行报文转换后的源IP地址、源端口号以及根据上述步骤确定出的CPU。其中,上述两个上行报文的源IP地址均转换为该内网的同一个全局IP地址,即IP_C,需要说明的是,表1中的数据仅作为第一对应关系格式的一种示例,本领域技术人员可根据实际需要对网络设备中NAT转换进行具体配置,上行报文可转换为同一全局IP地址,也可转化为不同的全局IP地址,此处不做具体限制,或者,第一对应关系也可以为其他表示方式,此处不做具体限制。
由于网络设备对已转发的每个上行报文的源地址与对应处理的CPU都存储在了第一对应关系中,在此基础上,由于上行报文的源地址与下行报文的目的地址均为内网中的设备的地址,因此,当网络设备在接收到外网中的任一设备发送给所述第一设备的第二报文时,可根据所述第二报文的目的地址和目的端口号查询上述第一对应关系,在该第一对应关系中确定用于处理第二报文的CPU的标识。
即,若在上述第一对应关系中查询到该第二报文的目的地址和目的端口号,则说明该第二报文为网络设备之前的转发的某一第一报文的回应报文,则网络设备可将该第二报文的目的地址和目的端口号对应的CPU,直接确定为负责处理该第二报文的CPU,也就是说,将该第二报文分配给负责处理其对应的第一报文的同一CPU处理,保证了上行报文的回应报文也沿着原先上行报文的处理路径进行处理。
若在上述第一对应关系中查询不到该第二报文的目的地址和目的端口号,则说明该第二报文为外网中的设备主动向内网发送的下行报文,所述网络设备可以将该第二报文直接丢弃,或者也可以先将该第二报文的目的地址转化为私网目的地址,再按照本发明实施例中的所述的步骤S301至步骤S304中所述的方法,先后将私网目的地址和源地址作为第一哈希算法、第二哈希算法的参数,进行二次哈希运算,确定出处理的CPU。
图7为本发明实施例一中网络设备中配置有网络地址转换功能情况下的另一种报文处理方法所对应的方法流程图,如图7所示,所述方法包括如下步骤S701至步骤S706:
步骤S701:内网中的第一设备向外网发送第一报文;
步骤S702:网络设备接收内网中的第一设备发送到外网的第一报文时,根据所述第一报文的源地址确定处理所述第一报文的CPU分组,并从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU,处理所述第一报文的CPU分组的分组标识是根据所述第一报文的源地址确定的;
步骤S703:外网中的任一设备向所述第一设备发送第二报文;
步骤S704:网络设备判断自身是否配置有网络地址转换功能;
步骤S705:网络设备若确认自身未配置有网络地址转换功能,则在接收到外网中的任一设备发送给所述第一设备的第二报文时,根据所述第二报文的目的地址确定处理所述第二报文的CPU分组,并从处理所述第二报文的CPU分组中确定处理所述第二报文的CPU,其中,处理所述第二报文的CPU分组的分组标识是根据所述第二报文的目的地址确定的,处理所述第一报文的CPU分组和所述第二报文的CPU分组为同一CPU分组。
步骤S706:网络设备若确认自身配置有网络地址转换功能,在接收到外网中的任一设备发送给所述第一设备的第二报文时,对所述第二报文的目的地址进行公网地址到私网地址的网络地址转换,得到转换后的私网目的地址,根据所述私网目的地址确定处理所述第二报文的CPU分组,处理所述第二报文的CPU分组的分组标识是根据所述第二报文的私网目的地址确定的;
步骤S707:所述网络设备获取所述第二报文的源地址,根据所述第二报文的源地址从处理所述第二报文的CPU分组中确定第二CPU,所述第二CPU的标识与所述第二报文的源地址相关。
需要说明的是,上述步骤编号仅是一种执行顺序的示例性表示,本申请中对执行顺序不做具体限定。比如说,上述网络设备判断自身是否配置有网络地址转换功能的步骤S704具体可在网络设备上电时便执行,也可在步骤S701至步骤S707中的任一步骤前执行,此处不做限制。
此外,本发明实施例中,网络设备可以先接收内网中的第一设备发送的第一报文,也可以先接收外网中的任一设备发送的第二报文,或者也可以同时接收第一报文和第二报文,此处不做具体限制。具体的,网络设备对第一报文和第二报文的处理过程相互独立,互不干扰,步骤S701、步骤S702用于描述网络设备对第一报文的处理过程,步骤S702在步骤S701之后执行;步骤S703、步骤S705、步骤S706、步骤S707用于描述网络设备对第二报文的处理过程,步骤S705和步骤S706在步骤S703之后执行,步骤S707在步骤S706之后执行。
在上述步骤S701至步骤S707具体是指网络设备中配置有目的网络地址转换功能下的报文处理方法,在这种场景下,网络设备接收到内网发送到外网的第一报文后,根据第一报文的源地址确定出处理第一报文的CPU分组,随后,根据第一报文的目的地址从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU,进而,网络设备通过确定出的CPU,根据网络设备中存储的第二对应关系,对该第一报文的源地址进行私网地址到外网地址的网络地址转换以及相应处理后,再转发到外网。
其中,网络设备对第一报文的源地址进行私网地址到外网地址的网络地址转换具体是指将第一报文的源地址由第一设备的地址转换为该内网的全局地址。
网络设备在接收到外网中的任一设备发送给所述第一设备的第二报文时,根据该第二报文的目的地址,以及网络设备中存储的第二对应关系,确定出转换后的私网目的地址,再根据私网目的地址确定处理第二报文的CPU分组,进而,获取第二报文的源地址,根据第二报文的源地址从处理所述第二报文的CPU分组中确定出处理该报文的第二CPU。
本发明实施例中,第二对应关系指的是网络设备针对下行报文设定的,转换前的目的地址、转换后的目的地址之间的对应关系。以网络设备为路由器等三层设备、报文的源地址和目的地址均为IP地址为例,在具体的应用场景中,由于网络设备可在转换下行报文的目的IP地址的同时,也可对目的端口号进行相应地转换,因此,所述第二对应关系可指网络设备针对下行报文转换前的目的IP地址、转换前的目的端口号,与转换后的目的IP地址、转换后的目的端口号的对应关系。一般来说,在网络设备中该第二对应关系又可称为NAT映射关系表,该映射关系表的具体格式可以如表2所示:
表2第二对应关系的示例
上述表2示出了目的IP地址均为IP_C,但目的端口号分别为PORT_A1’、PORT_A2’的两个下行报文转换前后的目的IP地址、目的端口号之间的对应关系。其中,转换前上述两个下行报文的目的IP地址均为IP_C,该IP_C为该内网的一个全局IP地址,网络设备分别将上述两个报文的目的IP地址转换为IP_A1和IP_A2。
需要说明的是,表2中的数据仅作为第二对应关系格式的一种示例,本领域技术人员可根据业务要求对网络设备中NAT转换进行具体配置,或者,第一对应关系也可以为其他表示方式,此处不做具体限制。
相应地,若确定该报文为下行报文,则根据该报文的目的IP地址和目的端口号查询上述第一对应关系,若在上述第一对应关系中查询到该报文的目的IP地址和目的端口号,则说明该下行报文为网络设备之前的转发的某一上行报文的回应报文,则网络设备可将该下行报文的目的地址和目的端口号对应的CPU,直接确定为负责处理该下行报文的CPU,也就是说,将该下行报文分配给负责处理其对应的上行报文的同一CPU处理,保证了上行报文的回应报文也沿着原先上行报文的处理路径原路返回。
由上述内容可以看出,在网络设备配置有网络地址转换功能的情况下,针对内网中的第一网络设备发送给外网的第一报文,网络设备在确定出处理该第一报文的CPU之后,均需要根据网络设备中网络地址转换的具体配置,对第一报文的源地址进行相应转换,才会进行后续处理,再转发到外网。
针对外网中的任一设备发送给第一设备的第二报文,网络设备可采取两种处理方式来确定出处理第二报文的CPU。第一种方式,网络设备中设置有CPU与NAT资源的映射关系表(即第一对应关系),网络设备每接收到一个第一报文,在确定出该第一报文对应的CPU后,均根据第一报文转换后的源地址和对应的CPU更新该CPU与NAT资源的映射关系表,于是,网络设备在接收到第二报文后,查询该NAT资源与CPU的映射关系表直接确定出该第二报文对应的CPU。
第二种方式,网络设备中设置有NAT映射表,网络设备在接收到第二报文后,根据第二报文的目的地址,查询该NAT映射表,确定出第二报文转换后的目的地址,再根据转换后的目的地址确定出CPU分组,根据第二报文的源地址在确定出的CPU分组中,确定出CPU。
需要说明的是,网络设备设置有源NAT转换的场景下,由于需要对每个第一报文的源地址进行转换,转换后即可记录转化后的源地址和对应的CPU,即可方便地得到CPU与NAT资源的映射关系表,因而,优先用第一种方式处理,但是也可以采用第二种方式处理,此处不做具体限制
网络设备在设置有目的NAT转换的场景下,由于内网不主动向外网发送报文,网络设备一般情况下不设置有NAT资源与CPU的映射关系表,因而,网络设备优先用第二种方式处理,但网络设备也可在转发内网中的设备向外网发送的回应报文时,记录下每个报文转换后的源地址和对应的CPU,从而可对第二报文采用第一种方式进行处理。
下面基于图2所示的系统架构,结合实施例二至实施例四对实施一中所描述的网络设备中的报文处理方法进行具体说明。
实施例二
本实施例二中,网络设备中未设置网络地址转换(NAT),即内网一侧的设备可主动向外网一侧的设备发送上行报文,外网一侧的设备也可主动向内网一侧的设备发送下行报文。相应地,外网一侧的设备在接收到内网一侧的设备主动发送的上行报文后,可向该内网一侧的设备发送下行的回应报文,内网一侧的设备在接收到外网一侧的设备主动发送的的下行报文后,也可向该外网一侧的设备发送上行的回应报文。
图8为本发明实施例二中提供的一种网络设备中的报文处理方法所对应的流程示意图,如图6所示,具体包括如下步骤S801至S806:
步骤S801:网络设备上电,根据所述网络设备中存储的配置文件,确定是否配置有NAT转换;
步骤S802:若网络设备确定未配置NAT转换,则在接收报文后,根据接收所述报文的接口为上行接口还是下行接口,确定出所述报文的传输方向;
步骤S803:若确定所述报文为上行报文,则将所述报文的源IP地址作为第一哈希算法的参数,基于第一哈希算法进行第一次哈希运算,将所述报文分配给所述网络设备的多个CPU组中的第一CPU分组处理;
步骤S804:若确定所述报文为上行报文,则在将所述报文分配给第一CPU分组处理后,将所述报文的目的IP地址作为第二哈希算法的参数,基于第二哈希算法进行第二次哈希运算,将所述报文分配给所述第一CPU分组中的第一CPU处理,并在处理后将所述报文发送至外网。
步骤S805:若确定所述报文为下行报文,则将所述报文的目的IP地址作为第一哈希算法的参数,基于第一哈希算法进行第一次哈希运算,将所述报文分配给多个CPU组中的第一CPU分组处理;
步骤S806:若确定所述报文为下行报文,则在将所述报文分配给第一CPU分组处理后,将所述报文的目的IP地址作为第二哈希算法的参数,基于第二哈希算法,进行第二次哈希运算,将所述报文分配给所述第一CPU分组中的第一CPU处理,并在处理后将所述报文发送至内网。
可见,所述网络设备通过执行上述步骤S801至步骤S806,在未设置有NAT转换的场景下,可实现将同一内网IP地址的双向报文汇聚到同一CPU分组中,且将该内网IP地址与某一外网IP地址之间的双向报文都汇聚到同一CPU分组中的同一CPU的目的。
具体的,在上述步骤S801中,所述配置文件为本领域技术人员根据实际需要进行设置,并存储在网络设备中的,用于指示该网络设备是否对其转发的报文进行NAT转换。
在步骤S802中,所述网络设备的上行接口为网络设备与外网一侧连接的接口,其接收到的报文上行报文,网络设备也可通过该上行接口向外网发送上行报文;下行接口为网络设备与内网一侧连接的接口,其接收到的报文为上行报文,网络设备也可通过该下行接口收向内网发送下行报文。
需要说明的是,本发明实施例中对上述步骤S803至步骤S806中所采用的具体的哈希算法不做限制。
实施例三
本发明实施例三中,网络设备中设置有网络地址转换,具体的,该网络设备设置有源地址转换,即,内网一侧的设备可主动向外网一侧的设备主动发送上行报文,而外网一侧的设备不主动向内网一侧的设备发送下行报文,但是外网一侧的设备在接收到内网一侧的设备主动发送的上行报文后,可向该内网一侧的设备发送下行的回应报文。
而且,在这种场景下,由于该网络设备设置了源地址转换,即使外网一侧的设备主动向内网一侧发送了下行报文,由于网络设备可能不能得出该下行报文的目的地址,从而可能将该下行报文丢弃。
在本发明实施例三的场景下,根据网络设备中NAT的配置,该网络设备中还具体设置有CPU与NAT资源的映射关系表,该CPU与NAT资源的映射关系表具体可指本发明实施例一中所述的第一对应关系。其中,包括了网络设备针对上行报文的转换前的源地址、源端口号与分配的CPU的对应关系。
图9为本发明实施例三中提供的一种网络设备中的报文处理方法所对应的流程示意图,如图9所示,具体包括如下步骤S901至S907:
步骤S901:网络设备上电,根据所述网络设备中存储的配置文件,确定是否配置有NAT转换;
步骤S902:若网络设备确定配置有源NAT转换,则在接收报文后,根据接收所述报文的接口为上行接口还是下行接口,确定出所述报文的传输方向;
步骤S903:若确定所述报文为上行报文,则根据所述报文的源IP地址和源端口号为第一哈希算法的参数,基于第一哈希算法进行第一次哈希运算,将所述报文分配给所述网络设备的多个CPU组中的第一CPU分组处理;
步骤S904:将所述报文分配给第一CPU分组处理后,将所述报文的目的IP地址作为第二哈希算法的参数,基于第二哈希算法进行第二次哈希运算,将所述报文分配给所述第一CPU分组中的第一CPU处理。
步骤S905:将所述报文分配给第一CPU处理后,通过所述第一CPU,对所述报文的源IP地址和源端口号进行转换,并根据转换后的源IP地址和源端口号更新第一对应关系,对所述报文进行相应处理后,将其发送至外网。
步骤S906:若确定所述报文为下行报文,则根据所述报文的目的IP地址和目的端口查询所述第一对应关系,若在所述第一对应关系中查询到所述目的IP地址和目的端口对应的CPU,则将所述报文分配给所述CPU处理,并在处理后将报文发送至内网。
步骤S907:若在所述第一对应关系中未查询到所述目的IP地址和目的端口对应的CPU,则直接将所述报文丢弃。
可见,所述网络设备通过执行上述步骤S901至步骤S907,在具体设置有源IP地址转换的场景下,也可实现将同一内网IP地址的双向报文汇聚到同一CPU分组中,且将该内网IP地址与某一外网IP地址之间的双向报文都汇聚到同一CPU分组中的同一CPU的目的。
需要说明的是,在上述网络设备在步骤S902中,根据接收报文的接口的不同,选择性的执行步骤S903或步骤S906,具体的,若接收报文的接口为下行接口,则网络设备依次执行上述步骤S903至步骤S905,若接收报文的接口为上行接口,则网络设备依次执行上述步骤S906至步骤S907。
实施例四
本发明实施例四中,网络设备中设备有网络地址转换,具体的,该网络设备设置有目的NAT转换,即,外网一侧的设备可主动向内网一侧的设备发送下行报文,而内网一侧的设备不主动向外网一侧的设备发送上行报文,但是内网一侧的设备在接收到外网一侧的设备主动发送的下行报文后,可向该外网一侧的设备发送下行的回应报文。
在本发明实施例四的场景下,根据网络设备中NAT的配置,该网络设备中还具体设置有NAT映射关系表,该NAT映射关系表具体可指本发明实施例一中所述的第二对应关系,其中包括网络设备针对下行报文的转换前的目的地址、目的端口号与转换后的目的地址、目的端口号的对应关系。
图10为本发明实施例四中提供的一种网络设备中的报文方法对应的流程示意图,如图10所示,具体包括如下步骤S1001至S1008:
步骤S1001:网络设备上电,根据所述网络设备中存储的配置文件,确定是否配置有NAT转换;
步骤S1002:若网络设备确定配置有目的NAT转换,则在接收报文后,根据接收所述报文的接口为上行接口还是下行接口,确定出所述报文的传输方向;
步骤S1003:若确定所述报文为上行报文,则将所述报文的源IP地址作为第一哈希算法的参数,基于第一哈希算法进行哈希运算,将所述报文分配给所述网络设备的多个CPU组中的第一CPU分组处理;
步骤S1004:将所述报文分配给第一CPU分组处理后,将所述报文的目的IP地址作为第二哈希算法的参数,基于第二哈希算法进行哈希运算,将所述报文分配给所述第一CPU分组中的第一CPU处理。
步骤S1005:将所述报文分配给第一CPU处理后,通过所述第一CPU,根据第二对应关系对所述报文的源IP地址进行转换,并对所述报文进行处理后发送到外网。
步骤S1006:若确定所述报文为下行报文,则根据所述报文的目的IP地址和目的端口查询所述第二对应关系,确定出所述报文转换后的目的IP地址和转换后的目的端口号;
步骤S1007:将所述转换后的目的IP地址和目的端口号作为第二哈希算法的参数,基于第一哈希算法对所述报文进行哈希运算,将所述报文分配给所述网络设备中的第一CPU分组处理;
步骤S1008:将所述报文分配给所述网络设备中的第一CPU分组处理后,将所述报文的源IP地址作为第二哈希算法的参数,基于第二哈希算法进行哈希运算,将所述报文分配给所述网络设备中的第一CPU处理,并在进行相应处理后发送到内网。
可见,所述网络设备通过执行上述步骤S1001至步骤S1009,在具体设置有目的IP地址转换的场景下,也可实现将同一内网IP地址的双向报文汇聚到同一CPU分组中,且将该内网IP地址与某一外网IP地址之间的双向报文都汇聚到同一CPU分组中的同一CPU的目的。
需要说明的是,在上述网络设备在步骤S1002中,根据接收报文的接口的不同,选择性的执行步骤S1003或步骤S1006,具体的,若接收报文的接口为下行接口,则网络设备依次执行上述步骤S1003至步骤S1005,若接收报文的接口为上行接口,则网络设备依次执行上述步骤S1006至步骤1008。
此外,在网络设备同时设置有源NAT转换和目的NAT转换的场景下,所述网络设备也可根据执行上述实施例四中的方法步骤对接收到的报文进行相应地转发处理,具体的,所述网络设备中可分别设置有针对上行报文转换前的源IP地址与转化后的源IP地址的第三对应关系,以及针对下行报文的转换前的目的IP地址与转换后的目的IP地址的第四对应关系,所述第三对应关系可与第四对应关系相同,或者互为可逆的对应关系,此处不做具体限制。
举例来说,表3为第三对应关系的部分内容示例,表4为第四对应关系的部分内容示例,由表3和表4可以看出,第三对应关系中转换前的源IP地址与第四对应关系中转换后目的IP地址相对应,第三对应关系转换后的源IP地址与第四对应关系中转换前的目的IP地址相对应,相应地,第三对应关系中转换前、转换后的源端口号也分别于第四对应关系中转换后、转换前的目的端口号相对应。
表3第三对应关系的示例
转换前的源IP地址 | 转换前的源端口号 | 转换后的源IP地址 | 转换后的源端口号 |
IP_A1 | PORT_A1 | IP_C | PORT_A1’ |
IP_A2 | PORT_A2 | IP_C | PORT_A2’ |
表4第四对应关系的示例
针对上述方法流程,本发明实施例还提供一种网络设备,该网络设备具有实现上述第一方面方法示例中的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或所述软件包括一个或多个与上述功能相对应的模块。
需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
图11为本发明实施例提供的一种网络设备的结构示意图。如图11所示,该网络设备1100包括:通信接口1101、处理器1102、存储器1103和总线系统1104;其中,通信接口1101、处理器1102和存储器1103可以通过总线系统1104连接在一起,存储器1103,存储有计算机程序,具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器1103可能为随机存取存储器(random access memory,简称RAM),也可能为非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。图中仅示出了一个存储器,当然,存储器也可以根据需要,设置为多个。存储器1103也可以是处理器1102中的存储器。
存储器1103存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
处理器1102控制终端1100的操作,处理器1102还可以称为CPU(CentralProcessing Unit,中央处理单元)。具体的应用中,终端1100的各个组件通过总线系统1104耦合在一起,其中总线系统1104除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1104。为便于表示,图11中仅是示意性画出。
上述本申请实施例揭示的方法可以应用于处理器1102中,或者由处理器1102实现。处理器1102可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1102中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1102可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1103,处理器1102读取存储器1103中的信息,结合其硬件执行以上终端所执行的方法步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种报文处理方法,其特征在于,所述方法应用于网络设备,所述网络设备一侧连接内网,另一侧连接外网,所述网络设备包括多个CPU分组,所述多个CPU分组中的任一CPU分组包括一个或多个CPU,所述方法包括:
所述网络设备在接收内网中的第一设备发送到外网的第一报文时,根据所述第一报文的源地址确定处理所述第一报文的CPU分组,并从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU,处理所述第一报文的CPU分组的分组标识是根据所述第一报文的源地址确定的;
所述网络设备在接收到外网中的任一设备发送给所述第一设备的第二报文时,根据所述第二报文的目的地址确定处理所述第二报文的CPU分组,并从处理所述第二报文的CPU分组中确定处理所述第二报文的CPU,其中,处理所述第二报文的CPU分组的分组标识是根据所述第二报文的目的地址确定的,处理所述第一报文的CPU分组和所述第二报文的CPU分组为同一CPU分组。
2.根据权利要求1所述的方法,其特征在于,从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU,包括:
所述网络设备获取所述第一报文的目的地址,根据所述第一报文的目的地址在处理所述第一报文的CPU分组中确定处理所述第一报文的第一CPU,所述第一CPU的标识与所述第一报文的目的地址相关;
从处理所述第二报文的CPU分组中确定处理所述第二报文的CPU,包括:
所述网络设备获取所述第二报文的源地址,根据所述第二报文的源地址在处理所述第二报文的CPU分组中确定处理所述第二报文的第二CPU,所述第二CPU的标识与所述第二报文的源地址相关。
3.根据权利要求1所述的方法,其特征在于,根据所述第一报文的源地址确定处理所述第一报文的CPU分组,包括:
所述网络设备将所述第一报文的源地址作为第一计算规则的参数,基于所述第一计算规则计算得到结果值,将CPU分组的标识为所述结果值的CPU分组作为处理所述第一报文的CPU分组;
所述根据所述第一报文的目的地址在处理所述第一报文的CPU分组中确定处理所述第一报文的第一CPU,包括:
所述网络设备将所述第一报文的目的地址作为第二计算规则的参数,基于所述第二计算规则计算得到结果值,将CPU标识为所述结果值的CPU作为处理所述第一报文的第一CPU;
所述根据所述第二报文的目的地址确定处理所述第二报文的CPU分组,包括:
所述网络设备将所述第二报文的目的地址作为所述第一计算规则的参数,基于所述第一计算规则计算得到结果值,将CPU分组的标识为所述结果值的CPU分组作为处理所述第二报文的CPU分组;
所述根据所述第二报文的源地址在处理所述第二报文的CPU分组中确定处理所述第二报文的第二CPU,包括:
所述网络设备将所述第二报文的源地址作为所述第二计算规则的参数,基于所述第二计算规则计算得到结果值,将CPU标识为所述结果值的CPU作为处理所述第二报文的第二CPU。
4.根据权利要求1所述的方法,其特征在于,所述网络设备根据所述第二报文的目的地址确定处理所述第二报文的CPU分组之前,还包括:
所述网络设备确认自身未配置有网络地址转换功能。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
所述网络设备若确认自身配置有网络地址转换功能,在从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU之后,对所述第一报文的源地址进行私网地址到公网地址的网络地址转换,得到转换后的公网网源地址,并记录所述第一报文的公网源地址和处理所述第一报文的CPU的标识的第一对应关系;
所述网络设备在接收到外网中的任一设备发送给所述第一设备的第二报文时,根据所述第二报文的目的地址在所述第一对应关系中确定用于处理第二报文的CPU标识。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述网络设备若确认自身配置有网络地址转换功能,在接收到外网中的任一设备发送给所述第一设备的第二报文时,对所述第二报文的目的地址进行公网地址到私网地址的网络地址转换,得到转换后的私网目的地址,根据所述私网目的地址确定处理所述第二报文的CPU分组,处理所述第二报文的CPU分组的分组标识是根据所述第二报文的私网目的地址确定的;
所述网络设备获取所述第二报文的源地址,根据所述第二报文的源地址从处理所述第二报文的CPU分组中确定第二CPU,所述第二CPU的标识与所述第二报文的源地址相关。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
所述网络设备根据所述同一CPU分组在预设时长内处理与所述第一设备进行收发的所有报文的流量,得到所述第一设备在所述预设时长内占用的带宽。
8.一种网络设备,其特征在于,所述网络设备包括:
通信接口,用于接收内网中的第一设备发送到外网的第一报文,以及接收外网中的任一设备发送给所述第一设备的第二报文;
处理器,用于根据所述第一报文的源地址确定处理所述第一报文的CPU分组,并从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU,处理所述第一报文的CPU分组的分组标识是根据所述第一报文的源地址确定的;以及,
根据所述第二报文的目的地址确定处理所述第二报文的CPU分组,并从处理所述第二报文的CPU分组中确定处理所述第二报文的CPU,其中,处理所述第二报文的CPU分组的分组标识是根据所述第二报文的目的地址确定的,处理所述第一报文的CPU分组和所述第二报文的CPU分组为同一CPU分组。
9.根据权利要求8所述的网络设备,其特征在于,所述处理器具体用于:
获取所述第一报文的目的地址,根据所述第一报文的目的地址在处理所述第一报文的CPU分组中确定处理所述第一报文的第一CPU,所述第一CPU的标识与所述第一报文的目的地址相关;
获取所述第二报文的源地址,根据所述第二报文的源地址在处理所述第二报文的CPU分组中确定处理所述第二报文的第二CPU,所述第二CPU的标识与所述第二报文的源地址相关。
10.根据权利要求8所述的网络设备,其特征在于,所述处理器具体用于:
将所述第一报文的源地址作为第一计算规则的参数,基于所述第一计算规则计算得到结果值,将CPU分组的标识为所述结果值的CPU分组作为处理所述第一报文的CPU分组;
将所述第一报文的目的地址作为第二计算规则的参数,基于所述第二计算规则计算得到结果值,将CPU标识为所述结果值的CPU作为处理所述第一报文的第一CPU;
将所述第二报文的目的地址作为所述第一计算规则的参数,基于所述第一计算规则计算得到结果值,将CPU分组的标识为所述结果值的CPU分组作为处理所述第二报文的CPU分组;
将所述第二报文的源地址作为所述第二计算规则的参数,基于所述第二计算规则计算得到结果值,将CPU标识为所述结果值的CPU作为处理所述第二报文的第二CPU。
11.根据权利要求8所述的网络设备,其特征在于,所述处理器还用于,根据所述第二报文的目的地址确定处理所述第二报文的CPU分组之前,确认所述网络设备未配置有网络地址转换功能。
12.根据权利要求11所述的网络设备,其特征在于,所述处理器还用于:
若根据所述第二报文的目的地址确定处理所述第二报文的CPU分组之前,确认所述网络设备配置有网络地址转换功能,在从处理所述第一报文的CPU分组中确定处理所述第一报文的CPU之后,对所述第一报文的源地址进行私网地址到公网地址的网络地址转换,得到转换后的外网源地址,并记录所述第一报文的公网源地址和处理所述第一报文的CPU的标识的第一对应关系;
在接收到外网中的任一设备发送给所述第一设备的第二报文时,根据所述第二报文的目的地址在所述第一对应关系中确定用于处理第二报文的CPU标识。
13.根据权利要求11所述的网络设备,其特征在于,所述处理器具体用于:
若根据所述第二报文的目的地址确定处理所述第二报文的CPU分组之前,确认所述网络设备配置有网络地址转换功能,在接收到外网中的任一设备发送给所述第一设备的第二报文时,对所述第二报文的目的地址进行公网地址到私网地址的网络地址转换,得到转换后的私网目的地址,根据所述私网目的地址确定处理所述第二报文的CPU分组,处理所述第二报文的CPU分组的分组标识是根据所述第二报文的私网目的地址确定的;
获取所述第二报文的源地址,根据所述第二报文的源地址从处理所述第二报文的CPU分组中确定第二CPU,所述第二CPU的标识与所述第二报文的源地址相关。
14.根据权利要求8至13所述的网络设备,其特征在于,所述处理器还用于:
根据所述同一CPU分组在预设时长内处理与所述第一设备进行收发的所有报文的流量,得到所述第一设备在所述预设时长内占用的带宽。
15.一种计算机可读存储介质,其特征在于,所述存储介质存储有指令,当所述指令在计算机上运行时,使得计算机执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710527956.0A CN109218229B (zh) | 2017-06-30 | 2017-06-30 | 一种报文处理方法、网络设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710527956.0A CN109218229B (zh) | 2017-06-30 | 2017-06-30 | 一种报文处理方法、网络设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109218229A true CN109218229A (zh) | 2019-01-15 |
CN109218229B CN109218229B (zh) | 2020-12-01 |
Family
ID=64991874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710527956.0A Active CN109218229B (zh) | 2017-06-30 | 2017-06-30 | 一种报文处理方法、网络设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109218229B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111030932A (zh) * | 2019-12-04 | 2020-04-17 | 锐捷网络股份有限公司 | 一种数据报文锚定的方法、装置及系统 |
CN113014689A (zh) * | 2021-03-01 | 2021-06-22 | 杭州迪普科技股份有限公司 | 一种网络地址转换的方法和装置 |
CN113098794A (zh) * | 2021-03-30 | 2021-07-09 | 郑州信大捷安信息技术股份有限公司 | 利用二次分流实现隧道报文对称rss处理的方法及系统 |
CN113472727A (zh) * | 2020-03-31 | 2021-10-01 | 北京中科网威信息技术有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
CN114338595A (zh) * | 2021-12-31 | 2022-04-12 | 山石网科通信技术股份有限公司 | 报文的分布式处理方法、装置、存储介质及处理器 |
CN115086274A (zh) * | 2022-06-10 | 2022-09-20 | 北京启明星辰信息安全技术有限公司 | 一种网络流量分配方法、装置、设备和存储介质 |
WO2022218370A1 (zh) * | 2021-04-15 | 2022-10-20 | 华为技术有限公司 | 一种报文处理的方法及相关装置 |
CN117240612A (zh) * | 2023-11-10 | 2023-12-15 | 杭州海康威视数字技术股份有限公司 | 基于多模过滤的失陷物联网设备安全检测方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7385983B2 (en) * | 2002-05-07 | 2008-06-10 | Realtek Semiconductor Corp. | Network address-port translation apparatus and method |
CN101631075A (zh) * | 2009-08-19 | 2010-01-20 | 杭州华三通信技术有限公司 | 一种报文处理方法和设备 |
CN105871741A (zh) * | 2015-01-23 | 2016-08-17 | 阿里巴巴集团控股有限公司 | 一种报文分流方法及装置 |
CN105915462A (zh) * | 2016-06-03 | 2016-08-31 | 中国航天科技集团公司第九研究院第七七研究所 | 一种面向tcp会话的对称性rss电路 |
-
2017
- 2017-06-30 CN CN201710527956.0A patent/CN109218229B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7385983B2 (en) * | 2002-05-07 | 2008-06-10 | Realtek Semiconductor Corp. | Network address-port translation apparatus and method |
CN101631075A (zh) * | 2009-08-19 | 2010-01-20 | 杭州华三通信技术有限公司 | 一种报文处理方法和设备 |
CN105871741A (zh) * | 2015-01-23 | 2016-08-17 | 阿里巴巴集团控股有限公司 | 一种报文分流方法及装置 |
CN105915462A (zh) * | 2016-06-03 | 2016-08-31 | 中国航天科技集团公司第九研究院第七七研究所 | 一种面向tcp会话的对称性rss电路 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111030932B (zh) * | 2019-12-04 | 2022-02-25 | 锐捷网络股份有限公司 | 一种数据报文锚定的方法、装置及系统 |
CN111030932A (zh) * | 2019-12-04 | 2020-04-17 | 锐捷网络股份有限公司 | 一种数据报文锚定的方法、装置及系统 |
CN113472727B (zh) * | 2020-03-31 | 2023-02-17 | 北京中科网威信息技术有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
CN113472727A (zh) * | 2020-03-31 | 2021-10-01 | 北京中科网威信息技术有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
CN113014689A (zh) * | 2021-03-01 | 2021-06-22 | 杭州迪普科技股份有限公司 | 一种网络地址转换的方法和装置 |
CN113098794A (zh) * | 2021-03-30 | 2021-07-09 | 郑州信大捷安信息技术股份有限公司 | 利用二次分流实现隧道报文对称rss处理的方法及系统 |
CN113098794B (zh) * | 2021-03-30 | 2022-04-05 | 郑州信大捷安信息技术股份有限公司 | 利用二次分流实现隧道报文对称rss处理的方法及系统 |
WO2022218370A1 (zh) * | 2021-04-15 | 2022-10-20 | 华为技术有限公司 | 一种报文处理的方法及相关装置 |
CN114338595A (zh) * | 2021-12-31 | 2022-04-12 | 山石网科通信技术股份有限公司 | 报文的分布式处理方法、装置、存储介质及处理器 |
CN114338595B (zh) * | 2021-12-31 | 2024-02-02 | 山石网科通信技术股份有限公司 | 报文的分布式处理方法、装置、存储介质及处理器 |
CN115086274A (zh) * | 2022-06-10 | 2022-09-20 | 北京启明星辰信息安全技术有限公司 | 一种网络流量分配方法、装置、设备和存储介质 |
CN115086274B (zh) * | 2022-06-10 | 2023-12-22 | 北京启明星辰信息安全技术有限公司 | 一种网络流量分配方法、装置、设备和存储介质 |
CN117240612A (zh) * | 2023-11-10 | 2023-12-15 | 杭州海康威视数字技术股份有限公司 | 基于多模过滤的失陷物联网设备安全检测方法及装置 |
CN117240612B (zh) * | 2023-11-10 | 2024-01-26 | 杭州海康威视数字技术股份有限公司 | 基于多模过滤的失陷物联网设备安全检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109218229B (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218229A (zh) | 一种报文处理方法、网络设备及存储介质 | |
US11997007B2 (en) | Financial network | |
CN104038401B (zh) | 用于分布式覆盖虚拟环境的互操作性的方法和系统 | |
CN103444143B (zh) | 网络系统及策略路由设置方法 | |
CN104954221B (zh) | 用于全连接网格拓扑结构的高速pci架构路由 | |
CN107086966A (zh) | 一种网络的负载均衡、控制及网络交互方法和装置 | |
CN107750357A (zh) | 具有硬件加速平面和软件平面的数据处理系统 | |
US20170359198A1 (en) | Non-transitory computer-readable storage medium, communication control method, and communication control device | |
CN105306368B (zh) | 一种数据报文的传输方法和装置 | |
CN109565476A (zh) | 使用共享全局存储器储备进行队列保护 | |
CN108768692A (zh) | 一种网络创建方法、相关设备及系统 | |
CN107276826A (zh) | 一种容器网络配置方法和装置 | |
CN107786669A (zh) | 一种负载均衡处理的方法、服务器、装置及存储介质 | |
CN108200018A (zh) | 云计算中的流量转发方法及设备、计算机设备及可读介质 | |
CN110288104A (zh) | 运维流程系统、运维流程管理的方法及装置 | |
CN105229975A (zh) | 基于应用提供的传输元数据的网络传输调整 | |
CN110389711A (zh) | 帮助端点设备实现sr-iov功能的方法、设备和计算机程序产品 | |
CN104571934B (zh) | 一种内存访问的方法、设备和系统 | |
JP7098711B2 (ja) | 遠隔ノード発見、ならびに通信チャネル確認および通信チャネル接続のためのプロセッサによって実施される方法、コンピュータ・システム、およびコンピュータ・プログラム | |
CN109417507A (zh) | 部分延迟的报文访问 | |
CN105700823A (zh) | 一种ip硬盘之间传输数据的方法和装置 | |
CN107948005A (zh) | 物联网协议的更新方法及装置 | |
CN106100953B (zh) | PCIe设备共享网络的生成方法、装置及系统 | |
Urbina et al. | A gateway core between on-chip and off-chip networks for an autosar message-based multi-core platform | |
Zhu et al. | Validation of pervasive cloud task migration with colored petri net |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211223 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: Super fusion Digital Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |