CN101789901B - 多核平台上转发系统的加速方法及装置 - Google Patents

多核平台上转发系统的加速方法及装置 Download PDF

Info

Publication number
CN101789901B
CN101789901B CN2009102432653A CN200910243265A CN101789901B CN 101789901 B CN101789901 B CN 101789901B CN 2009102432653 A CN2009102432653 A CN 2009102432653A CN 200910243265 A CN200910243265 A CN 200910243265A CN 101789901 B CN101789901 B CN 101789901B
Authority
CN
China
Prior art keywords
connection
data flow
locality
local
session
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
Application number
CN2009102432653A
Other languages
English (en)
Other versions
CN101789901A (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.)
Beijing Topsec Technology Co Ltd
Original Assignee
Beijing Topsec 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 Beijing Topsec Technology Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN2009102432653A priority Critical patent/CN101789901B/zh
Publication of CN101789901A publication Critical patent/CN101789901A/zh
Application granted granted Critical
Publication of CN101789901B publication Critical patent/CN101789901B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种多核平台上转发系统的加速方法及装置,多核平台上的每个CPU都在本地预先创建并维护一个本地连接表,所述方法包括:每个CPU在收到某数据流的数据包时,优先在本地连接表中查找与该数据流对应的本地连接,如果找到,则根据该本地连接转发该数据包;否则在连接表中查找该数据流对应的连接,如果找到,则根据该连接转发该数据包并在本地连接表中建立一个与该数据流对应的本地连接,否则在连接表中建立一个与该数据流对应的连接并转发出去;本发明通过每个CPU遵循优先查找本地连接表然后查找连接表的原则,使得多个CPU之间访问连接表的竞争减少,大幅提高了多核转发系统的性能。

Description

