CN103336684B - 一种并发处理ap消息的ac及其处理方法 - Google Patents
一种并发处理ap消息的ac及其处理方法 Download PDFInfo
- Publication number
- CN103336684B CN103336684B CN201310304572.4A CN201310304572A CN103336684B CN 103336684 B CN103336684 B CN 103336684B CN 201310304572 A CN201310304572 A CN 201310304572A CN 103336684 B CN103336684 B CN 103336684B
- Authority
- CN
- China
- Prior art keywords
- message
- thread
- module
- multiple threads
- processing
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种并发处理AP消息的AC及其处理方法,属于无线通信技术,包括:多线程创建模块,调度模块以及多线程处理模块;多线程创建模块按照多线程处理模块的处理线程最大值创建多线程处理队列,调度模块将接收到的AP消息分配到与多线程处理模块相应的多线程处理队列;多线程处理模块,运行有多个分别用于处理多个AP消息的处理线程。本技术方案的有益效果是:通过本发明的一种并发处理AP消息的AC装置,使AC装置的上层应用程序(如CAPWAP)能较充分利用AC装置上的多核CPU资源,AC并发处理AP消息能力得到提高,实现了AC处理AP消息时处理器资源的充分利用。
Description
技术领域
本发明涉及一种无线通信技术,尤其涉及一种并发处理AP消息的AC及其处理方法。
背景技术
大量AP(Access Point,无线访问节点)接入AC(Wireless Access PointController,无线控制器)的情况下,对AC并发处理AP消息的能力有很高要求。现有技术中,在单线程模型下,AC在某一时刻只能处理一个AP的消息,这样会大大降低AC并发处理AP消息的能力,影响网络性能。
在上述情况下,当AC处理由AP发送的消息(如CAPWAP消息,ControlAnd Provisioning of Wireless Access Points Protocol Specification)时,线程往往是运行在某一核上,由于CPU是通过时间片轮转的方式实现对进程的调度,因此其本身获取的时间片比较少,特别是该核上其他任务比较繁重的情况下,处理CAPWAP消息的能力就会更低。对于采用多核处理器的AC,上述的现有技术,并没有完全利用其多核资源,造成了资源浪费和AC处理效率的低下。需要一种能够并发处理AP消息的AC以及处理方法,以实现AC并发处理AP消息的能力,充分利用多核CPU资源。
发明内容
针对以上所述的技术问题,本发明提供了一种一种并发处理AP消息的AC及其处理方法,以实现AC并发处理AP消息的能力,充分利用多核CPU资源。
具体技术方案如下所示:
一种并发处理AP消息的AC装置,其中,包括:
多线程创建模块,调度模块以及多线程处理模块;
所述多线程创建模块按照所述多线程处理模块的处理线程最大值创建多线程处理队列,所述调度模块将接收到的所述AP消息分配到与所述多线程处理模块相应的多线程处理队列;
所述多线程处理模块,运行有多个分别用于处理多个所述AP消息的处理线程。
优选的,所述多线程处理模块还运行有对应所述调度模块的调度线程。
优选的,所述调度模块包括:
运算单元,所述运算单元用于将所述AP消息中的关键字按预设规则运算,得到对应运算值;
索引单元,所述索引单元预设所述运算值与所述处理线程的映射关系。
优选的,所述关键字包括IP协议类型,AP的IP地址以及所述AP的端口号。
优选的,当所述AP消息为基于ipv4的AP消息时,所述预设规则为:(family^(*((UINT8*)addr)^port))%ucCurrentPthreadNum;
其中,所述ucCurrentPthreadNum表示用于处理所述AP消息的线程的个数;所述family表示所述AP消息所基于IP协议的类型;所述addr表示所述AP消息中AP的IP地址;所述port表示所述AP消息中AP使用的端口号。
优选的,当所述AP消息为基于ipv6的AP消息时,所述预设规则为:(family^(*((UINT32*)addr))^(*((UINT32*)(addr+12)))^port)%ucCurrentPthreadNum;
其中,所述ucCurrentPthreadNum表示用于处理所述AP消息的线程的个数;所述family表示所述AP消息所基于IP协议的类型;所述addr表示所述AP消息中AP的IP地址;所述port表示所述AP消息中AP使用的端口号。
优选的,所述多线程处理模块对应所述AC装置的多核处理器,且所述多线程处理模块的处理线程最大值与所述AC装置多核处理器的处理器核心个数相同。
一种由AC装置并发处理AP消息的方法,其中,所述AC装置包括上述的AC装置,所述并发处理AP消息的方法具体包括如下步骤:
步骤1.所述多线程创建模块按照所述多线程处理模块的处理线程最大值创建多线程处理队列;
步骤2.所述调度模块将接收到的AP消息分配到所述多线程处理队列中相应的处理线程;
步骤3.所述处理线程处理由所述调度模块分配的AP消息。
优选的,所述步骤2中具体包括:
步骤21.所述匹配单元将所述AP消息中的关键字按预设规则运算,得到对应运算值;
步骤22.所述调度模块通过所述索引单元得到与所述运算值成映射关系的处理线程;
步骤23.所述调度模块将所述AP消息挂到所述处理线程的处理队列;
步骤24.所述调度模块通过管道方式通知对应的所述处理线程。
优选的,所述步骤3中具体包括:各所述处理线程通过对应的处理器循环处理各自消息队列中的AP消息,直到所述消息队列里的AP消息全部处理完成。
本技术方案的有益效果是:
通过本发明的一种并发处理AP消息的AC装置,使AC装置的上层应用程序(如CAPWAP)能较充分利用AC装置上的多核CPU资源,AC并发处理AP消息能力得到提高,实现了AC处理AP消息时处理器资源的充分利用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例的一种并发处理AP消息的AC装置的结构示意图;
图2为本发明的实施例的一种并发处理AP消息的AC装置的原理示意图;
图3为本发明的实施例的一种并发处理AP消息的方法的流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
本发明的实施例公开了一种并发处理AP消息的AC装置,其中,AC装置采用多核处理器,而AP消息为基于CAPWAP协议的报文。如图1所示,上述的AC装置包括多线程创建模块,调度模块以及多线程处理模块。多线程处理模块分别与调度模块以及多线程创建模块连接。调度模块包括运算单元以及索引单元。
上述的多线程创建模块按照多线程处理模块的处理线程最大值创建多线程处理队列。在一种优选的实施方式中,多线程创建模块以亲核方式创建多线程处理队列,使每个处理器核上会运行且只运行一个处理线程,用于处理AP消息。这样,处理线程个数与AC处理器核的数量相对应。
调度模块将接收到的AP消息分配到与多线程处理模块相应的多线程处理队列,在本发明的一种具体实施方式中,调度模块还包括运算单元和索引单元,运算单元用于将AP消息中的关键字按预设规则运算,得到对应运算值。索引单元预设运算值与处理线程的映射关系。
上述的多线程处理线程,运行有多个分别用于处理多个AP消息的处理线程,且多线程处理线程可以是AC装置的多核处理器。
于上述技术方案的基础上,优选的,多线程处理线程还运行有对应所述调度模块的调度线程,即调度线程与处理线程平行,调度线程所在的处理器核上不会创建处理线程,以减少调度线程所在核的进程调度,提高主线程效率。由于调度模块用于接收来自AP的AP消息,同时还要将AP消息具体分配到多核处理器对应的核上,因此同样会消耗***资源。如果将调度模块的运行线程和一个处理线程共同运行于一个处理器核,那么就会造成处理器的单个核负担过重,进而影响AC对AP消息的接收分配,以及对AP消息的处理的效率。因此本发明将调度模块和处理线程对应不同的处理器。同时,又由于不同AP消息的处理线程本身也对应于不同的处理器核,因此,本发明的AC装置,其所使用到的每个处理器核上,分别对应了不同的处理线程,或调度模块的运行线程。例如,对于四核处理器的AC装置,就可以将其中一个处理器核分配于调度模块,而将其他三个处理器分配于处理AP消息的处理线程。
于上述技术方案的基础上,关键字包括IP协议类型,AP的IP地址以及AP的端口号。调度模块按照AP消息中的关键字做HASH索引,从而均匀分布到各个多线程处理线程相应线程的处理队列中进行处理。具体算法分为:
1.对于IP协议为IPV4版本的AP消息:(family^(*((UINT8*)addr)^port))%ucCurrentPthreadNum;
2.对于IP协议为IPV6版本的AP消息:(family^(*((UINT32*)addr))^(*((UINT32*)(addr+12)))^port)%ucCurrentPthreadNum;
其中,ucCurrentPthreadNum表示用于处理AP消息的线程的个数;family表示AP消息所基于IP协议的类型;addr表示AP消息中AP的IP地址;port表示AP消息中AP使用的端口号。
通过上述的HASH算法能够根据多线程处理线程的线程处理最大值,将接收到的AP消息分配到多线程处理线程相应线程的处理队列中。在HASH运算中包括按照处理线程的个数进行取模运算(如上述公式中的%ucCurrentPthreadNum),因此,经过取模运算后的结果,即运算值,必然只会是有限的个数,且和处理线程的个数相同。例如,设处理线程的个数为8,因此将经过HASH运算后得到的结果可能是0,1,2......7,同样是8个可能的结果。这样就可以通过索引表,得到与运算后得到的运算值(如上述的0,1,2......7)相对应的处理线程,从而将相应的AP消息发送的相应的处理线程的处理队列中去。如图2所示,AC根据不同AP(AP1,AP2,......)所发送的AP消息中的ip信息,port信息以及family信息分布到不同的处理线程处理队列的示意图。处理线程通过与多核处理器中与之对应的处理器核(cpucore1,cpucore 2,......cpu core n)进行相应处理,进而使得AC并发处理AP消息能力得到提高,实现了AC处理AP消息时处理器资源的充分利用。
如图3所示,一种由AC并发处理AP消息的方法,并发处理AP消息的方法具体包括如下步骤:
步骤1.多线程创建模块按照多线程处理模块的处理线程最大值创建多线程处理队列;
步骤2.调度模块将接收到的AP消息分配到多线程处理队列中相应的处理线程;
步骤21.匹配单元将AP消息中的关键字按预设规则运算,得到对应运算值;
步骤22.调度模块通过索引单元得到与运算值成映射关系的处理线程;
步骤23.调度模块将AP消息挂到处理线程的处理队列;
步骤24.调度模块通过管道方式通知对应的处理线程;
步骤3.处理线程处理由调度模块分配的AP消息。
其中,步骤21中的预设规则可以是如前述的HASH运算,因此此处不再进行说明。步骤3中,处理线程的处理方式为,各个处理线程通过相对应的处理器循环处理各自处理队列中的AP消息,直到处理队列里的AP消息全部处理完成。
调度线程与各处理线程间的通信,消息内容采用全局共享方式,而通知消息采用管道方式。即调度线程负责接收AP消息,挂到各处理线程的处理队列头,再通过管道方式通知处理线程处理消息。
通过本发明的一种并发处理AP消息的AC装置,使AC装置上层应用程序(CAPWAP)能较充分利用AC装置上的多核CPU资源,AC并发处理AP消息能力得到提高,实现了AC处理AP消息时处理器资源的充分利用,具有广阔的应用前景。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
Claims (7)
1.一种并发处理AP消息的AC装置,其特征在于,包括:
多线程创建模块,调度模块以及多线程处理模块;
所述多线程创建模块按照所述多线程处理模块的处理线程最大值创建多线程处理队列,所述调度模块将接收到的所述AP消息分配到与所述多线程处理模块相应的多线程处理队列;
所述多线程处理模块,运行有多个分别用于处理多个所述AP消息的处理线程;
所述多线程处理模块对应所述AC装置的多核处理器,且所述多线程处理模块的处理线程最大值与所述AC装置多核处理器的处理器核心个数相同;
所述调度模块包括:
运算单元,所述运算单元用于将所述AP消息中的关键字按预设规则运算,得到对应运算值;
索引单元,所述索引单元预设所述运算值与所述处理线程的映射关系;
所述关键字包括IP协议类型,AP的IP地址以及所述AP的端口号。
2.如权利要求1所述的并发处理AP消息的AC装置,其特征在于,所述多线程处理模块还运行有对应所述调度模块的调度线程。
3.如权利要求1所述的并发处理AP消息的AC装置,其特征在于,
当所述AP消息为基于ipv4的AP消息时,所述预设规则为:(family^(*((UINT8*)addr)^port))%ucCurrentPthreadNum;
其中,所述ucCurrentPthreadNum表示用于处理所述AP消息的处理线程的个数;所述family表示所述AP消息所基于IP协议的类型;所述addr表示所述AP消息中AP的IP地址;所述port表示所述AP消息中AP使用的端口号。
4.如权利要求1所述的并发处理AP消息的AC装置,其特征在于,
当所述AP消息为基于ipv6的AP消息时,所述预设规则为:(family^(*((UINT32*)addr))^(*((UINT32*)(addr+12)))^port)%ucCurrentPthreadNum;
其中,所述ucCurrentPthreadNum表示用于处理所述AP消息的处理线程的个数;所述family表示所述AP消息所基于IP协议的类型;所述addr表示所述AP消息中AP的IP地址;所述port表示所述AP消息中AP使用的端口号。
5.一种由AC装置并发处理AP消息的方法,其特征在于,所述AC装置包括权利要求1-4任一项所述的AC装置,所述并发处理AP消息的方法具体包括如下步骤:
步骤1.所述多线程创建模块按照所述多线程处理模块的处理线程最大值创建多线程处理队列;
步骤2.所述调度模块将接收到的AP消息分配到所述多线程处理队列中相应的处理线程;
步骤3.所述处理线程处理由所述调度模块分配的AP消息。
6.如权利要求5所述的由AC装置并发处理AP消息的方法,其特征在于,所述步骤2中具体包括:
步骤21.一匹配单元将所述AP消息中的关键字按预设规则运算,得到对应运算值;
步骤22.所述调度模块通过所述索引单元得到与所述运算值成映射关系的处理线程;
步骤23.所述调度模块将所述AP消息挂到与所述运算值成映射关系的所述处理线程的多线程处理队列;
步骤24.所述调度模块通过管道方式通知对应的所述处理线程。
7.如权利要求5所述的由AC装置并发处理AP消息的方法,其特征在于,所述步骤3中具体包括:各所述处理线程通过对应的处理器循环处理各自多线程处理队列中的AP消息,直到所述多线程处理队列的AP消息全部处理完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310304572.4A CN103336684B (zh) | 2013-07-18 | 2013-07-18 | 一种并发处理ap消息的ac及其处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310304572.4A CN103336684B (zh) | 2013-07-18 | 2013-07-18 | 一种并发处理ap消息的ac及其处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103336684A CN103336684A (zh) | 2013-10-02 |
CN103336684B true CN103336684B (zh) | 2016-08-10 |
Family
ID=49244861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310304572.4A Active CN103336684B (zh) | 2013-07-18 | 2013-07-18 | 一种并发处理ap消息的ac及其处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103336684B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107426728B (zh) * | 2013-12-31 | 2020-05-12 | 安科讯(福建)科技有限公司 | 高性能接入认证处理方法、***、控制器设备、组网装置 |
CN104516775A (zh) * | 2014-09-05 | 2015-04-15 | 深圳市华讯方舟科技有限公司 | 基于多核、多线程实现ap和sta的接入方法 |
CN105700949A (zh) * | 2014-11-24 | 2016-06-22 | 中兴通讯股份有限公司 | 一种多核处理器下的数据处理方法及装置 |
CN106686635B (zh) * | 2015-11-09 | 2020-05-15 | 大唐软件技术股份有限公司 | 基于无线接入点的控制和配置协议的数据传输方法和装置 |
CN106375337B (zh) * | 2016-09-30 | 2019-12-06 | 杭州迪普科技股份有限公司 | 一种基于多线程的报文交互方法及装置 |
CN107526551B (zh) * | 2017-09-14 | 2020-03-31 | 郑州云海信息技术有限公司 | 一种cpu多核的io请求处理方法、装置及设备 |
CN113014528B (zh) * | 2019-12-19 | 2022-12-09 | 厦门网宿有限公司 | 报文处理方法、处理单元及虚拟专用网络服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1490717A (zh) * | 2002-09-17 | 2004-04-21 | �Ҵ���˾ | 在多处理器宿主***上进行多处理器仿真的方法和*** |
CN101547212A (zh) * | 2008-03-29 | 2009-09-30 | 华为技术有限公司 | 一种分布式对象的调度方法和*** |
CN101996099A (zh) * | 2010-11-17 | 2011-03-30 | 山东中创软件工程股份有限公司 | 一种消息处理方法及*** |
CN102880540A (zh) * | 2012-08-27 | 2013-01-16 | 南京智达康无线通信科技股份有限公司 | 一种保障接入控制器在高负载下正常工作的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299194B (zh) * | 2008-06-26 | 2010-04-07 | 上海交通大学 | 基于可配置处理器的异构多核***线程级动态调度方法 |
US7890644B2 (en) * | 2009-01-07 | 2011-02-15 | Sony Corporation | Parallel tasking application framework |
US20120260080A1 (en) * | 2011-04-08 | 2012-10-11 | Nokia Corporation | Method and Apparatus for Preprocessing Operations During a Boot Process |
-
2013
- 2013-07-18 CN CN201310304572.4A patent/CN103336684B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1490717A (zh) * | 2002-09-17 | 2004-04-21 | �Ҵ���˾ | 在多处理器宿主***上进行多处理器仿真的方法和*** |
CN101547212A (zh) * | 2008-03-29 | 2009-09-30 | 华为技术有限公司 | 一种分布式对象的调度方法和*** |
CN101996099A (zh) * | 2010-11-17 | 2011-03-30 | 山东中创软件工程股份有限公司 | 一种消息处理方法及*** |
CN102880540A (zh) * | 2012-08-27 | 2013-01-16 | 南京智达康无线通信科技股份有限公司 | 一种保障接入控制器在高负载下正常工作的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103336684A (zh) | 2013-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103336684B (zh) | 一种并发处理ap消息的ac及其处理方法 | |
JP6337121B2 (ja) | マルチコアの動的な作業負荷管理 | |
US20160378570A1 (en) | Techniques for Offloading Computational Tasks between Nodes | |
WO2012087767A3 (en) | Scheduling and management in a personal datacenter | |
CN104506620A (zh) | 一种可扩展的自动化计算服务平台及其构建方法 | |
US20190114206A1 (en) | System and method for providing a performance based packet scheduler | |
GB2510769A (en) | Processing element management in a streaming data system | |
JP2016535337A (ja) | ネットワーク環境における効率的なパケット処理モデルおよびパケット処理のための最適化されたバッファ利用をサポートするためのシステムおよび方法 | |
CN108241530A (zh) | 一种基于Storm的流式计算二分图任务调度方法 | |
CN105516281A (zh) | 基于移动云环境低能耗和负载均衡的计算迁移方法和装置 | |
Arthi et al. | Energy aware cloud service provisioning approach for green computing environment | |
CN106293947B (zh) | 虚拟化云环境下gpu-cpu混合资源分配***和方法 | |
CN108512782A (zh) | 访问控制列表分组调整方法、网络设备和*** | |
CN102609307A (zh) | 多核多线程双操作***网络设备及其控制方法 | |
CN107426728B (zh) | 高性能接入认证处理方法、***、控制器设备、组网装置 | |
CN106375382A (zh) | 数据分配的方法、***、控制服务器及节点客户端 | |
Liu et al. | Task offloading with execution cost minimization in heterogeneous mobile cloud computing | |
CN103049326A (zh) | 在作业管理与调度***中管理作业程序的方法和*** | |
CN107197013B (zh) | 一种增强云计算环境节能*** | |
CN103617048B (zh) | 一种虚拟机连接池分组***及分组连接方法 | |
WO2016145728A1 (zh) | 在多***中分配多核中央处理器的方法、装置及终端 | |
CN114003238B (zh) | 一种基于转码卡的容器部署方法、装置、设备及存储介质 | |
CN105975050A (zh) | 终端功耗控制方法及装置 | |
CN103067450B (zh) | 用于云环境的应用程序控制方法和*** | |
Tahir et al. | UDRF: Multi-resource fairness for complex jobs with placement constraints |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |