CN102685001B - 网络设备任务的高效处理方法及系统 - Google Patents

网络设备任务的高效处理方法及系统 Download PDF

Info

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
Application number
CN201210125984.7A
Other languages
English (en)
Other versions
CN102685001A (zh
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.)
Opzoon Technology Co Ltd
Original Assignee
Opzoon Technology 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 Opzoon Technology Co Ltd filed Critical Opzoon Technology Co Ltd
Priority to CN201210125984.7A priority Critical patent/CN102685001B/zh
Publication of CN102685001A publication Critical patent/CN102685001A/zh
Application granted granted Critical
Publication of CN102685001B publication Critical patent/CN102685001B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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任务判断模块。
CN201210125984.7A 2012-04-26 2012-04-26 网络设备任务的高效处理方法及系统 Expired - Fee Related CN102685001B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
向军.网络处理器并行线速处理关键技术研究.《中国博士学位论文全文数据库 信息科技辑》.2011,(第6期),全文. *
网络处理器并行线速处理关键技术研究;向军;《中国博士学位论文全文数据库 信息科技辑》;20110615(第6期);全文 *

Also Published As

Publication number Publication date
CN102685001A (zh) 2012-09-19

Similar Documents

Publication Publication Date Title
CN107196870B (zh) 一种基于dpdk的流量动态负载均衡方法
CN110908788B (zh) 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质
CN103870340B (zh) 流计算系统中的数据处理方法、控制节点及流计算系统
CN102710497A (zh) 多核多线程网络设备的报文处理方法及系统
CN102868635B (zh) 多核多线程的报文保序方法及系统
CN105511954A (zh) 一种报文处理方法及装置
CN102801635B (zh) 在多核处理器系统中使用的报文保序方法
WO2014032348A1 (zh) 一种基于时间触发机制的数据传输方法及装置
JP2015532073A (ja) 使用要求の小バッチ処理のためのシステムおよび方法
CN103346978B (zh) 一种虚拟机网络带宽公平性和稳定性保障方法
CN102811152B (zh) 一种多主总线网络通讯实时交易数据交换实现方法
CN103336684A (zh) 一种并发处理ap消息的ac及其处理方法
CN108037898A (zh) 一种基于Ceph的dpdk通讯的方法、系统及装置
CN105159779A (zh) 提高多核cpu数据处理性能的方法和系统
CN102609307A (zh) 多核多线程双操作系统网络设备及其控制方法
Hasan et al. Dynamic load balancing model based on server status (DLBS) for green computing
CN103428185B (zh) 报文过滤/限速方法、系统及装置
CN113542043A (zh) 网络设备的数据采样方法、装置、设备及介质
Xu et al. Building a high-performance key–value cache as an energy-efficient appliance
CN102685001B (zh) 网络设备任务的高效处理方法及系统
CN107493574B (zh) 无线控制器设备、并行认证处理方法、系统、组网装置
WO2012174838A1 (zh) 一种网元消息并发处理方法及系统
Redžović et al. Implementation and performance comparison of high-capacity software routers
CN102752208A (zh) 防止半连接攻击的方法及系统
CN206021155U (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