多核平台上转发系统的加速方法及装置
技术领域
本发明涉及网络安全技术领域,尤其涉及一种多核平台上转发系统的加速方法及装置。
背景技术
随着CPU的换代升级,多核CPU已经进入到了商用阶段,不仅在PC市场,在网络设备市场也占有了一席之地。这就要求各个厂商需要在新的多核平台上开发产品或者将以前的软件移植到多核平台上来提升自身产品的竞争力。
目前的防火墙系统都是基于状态检测技术的。防火墙在收到包之后匹配访问策略,如果策略允许通过,就建立session(连接,由源地址、源端口、目的地址、目的端口和协议号等构成)转发出去。防火墙在收到后续的属于这个session的包后就直接转发出去,不需要再匹配访问策略等工作。在多核平台上,运行转发系统的CPU需要加锁访问这个SESSION表(在内存中存放所有session的一张表)。这样运行转发系统的CPU越多,他们之间访问SESSION表的竞争越大,导致CPU的增加不能线性提高转发系统的整体性能,甚至在极端情况下还不如一个CPU的转发性能。
因此,在多核平台上,如何实现转发系统的快速转发,减少多个CPU之间的锁竞争是需要解决的关键技术。
发明内容
鉴于上述的分析,本发明旨在提供一种多核平台上转发系统的加速方法及装置,达到多核平台上转发系统加速的目的。
本发明的目的主要是通过以下技术方案实现的:
本发明提供了一种多核平台上转发系统的加速方法,多核平台上的每个CPU都在本地预先创建并维护一个本地连接表,则所述方法包括:
步骤A:每个CPU在收到某数据流的数据包时,优先在本地连接表中查找与该数据流对应的本地连接,如果找到,则根据该本地连接转发该数据包,否则执行步骤B;
步骤B:在连接表中查找该数据流对应的连接,如果找到,则根据该连接转发该数据包并在本地连接表中建立一个与该数据流对应的本地连接,否则在连接表中建立一个与该数据流对应的连接并转发出去。
进一步地,所述步骤A中,在本地连接表中查找与该数据流对应的本地连接的过程不需要加锁保护;所述步骤B中,在连接表中查找该数据流对应的连接的过程需要加锁保护。
其中,所述本地连接至少包括:源地址、源端口、目的地址、目的端口和协议号。
本发明还提供了一种多核平台上转发系统的加速装置,包括:连接存储模块、每个CPU中的本地连接存储模块和查找转发模块,其中,
所述连接存储模块,用于存储并维护每个数据流对应的连接;
所述本地连接存储模块,用于存储并维护该CPU接收到的数据流对应的连接;
所述查找转发模块,用于在该CPU收到某数据流的数据包时,优先在本地连接存储模块中查找与该数据流对应的本地连接,如果找到,则根据该本地连接转发该数据包;否则在连接存储模块中查找该数据流对应的连接,如果找到,则根据该连接转发该数据包并在本地连接存储模块中建立一个与该数据流对应的本地连接,否则在连接存储模块中建立一个与该数据流对应的连接并转发出去。
进一步地,所述步骤查找转发模块在本地连接表中查找与该数据流对应的本地连接的过程不需要进行加锁保护处理,在连接表中查找该数据流对应的连接的过程需要进行加锁保护处理。
其中,所述本地连接至少包括:源地址、源端口、目的地址、目的端口和协议号。
本发明有益效果如下:
本发明通过每个CPU在本地都维护一个local_session表,并且遵循优先查找local_session表然后查找SESSION表的原则,使得多个CPU之间访问SESSION表的竞争减少,大幅提高了多核转发系统的性能。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1为本发明实施例所述方法的流程示意图;
图2为本发明实施例所述装置的结构示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。为了清楚和简化目的,当其可能使本发明的主题模糊不清时,将省略本文所描述的器件中已知功能和结构的详细具体说明。
本发明实施例的主要内容包括:
每个CPU在收到某数据流的数据包时,优先在本地连接表中查找与该数据流对应的本地连接,如果找到,则根据该本地连接转发该数据包,否则在连接表中查找该数据流对应的连接;
如果在连接表中查找到该数据流对应的连接,则根据该连接转发该数据包并在本地连接表中建立一个与该数据流对应的本地连接,否则在连接表中建立一个与该数据流对应的连接并转发出去。
首先结合附图1对本发明实施例所述方法进行详细说明。
如图1所示,图1为本发明实施例所述方法的流程示意图,设定本实施例的多核平台上有n个CPU,每个CPU都预先在本地创建并维护一个local_session表,则所述方法具体可以包括如下步骤:
步骤101:TOS转发系统的CPU1在收到某数据流的一个数据包后,优先到local_session表中查找与该数据流对应的local_session,如果找到该数据流对应的local_session,就直接转发该数据包;如果没有在local_session表中查找与该数据流对应的local_session,那么就要查找SESSION表,如果没有查找到与该数据流对应的session,就建立一个与该数据流对应的session,并根据该session转发出去;如果找到与该数据包对应的session,就根据该session直接转发出去,同时在local_session表中建立一个与该数据流对应的local_session;
本发明实施例中,由于CPU1第一次收到该数据流的数据包,因而对于该数据流在local_session表尚未建立对应的local_session,在SESSION表也尚未建立对应的session,因此本步骤中需要先在SESSION表中建立一个与该数据流对应的session,并且,CPU1查找SESSION表,建立session的过程需要加锁保护;
步骤102:TOS转发系统的CPU2在收到后续同一数据流的数据包后,优先查找local_session表,由于CPU2也是第一次收到该数据流的数据包,因而对于该数据流在local_session表尚未建立对应的local_session,因此需要查找SESSION表,由于在SESSION表找到与该数据流对应的session,并且这个session的状态是可用的状态,于是CPU2就在local_session表中创建一个与该数据流对应的local_session,这个local_session是CPU变量,只有这个CPU(即CPU2)才能访问这个local_session,这个local_session记录这个数据流转发出去所需的所有信息,至少包括:源地址、源端口、目的地址、目的端口和协议号;本步骤中,CPU2查找SESSION表过程需要加锁保护;
步骤103:TOS转发系统的CPUn在收到后续同一数据流的数据包后,优先查找local_session表,由于CPUn也是第一次收到该数据流的数据包,因而对于该数据流在local_session表尚未建立对应的local_session,因此需要查找SESSION表,由于在SESSION表找到与该数据流对应的session,并且这个session的状态是可用的状态,于是CPUn就在local_session表中创建一个与该数据流对应的local_session,这个local_session是CPU变量,只有这个CPU才能访问这个local_session;本步骤中,CPUn查找SESSION表的过程需要加锁保护;
步骤104:TOS转发系统的CPU1再次收到同一数据流后续的数据包后,优先查找local_session表,由于CPU1第一次收到该数据流的数据包时只是在SESSION中创建了与该数据流对应的session,而在local_session表尚未建立对应的local_session,因此当在SESSION表中查找到与该数据流对应的session,并且这个session的状态是可用的状态时,CPU1就在local_session表中创建一个与该数据流对应的local_session,这个local_session是CPU变量,只有这个CPU才能访问这个local_session,这个local_session记录这个流转发出去所需的所有信息,至少包括:源地址、源端口、目的地址、目的端口和协议号;
步骤105:TOS转发系统的CPU2再次收到同一数据流后续的数据包后,首先查找local_session表,因为之前步骤102中CPU2对于该数据流已经建立了对应的local_session,这时CPU2在local_session表中就能查找到与该数据流对应的local_session,并根据该local_session转发出去;本步骤CPU2查找local_session表这个过程不需要加锁保护;
步骤106:TOS转发系统的CPUn在收到同一数据流的后续数据包后,首先查找local_session表,因为之前步骤103中CPUn对于该数据流已经建立了对应的local_session,这时CPUn在local_session表中就能查找到与该数据流对应的local_session,并根据该local_session转发出去;本步骤CPUn查找local_session表这个过程不需要加锁保护;
步骤107:TOS转发系统的CPU1在第三次收到同一数据流的数据包后,首先查找local_session表,因为之前步骤104中CPU1对于该数据流已经建立了对应的local_session,这时CPU1在local_session表中就能查找到与该数据流对应的local_session,并根据local_session转发出去;本步骤CPU1查找local_session表这个过程不需要加锁保护;
如图1所示:在第一阶段,CPU1-n在收到数据包后都建立了session和local_session。这个阶段是需要锁竞争的,需要大量的CPU资源。在第二阶段,CPU1-n收到数据包后在local_session表中能查找到local_session就直接转发出去了,由于是在local_session表中查找,所以没有锁竞争,达到加速转发的目的。
需要说明的是,对于每个CPU在查找时都要遵循优先查找local_session表然后查找SESSION表的原则,即在收到某数据流的一个数据包后都要优先到local_session表中查找与该数据流对应的local_session,如果找到与该数据流对应的local_session,则进行转发;如果没有找到与该数据流对应的local_session,再到SESSION表中查找与该数据流对应的session,如果找到与该数据流对应的session,则进行转发,如果没有找到与该数据流对应的session,则建立一个与该数据流对应的session并转发出去。
接下来结合附图2对本发明实施例所述装置进行详细说明。
如图2所示,图2为本发明实施例所述装置的结构示意图,具体可以包括:连接存储模块、每个CPU中的本地连接存储模块和查找转发模块,其中,
连接存储模块,负责存储并维护每个数据流对应的连接,本发明实施例中采用SESSION表的形式;
本地连接存储模块,负责存储并维护该CPU接收到的数据流对应的连接,本发明实施例中采用local_session表的形式;
查找转发模块,遵循优先查找local_session表然后查找SESSION表的原则对该CPU接收到的数据包进行查找转发处理,即在该CPU收到某数据流的数据包时,查找转发模块优先在local_session表中查找与该数据流对应的本地连接,如果找到,则根据该本地连接转发该数据包;否则在SESSION表中查找该数据流对应的连接,如果找到,则根据该连接转发该数据包并在local_session表中建立一个与该数据流对应的本地连接,否则在SESSION表中建立一个与该数据流对应的连接,并且转发出去。
对于本发明实施例所述装置的具体实施过程,由于上述方法已有详细说明,故此处不再赘述。
综上所述,本发明实施例所述方法提供了一种多核平台上转发系统的加速方法及装置,通过每个CPU在本地都维护一个local_session表,并且遵循优先查找local_session表然后查找SESSION表的原则,使得多个CPU之间访问SESSION表的竞争减少,大幅提高了多核转发系统的性能,尤其是运行转发系统的CPU个数很多时,效果非常好。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (4)

