CN104965810B - 多核模式下快速处理数据报文的方法及装置 - Google Patents
多核模式下快速处理数据报文的方法及装置 Download PDFInfo
- Publication number
- CN104965810B CN104965810B CN201510230899.0A CN201510230899A CN104965810B CN 104965810 B CN104965810 B CN 104965810B CN 201510230899 A CN201510230899 A CN 201510230899A CN 104965810 B CN104965810 B CN 104965810B
- Authority
- CN
- China
- Prior art keywords
- message
- table entry
- real time
- user space
- time business
- 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
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种多核模式下快速处理数据报文的方法及装置。该方法包括:规则表项建立步骤:将管理报文上送至运行在多核中至少一个核上的用户态程序,以使用户态程序基于所述管理报文建立发送规则表项,所述发送规则表项包括所有业务报文的特征和与之对应的发送规则;收包步骤:从服务器的硬件端口对实时业务报文进行收包,将所述实时业务报文上送至运行在多核中其它至少一个核上的用户态程序;转发步骤:根据实时业务报文的特征查找所述发送规则表项,并按相应的发送规则转发所述实时业务报文。采用该方法可以提高数据报文处理的速度,提高中央处理器的数据处理能力。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种多核模式下快速处理数据报文的方法。此外,本发明还涉及一种多核模式下快速处理数据报文的装置。
背景技术
现有技术中,中央处理器CPU首先通过套接字socket接收数据报文,然后根据数据报文的类型对数据报文进行相应的处理,其中数据报文包括管理报文和业务报文,管理报文的数据载荷内容中包括发送规则表项,发送业务报文之前,根据业务报文的特点查找规则表项并按相应的规则转发出去,所有的处理过程都是通过socket完成,由于socket是在协议栈基础上运行的,数据报文处理的全过程都需要TCP/IP协议栈的参与。
另外,数据报文的处理都是在用户态进行的,数据报文从内核态上送至用户态时首先要经过TCP/IP协议栈,并且有数据拷贝的动作,整个数据报文的处理流程相对来说比较复杂,业务报文的处理速度比较慢,影响中央处理器的数据处理性能。因此,需要一种多核模式下快速处理业务数据报文的方法,以解决现有技术中存在的上述技术问题。
发明内容
本发明提供一种多核模式下快速处理业务数据报文的方法。采用所述多核模式下快速处理业务数据报文的方法可以提高数据报文处理的速度,提高中央处理器的数据处理能力。此外,本发明还提供了一种多核模式下快速处理业务数据报文的装置。
本发明采用的技术方案是:
一种多核模式下快速处理数据报文的方法,其包括:规则表项建立步骤:将管理报文上送至运行在多核中至少一个核上的用户态程序,以使用户态程序基于所述管理报文建立发送规则表项,所述发送规则表项包括所有业务报文的特征和与之对应的发送规则;收包步骤:从服务器的硬件端口对实时业务报文进行收包,将所述实时业务报文上送至运行在多核中其它至少一个核上的用户态程序;转发步骤:根据实时业务报文的特征查找所述发送规则表项,并按相应的发送规则转发所述实时业务报文。
优选地,在规则表项建立步骤中,通过协议栈将所述管理报文上送至运行在所述多核中至少一个核上的用户态程序,和/或,根据设定的五元组规则建立所述发送规则表项。
优选地,在规则表项建立步骤中,提取所述管理报文中数据载荷的内容,以获取所述设定的五元组规则。
优选地,在规则表项建立步骤中,根据硬核分配策略将所述管理报文上送至运行在所述多核中至少一个核上的用户态程序;在收包步骤中,根据所述硬核分配策略将所述实时业务报文上送至运行在所述多核中其它至少一个核上的用户态程序。
优选地,收包步骤中,通过轮询的方式从所述服务器的硬件端口对所述实时业务报文进行收包。
本发明还提供了一种多核模式下快速处理数据报文的装置,设置于服务器中,其包括:规则表项建立模块,用于将管理报文上送至运行在多核中至少一个核上的用户态程序,以使用户态程序基于所述管理报文建立发送规则表项,所述发送规则表项包括所有业务报文的特征和与之对应的发送规则;收包模块,用于从服务器的硬件端口对实时业务报文进行收包,将所述实时业务报文上送至运行在多核中其它至少一个核上的用户态程序;转发模块,用于根据实时业务报文的特征查找所述发送规则表项,并按相应的发送规则转发所述实时业务报文。
优选地,所述规则表项建立模块,还用于通过协议栈将所述管理报文上送至运行在多核中至少一个核上的用户态程序,和/或,还用于根据设定的五元组规则建立所述发送规则表项。
优选地,所述规则表项建立模块,还用于提取所述管理报文中数据载荷的内容,以获取所述设定的五元组规则。
优选地,所述规则表项建立模块还用于,根据硬核分配策略将所述管理报文上送至运行在所述多核中至少一个核上的用户态程序;所述收包模块还用于,根据所述硬核分配策略将所述实时业务报文上送至运行在所述多核中其它至少一个核上的用户态程序。
优选地,所述收包模块还用于,通过轮询的方式从所述服务器的硬件端口对所述实时业务报文进行收包。
采用上述技术方案,本发明至少具有下列优点:采用本发明的多模式下快速处理数据报文的方法可以实现对管理报文的可靠处理,而实现对业务报文的快速处理,减少了业务报文拷贝的次数,简化了系统的处理流程,提高了服务器的数据处理能力。
附图说明
图1为本发明第一实施例的多核模式下快速处理业务数据报文的方法的流程图;
图2为本发明第二优选实施例的多核模式下快速处理业务数据报文的装置的示意图。
其中,100-规则表项建立模块;200-收包模块;300-转发模块。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
本发明提供的多核模式下快速处理数据报文的方法能够实现数据报文的快速处理,下面将详细地描述本发明的多核模式下快速处理业务数据报文的方法及其各个步骤。
第一实施例
如图1所示,本实施例中的多核模式下快速处理数据报文的方法是在服务器采用对称多处理SMP架构下实现的,由此可以将管理报文和业务报文分开来分别处理。具体地,如图中示出的,该方法包括规则表项建立步骤S10、收包步骤S20和转发步骤S30。其中,规则表项建立步骤S10:将管理报文上送至运行在多核中至少一个核上的用户态,以使用户态程序基于管理报文建立发送规则表项,发送规则表项包括所有业务报文的特征和与之对应的发送规则。多核模式下是指一个CPU包括多个核,数据报文可以由指定的核处理,也可以分发到所有的核上同时处理。具体执行过程中,用户可以通过以太网端口向服务器下发包括发送规则表项的管理报文,将实时业务报文通过高速端口上送服务器。从而从服务器的不同硬件端口向服务器分开发送管理报文和业务报文。规则表项建立步骤S10是将管理报文发送至多核中至少一个核上的用户态。服务器接收到管理报文后提取并且存储发送规则表项。作为优选地,可以根据硬核分配策略将管理报文上送至运行在多核中至少一个核上的用户态程序,例如硬核分配策略可以采用哈希策略,由此确定出负责处理管理报文的核。发送规则表项的建立可以依据不同的方式,只要发送规则表项中包括所有业务报文的特征和与之对应的发送规则即可。进一步地,根据设定的五元组规则建立发送规则表项。数据报文的五元组包括源IP地址、目的IP地址、源端口、目的端口和协议类型,设定的五元组规则是基于上述五元组中各项的不同取值采用对应的发送规则。另外,规则表项建立步骤S10中,数据载荷中的内容包含设定的五元组规则,提取管理报文中数据载荷的内容来获取设定的五元组规则,。由此可以看出,规则表项建立步骤S10之前,预先将设定的五元组规则设置在管理报文的数据载荷中,当运行在多核中的至少一个核上的用户态程序接收到管理报文后,提取管理报文的数据载荷中包括的设定的五元组规则。此外,在规则表项建立步骤S10中,通过协议栈例如TCP/IP协议栈,将管理报文上送至运行在多核中至少一个核上的用户态。采用协议栈可以保证管理报文传输的可靠性,确保管理报文的稳定处理。管理报文的到来是通过服务器的硬件端口例如以太网端口发送中断信号通知服务器,由此服务器将管理报文上送至运行在多核中至少一个核上的用户态程序。
收包步骤S20:从服务器的硬件端口对实时业务报文进行收包至运行在多核中其它至少一个核上的用户态程序。在收包步骤S20中,根据硬核分配策略将实时业务报文以零拷贝的模式上送至运行在多核中其它至少一个核上的用户态程序。优选地,收包步骤中,通过轮询的方式从服务器的硬件端口对实时业务报文进行收包。例如根据哈希策略将实时业务报文上送至运行在多核中其它至少一个核上的用户态程序。轮流问询各个硬件端口,如果其中一个硬件端口上送来实时业务报文,则直接收包,由此实时业务报文不经过TCP/IP协议栈,用户直接处理裸数据报文,简化了数据处理的流程,减少了实时业务报文拷贝的次数,提高了服务器的业务报文处理能力。
转发步骤S30:基于实时业务报文的特征查找发送规则表项,并按相应的发送规则转发实时业务报文。用户态程序获取实时业务报文的特征,例如实时业务报文的特征可以是预先设置在业务报文的数据载荷中,用户态程序提取该实时业务报文的特征,然后查找发送规则表项中是否存在该实时业务报文的特征,如果存在,则按发送规则表项中该实时业务报文的特征所对应的发送规则转发实时业务报文。如果不存在,则按默认设置的发送规则转发实时业务报文。
第二实施例
如图2所示,本发明提供的多核模式下快速处理数据报文的装置,其在采用对称多处理SMP架构下,包括规划表项建立模块100、收包模块200和转发模块300。
具体地,规则表项建立模块100,用于将管理报文上送至运行在多核中至少一个核上的用户态程序,以使用户态程序基于管理报文建立发送规则表项,发送规则表项包括所有业务报文的特征和与之对应的发送规则。作为优选地,规则表项建立模块100,还用于通过协议栈将管理报文上送至运行在多核中至少一个核上的用户态程序。由此提高管理报文传输的可靠性。进一步地,规则表项建立模块100还用于根据设定的五元组规则建立发送规则表项。另外,规则表项建立模块,还用于提取管理报文中数据载荷的内容,管理报文的数据载荷中预先设置有上述设定的五元组规则,由此可以获取设定的五元组规则。此外,规则表项建立模块100还用于,根据硬核分配策略将管理报文上送至运行在多核中至少一个核上的用户态程序。收包模块还用于,根据硬核分配策略将实时业务报文上送至运行在多核中其它至少一个核上的用户态程序。上述硬核分配策略可以是哈希策略,也可以是其它硬核分配策略。
收包模块200,用于从服务器的硬件端口对实时业务报文进行收包,将实时业务报文上送至运行在多核中其它至少一个核上的用户态程序。由此可以从硬件端口对实时业务报文直接进行收包,减少了文件拷贝的次数,提高了数据处理的速度。进一步地,收包模块还用于,通过轮询的方式从硬件端口对实时业务报文进行收包。
转发模块300,用于基于实时业务报文的特征查找发送规则表项,以按相应的发送规则转发实时业务报文。如果发送规则表项中存在该实时业务报文的特征,则按与该实时业务报文的特征对应的发送规则查找相应的发送规则,由此按照确定出来的发送规则转发实时业务报文。由此可以看出,管理报文和业务报文都是在用户态程序上进行处理,两者之间的数据可以方便共享,提高了业务报文处理的速度。
第三实施例
本实施例中提供的服务器包括如第二实施例中描述的多核模式下快速处理数据报文的装置。
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
Claims (8)
1.一种多核模式下快速处理数据报文的方法,其中多核模式下是指一个CPU包括多个核,其特征在于,包括:
规则表项建立步骤:将管理报文上送至运行在多核中至少一个核上的用户态程序,以使用户态程序基于所述管理报文建立发送规则表项,所述发送规则表项包括所有业务报文的特征和与之对应的发送规则;
收包步骤:从服务器的硬件端口对实时业务报文进行收包,将所述实时业务报文上送至运行在多核中其它至少一个核上的用户态程序;
转发步骤:根据实时业务报文的特征查找所述发送规则表项,并按相应的发送规则转发所述实时业务报文;
在规则表项建立步骤中,通过协议栈将所述管理报文上送至运行在所述多核中至少一个核上的用户态程序,和/或,根据设定的五元组规则建立所述发送规则表项。
2.根据权利要求1所述的多核模式下快速处理数据报文的方法,其特征在于,在规则表项建立步骤中,提取所述管理报文中数据载荷的内容,以获取所述设定的五元组规则。
3.根据权利要求1所述的多核模式下快速处理数据报文的方法,其特征在于,
在规则表项建立步骤中,根据硬核分配策略将所述管理报文上送至运行在所述多核中至少一个核上的用户态程序;
在收包步骤中,根据所述硬核分配策略将所述实时业务报文上送至运行在所述多核中其它至少一个核上的用户态程序。
4.根据权利要求1~3中任一项所述的多核模式下快速处理数据报文的方法,其特征在于,收包步骤中,通过轮询的方式从所述服务器的硬件端口对所述实时业务报文进行收包。
5.一种多核模式下快速处理数据报文的装置,设置于服务器中,其中多核模式下是指一个CPU包括多个核,其特征在于,包括:
规则表项建立模块,用于将管理报文上送至运行在多核中至少一个核上的用户态程序,以使用户态程序基于所述管理报文建立发送规则表项,所述发送规则表项包括所有业务报文的特征和与之对应的发送规则;
收包模块,用于从服务器的硬件端口对实时业务报文进行收包,将所述实时业务报文上送至运行在多核中其它至少一个核上的用户态程序;
转发模块,用于根据实时业务报文的特征查找所述发送规则表项,并按相应的发送规则转发所述实时业务报文;
所述规则表项建立模块,还用于通过协议栈将所述管理报文上送至运行在多核中至少一个核上的用户态程序,和/或,还用于根据设定的五元组规则建立所述发送规则表项。
6.根据权利要求5所述的多核模式下快速处理数据报文的装置,其特征在于,所述规则表项建立模块,还用于提取所述管理报文中数据载荷的内容,以获取所述设定的五元组规则。
7.根据权利要求5所述的多核模式下快速处理数据报文的装置,其特征在于,所述规则表项建立模块还用于,根据硬核分配策略将所述管理报文上送至运行在所述多核中至少一个核上的用户态程序;
所述收包模块还用于,根据所述硬核分配策略将所述实时业务报文上送至运行在所述多核中其它至少一个核上的用户态程序。
8.根据权利要求5~7中任一项所述多核模式下快速处理数据报文的装置,其特征在于,所述收包模块还用于,通过轮询的方式从所述服务器的硬件端口对所述实时业务报文进行收包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510230899.0A CN104965810B (zh) | 2015-05-08 | 2015-05-08 | 多核模式下快速处理数据报文的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510230899.0A CN104965810B (zh) | 2015-05-08 | 2015-05-08 | 多核模式下快速处理数据报文的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104965810A CN104965810A (zh) | 2015-10-07 |
CN104965810B true CN104965810B (zh) | 2018-08-21 |
Family
ID=54219845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510230899.0A Expired - Fee Related CN104965810B (zh) | 2015-05-08 | 2015-05-08 | 多核模式下快速处理数据报文的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104965810B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227493A (zh) * | 2015-10-15 | 2016-01-06 | 上海斐讯数据通信技术有限公司 | 多核平台下提高数据报文转发性能的方法 |
CN106254578B (zh) * | 2016-09-28 | 2019-07-12 | 深圳震有科技股份有限公司 | 双核amp系统构架下的以太网报文透传方法及系统 |
CN106453625B (zh) * | 2016-11-17 | 2019-05-17 | 东软集团股份有限公司 | 信息同步方法及高可用性集群系统 |
CN106713185B (zh) * | 2016-12-06 | 2019-09-13 | 瑞斯康达科技发展股份有限公司 | 一种多核cpu的负载均衡方法及装置 |
CN111736982B (zh) * | 2020-05-12 | 2023-12-08 | 深圳震有科技股份有限公司 | 一种5g数据转发平面的数据转发处理方法和服务器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355415A (zh) * | 2011-09-27 | 2012-02-15 | 瑞斯康达科技发展股份有限公司 | 一种cpu间报文传输方法及装置 |
CN102710497A (zh) * | 2012-04-24 | 2012-10-03 | 汉柏科技有限公司 | 多核多线程网络设备的报文处理方法及系统 |
CN102868647A (zh) * | 2012-09-26 | 2013-01-09 | 大唐移动通信设备有限公司 | 一种基于Linux网络内核的数据处理方法和装置 |
CN104468381A (zh) * | 2014-12-01 | 2015-03-25 | 国家计算机网络与信息安全管理中心 | 一种多域流规则匹配的实现方法 |
CN104601468A (zh) * | 2015-01-13 | 2015-05-06 | 杭州华三通信技术有限公司 | 报文转发方法和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8675674B2 (en) * | 2009-12-23 | 2014-03-18 | Citrix Systems, Inc. | Systems and methods for queue level SSL card mapping to multi-core packet engine |
-
2015
- 2015-05-08 CN CN201510230899.0A patent/CN104965810B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355415A (zh) * | 2011-09-27 | 2012-02-15 | 瑞斯康达科技发展股份有限公司 | 一种cpu间报文传输方法及装置 |
CN102710497A (zh) * | 2012-04-24 | 2012-10-03 | 汉柏科技有限公司 | 多核多线程网络设备的报文处理方法及系统 |
CN102868647A (zh) * | 2012-09-26 | 2013-01-09 | 大唐移动通信设备有限公司 | 一种基于Linux网络内核的数据处理方法和装置 |
CN104468381A (zh) * | 2014-12-01 | 2015-03-25 | 国家计算机网络与信息安全管理中心 | 一种多域流规则匹配的实现方法 |
CN104601468A (zh) * | 2015-01-13 | 2015-05-06 | 杭州华三通信技术有限公司 | 报文转发方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104965810A (zh) | 2015-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104965810B (zh) | 多核模式下快速处理数据报文的方法及装置 | |
US9971519B2 (en) | System and method for efficient access for remote storage devices | |
DE102015119893B4 (de) | Multiplexen von vielen Client-Datenströmen über eine einzige Verbindung | |
US20150003449A1 (en) | Path maximum transmission unit learning | |
US10148565B2 (en) | OPENFLOW communication method and system, controller, and service gateway | |
US20150019702A1 (en) | Flexible flow offload | |
CN104780080B (zh) | 深度报文检测方法及系统 | |
CN106790221B (zh) | 一种英特网协议安全IPSec协议加密方法和网络设备 | |
US20210314214A1 (en) | IPSEC Acceleration Method, Apparatus, and System | |
US20170093792A1 (en) | System and method for stateless distribution of bidirectional flows with network address translation | |
CN104065759A (zh) | 一种提高nat地址池资源利用效率的方法及装置 | |
CN102801635A (zh) | 在多核处理器系统中使用的报文保序方法 | |
CN103441927A (zh) | 报文处理方法及装置 | |
WO2015106623A1 (zh) | 一种配置、下发流表项的方法及装置 | |
CN103297390A (zh) | 服务器反向连接客户端的实现方法 | |
US9331935B2 (en) | Network device selection | |
CN106603409B (zh) | 一种数据处理系统、方法及设备 | |
CN102497297A (zh) | 基于多核多线程的深度报文检测技术的实现系统和方法 | |
US8566842B2 (en) | Identification of a protocol used in a message | |
CN105991755B (zh) | 业务报文分发方法及装置 | |
CN105227403A (zh) | 一种OpenStack网络流量监控方法 | |
CN109672594B (zh) | IPoE报文处理方法、装置及宽带远程接入服务器 | |
US20150288763A1 (en) | Remote asymmetric tcp connection offload over rdma | |
US10177935B2 (en) | Data transfer system, data transfer server, data transfer method, and program recording medium | |
US9736080B2 (en) | Determination method, device and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180821 Termination date: 20190508 |
|
CF01 | Termination of patent right due to non-payment of annual fee |