CN111884945A - 一种网络报文的处理方法和网络接入设备 - Google Patents
一种网络报文的处理方法和网络接入设备 Download PDFInfo
- Publication number
- CN111884945A CN111884945A CN202010525154.8A CN202010525154A CN111884945A CN 111884945 A CN111884945 A CN 111884945A CN 202010525154 A CN202010525154 A CN 202010525154A CN 111884945 A CN111884945 A CN 111884945A
- Authority
- CN
- China
- Prior art keywords
- target
- cpu
- network
- message
- memory
- 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
Images
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/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络报文的处理方法和网络接入设备,该处理方法包括:确定目标网卡拟接入的流量大小以及目标网卡所属目标NUMA域;获取目标NUMA域的各个CPU的负载承受情况和各个内存的内存大小;根据各个CPU的负载承受情况、各个内存的内存大小和目标网卡拟接入的流量大小,规划与目标网卡相匹配的目标CPU和目标内存,将目标网卡、目标CPU和目标内存进行绑定;在目标网卡接收到网络报文后,将网络报文传输至与目标网卡绑定的目标CPU和目标内存进行数据处理。该网络报文的处理方法,负载均衡性较好,在接收到网络报文后,无需跨NUMA域访问CPU和内存,对于鉴权和数据转发均具有很好的响应,减小了延迟,提高了效率。
Description
技术领域
本发明属于网络报文处理技术领域,更具体地,涉及一种网络报文的处理方法和网络接入设备。
背景技术
传统固定网络接入设备(Broadband Remote Access Server,简写为Bars)都是用芯片处理用户认证和报文转发,而芯片生产成本高,生产周期长,可扩展性和灵活性都比软件转发设备要差很多。
现在有很多软件路由设备(例如,router os),完全由软件实现,成本低,灵活性高,可以运行在多种硬件设备上,但是转发性能基本都远低于传统芯片转发的设备,也远达不到网络接入设备的性能要求;并且这部分软件路由器对用户认证鉴权方面的处理很不完善。
目前在网上可以下载到一些认证相关的工具软件,但是这部分软件都是单独的一个小功能,没有与转发结合起来,性能也远达不到做bras的标准。
鉴于此,克服该现有技术产品所存在的不足是本技术领域亟待解决的问题。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种网络报文的处理方法和网络接入设备,该网络报文的处理方法,负载均衡性较好,在接收到网络报文后,无需跨NUMA域访问CPU和内存,对于鉴权和数据转发均具有很好的响应,减小了延迟,提高了效率。
为实现上述目的,按照本发明的一个方面,提供了一种网络报文的处理方法,所述处理方法应用于网络接入设备,所述网络接入设备包括多个NUMA域,每一NUMA域包括CPU、网卡和内存,所述处理方法包括:
确定目标网卡拟接入的流量大小以及所述目标网卡所属目标NUMA域;
获取所述目标NUMA域的各个CPU的负载承受情况和各个内存的内存大小;
根据各个CPU的负载承受情况、各个内存的内存大小和所述目标网卡拟接入的流量大小,规划与所述目标网卡相匹配的目标CPU和目标内存,将所述目标网卡、所述目标CPU和所述目标内存进行绑定;
在所述目标网卡接收到网络报文后,将所述网络报文传输至与所述目标网卡绑定的所述目标CPU和所述目标内存进行数据处理。
优选地,所述处理方法还包括:
获取线程的CPU负载需求;
为CPU负载需求超过负载阈值的所述线程分配指定的CPU,以将所述线程与所述指定的CPU绑定。
优选地,所述处理方法还包括:
在所述目标网卡接收到网络报文后,对所述网络报文进行解析,获取所述网络报文的请求类型;
根据所述网络报文的请求类型,将所述网络报文分配至相应的所述目标CPU。
优选地,所述请求类型包括报文转发、认证鉴权和路由协议;
当所述网络报文的请求类型为报文转发时,将所述网络报文传输给用于转发面的目标CPU;
当所述网络报文的请求类型为认证鉴权或路由协议时,将所述网络报文传输给用于控制面的所述目标CPU,以将转发面和控制面的数据处理分离开。
优选地,所述处理方法还包括:
在所述目标网卡接收到网络报文后,通过驱动线程将所述网络报文转换为指定格式的数据流,其中,所述指定格式的数据流包括二进制数据流;
将所述指定格式的数据流存储在指定的目标内存中,以便于上层处理线程从所述指定的目标内存获取数据。
优选地,所述将所述指定格式的数据流存储在指定的目标内存中包括:
根据所述网络报文的源IP地址、目标IP地址、源MAC或目标MAC,采用哈希算法对所述网络报文进行处理,得到多个数据队列;
将多个所述数据队列存储在指定的目标内存中,以使每个上层处理程序的负载接近相同。
优选地,所述网络报文为pppoe报文,所述处理方法还包括:
在所述目标网卡接收到网络报文后,将所述网络报文分为报文头和报文体,其中,所述报文体为用户的实际流量,所述报文头包括以太网的头部和多层vlan;
在报文转发时,对所述报文头进行修改,以增加一层vlan或减少一层vlan,进而避免平移所述报文体。
优选地,所述目标网卡包括第一目标网卡和第二目标网卡,所述第一目标网卡和所述第二目标网卡之间存在共用的目标CPU;
所述处理方法包括:
在所述第一目标网卡接收到第一网络报文后,判断所述第一网络报文的实际流量大小;
若所述第一网络报文的实际流量大小大于第一流量阈值时,将所述第一网络报文传输至与所述目标网卡绑定的所述目标CPU进行数据处理,且将被共用的目标CPU配置为运行状态;
若所述第一网络报文的实际流量大小不大于第二流量阈值时,优先选择除共用的目标CPU之外的其他目标CPU进行报文的处理,且将被共用的目标CPU配置为空闲状态。
优选地,所述处理方法包括:
在所述第二目标网卡接收到第二网络报文后,判断所述第二网络报文的实际流量大小;
若所述第二网络报文的实际流量大小大于第一流量阈值时,判断被共用的目标CPU状态;
若被共用的目标CPU状态为空闲状态,则将所述第一网络报文传输至与所述目标网卡绑定的所述目标CPU进行数据处理;
若被共用的目标CPU状态为运行状态,则获取相邻的NUMA域中的CPU的状态,将相邻的NUMA域中的处于空闲状态的CPU与所述第二目标网卡临时绑定,将所述第二网络报文传输给除共用的目标CPU之外的其他目标CPU,以及临时绑定的CPU进行报文的处理。
为实现上述目的,按照本发明的另一个方面,提供了一种网络接入设备,所述网络接入设备包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行本发明所述的处理方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明提供一种网络报文的处理方法和网络接入设备,所述处理方法应用于网络接入设备,所述网络接入设备包括多个NUMA域,每一NUMA域包括CPU、网卡和内存,所述处理方法包括:确定目标网卡拟接入的流量大小以及所述目标网卡所属目标NUMA域;获取所述目标NUMA域的各个CPU的负载承受情况和各个内存的内存大小;根据各个CPU的负载承受情况、各个内存的内存大小和所述目标网卡拟接入的流量大小,规划与所述目标网卡相匹配的目标CPU和目标内存,将所述目标网卡、所述目标CPU和所述目标内存进行绑定;在所述目标网卡接收到网络报文后,将所述网络报文传输至与所述目标网卡绑定的所述目标CPU和所述目标内存进行数据处理。
本发明的网络报文的处理方法,采用软件将同属于一个NUMA域的网卡、CPU和内存进行预绑定,CPU资源和内存的资源能够与网卡所接入的流量相匹配,负载均衡性较好,且在接收到网络报文后,无需跨NUMA域访问CPU和内存,对于鉴权和数据转发均具有很好的响应,减小了延迟,提高了效率。另一方面,采用软件的形式进行预绑定,具有较大的扩展空间和灵活性,适用性更广。
附图说明
图1是发明实施例提供的一种网络报文的处理方法的流程示意图;
图2是本发明实施例提供的一种网络接入设备的NUMA域的结构示意图;
图3本发明实施例提供的一种CPU资源分配的结构示意图;
图4是本发明实施例提供的一种网络接入设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
目前,传统bras设备芯片转发成本高,生产周期长,可扩展性和灵活性;软件路由设备性能差,对用户认证鉴权方面的处理很不完善;认证相关的工具软件没有与转发结合起来,性能也较差,为解决前述问题,本发明提出了一种网络报文的处理方法,具体详见下述实施例。
实施例1:
参阅图1和图2,本实施例提供一种网络报文的处理方法,所述处理方法应用于网络接入设备,所述网络接入设备包括多个NUMA(Non Uniform Memory AccessArchitecture,简写为NUMA)域,每一NUMA域包括CPU、网卡和内存,所述处理方法包括如下步骤:
步骤101:确定目标网卡拟接入的流量大小以及所述目标网卡所属目标NUMA域。
目前,对于网卡所对应的CPU和内存不预先进行规划,让操作系统随机选取,导致性能时好时坏。在本实施例中,首先确定目标网卡拟接入的流量大小,其中,拟接入的流量大小为事先预估的接入流量。
当网卡跨NUMA域进行CPU和内存访问时,会降低效率,因此,在进行CPU和内存规划时,进行绑定的网卡、CPU和内存需要在一个NUMA域,在本实施例中,确定所述目标网卡所属目标NUMA域,例如,可以根据网卡的位置或编号,以及NUMA域的位置或编号,将目标网卡与其所属目标NUMA域建立对应关系。
步骤102:获取所述目标NUMA域的各个CPU的负载承受情况和各个内存的内存大小。
在本实施例中,每个NUMA域会包括多个网卡、多个内存和多个CPU,获取所述目标NUMA域的各个CPU的负载承受情况和各个内存的内存大小,以进行资源分配,保证各个组件负载尽量均衡。
步骤103:根据各个CPU的负载承受情况、各个内存的内存大小和所述目标网卡拟接入的流量大小,规划与所述目标网卡相匹配的目标CPU和目标内存,将所述目标网卡、所述目标CPU和所述目标内存进行绑定。
在本实施例中,一个网卡可以绑定多个CPU,至于一个网卡需要绑定的CPU的数目,需要预先测试软件处理能力,以确定在网卡满负荷情况下需要多少个CPU处理,时延和CPU占用率等指标才能达标,然后就给这个网卡分配对应数量的CPU。
即,预先估算网卡可能接入的最大流量,并根据CPU的性能和内存的内存大小给网卡分配充足的CPU资源和内存。举例而言,网卡1上接入100G流量(例如是某个小区的流量总量),那么就要给网卡1分配同一个NUMA域上的CPU(例如,编号为5、6、7、8号CPU)。
然后在程序设计上要注意,用于处理网卡的程序使用的内存,不能多于给这个网卡规划的内存的数量;否则这个网卡对应的CPU就会使用其他NUMA域上的内存,效率就会降低。
步骤104:在所述目标网卡接收到网络报文后,将所述网络报文传输至与所述目标网卡绑定的所述目标CPU和所述目标内存进行数据处理。
在本实施例中,在所述目标网卡接收到网络报文后,将所述网络报文传输至与所述目标网卡绑定的所述目标CPU和所述目标内存进行数据处理。
区别于现有技术,本实施例的网络报文的处理方法,采用软件将同属于一个NUMA域的网卡、CPU和内存进行预绑定,CPU资源和内存的资源能够与网卡所接入的流量相匹配,负载均衡性较好,且在接收到网络报文后,无需跨NUMA域访问CPU和内存,对于鉴权和数据转发均具有很好的响应,减小了延迟,提高了效率。另一方面,采用软件的形式进行预绑定,具有较大的扩展空间和灵活性,适用性更广。
针对用于处理网络报文的各个线程,每个线程的功能不一样,获取线程的CPU负载需求;对于需要高性能处理的线程,例如用户数据报文转发,用户认证请求等,都分配单独线程进行处理,每个线程分配一个单独的CPU核心,大大减少CPU线程切换。
具体地,为CPU负载需求超过负载阈值的所述线程分配指定的CPU,以将所述线程与所述指定的CPU绑定,其中,负载阈值依据实际情况而定在此,不做具体限定。
在本实施例中,每个CPU之间的处理性能存在差异,为了保证数据处理的效率和负载均衡,在所述目标网卡接收到网络报文后,对所述网络报文进行解析,获取所述网络报文的请求类型;根据所述网络报文的请求类型,将所述网络报文分配至相应的所述目标CPU。
具体地,所述请求类型包括报文转发、认证鉴权和路由协议;当所述网络报文的请求类型为报文转发时,将所述网络报文传输给用于转发面的目标CPU;当所述网络报文的请求类型为认证鉴权或路由协议时,将所述网络报文传输给用于控制面的所述目标CPU,以将转发面和控制面的数据处理分离开。在本实施例中,各个功能之间进行解耦,便于分配到多个CPU上进行处理,并且不进行CPU的任务切换。
在优选的实施例中,在进行报文转发时,通过报文队列达到CPU的负载均衡,具体地,在所述目标网卡接收到网络报文后,通过驱动线程将所述网络报文转换为指定格式的数据流,其中,所述指定格式的数据流包括二进制数据流;将所述指定格式的数据流存储在指定的目标内存中,以便于上层处理线程从所述指定的目标内存获取数据。
其中,所述将所述指定格式的数据流存储在指定的目标内存中包括:根据所述网络报文的源IP地址、目标IP地址、源MAC或目标MAC,采用哈希算法对所述网络报文进行处理,得到多个数据队列;将多个所述数据队列存储在指定的目标内存中,以使每个上层处理程序的负载接近相同。
具体地,前述的哈希算法可以是任何一种哈希算法(例如,MD5,除以特定数值取余等),例如,可以把网络报文的源IP地址、目标IP地址、源MAC、目标MAC和vlan值等都提取出来,并将网络报文的源IP地址、目标IP地址、源MAC、目标MAC和vlan值放到一段内存空间中,把这段内存空间中的数值作为一个大整数,除以特定的值进行取余,求得的余数就作为其哈希key值,哈希key值相同的网络报文放到一个队列中,以使网络报文能均匀的分散到若干个队列中。其中,特定的值可以为0x123,或其他值。
每一个网络报文都需要经过底层驱动处理和上层程序处理两个步骤,一般来说底层驱动处理内容较少,速度也会快一些。例如,驱动线程使用两个目标CPU(第一目标CPU和第二目标CPU),处理完之后都放到八个数据队列(数据队列1~数据队列8);上层程序使用编号为四个cpu核心(第三目标CPU、第四目标CPU、第五目标CPU、第六目标CPU),第三目标CPU对应数据队列1和数据队列2,第四目标CPU对应数据队列3和数据队列4,以此类推;上层程序处理完再交给底层发送出去时,对应使用第七目标CPU和第八目标CPU进行数据处理。每个上层程序根据其负载承受能力选择合适的数据队列,即,每个上层程序与数据队列并没有必须的对应关系,只要负载量能承受得了就行。
可以理解为,每个网卡上收到的报文安排单独的几个CPU去处理,最开始处理报文的是驱动,驱动按不同的网卡物理性能安排一个或多个cpu处理。驱动处理完报文后放到指定的内存中,上层处理程序到指定的内存中读取报文并进行后续处理,上层处理程序也划分成多个CPU并行处理。为了使上层处理程序的CPU负载较均衡,驱动在把报文放到指定队列时,可以按网络报文的源IP地址、目标IP地址、源MAC或目标MAC等进行哈希,把报文均匀的分配成几个队列,每个上层处理程序的负载接近相同。
在实际应用场景下,对于边缘接入设备,一般从用户侧收到的报文都是pppoe报文,而转发到核心网时需要把pppoe头剥离掉,这就相当于把pppoe的数据部分向前平移一段。用户报文经过bras转发的时候,很可能会加上一层vlan或者减少一层vlan,那么一般会把后面的数据部分都向前或者向后平移(一层vlan的距离),这种整体的平移是很消耗cpu的。
为解决前述问题,在优选的实施例中,在所述目标网卡接收到网络报文后,将所述网络报文分为报文头和报文体,其中,所述报文体为用户的实际流量,所述报文头包括以太网的头部和多层vlan;在报文转发时,对所述报文头进行修改,以增加一层vlan或减少一层vlan,不对报文体进行修改,进而避免平移所述报文体,从而避免的大量的数据平移(复制)操作,节省了性能。
实施例2:
在实际应用场景下,NUMA域包括至少两个网卡,预先按照每个网卡的拟接入流量进行了CPU资源的规划,但是存在实际流量大于拟接入流量的情况,本实施例提出了一种解决方案,应对实际流量突增的情况。
结合实施例1,在所述目标网卡接收到网络报文后,判断所述网络报文的实际流量大小;若所述网络报文的实际流量大小大于该目标网卡的拟接入流量大小时,将所述网络报文传输至与所述目标网卡绑定的所述目标CPU进行数据处理,同时,选择与所述目标网卡同属于同一个NUMA域的处于空闲状态的CPU,根据实际流量大小与拟接入流量大小之间的流量差值,从处于空闲状态的CPU中选择合适的CPU与所述目标网卡临时绑定,从而完成对网络报文的处理。
结合图3,与第一目标网卡绑定的是CPU1、CPU2、CPU3和CPU4,但是某个时间端第一目标网卡实际接入的流量较大,超过了CPU1、CPU2、CPU3和CPU4的负载,则在同属于同一个NUMA域中还有CPU5,CPU6,CPU5和CPU6均处于空闲状态,则再获取CPU5和CPU6的处理性能,根据超负载的情况选择合适的CPU,确定增加了CPU5后可以满足负载需求,则将CPU5与第一目标网卡临时绑定。
在具体应用场景下,针对包含多个网卡的NUMA域,在预设的时间段内,对比分析各个网卡的实际接入流量情况与拟接入流量情况,动态划分每一网卡网卡绑定的目标CPU和目标内存,以应对实际接入流量情况与拟接入流量情况相差较大的场景,避免某些目标CPU一直处于空闲状态,某些目标CPU一直处于满负荷运行状态,实现同一个NUMA域的CPU的负载均衡。
在本实施例中,当实际接入流量大于拟接入流量时,可以从本NUMA域选择合适的CPU与网卡进行临时绑定,缓解流量突增带来的CPU资源不够用的压力,在完成数据处理后,进行解绑。
在其他应用场景下,鉴于规划的拟接入流量一般会大于实际流量,为了节省CPU资源,存在将多个网卡共用同一个目标CPU的情况,被共用的目标CPU可以理解为备用CPU,大多数情况下,备用CPU可以被多个网卡错开使用,但不乏存在备用CPU被一目标网卡被占用,而其他网卡也需要使用备用CPU的情况。为了解决前述问题,下述实施例提出了一种可供选择的方案。
具体地,所述目标网卡包括第一目标网卡和第二目标网卡,所述第一目标网卡和所述第二目标网卡之间存在共用的目标CPU。
结合实施例1,参阅图3,所述处理方法包括:在所述第一目标网卡接收到第一网络报文后,判断所述第一网络报文的实际流量大小;若所述第一网络报文的实际流量大小大于第一流量阈值时,将所述第一网络报文传输至与所述目标网卡绑定的所述目标CPU进行数据处理,且将被共用的目标CPU配置为运行状态;若所述第一网络报文的实际流量大小不大于第二流量阈值时,优先选择除共用的目标CPU之外的其他目标CPU进行报文的处理,且将被共用的目标CPU配置为空闲状态,其中,第一流量阈值和第二流量阈值依据实际情况而定,在此不做具体限定。
在所述第二目标网卡接收到第二网络报文后,判断所述第二网络报文的实际流量大小;若所述第二网络报文的实际流量大小大于第一流量阈值时,判断被共用的目标CPU状态;若被共用的目标CPU状态为空闲状态,则将所述第一网络报文传输至与所述目标网卡绑定的所述目标CPU进行数据处理;若被共用的目标CPU状态为运行状态,则获取相邻的NUMA域中的CPU的状态,将相邻的NUMA域中的处于空闲状态的CPU与所述第二目标网卡临时绑定,将所述第二网络报文传输给除共用的目标CPU之外的其他目标CPU,以及临时绑定的CPU进行报文的处理。
参阅图3,第一目标网卡绑定的是CPU1、CPU2、CPU3和CPU4,第二目标网卡绑定的是CPU4,CPU5和CPU6,CPU4为被共用的目标CPU,则在对数据处理的过程中,第一目标网卡和第二目标网卡按照前述方式根据CPU4的状态选择性与其绑定,在其中一个目标网卡占用CPU4时,且另外一个目标网卡的CPU资源不够用时,从临近的NUMA域选择一CPU与该目标网卡进行临时绑定。
在本实施例中,在资源规划时,一般会预留CPU资源(例如,图3中的备用CPU4),以缓解流量突增带来的压力,当备用CPU被占用时,且本NUMA域的CPU均处于运行状态时,可以从邻近的NUMA域选择合适的CPU进行临时绑定。
实施例3:
请参阅图4,图4是本发明实施例提供的一种网络接入设备的结构示意图。本实施例的网络接入设备包括一个或多个处理器41以及存储器42。其中,图4中以一个处理器41为例。
处理器41和存储器42可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器42作为一种基于网络报文的处理方法的非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,上述实施例的方法以及对应的程序指令。处理器41通过运行存储在存储器42中的非易失性软件程序、指令以及模块,从而执行各种功能应用以及数据处理,实现前述实施例的方法。
其中,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至处理器41。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(Read Only Memory,简写为ROM)、随机存取存储器(RandomAccessMemory,简写为RAM)、磁盘或光盘等。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种网络报文的处理方法,其特征在于,所述处理方法应用于网络接入设备,所述网络接入设备包括多个NUMA域,每一NUMA域包括CPU、网卡和内存,所述处理方法包括:
确定目标网卡拟接入的流量大小以及所述目标网卡所属目标NUMA域;
获取所述目标NUMA域的各个CPU的负载承受情况和各个内存的内存大小;
根据各个CPU的负载承受情况、各个内存的内存大小和所述目标网卡拟接入的流量大小,规划与所述目标网卡相匹配的目标CPU和目标内存,将所述目标网卡、所述目标CPU和所述目标内存进行绑定;
在所述目标网卡接收到网络报文后,将所述网络报文传输至与所述目标网卡绑定的所述目标CPU和所述目标内存进行数据处理。
2.根据权利要求1所述的处理方法,其特征在于,所述处理方法还包括:
获取线程的CPU负载需求;
为CPU负载需求超过负载阈值的所述线程分配指定的CPU,以将所述线程与所述指定的CPU绑定。
3.根据权利要求1所述的处理方法,其特征在于,所述处理方法还包括:
在所述目标网卡接收到网络报文后,对所述网络报文进行解析,获取所述网络报文的请求类型;
根据所述网络报文的请求类型,将所述网络报文分配至相应的所述目标CPU。
4.根据权利要求3所述的处理方法,其特征在于,所述请求类型包括报文转发、认证鉴权和路由协议;
当所述网络报文的请求类型为报文转发时,将所述网络报文传输给用于转发面的目标CPU;
当所述网络报文的请求类型为认证鉴权或路由协议时,将所述网络报文传输给用于控制面的所述目标CPU,以将转发面和控制面的数据处理分离开。
5.根据权利要求1所述的处理方法,其特征在于,所述处理方法还包括:
在所述目标网卡接收到网络报文后,通过驱动线程将所述网络报文转换为指定格式的数据流,其中,所述指定格式的数据流包括二进制数据流;
将所述指定格式的数据流存储在指定的目标内存中,以便于上层处理线程从所述指定的目标内存获取数据。
6.根据权利要求5所述的处理方法,其特征在于,所述将所述指定格式的数据流存储在指定的目标内存中包括:
根据所述网络报文的源IP地址、目标IP地址、源MAC或目标MAC,采用哈希算法对所述网络报文进行处理,得到多个数据队列;
将多个所述数据队列存储在指定的目标内存中,以使每个上层处理程序的负载接近相同。
7.根据权利要求1所述的处理方法,其特征在于,所述网络报文为pppoe报文,所述处理方法还包括:
在所述目标网卡接收到网络报文后,将所述网络报文分为报文头和报文体,其中,所述报文体为用户的实际流量,所述报文头包括以太网的头部和多层vlan;
在报文转发时,对所述报文头进行修改,以增加一层vlan或减少一层vlan,进而避免平移所述报文体。
8.根据权利要求1所述的处理方法,其特征在于,所述目标网卡包括第一目标网卡和第二目标网卡,所述第一目标网卡和所述第二目标网卡之间存在共用的目标CPU;
所述处理方法包括:
在所述第一目标网卡接收到第一网络报文后,判断所述第一网络报文的实际流量大小;
若所述第一网络报文的实际流量大小大于第一流量阈值时,将所述第一网络报文传输至与所述目标网卡绑定的所述目标CPU进行数据处理,且将被共用的目标CPU配置为运行状态;
若所述第一网络报文的实际流量大小不大于第二流量阈值时,优先选择除共用的目标CPU之外的其他目标CPU进行报文的处理,且将被共用的目标CPU配置为空闲状态。
9.根据权利要求8所述的处理方法,其特征在于,所述处理方法包括:
在所述第二目标网卡接收到第二网络报文后,判断所述第二网络报文的实际流量大小;
若所述第二网络报文的实际流量大小大于第一流量阈值时,判断被共用的目标CPU状态;
若被共用的目标CPU状态为空闲状态,则将所述第一网络报文传输至与所述目标网卡绑定的所述目标CPU进行数据处理;
若被共用的目标CPU状态为运行状态,则获取相邻的NUMA域中的CPU的状态,将相邻的NUMA域中的处于空闲状态的CPU与所述第二目标网卡临时绑定,将所述第二网络报文传输给除共用的目标CPU之外的其他目标CPU,以及临时绑定的CPU进行报文的处理。
10.一种网络接入设备,其特征在于,所述网络接入设备包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行如权利要求1~9任一项所述的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010525154.8A CN111884945B (zh) | 2020-06-10 | 2020-06-10 | 一种网络报文的处理方法和网络接入设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010525154.8A CN111884945B (zh) | 2020-06-10 | 2020-06-10 | 一种网络报文的处理方法和网络接入设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111884945A true CN111884945A (zh) | 2020-11-03 |
CN111884945B CN111884945B (zh) | 2022-09-02 |
Family
ID=73156509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010525154.8A Active CN111884945B (zh) | 2020-06-10 | 2020-06-10 | 一种网络报文的处理方法和网络接入设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111884945B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886131A (zh) * | 2021-10-28 | 2022-01-04 | 建信金融科技有限责任公司 | 数据检核方法、装置、设备及存储介质 |
CN113992589A (zh) * | 2021-10-21 | 2022-01-28 | 绿盟科技集团股份有限公司 | 一种报文分流方法、装置及电子设备 |
CN115022336A (zh) * | 2022-05-31 | 2022-09-06 | 苏州浪潮智能科技有限公司 | 服务器资源负载均衡方法、系统、终端及存储介质 |
CN115996203A (zh) * | 2023-03-22 | 2023-04-21 | 北京华耀科技有限公司 | 网络流量分域方法、装置、设备和存储介质 |
WO2023066180A1 (zh) * | 2021-10-19 | 2023-04-27 | 华为技术有限公司 | 一种数据处理的方法和相关装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571580A (zh) * | 2011-12-31 | 2012-07-11 | 曙光信息产业股份有限公司 | 数据接收方法和计算机 |
CN102929722A (zh) * | 2012-10-18 | 2013-02-13 | 曙光信息产业(北京)有限公司 | 一种基于大页面万兆网卡的收包及其系统 |
CN104615480A (zh) * | 2015-02-04 | 2015-05-13 | 上海交通大学 | 基于numa高性能网络处理器负载的虚拟处理器调度方法 |
WO2016026131A1 (zh) * | 2014-08-22 | 2016-02-25 | 上海交通大学 | 一种基于 numa 高性能网络缓存资源亲和度的虚拟处理器的调度方法 |
US20170168715A1 (en) * | 2015-12-11 | 2017-06-15 | Vmware, Inc. | Workload aware numa scheduling |
CN107346267A (zh) * | 2017-07-13 | 2017-11-14 | 郑州云海信息技术有限公司 | 一种基于numa架构的cpu性能优化方法和装置 |
CN107566302A (zh) * | 2017-10-10 | 2018-01-09 | 新华三技术有限公司 | 报文转发方法和装置 |
CN108259328A (zh) * | 2017-08-30 | 2018-07-06 | 新华三技术有限公司 | 报文转发方法及装置 |
CN108363621A (zh) * | 2018-01-18 | 2018-08-03 | 东软集团股份有限公司 | numa架构下的报文转发方法、装置、存储介质及电子设备 |
CN108897622A (zh) * | 2018-06-29 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种任务运行的调度方法以及相关装置 |
CN110798412A (zh) * | 2019-10-18 | 2020-02-14 | 北京浪潮数据技术有限公司 | 组播业务处理方法、装置、云平台、设备及可读存储介质 |
-
2020
- 2020-06-10 CN CN202010525154.8A patent/CN111884945B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571580A (zh) * | 2011-12-31 | 2012-07-11 | 曙光信息产业股份有限公司 | 数据接收方法和计算机 |
CN102929722A (zh) * | 2012-10-18 | 2013-02-13 | 曙光信息产业(北京)有限公司 | 一种基于大页面万兆网卡的收包及其系统 |
WO2016026131A1 (zh) * | 2014-08-22 | 2016-02-25 | 上海交通大学 | 一种基于 numa 高性能网络缓存资源亲和度的虚拟处理器的调度方法 |
CN104615480A (zh) * | 2015-02-04 | 2015-05-13 | 上海交通大学 | 基于numa高性能网络处理器负载的虚拟处理器调度方法 |
US20170168715A1 (en) * | 2015-12-11 | 2017-06-15 | Vmware, Inc. | Workload aware numa scheduling |
CN107346267A (zh) * | 2017-07-13 | 2017-11-14 | 郑州云海信息技术有限公司 | 一种基于numa架构的cpu性能优化方法和装置 |
CN108259328A (zh) * | 2017-08-30 | 2018-07-06 | 新华三技术有限公司 | 报文转发方法及装置 |
CN107566302A (zh) * | 2017-10-10 | 2018-01-09 | 新华三技术有限公司 | 报文转发方法和装置 |
CN108363621A (zh) * | 2018-01-18 | 2018-08-03 | 东软集团股份有限公司 | numa架构下的报文转发方法、装置、存储介质及电子设备 |
CN108897622A (zh) * | 2018-06-29 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种任务运行的调度方法以及相关装置 |
CN110798412A (zh) * | 2019-10-18 | 2020-02-14 | 北京浪潮数据技术有限公司 | 组播业务处理方法、装置、云平台、设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
李慧娟,栾钟治,王辉,杨海龙,钱德沛: "NUMA架构内多个节点间访存延时平衡的内存分配策略", 《计算机学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023066180A1 (zh) * | 2021-10-19 | 2023-04-27 | 华为技术有限公司 | 一种数据处理的方法和相关装置 |
CN113992589A (zh) * | 2021-10-21 | 2022-01-28 | 绿盟科技集团股份有限公司 | 一种报文分流方法、装置及电子设备 |
CN113992589B (zh) * | 2021-10-21 | 2023-05-26 | 绿盟科技集团股份有限公司 | 一种报文分流方法、装置及电子设备 |
CN113886131A (zh) * | 2021-10-28 | 2022-01-04 | 建信金融科技有限责任公司 | 数据检核方法、装置、设备及存储介质 |
CN113886131B (zh) * | 2021-10-28 | 2023-05-26 | 建信金融科技有限责任公司 | 数据检核方法、装置、设备及存储介质 |
CN115022336A (zh) * | 2022-05-31 | 2022-09-06 | 苏州浪潮智能科技有限公司 | 服务器资源负载均衡方法、系统、终端及存储介质 |
CN115996203A (zh) * | 2023-03-22 | 2023-04-21 | 北京华耀科技有限公司 | 网络流量分域方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111884945B (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111884945B (zh) | 一种网络报文的处理方法和网络接入设备 | |
US8446824B2 (en) | NUMA-aware scaling for network devices | |
US8121120B2 (en) | Packet relay apparatus | |
US8051227B1 (en) | Programmable queue structures for multiprocessors | |
US7660306B1 (en) | Virtualizing the operation of intelligent network interface circuitry | |
CN112965824B (zh) | 报文的转发方法及装置、存储介质、电子设备 | |
US9264369B2 (en) | Technique for managing traffic at a router | |
US7751401B2 (en) | Method and apparatus to provide virtual toe interface with fail-over | |
US10104006B2 (en) | Bus interface apparatus, router, and bus system including them | |
JP5136564B2 (ja) | パケット処理装置およびパケット処理プログラム | |
US9906443B1 (en) | Forwarding table updates during live packet stream processing | |
CN112671941A (zh) | 报文处理方法、装置、设备及介质 | |
US9015438B2 (en) | System and method for achieving enhanced performance with multiple networking central processing unit (CPU) cores | |
US9019832B2 (en) | Network switching system and method for processing packet switching in network switching system | |
CN110247863A (zh) | 数据包处理方法、装置、sdn交换机及存储介质 | |
CN112511438B (zh) | 一种利用流表转发报文的方法、装置及计算机设备 | |
WO2009093299A1 (ja) | パケット処理装置およびパケット処理プログラム | |
US10116588B2 (en) | Large receive offload allocation method and network device | |
CN116016687B (zh) | 一种基于dpdk的报文分流方法及系统 | |
CN106790632B (zh) | 一种流数据的并发传输方法和装置 | |
CN116132369A (zh) | 云网关服务器中多网口的流量分发方法及相关设备 | |
CN115766729A (zh) | 一种四层负载均衡的数据处理方法及相关装置 | |
CN113676544A (zh) | 一种云存储网络和在实体服务器中实现业务隔离的方法 | |
US11201829B2 (en) | Technologies for pacing network packet transmissions | |
CN112398735A (zh) | 一种对报文进行批量处理的方法和装置 |
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 |