1.一种多核平台上转发系统的加速方法,其特征在于,多核平台上的每个CPU都在本地预先创建并维护一个本地连接表,则所述方法包括:
步骤A:每个CPU在收到某数据流的数据包时,优先在本地连接表中查找与该数据流对应的本地连接,如果找到,则根据该本地连接转发该数据包,否则执行步骤B;其中,在本地连接表中查找与该数据流对应的本地连接的过程不需要加锁保护;
步骤B:在连接表中查找该数据流对应的连接,如果找到,则根据该连接转发该数据包并在本地连接表中建立一个与该数据流对应的本地连接,否则在连接表中建立一个与该数据流对应的连接并转发出去;其中,在连接表中查找该数据流对应的连接的过程需要加锁保护。
2.根据权利要求1所述的方法,其特征在于,所述本地连接至少包括:源地址、源端口、目的地址、目的端口和协议号。
3.一种多核平台上转发系统的加速装置,其特征在于,包括:连接存储模块、每个CPU中的本地连接存储模块和查找转发模块,其中,
所述连接存储模块,用于存储并维护每个数据流对应的连接;
所述本地连接存储模块,用于存储并维护该CPU接收到的数据流对应的连接;
所述查找转发模块,用于在该CPU收到某数据流的数据包时,优先在本地连接存储模块中查找与该数据流对应的本地连接,如果找到,则根据该本地连接转发该数据包;否则在连接存储模块中查找该数据流对应的连接,如果找到,则根据该连接转发该数据包并在本地连接存储模块中建立一个与该数据流对应的本地连接,否则在连接存储模块中建立一个与该数据流对应的连接并转发出 去;其中,查找转发模块在本地连接表中查找与该数据流对应的本地连接时不需要进行加锁保护处理,在连接表中查找该数据流对应的连接时需要进行加锁保护处理。
4.根据权利要求3所述的方法,其特征在于,所述本地连接至少包括:源地址、源端口、目的地址、目的端口和协议号。 
CN2009102432653A 2009-12-30 2009-12-30 多核平台上转发系统的加速方法及装置 Active CN101789901B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102432653A CN101789901B (zh) 2009-12-30 2009-12-30 多核平台上转发系统的加速方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102432653A CN101789901B (zh) 2009-12-30 2009-12-30 多核平台上转发系统的加速方法及装置

