CN102685001B - 网络设备任务的高效处理方法及*** - Google Patents
网络设备任务的高效处理方法及*** Download PDFInfo
- Publication number
- CN102685001B CN102685001B CN201210125984.7A CN201210125984A CN102685001B CN 102685001 B CN102685001 B CN 102685001B CN 201210125984 A CN201210125984 A CN 201210125984A CN 102685001 B CN102685001 B CN 102685001B
- Authority
- CN
- China
- Prior art keywords
- message
- task
- thread
- physical interface
- described current
- 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.)
- Expired - Fee Related
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种网络设备任务的高效处理方法及***,涉及网络通信技术领域,本发明通过线程所处理任务的不断变换,大大提高了CPU的使用率,提高了报文的处理速度。
Description
技术领域
本发明涉及网络通信技术领域,特别涉及一种网络设备任务的高效处理方法及***。
背景技术
在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫做“多线程处理”。多线程处理一个常见的例子就是用户界面。利用线程,用户可按下一个按钮,然后程序会立即做出响应,而不是让用户等待程序完成了当前任务以后才开始响应。
当前高端网络设备大多采用多核CPU的硬件架构来提高报文的处理和转发性能,对多核CPU分别创建相应的线程与所述多核CPU进行一对一的绑定。网络设备中一般包括三种任务:报文分发任务、管理层(manager point,MP)任务及数据层(data point,DP)任务,
所述报文分发任务:从所述网络设备的物理接口获取报文,并将所述报文分发给相应的线程;
MP任务:处理主机(即网络设备)报文;
DP任务:判断报文如果是主机报文,则将报文放到MP任务的报文队列,等待线程的MP任务处理,如果是转发报文,则直接处理此报文进行报文转发;
现有技术中一般是使用所述多核CPU对应的线程分别处理固定的任务,导致多核CPU的使用率和报文的处理速度较低。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何提高多核CPU的使用率和报文的处理速度。
(二)技术方案
为解决上述技术问题,本发明提供了一种网络设备任务的高效处理方法,所述方法包括以下步骤:
S1:当前线程判断MP任务是否被其它线程获取权限,若是,则执行步骤S2,否则所述当前线程获得MP任务的权限,进行MP任务的处理,执行步骤S7;
S2:所述当前线程判断网络设备上的当前物理接口是否被其它线程获取权限,若是,则将所述网络设备上的其他物理接口作为当前物理接口,直至遍历所述网络设备上的所有物理接口,返回步骤S1,否则执行步骤S3;
S3:所述当前线程获取所述当前物理接口的权限,判断所述当前物理接口的报文队列中是否有需要处理的报文,若是,则对所述当前物理接口的报文进行报文分发任务的处理,执行步骤S4,否则舍弃所述当前物理接口的权限,将所述网络设备上的其他物理接口作为当前物理接口,返回步骤S2;
S4:判断所述报文分发任务所分发的报文是否进行了DP任务的处理,若是,则执行步骤S5,否则执行步骤S6;
S5:所述当前线程继续对所述当前物理接口的报文进行报文分发任务,返回步骤S4;
S6:所述当前线程舍弃所述当前物理接口的权限,并对所述报文分发任务所分发的报文进行DP任务的处理,直至没有报文能够进行DP任务的处理,则返回步骤S1;
S7:将其它线程作为当前线程,并返回步骤S1。
优选地,步骤S1之前还包括以下步骤:
S0:所述网络设备中的CPU分别对应生成与所述CPU数量相同的线程。
优选地,步骤S3中,所述报文分发任务的处理具体包括以下步骤:
A1:根据待处理的报文的IP五元组进行hash计算;
A2:根据计算结果将所述待处理的报文保存至不同的hash链表中。
优选地,步骤S6中,所述DP任务的处理具体包括以下步骤:
B1:判断所述报文分发任务所分发的报文所在的hash链表hx是否被其它线程获取权限,若是,则返回步骤S1,否则执行下一步;
B2:所述当前线程对所述hash链表hx内的报文依次进行判断,若是主机报文,则将其放入MP任务的报文队列,若是转发报文,则直接对其进行转发。
本发明还公开了一种网络设备任务的高效处理***,所述***包括:
MP任务判断模块,用于当前线程判断MP任务是否被其它线程获取权限,若是,则执行物理接口判断模块,否则所述当前线程获得MP任务的权限,进行MP任务的处理,执行返回模块;
物理接口判断模块,用于所述当前线程判断网络设备上的当前物理接口是否被其它线程获取权限,若是,则将所述网络设备上的其他物理接口作为当前物理接口,直至遍历所述网络设备上的所有物理接口,返回MP任务判断模块,否则执行权限获取模块;
权限获取模块,用于所述当前线程获取所述当前物理接口的权限,判断所述当前物理接口的报文队列中是否有需要处理的报文,若是,则对所述当前物理接口的报文进行报文分发任务的处理,执行步骤S4,否则舍弃所述当前物理接口的权限,将所述网络设备上的其他物理接口作为当前物理接口,返回物理接口判断模块;
DP任务判断模块,用于判断所述报文分发任务所分发的报文是否进行了DP任务的处理,若是,则执行报文分发模块,否则执行DP任务处理模块;
报文分发模块,用于所述当前线程继续对所述当前物理接口的报文进行报文分发任务,返回DP任务判断模块;
DP任务处理模块,用于所述当前线程舍弃所述当前物理接口的权限,并对所述报文分发任务所分发的报文进行DP任务的处理,直至没有报文能够进行DP任务的处理,则返回MP任务判断模块;
返回模块,用于将其它线程作为当前线程,并返回MP任务判断模块。
(三)有益效果
本发明通过线程所处理任务的不断变换,大大提高了CPU的使用率,提高了报文的处理速度。
附图说明
图1是按照本发明一种实施方式的网络设备任务的高效处理方法的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1是按照本发明一种实施方式的网络设备任务的高效处理方法的流程图;参照图1,本实施方式的方法包括以下步骤:
S1:当前线程判断MP任务是否被其它线程获取权限,若是,则执行步骤S2,否则所述当前线程获得MP任务的权限,进行MP任务的处理,执行步骤S7;
S2:所述当前线程判断网络设备上的当前物理接口是否被其它线程获取权限,若是,则将所述网络设备上的其他物理接口作为当前物理接口,直至遍历所述网络设备上的所有物理接口,返回步骤S1,否则执行步骤S3;
S3:所述当前线程获取所述当前物理接口的权限,判断所述当前物理接口的报文队列中是否有需要处理的报文,若有,则对所述当前物理接口的报文进行报文分发任务的处理,执行步骤S4,否则舍弃所述当前物理接口的权限,将所述网络设备上的其他物理接口作为当前物理接口,返回步骤S2;
S4:判断所述报文分发任务所分发的报文是否进行了DP任务的处理,若是,则执行步骤S5,否则执行步骤S6;
S5:所述当前线程继续对所述当前物理接口的报文进行报文分发任务,返回步骤S4;
S6:所述当前线程舍弃所述当前物理接口的权限,并对所述报文分发任务所分发的报文进行DP任务的处理,直至没有报文能够进行DP任务的处理,则返回步骤S1;
S7:将其它线程作为当前线程,并返回步骤S1。
优选地,步骤S1之前还包括以下步骤:
S0:所述网络设备中的CPU分别对应生成与所述CPU数量相同的线程,例如网络设备为4核CPU时,则生成相应的四个线程,本实施方式的网络设备可以为多核多线程的网络设备,还可以是单核单线程的网络设备,当网络设备只具有单线程时,即由所述单线程依次进行MP任务、DP任务及报文分发任务。
优选地,步骤S3中,所述报文分发任务的处理具体包括以下步骤:
A1:根据待处理的报文的IP五元组进行hash计算(即哈希计算);所述IP五元组包括:IP源地址、IP目的地址、源端口号、目的端口号、以及协议类型,对报文的IP五元组进行hash计算是现有计算,具体计算过程可参照公开号为:CN101964749,专利名称为:一种基于多核构架的报文转发方法及***的中国专利;
A2:根据计算结果将所述待处理的报文保存至不同的hash链表中。
为保证DP任务处理的灵活性,优选地,步骤S6中,所述DP任务的处理具体包括以下步骤:
B1:判断所述报文分发任务所分发的报文所在的hash链表hx是否被其它线程获取权限,若是,则返回步骤S1,否则执行下一步;
B2:所述当前线程对所述hash链表hx内的报文依次进行判断,若是主机报文,则将其放入MP任务的报文队列,若是转发报文,则直接对其进行转发。由于报文分发任务的处理速度会快于DP任务的处理速度,因此同时会有多个线程(当网络设备具有多核多线程时)做DP角色,在网络设备进行任务处理时,在同一时间,可保证只有一个线程可进行MP任务的处理,多个线程可进行DP任务的处理,多个线程可进行报文分发任务的处理。
本发明还公开了一种网络设备任务的高效处理***,所述***包括:
MP任务判断模块,用于当前线程判断MP任务是否被其它线程获取权限,若是,则执行物理接口判断模块,否则所述当前线程获得MP任务的权限,进行MP任务的处理,执行返回模块;
物理接口判断模块,用于所述当前线程判断网络设备上的当前物理接口是否被其它线程获取权限,若是,则将所述网络设备上的其他物理接口作为当前物理接口,直至遍历所述网络设备上的所有物理接口,返回MP任务判断模块,否则执行权限获取模块;
权限获取模块,用于所述当前线程获取所述当前物理接口的权限,判断所述当前物理接口的报文队列中是否有需要处理的报文,若是,则对所述当前物理接口的报文进行报文分发任务的处理,执行步骤S4,否则舍弃所述当前物理接口的权限,将所述网络设备上的其他物理接口作为当前物理接口,返回物理接口判断模块;
DP任务判断模块,用于判断所述报文分发任务所分发的报文是否进行了DP任务的处理,若是,则执行报文分发模块,否则执行DP任务处理模块;
报文分发模块,用于所述当前线程继续对所述当前物理接口的报文进行报文分发任务,返回DP任务判断模块;
DP任务处理模块,用于所述当前线程舍弃所述当前物理接口的权限,并对所述报文分发任务所分发的报文进行DP任务的处理,直至没有报文能够进行DP任务的处理,则返回MP任务判断模块;
返回模块,用于将其它线程作为当前线程,并返回MP任务判断模块。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (5)
1.一种网络设备任务的高效处理方法,其特征在于,所述方法包括以下步骤:
S1:当前线程判断管理层MP任务是否被其它线程获取权限,若是,则执行步骤S2,否则所述当前线程获得MP任务的权限,进行MP任务的处理,执行步骤S7;
S2:所述当前线程判断网络设备上的当前物理接口是否被其它线程获取权限,若是,则将所述网络设备上的其他物理接口作为当前物理接口,直至遍历所述网络设备上的所有物理接口,返回步骤S1,否则执行步骤S3;
S3:所述当前线程获取所述当前物理接口的权限,判断所述当前物理接口的报文队列中是否有需要处理的报文,若是,则对所述当前物理接口的报文进行报文分发任务的处理,执行步骤S4,否则舍弃所述当前物理接口的权限,将所述网络设备上的其他物理接口作为当前物理接口,返回步骤S2;
S4:判断所述报文分发任务所分发的报文是否进行了数据层DP任务的处理,若是,则执行步骤S5,否则执行步骤S6;
S5:所述当前线程继续对所述当前物理接口的报文进行报文分发任务,返回步骤S4;
S6:所述当前线程舍弃所述当前物理接口的权限,并对所述报文分发任务所分发的报文进行DP任务的处理,直至没有报文能够进行DP任务的处理,则返回步骤S1;
S7:将其它线程作为当前线程,并返回步骤S1。
2.如权利要求1所述的方法,其特征在于,步骤S1之前还包括以下步骤:
S0:所述网络设备中的CPU分别对应生成与所述CPU数量相同的线程。
3.如权利要求1所述的方法,其特征在于,步骤S3中,所述报文分发任务的处理具体包括以下步骤:
A1:根据待处理的报文的IP五元组进行hash计算;
A2:根据计算结果将所述待处理的报文保存至不同的hash链表中。
4.如权利要求3所述的方法,其特征在于,步骤S6中,所述DP任务的处理具体包括以下步骤:
B1:判断所述报文分发任务所分发的报文所在的hash链表hx是否被其它线程获取权限,若是,则返回步骤S1,否则执行下一步;
B2:所述当前线程对所述hash链表hx内的报文依次进行判断,若是主机报文,则将其放入MP任务的报文队列,若是转发报文,则直接对其进行转发。
5.一种网络设备任务的高效处理***,其特征在于,所述***包括:
MP任务判断模块,用于当前线程判断管理层MP任务是否被其它线程获取权限,若是,则执行物理接口判断模块,否则所述当前线程获得MP任务的权限,进行MP任务的处理,执行返回模块;
物理接口判断模块,用于所述当前线程判断网络设备上的当前物理接口是否被其它线程获取权限,若是,则将所述网络设备上的其他物理接口作为当前物理接口,直至遍历所述网络设备上的所有物理接口,返回MP任务判断模块,否则执行权限获取模块;
权限获取模块,用于所述当前线程获取所述当前物理接口的权限,判断所述当前物理接口的报文队列中是否有需要处理的报文,若是,则对所述当前物理接口的报文进行报文分发任务的处理,执行DP任务判断模块,否则舍弃所述当前物理接口的权限,将所述网络设备上的其他物理接口作为当前物理接口,返回物理接口判断模块;
DP任务判断模块,用于判断所述报文分发任务所分发的报文是否进行了数据层DP任务的处理,若是,则执行报文分发模块,否则执行DP任务处理模块;
报文分发模块,用于所述当前线程继续对所述当前物理接口的报文进行报文分发任务,返回DP任务判断模块;
DP任务处理模块,用于所述当前线程舍弃所述当前物理接口的权限,并对所述报文分发任务所分发的报文进行DP任务的处理,直至没有报文能够进行DP任务的处理,则返回MP任务判断模块;
返回模块,用于将其它线程作为当前线程,并返回MP任务判断模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210125984.7A CN102685001B (zh) | 2012-04-26 | 2012-04-26 | 网络设备任务的高效处理方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210125984.7A CN102685001B (zh) | 2012-04-26 | 2012-04-26 | 网络设备任务的高效处理方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102685001A CN102685001A (zh) | 2012-09-19 |
CN102685001B true CN102685001B (zh) | 2014-12-10 |
Family
ID=46816386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210125984.7A Expired - Fee Related CN102685001B (zh) | 2012-04-26 | 2012-04-26 | 网络设备任务的高效处理方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102685001B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9274826B2 (en) * | 2012-12-28 | 2016-03-01 | Futurewei Technologies, Inc. | Methods for task scheduling through locking and unlocking an ingress queue and a task queue |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436989A (zh) * | 2008-12-26 | 2009-05-20 | 福建星网锐捷网络有限公司 | 一种转发报文的方法及装置 |
CN101442513A (zh) * | 2007-11-20 | 2009-05-27 | 杭州华三通信技术有限公司 | 实现多种业务处理功能的方法和多核处理器设备 |
CN101964749A (zh) * | 2010-09-21 | 2011-02-02 | 北京网康科技有限公司 | 一种基于多核构架的报文转发方法及*** |
US7990974B1 (en) * | 2008-09-29 | 2011-08-02 | Sonicwall, Inc. | Packet processing on a multi-core processor |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8381202B2 (en) * | 2006-06-20 | 2013-02-19 | Google Inc. | Runtime system for executing an application in a parallel-processing computer system |
-
2012
- 2012-04-26 CN CN201210125984.7A patent/CN102685001B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101442513A (zh) * | 2007-11-20 | 2009-05-27 | 杭州华三通信技术有限公司 | 实现多种业务处理功能的方法和多核处理器设备 |
US7990974B1 (en) * | 2008-09-29 | 2011-08-02 | Sonicwall, Inc. | Packet processing on a multi-core processor |
CN101436989A (zh) * | 2008-12-26 | 2009-05-20 | 福建星网锐捷网络有限公司 | 一种转发报文的方法及装置 |
CN101964749A (zh) * | 2010-09-21 | 2011-02-02 | 北京网康科技有限公司 | 一种基于多核构架的报文转发方法及*** |
Non-Patent Citations (2)
Title |
---|
向军.网络处理器并行线速处理关键技术研究.《中国博士学位论文全文数据库 信息科技辑》.2011,(第6期),全文. * |
网络处理器并行线速处理关键技术研究;向军;《中国博士学位论文全文数据库 信息科技辑》;20110615(第6期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN102685001A (zh) | 2012-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104104620B (zh) | 用于按优先级进行业务流处理的方法和*** | |
CN107196870B (zh) | 一种基于dpdk的流量动态负载均衡方法 | |
CN110908788B (zh) | 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质 | |
CN103870340B (zh) | 流计算***中的数据处理方法、控制节点及流计算*** | |
CN105511954A (zh) | 一种报文处理方法及装置 | |
WO2014032348A1 (zh) | 一种基于时间触发机制的数据传输方法及装置 | |
CN102868635A (zh) | 多核多线程的报文保序方法及*** | |
JP2015532073A (ja) | 使用要求の小バッチ処理のためのシステムおよび方法 | |
CN102811152B (zh) | 一种多主总线网络通讯实时交易数据交换实现方法 | |
CN103336684A (zh) | 一种并发处理ap消息的ac及其处理方法 | |
CN108037898A (zh) | 一种基于Ceph的dpdk通讯的方法、***及装置 | |
CN103428185B (zh) | 报文过滤/限速方法、***及装置 | |
Simoncelli et al. | Stream-monitoring with blockmon: convergence of network measurements and data analytics platforms | |
CN105159779A (zh) | 提高多核cpu数据处理性能的方法和*** | |
Hasan et al. | Dynamic load balancing model based on server status (DLBS) for green computing | |
CN102609307A (zh) | 多核多线程双操作***网络设备及其控制方法 | |
CN113542043A (zh) | 网络设备的数据采样方法、装置、设备及介质 | |
US10673983B2 (en) | Processing a unit of work | |
Xu et al. | Building a high-performance key–value cache as an energy-efficient appliance | |
CN102685001B (zh) | 网络设备任务的高效处理方法及*** | |
CN107493574B (zh) | 无线控制器设备、并行认证处理方法、***、组网装置 | |
EP2622499B1 (en) | Techniques to support large numbers of subscribers to a real-time event | |
Redžović et al. | Implementation and performance comparison of high-capacity software routers | |
CN110868330B (zh) | 云平台可划分cpu资源的评估方法、装置及评估*** | |
CN102752208A (zh) | 防止半连接攻击的方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141210 Termination date: 20180426 |