Publications (2)

Publication Number Publication Date
CN101789901A CN101789901A (zh) 2010-07-28
CN101789901B true CN101789901B (zh) 2012-11-14

Family

ID=42532963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102432653A Active CN101789901B (zh) 2009-12-30 2009-12-30 多核平台上转发系统的加速方法及装置

Country Status (1)

Country Link
CN (1) CN101789901B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103188355B (zh) * 2013-04-02 2016-03-02 汉柏科技有限公司 一种通过预判断对报文进行动态匹配的方法
CN104199800A (zh) * 2014-07-21 2014-12-10 上海寰创通信科技股份有限公司 一种解决多核系统中表项互斥的方法
CN104572259A (zh) * 2014-10-17 2015-04-29 新浪网技术(中国)有限公司 一种数据处理方法及装置
CN106130910A (zh) * 2016-08-29 2016-11-16 桂林浩新科技服务有限公司 一种报文匹配方法和系统
CN106789617B (zh) * 2016-12-22 2020-03-06 东软集团股份有限公司 一种报文转发方法及装置
CN111736982B (zh) * 2020-05-12 2023-12-08 深圳震有科技股份有限公司 一种5g数据转发平面的数据转发处理方法和服务器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1278977A (zh) * 1997-09-04 2001-01-03 艾利森电话股份有限公司 查找信息的方法和装置
CN101252514A (zh) * 2008-02-29 2008-08-27 中兴通讯股份有限公司 基于多对一接入方式的骨干桥接网络中的数据转发方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1278977A (zh) * 1997-09-04 2001-01-03 艾利森电话股份有限公司 查找信息的方法和装置
CN101252514A (zh) * 2008-02-29 2008-08-27 中兴通讯股份有限公司 基于多对一接入方式的骨干桥接网络中的数据转发方法

Also Published As

Publication number Publication date
CN101789901A (zh) 2010-07-28

Similar Documents

Publication Publication Date Title
CN101789901B (zh) 多核平台上转发系统的加速方法及装置
CN109492040B (zh) 一种适用于数据中心海量短报文数据处理的系统
CN108268208B (zh) 一种基于rdma的分布式内存文件系统
CN101605084B (zh) 基于虚拟机的虚拟网络报文处理方法和系统
WO2015062444A1 (en) System and method for creating a distributed transaction manager supporting repeatable read isolation level in a mpp database
CN103095758B (zh) 一种分布式文件系统及该系统中处理文件数据的方法
Guo et al. Exploiting efficient and scalable shuffle transfers in future data center networks
CN102201010A (zh) 无共享架构的分布式数据库系统及其实现方法
CN106713391B (zh) 一种session信息的共享方法和共享系统
CN102130838A (zh) 一种基于阿瑞斯协议的对等网络缓存系统的实现方法
CN101640623A (zh) 在对等网络中搜索资源的方法和设备
CN102065136A (zh) 一种p2p网络安全数据传输方法及其系统
CN100505662C (zh) 创建点对点数据通道的方法
CN104468299A (zh) 基于用户规则的企业服务总线系统
CN105677605A (zh) 一种高效的可配置片上互联系统及其实现方法、装置
CN102184157B (zh) 一种基于双处理器协作的信息显示装置
CN115348126A (zh) 一种网络靶场实体设备接入方法、装置及实现系统
CN101815089B (zh) Web高端磁盘阵列控制器命令执行方法及系统
CN113672410A (zh) 一种数据处理方法及电子装置
Wu et al. The Research and Implementation of parallel web crawler in cluster
CN109309711B (zh) 一种虚拟缓存共享方法和系统
JP6842542B2 (ja) パケット伝送方法及びcb機器
CN105930100A (zh) 一种优化usim卡文件读写速度及频率的实现方法
CN101335610A (zh) 一种高端以太网交换机中的arp同步方法
Wang et al. Peer-Serv: A framework of Web services in peer-to-peer environment

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
C56 Change in the name or address of the patentee

Owner name: BEIJING TOPSEC TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: BEIJING HEAVEN MELTS LETTER SCIENCE TECHNOLOGIES CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee after: BEIJING TOPSEC TECHNOLOGY CO., LTD.

Address before: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee before: Beijing heaven melts letter Science Technologies Co., Ltd.

C56 Change in the name or address of the patentee

Owner name: BEIJING HEAVEN MELTS LETTER SCIENCE TECHNOLOGIES C

Free format text: FORMER NAME: BEIJING TOPSEC TECHNOLOGY CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee after: Beijing heaven melts letter Science Technologies Co., Ltd.

Address before: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee before: BEIJING TOPSEC TECHNOLOGY CO., LTD.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee after: BEIJING TOPSEC TECHNOLOGY CO., LTD.

Address before: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee before: Beijing heaven melts letter Science Technologies Co., Ltd.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee after: Beijing heaven melts letter Science Technologies Co., Ltd.

Address before: 100085 Haidian District East Road, No. three, China control building, floor, floor, 1

Patentee before: BEIJING TOPSEC TECHNOLOGY CO., LTD.