CN106534345B - 一种报文转发方法及装置 - Google Patents
一种报文转发方法及装置 Download PDFInfo
- Publication number
- CN106534345B CN106534345B CN201611116423.5A CN201611116423A CN106534345B CN 106534345 B CN106534345 B CN 106534345B CN 201611116423 A CN201611116423 A CN 201611116423A CN 106534345 B CN106534345 B CN 106534345B
- Authority
- CN
- China
- Prior art keywords
- message
- cpu
- connection
- session
- forwarding
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种报文转发方法及装置,涉及计算机技术领域,主要解决现有技术中报文转发性能并未随着CPU核个数的增加而线性增长,导致报文转发性能较低的问题。本发明的方法包括:根据接收到的报文,查询当前CPU本地建立的半连接会话表中是否存在与所述报文对应的半连接会话;若存在,则通过与所述报文对应的半连接会话对应的CPU对所述报文进行转发;若不存在,则根据与所述报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分,建立与所述报文对应的半连接会话,并通过建立的半连接会话对应的CPU对所述报文进行转发。本发明主要用于提高报文转发性能。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种报文转发方法及装置。
背景技术
在多核时代下,网络报文转发设备不仅需要保证基本的网络信息安全的功能,还要提升网络报文的转发性能,比如用户数据报协议(User Datagram Protocol,UDP)吞吐量性能、传输控制协议(Transmission Control Protocol,TCP)吞吐量性能,报文的转发性能已成为是网络报文转发设备厂商实力的象征。网络报文转发设备是基于会话进行网络报文转发的,会话是指一个连接的客户端向服务器(client->server)发送的报文五元组(Client_ip,Server_ip,client_port,server_port,protocol),以及服务器向客户端(server->client)回复的报文五元组(Server_ip,Client_ip,Server_port,Client_port,protocol),通常客户端向服务器方向称为左半连接,服务器向客户端方向称为右半连接。
在现有技术中,在进行报文转发时,网络报文转发设备通常基于全连接会话对报文进行转发。然而,在多核下,同一会话的左半连接报文和右半连接报文可能被分配到不同的中央处理器(Central Processing Unit,CPU)核进行处理,会导致不同的CPU核竞争同一会话的资源,进而会产生多核互斥和以及资源竞争的问题,这样会造成网络报文转发设备的转发性能并未随着CPU核个数的增加而线性增长,从而导致报文转发性能较低。
发明内容
有鉴于此,本发明提出了一种报文转发方法及装置,主要目的在于解决由于现有技术中报文转发性能并未随着CPU核个数的增加而线性增长,导致报文转发性能较低的问题。
依据本发明的第一个方面,本发明提供了一种报文转发方法,包括:
根据接收到的报文,查询当前CPU本地建立的半连接会话表中是否存在与所述报文对应的半连接会话,所述半连接会话表中包含不同报文对应的半连接会话,以及所述半连接会话分别对应的CPU;
若存在,则通过与所述报文对应的半连接会话对应的CPU对所述报文进行转发;
若不存在,则根据与所述报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分,建立与所述报文对应的半连接会话,并通过建立的半连接会话对应的CPU对所述报文进行转发。
进一步地,所述根据与所述报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分,建立与所述报文对应的半连接会话包括:
根据所述全会话建立策略对所述全会话进行半连接拆分,得到两个半连接;
确定转发所述报文的半连接对应的CPU;
在确定的CPU本地建立所述报文对应的半连接会话。
进一步地,确定转发所述报文的半连接对应的CPU包括:
根据多队列哈希算法和所述报文五元组的键值获取转发所述报文的半连接的CPU;
将根据多队列哈希算法和所述报文五元组的键值获取的CPU确定为转发所述报文的半连接对应的CPU。
进一步地,确定转发所述报文的半连接对应的CPU包括:
确定多个CPU是否存在负载不均衡;
若存在,则选取多个CPU中负载最小的CPU确定为转发所述报文的半连接对应的CPU;
若不存在,则根据多队列哈希算法和所述报文五元组的键值获取转发报文的半连接的CPU;
根据多队列哈希算法和所述报文五元组的键值获取的CPU确定为转发所述报文的半连接对应的CPU。
进一步地,选取多个CPU中负载最小的CPU确定为转发报文的半连接对应的CPU包括:
获取通过多个CPU中每个CPU建立的半连接会话个数;
将建立半连接会话个数最少的CPU确定为转发报文的半连接对应的CPU。
进一地,在选取多个CPU中负载最小的CPU确定为转发所述报文的半连接对应的CPU之后,所述方法还包括:
当接收到新的报文时,通过调用硬件驱动函数将所述新的报文哈希给负载最小的CPU进行转发。
进一地,所述方法还包括:
当接收到全会话建立策略的更新信息时,查询所述转发所述报文的半连接的CPU建立的半连接会话,并更新所述建立的半连接会话的更新标志位,以便于所述转发报文的半连接的CPU根据所述更新标志位对所述建立的半连接会话进行更新。
依据本发明的第二个方面,本发明提供了一种报文转发装置,包括:
查询单元,用于根据接收到的报文,查询当前CPU本地建立的半连接会话表中是否存在与所述报文对应的半连接会话,所述半连接会话表中包含不同报文对应的半连接会话以及所述半连接会话分别对应的CPU;
转发单元,用于若所述查询单元查询存在与所述报文对应的半连接会话,则通过与所述报文对应的半连接会话对应的CPU对所述报文进行转发;
建立单元,用于若所述查询单元查询不存在与所述报文对应的半连接会话,则根据与所述报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分,建立与所述报文对应的半连接会话;
所述转发单元,还用于通过所述建立单元建立的半连接会话对应的CPU对所述报文进行转发。
进一步地,所述建立单元包括:
拆分模块,用于根据所述全会话建立策略对所述全会话进行半连接拆分,得到两个半连接;
确定模块,用于确定转发所述报文的半连接对应的CPU;
建立模块,用于在确定的CPU本地建立所述报文对应的半连接会话。
进一步地,所述确定模块包括:
获取子模块,用于根据多队列哈希算法和所述报文五元组的键值获取转发所述报文的半连接的CPU;
第一确定子模块,用于将根据多队列哈希算法和所述报文五元组的键值获取的CPU确定为转发所述报文的半连接对应的CPU。
进一步地,所述确定单元包括:
第二确定子模块,用于确定多个CPU是否存在负载不均衡;
第三确定子模块,用于若所述第二确定子模块确定多个CPU存在负载不均衡,则选取多个CPU中负载最小的CPU确定为转发所述报文的半连接对应的CPU;
所述第三确定子模块,还用于若所述第二确定子模块确定多个CPU不存在负载不均衡,则根据多队列哈希算法和所述报文五元组的键值获取转发所述报文的半连接的CPU;
第四确定子模块,用于将所述第三确定子模块根据多队列哈希算法和所述报文五元组的键值获取的CPU确定为转发所述报文的半连接对应的CPU。
所述第三确定子模块,具体用于获取通过多个CPU中每个CPU建立的半连接会话个数,并将建立半连接会话个数最少的CPU确定为转发所述报文的半连接对应的CPU。
进一步地,所述装置还包括:
哈希单元,用于当接收到新的报文时,通过调用硬件驱动函数将所述新的报文哈希给负载最小的CPU进行转发。
进一步地,所述装置还包括:更新单元,
所述查询单元,还用于当接收到全会话建立策略的更新信息时,查询所述转发所述报文的半连接的CPU建立的半连接会话;
所述更新单元,用于更新所述建立的半连接会话的更新标志位,以便于所述转发所述报文的半连接的CPU根据所述更新标志位对所述建立的半连接会话进行更新。
本发明提供的一种报文转发的方法及装置。与现有技术基于全连接会话对报文进行转发相比,本发明通过在半连接会话表中查询不到报文对应的半连接会话时,根据与所述报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分,建立与所述报文对应的半连接会话,能够实现并通过建立的半连接会话对应的CPU对所述报文进行转发,由于半连接会话是每个CPU的独立资源,通过建立所述报文对应的半连接会话的CPU对所述报文进行转发,避免了不同的CPU竞争同一会话的资源,从而可以实现在多核并行转发报文时,消除多核之间互斥以及资源竞争的问题,实现网络报文转发设备的转发性能随着CPU核个数的增加做到线性增长,进而提升报文转发性能。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种报文转发方法的流程示意图;
图2示出了本发明实施例提供的另一种报文转发方法的流程示意图;
图3示出了本发明实施例提供的一种用户态的示意图;
图4示出了本发明实施例提供的另一种用户态的示意图;
图5示出了本发明实施例提供的又一种报文转发方法的流程示意图;
图6示出了本发明实施例提供的再一种报文转发方法的流程示意图;
图7示出了本发明实施例提供的一种报文转发装置的组成框图;
图8示出了本发明实施例提供的另一种报文转发装置的组成框图。
具体实施方式
下面将参照附图更加详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种报文转发方法,如图1所示,所述方法包括:
101、根据接收到的报文,查询当前CPU本地建立的半连接会话表中是否存在与报文对应的半连接会话。
其中,所述半连接会话表中包含不同报文对应的半连接会话,以及所述半连接会话分别对应的CPU。本发明实施例的执行主体可以为基于多核系统的报文转发装置,所述报文转发装置可以为防火墙,也可以为路由器等。当前CPU可以为所述报文转发装置中接收到报文的CPU,当前CPU接收到的报文可以为网卡发送的。
需要说明的是,可以通过报文对应的会话特征查询本地建立的半连接会话表中是否存在与所述报文对应的半连接会话。所述会话特征可以为报文的五元组,所述五元组包括:源互联网协议(Internet Protocol,IP)地址、目的IP地址、源端口号、目的端口号和协议类型,同一会话分为左半连接会话和右半连接会话。通常客户端向服务器方向称为左半连接,服务器向客户端方向称为右半连接。
例如,若报文对应的五元组为:(客户端IP地址、服务器IP地址、客户端端口号、服务器端口号,协议类型),则与报文对应的半连接会话为左半连接会话;若报文对应的五元组为:(服务器IP地址、客户端IP地址、服务器端口号、客户端端口号、协议类型),则与报文对应的半连接会话为右半连接会话。
在本发明实施例中是采用无锁方式查询半连接会话表中是否存在与所述报文对应的半连接会话,与采用现有技术采用加锁方式相比,可以避免因加锁带来的性能降低问题,从而可以提高报文转发性能。
102、若查询半连接会话表中存在与报文对应的半连接会话,则通过与报文对应的半连接会话对应的CPU对报文进行转发。
其中,与报文对应的半连接会话对应的CPU可以为建立与报文对应的半连接会话的CPU。具体地,与报文对应的半连接会话对应的CPU可以根据与报文对应的半连接建立报文对应的半连接会话,报文对应的半连接可以为根据报文对应的全会话建立策略对报文对应的全会话进行半拆分得到的。
例如,接收的报文为报文1,根据报文1的五元组从半连接会话表中查找到与报文1对应的左半连接会话,则将报文1转发给左半连接会话对应的CPU进行报文1的转发。即通过左半连接会话对应的CPU将报文1转发给服务器,从而实现客户端向服务器发送报文1。
103、若查询半连接会话表中不存在与报文对应的半连接会话,则根据与报文对应的全会话建立策略对报文对应的全会话进行半连接拆分,建立与报文对应的半连接会话,并通过建立的半连接会话对应的CPU对报文进行转发。
其中,所述报文对应的全会话建立策略用于指示如何建立全连接会话。根据与报文对应的全会话建立策略对报文对应的全会话进行半连接拆分,可以得到两个半连接。
对于本发明实施例,查询半连接会话表中是否存在与报文对应的半连接会话的过程可以为在用户态进行的,当查询半连接会话表中不存在与报文对应的半连接会话时,可以将报文发送给内核态的处理CPU,然后查询所述报文对应的全会话建立策略,其中,所述内核态的CPU保存有不同报文分别对应的全会话建立策略。在查询到报文对应的全会话建立策略后,可以将报文对应的全会话建立策略发送给一个CPU,使得所述CPU根据报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分。
需要说明的是,由于报文对应的半连接会话是每个CPU核内独立的局部资源,仅能被建立半连接会话的CPU访问,禁止非建立半连接会话的CPU访问,在每个CPU内仅启动一个线程进行处理,不会出现多线程并发访问互斥的情况。通过建立报文对应的半连接会话对应的CPU进行报文的转发,能够避免不同的CPU核竞争同一会话的资源,从而可以实现在多核并行转发报文时,消除多核之间互斥以及资源竞争的问题,进而实现网络报文转发设备的转发性能随着CPU核个数的增加做到线性增长。
本发明实施例提供的一种报文转发的方法。与现有技术基于全连接会话对报文进行转发相比,本发明通过在半连接会话表中查询不到报文对应的半连接会话时,根据与所述报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分,建立与所述报文对应的半连接会话,能够实现并通过建立的半连接会话对应的CPU对所述报文进行转发,由于半连接会话是每个CPU的独立资源,通过建立所述报文对应的半连接会话的CPU对所述报文进行转发,避免了不同的CPU竞争同一会话的资源,从而可以实现在多核并行转发报文时,消除多核之间互斥以及资源竞争的问题,实现网络报文转发设备的转发性能随着CPU核个数的增加做到线性增长,进而提升报文转发性能。
本发明实施例提供了另一种报文转发方法,如图2所示,所述方法包括:
201、根据接收到的报文,查询当前CPU本地建立的半连接会话表中是否存在与报文对应的半连接会话。
其中,所述半连接会话表中包含不同报文对应的半连接会话,以及所述半连接会话分别对应的CPU。
需要说明的是,本半连接会话表是每个CPU核内的独立资源,每个CPU核内建立的报文对应的半连接会话也是每个CPU核内的独立资源,针对本半连接会话表进行的新建、删除、更新、查询等操作均为无锁操作,因此本发明实施例是通过无锁方式查询当前CPU本地建立的半连接会话表中是否存在与报文对应的半连接会话,与采用现有技术采用加锁方式相比,可以避免因加锁带来的性能降低问题,从而可以做到报文转发的性能随着CPU的个数增长,进而可以提高报文转发性能。
202、若查询半连接会话表中存在与报文对应的半连接会话,则通过与报文对应的半连接会话对应的CPU对报文进行转发。
203、若查询半连接会话表中不存在与报文对应的半连接会话,则根据全会话建立策略对报文对应的全会话进行半连接拆分,得到两个半连接。
需要说明的是,根据与报文对应的全会话建立策略对报文对应的全会话进行半连接拆分,得到的两个半连接为左半连接和右半连接。通过报文对应的五元组可以确定报文对应的半连接会话为左半连接会话还是右半连接会话。即通过报文对应的五元组可以确定需要将报文转发给客户端还是转发给服务器。
204、确定转发报文的半连接对应的CPU。
对于本发明实施例,转发报文的半连接对应的CPU有两种确定方式,当不考虑多个CPU负载均衡情况时,转发报文的半连接对应的CPU的确定方式可以包括:根据多队列哈希算法和所述报文五元组的键值获取转发所述报文的半连接的CPU;将根据多队列哈希算法和所述报文五元组的键值获取的CPU确定为转发所述报文的半连接对应的CPU。
其中,所述多队列哈希算法可以为针对网卡的多对列哈希算法,网卡存在多个接收队列,每个接收队列对应一个CPU。通过多队列哈希算法和所述报文五元组的键值,能够计算出报文会被哈希到网卡的哪个接收队列中,然后选择与计算的接收队列对应的CPU进行报文的转发。
具体地,所述多队列哈希算法实现的伪代码可以如下所示:
For hash-input key[]of length N bytes(8N bits)and a random secret key
K of 320bits
Result=0;
For each bit b in input[]{
if(b==1)
then Result^=(left-most 32bits of K);
shift K left 1bit position;
}
上述伪代码中,最后Result的值直接决定了报文会被哈希到网卡的哪个接收队列中。
需要说明的是,所述将根据多队列哈希算法和所述报文五元组的键值获取的CPU确定为转发所述报文的半连接对应的CPU之前,所述方法还可以包括:确定转发所述报文的半连接的CPU是否为执行半连接拆分的CPU。若是,则将所述执行半连接拆分的CPU确定为转发所述报文的半连接对应的CPU;若否,则将根据多队列哈希算法和所述报文五元组的键值获取的CPU确定为转发所述报文的半连接对应的CPU。
在本发明实施例中,为了保证每个CPU都能收到网卡直接发来的报文,实现网络转发负载均衡的功能,网卡与用户态的转发核的对应关系可以是全连接的,如图3所示,每个CPU可以接收任何一个网卡转发的报文。如图4所示,网卡可以将接收到的报文发给每个CPU。
对于本发明实施例,当为了保证负载均衡,考虑多个CPU负载均衡情况时,转发报文的半连接对应的CPU的确定方式可以包括:确定的多个CPU是否存在负载不均衡;若存在,则选取多个CPU中负载最小的CPU确定为转发所述报文的半连接对应的CPU;若不存在,则根据多队列哈希算法和所述报文五元组的键值获取转发所述报文的半连接的CPU;将根据多队列哈希算法和所述报文五元组的键值获取的CPU确定为转发所述报文的半连接对应的CPU。
需要说明的是,所述确定多个CPU是否存在负载不均衡的过程,具体可以包括:首先转发报文的CPU在进行发报文转发时,实时记录CPU核内建立的半连接会话的个数,并从多个CPU中选取一个配置CPU,由配置CPU定时统计每个CPU核内的半连接会话的个数,当转发报文CPU处理半连接会话的个数比例超过预设阈值时,确定负载不均衡。所述预设阈值可以为80%、90%等。所述处理半连接会话的个数比例可以为转发报文CPU处理半连接会话的个数与建立半连接会话的个数的比例。
对于本发明实施例,通过选取负载最小的CPU确定为转发所述报文的半连接对应的CPU,能够实现动态迁移半连接会话。与预先建立好半连接会话,然后在负载不均衡时再将半连接会话进行迁移相比,能够避免将报文对应的半连接会话同步到其他CPU所消耗的同步时间差,以及能够避免执行拆除原有报文对应的半连接会话的步骤,从而能够简化报文对应的半连接会话建立流程。
对于本发明实施例,为了避免在多个CPU半连接会话的个数负载不均衡时,需要将半连接会话迁移到其他CPU中带来的倒核开销,提升报文转发的整体性能,在选取多个CPU中负载最小的CPU确定为转发所述报文的半连接对应的CPU之后,所述方法还包括:当接收到新的报文时,通过调用硬件驱动函数将所述新的报文哈希给负载最小的CPU进行转发。
其中,所述硬件驱动函数能够更改硬件对报文应该哈希到的队列,从而能够更改报文应该哈希到的转发CPU。
205、在确定的CPU本地建立报文对应的半连接会话,并通过建立的半连接会话对应的CPU对所述报文进行转发。
对于本发明实施例,通过建立的半连接会话对应的CPU,能够保证转发报文的CPU即为建立报文对应的半连接的CPU,避免了倒核操作,从而节省了系统资源,
对于本发明实施例,由于报文对应的全会话建立策略会存在更新,为了保证与报文对应的全会话两个半连接的一致性,以及保证两个半连接会话的同步更新,所述方法还包括:当接收到报文对应的全会话建立策略更新信息时,需要对报文对应的全会话的左半连接和右半连接同时更新,即需要同时更新报文对应的半连接会话。
当接收到所述会话建立策略的更新信息且核间队列不堵塞时,可以通过核间队列通知转发所述报文的半连接的CPU,对所述建立的半连接会话进行更新。当接收到所述会话建立策略的更新信息且核间队列堵塞时,查询所述转发所述报文的半连接的CPU建立的半连接会话,并更新所述建立的半连接会话的更新标志位,以便于所述转发报文的半连接的CPU根据所述更新标志位对所述建立的半连接会话进行更新。其中,当核间队列中的更新信息的数量超过一定阈值时,可以确定核间队列堵塞。所述阈值可以根据核间队列的长度进行设置。所述阈值可以为1000个、2000个等。建立与报文对应的半连接会话对应的CPU还可以为其他CPU提供安全查询和读操作接口。在检测核间队列堵塞时,可以安全查询和读操作接口查询所述转发所述报文的半连接的CPU建立的半连接会话。对于本发明实施例,通过核间队列通知与更新标志位的方式,能够保证在报文对应的全会话的一个半连接和另一个半连接保持同步,从而提升了在报文对应的全会话的一个半连接和另一个半连接同步的成功率。
在本发明实施例中,为了保证半连接会话的安全性,建立与报文对应的半连接会话对应的CPU可以基于内存池申请的半连接会话的地址空间建立半连接会话。由于基于内存申请的地址空间是安全的。此外,在核间队列堵塞后,可以通过查询转发所述报文的半连接对应的CPU核内的半连接会话表中查询报文对应的半连接会话的更新标志位,由于半连接会话的地址空间是基于内存池申请的且更新标志位是安全位,因此不会造成内存错误。
对于本发明实施例,具体应用场景可以如下所示,但不限于此包括:如图5所示,在用户态中,报文转发装置在接收到网卡发送的报文时,查询当前CPU1本地建立的半连接会话表是否存在与报文对应的左半连接会话,若在半连接会话表中查找到与报文对应的右半连接会话,则通过与所述报文对应的右半连接会话对应的CPU对所述报文进行转发。
若在半连接会话表中未查询到与报文对应的右半连接会话,则可以将报文发送给内核态,然后从内核态的处理CPU3中查询报文对应的全会话建立策略;在查询到全会话建立策略后,可以根据全会话建立策略对报文对应的全会话进行半连接拆分,得到两个半个连接并确定右半连接对应的CPU。在确定右半连接对应的CPU时,可以确定当前进行半连接拆分的CPU是否为右半连接对应的CPU,若当前进行半连接拆分的CPU是右半连接对应的CPU,则将当前进行半连接拆分的CPU确定为右半连接对应的CPU;若当前进行半连接拆分的CPU并非右半连接对应的CPU,则将多队列哈希算法和所述报文五元组的键值计算报文的右半连接的CPU2确定为右半连接对应的CPU;然后将报文对应全会话的右半连接信息通过核间队列消息发送给确定右半连接对应的CPU2,使得右半连接对应的CPU建立与报文对应的右半连接会话,并通过建立报文对应的右半连接会话的右半连接对应的CPU对报文进行转发。
进一步地,为了保证负载均衡,如图6所示,在根据全会话建立策略对报文对应的全会话进行半连接拆分,得到两个半个连接后,还可以检测异构平台的多个CPU是否负载均衡。若负载不均衡,则选取多个CPU中负载最小的CPU确定为转发所述报文的半连接对应的CPU;然后再接收到新的报文时,直接更改硬件网卡对新的报文哈希队列,从而更改对新的报文哈希CPU,即将新的报文哈希给负载最小的CPU进行转发。若负载均衡,可以确定当前进行半连接拆分的CPU是否为右半连接对应的CPU,若当前进行半连接拆分的CPU是右半连接对应的CPU,则将当前进行半连接拆分的CPU确定为右半连接对应的CPU;若当前进行半连接拆分的CPU并非右半连接对应的CPU,则将多队列哈希算法和所述报文五元组的键值计算报文的右半连接的CPU确定为右半连接对应的CPU2;然后将报文对应全会话的右半连接信息通过核间队列消息发送给确定右半连接对应的CPU2,使得右半连接对应的CPU2建立与报文对应的右连接会话,并通过建立报文对应的右半连接会话的CPU2对报文进行转发。
本发明实施例提供的另一种报文转发方法。与现有技术基于全连接会话对报文进行转发相比,本发明通过在半连接会话表中查询不到报文对应的半连接会话时,根据与所述报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分,建立与所述报文对应的半连接会话,能够实现并通过建立的半连接会话对应的CPU对所述报文进行转发,由于半连接会话是每个CPU的独立资源,通过建立所述报文对应的半连接会话的CPU对所述报文进行转发,避免了不同的CPU竞争同一会话的资源,从而可以实现在多核并行转发报文时,消除多核之间互斥以及资源竞争的问题,实现网络报文转发设备的转发性能随着CPU核个数的增加做到线性增长,进而提升报文转发性能。
进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种报文转发装置,如图7所示,所述装置包括:查询单元31、转发单元32、建立单元33,其中,
所述查询单元31,可以用于根据接收到的报文,查询当前CPU本地建立的半连接会话表中是否存在与所述报文对应的半连接会话,所述半连接会话表中包含不同报文对应的半连接会话以及所述半连接会话分别对应的CPU。
其中,本发明实施例的执行主体可以为基于多核系统的报文转发装置,所述报文转发装置可以为防火墙,也可以为路由器等。当前CPU可以为所述报文转发装置中接收到报文的CPU,当前CPU接收到的报文可以为网卡发送的。
需要说明的是,本半连接会话表是每个CPU核内的独立资源,每个CPU核内建立的报文对应的半连接会话也是每个CPU核内的独立资源,针对本半连接会话表进行的新建、删除、更新、查询等操作均为无锁操作,因此本发明实施例是通过无锁方式查询当前CPU本地建立的半连接会话表中是否存在与报文对应的半连接会话,与采用现有技术采用加锁方式相比,可以避免因加锁带来的性能降低问题,从而可以做到报文转发的性能随着CPU的个数增长,进而可以提高报文转发性能。
所述转发单元32,可以用于若所述查询单元31查询存在与所述报文对应的半连接会话,则通过与所述报文对应的半连接会话对应的CPU对所述报文进行转发。
所述建立单元33,可以用于若所述查询单元31查询不存在与所述报文对应的半连接会话,则根据与所述报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分,建立与所述报文对应的半连接会话。
所述转发单元32,可以用于通过所述建立单元32建立的半连接会话对应的CPU对所述报文进行转发。
由于报文对应的半连接会话是每个CPU核内独立的局部资源,仅能被建立半连接会话的CPU访问,禁止非建立半连接会话的CPU访问,在每个CPU内仅启动一个线程进行处理,不会出现多线程并发访问互斥的情况。通过建立报文对应的半连接会话对应的CPU进行报文的转发,能够避免不同的CPU核竞争同一会话的资源,从而可以实现在多核并行转发报文时,消除多核之间互斥以及资源竞争的问题,进而实现网络报文转发设备的转发性能随着CPU核个数的增加做到线性增长。
需要说明的是,本发明实施例提供的一种报文转发装置所涉及各功能单元的其他相应描述,可以参考图1所示方法的对应描述,在此不再赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
本发明实施例提供的一种报文转发装置。所述装置可以配置查询单元、转发单元、建立单元。与现有技术基于全连接会话对报文进行转发相比,本发明通过在半连接会话表中查询不到报文对应的半连接会话时,根据与所述报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分,建立与所述报文对应的半连接会话,能够实现并通过建立的半连接会话对应的CPU对所述报文进行转发,由于半连接会话是每个CPU的独立资源,通过建立所述报文对应的半连接会话的CPU对所述报文进行转发,避免了不同的CPU竞争同一会话的资源,从而可以实现在多核并行转发报文时,消除多核之间互斥以及资源竞争的问题,实现网络报文转发设备的转发性能随着CPU核个数的增加做到线性增长,进而提升报文转发性能。
进一步的,作为对上述图2所示方法的实现,本发明实施例提供了另一种报文转发装置,如图8所示,所述装置包括:查询单元41、转发单元42、建立单元43,其中,
所述查询单元41,可以用于根据接收到的报文,查询当前CPU本地建立的半连接会话表中是否存在与所述报文对应的半连接会话,所述半连接会话表中包含不同报文对应的半连接会话以及所述半连接会话分别对应的CPU。
所述转发单元42,可以用于若所述查询单元41查询存在与所述报文对应的半连接会话,则通过与所述报文对应的半连接会话对应的CPU对所述报文进行转发。
所述建立单元43,可以用于若所述查询单元41查询不存在与所述报文对应的半连接会话,则根据与所述报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分,建立与所述报文对应的半连接会话。
所述转发单元42,可以用于通过所述建立单元42建立的半连接会话对应的CPU对所述报文进行转发。
对于本发明实施例,为了建立报文对应的半连接会话,保证转发报文的CPU即为建立报文对应的半连接的CPU,避免倒核操作,节省系统资源,所述建立单元43包括:拆分模块431、确定模块432和建立模块433。
所述拆分模块431,用于根据所述全会话建立策略对所述全会话进行半连接拆分,得到两个半连接。得到的两个半连接可以为半连接和右半连接同一会话分为左半连接和右半连接。通常客户端向服务器方向称为左半连接,服务器向客户端方向称为右半连接。
所述确定模块432,用于确定转发所述报文的半连接对应的CPU。
所述建立模块433,用于在确定的CPU本地建立所述报文对应的半连接会话。
对于本发明实施例,在不考虑异构平台中多个CPU的负载均衡情况时,为了确定转发所述报文的半连接对应的CPU,所述确定模块432可以包括:获取子模块4321、第一确定子模块4322。
所述获取子模块4321,可以为用于根据多队列哈希算法和所述报文五元组的键值获取转发所述报文的半连接的CPU。所述报文五元组包括:源互IP地址、目的IP地址、源端口号、目的端口号和协议类型。
所述第一确定子模块4322,可以用于将根据多队列哈希算法和所述报文五元组的键值获取的CPU确定为转发所述报文的半连接对应的CPU。
对于本发明实施例,当为了保证负载均衡,在考虑多个CPU负载均衡情况时,实现确定转发所述报文的半连接对应的CPU,所述确定单元可以包括:第二确定子模块4323、第三确定子模块4324、第四确定子模块4325。
所述第二确定子模块4323,可以用于确定多个CPU是否存在负载不均衡。
所述第三确定子模块4324,可以用于若所述第二确定子模块4323确定多个CPU存在负载不均衡,则选取多个CPU中负载最小的CPU确定为转发所述报文的半连接对应的CPU。
所述第三确定子模块4324,还可以用于若所述第二确定子模块4323确定多个CPU不存在负载不均衡,则根据多队列哈希算法和所述报文五元组的键值获取转发所述报文的半连接的CPU。
第四确定子模块4325,用于将所述第三确定子模块4324根据多队列哈希算法和所述报文五元组的键值获取的CPU确定为转发所述报文的半连接对应的CPU。
对于本发明实施例,为了实现将选取多个CPU中负载最小的CPU确定为转发所述报文的半连接对应的CPU,所述第三确定子模块4324,具体可以用于获取通过多个CPU中每个CPU建立的半连接会话个数,并将建立半连接会话个数最少的CPU确定为转发所述报文的半连接对应的CPU。
对于本发明实施例,为了避免在多个CPU半连接会话的个数负载不均衡时,需要将半连接会话迁移到其他CPU中带来的倒核开销,提升报文转发的整体性能,所述装置还包括:哈希单元44。
所述哈希单元44,可以用于当接收到新的报文时,通过调用硬件驱动函数将所述新的报文哈希给负载最小的CPU进行转发。其中,所述硬件驱动函数能够更改硬件对报文应该哈希到的队列,从而能够更改报文应该哈希到的转发CPU。
对于本发明实施例,为了保证与报文对应的全会话两个半连接的一致性,以及保证两个半连接会话的同步更新,所述装置还包括:更新单元45。
所述查询单元41,还可以用于当接收到全会话建立策略的更新信息时,查询所述转发所述报文的半连接的CPU建立的半连接会话。
所述更新单元45,还可以用于更新所述建立的半连接会话的更新标志位,以便于所述转发所述报文的半连接的CPU根据所述更新标志位对所述建立的半连接会话进行更新。
具体地,可以在接收到所述会话建立策略的更新信息且核间队列堵塞时,更新所述建立的半连接会话的更新标志位,以便于所述转发所述报文的半连接的CPU根据所述更新标志位对所述建立的半连接会话进行更新。在接收到所述会话建立策略的更新信息且核间队列不堵塞时,可以通过核间队列通知转发所述报文的半连接的CPU,对所述建立的半连接会话进行更新。对于本发明实施例,通过核间队列通知与更新标志位的方式,能够保证在报文对应的全会话的一个半连接和另一个半连接保持同步,从而提升了在报文对应的全会话的一个半连接和另一个半连接同步的成功率。
需要说明的是,本发明实施例提供的另一种报文转发装置所涉及各功能单元的其他相应描述,可以参考图2所示方法的对应描述,在此不再赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
本发明实施例提供的另一种报文转发装置。所述装置可以配置查询单元、转发单元、建立单元。与现有技术基于全连接会话对报文进行转发相比,本发明通过在半连接会话表中查询不到报文对应的半连接会话时,根据与所述报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分,建立与所述报文对应的半连接会话,能够实现并通过建立的半连接会话对应的CPU对所述报文进行转发,由于半连接会话是每个CPU的独立资源,通过建立所述报文对应的半连接会话的CPU对所述报文进行转发,避免了不同的CPU竞争同一会话的资源,从而可以实现在多核并行转发报文时,消除多核之间互斥以及资源竞争的问题,实现网络报文转发设备的转发性能随着CPU核个数的增加做到线性增长,进而提升报文转发性能。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (14)
1.一种报文转发方法,其特征在于,所述方法包括:
根据接收到的报文,查询当前CPU本地建立的半连接会话表中是否存在与所述报文对应的半连接会话,所述半连接会话表中包含不同报文对应的半连接会话,以及所述半连接会话分别对应的CPU;
若存在,则通过与所述报文对应的半连接会话对应的CPU对所述报文进行转发;
若不存在,则根据与所述报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分,由与所述报文对应的半连接会话对应的CPU建立所述半连接会话,并通过建立的半连接会话对应的CPU对所述报文进行转发。
2.根据权利要求1所述的方法,其特征在于,所述根据与所述报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分,建立与所述报文对应的半连接会话包括:
根据所述全会话建立策略对所述全会话进行半连接拆分,得到两个半连接;
确定转发所述报文的半连接对应的CPU;
在确定的CPU本地建立所述报文对应的半连接会话。
3.根据权利要求2所述的方法,其特征在于,确定转发所述报文的半连接对应的CPU包括:
根据多队列哈希算法和所述报文五元组的键值获取转发所述报文的半连接的CPU;
将根据多队列哈希算法和所述报文五元组的键值获取的CPU确定为转发所述报文的半连接对应的CPU。
4.根据权利要求2所述的方法,其特征在于,确定转发所述报文的半连接对应的CPU包括:
确定多个CPU是否存在负载不均衡;
若存在,则选取多个CPU中负载最小的CPU确定为转发所述报文的半连接对应的CPU;
若不存在,则根据多队列哈希算法和所述报文五元组的键值获取转发报文的半连接的CPU;
根据多队列哈希算法和所述报文五元组的键值获取的CPU确定为转发所述报文的半连接对应的CPU。
5.根据权利要求4所述的方法,其特征在于,选取多个CPU中负载最小的CPU确定为转发报文的半连接对应的CPU包括:
获取通过多个CPU中每个CPU建立的半连接会话个数;
将建立半连接会话个数最少的CPU确定为转发报文的半连接对应的CPU。
6.根据权利要求4或5所述的方法,其特征在于,在选取多个CPU中负载最小的CPU确定为转发所述报文的半连接对应的CPU之后,所述方法还包括:
当接收到新的报文时,通过调用硬件驱动函数将所述新的报文哈希给负载最小的CPU进行转发。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当接收到全会话建立策略的更新信息时,查询所述转发所述报文的半连接的CPU建立的半连接会话,并更新所述建立的半连接会话的更新标志位,以便于所述转发报文的半连接的CPU根据所述更新标志位对所述建立的半连接会话进行更新。
8.一种报文转发装置,其特征在于,所述装置包括:
查询单元,用于根据接收到的报文,查询当前CPU本地建立的半连接会话表中是否存在与所述报文对应的半连接会话,所述半连接会话表中包含不同报文对应的半连接会话以及所述半连接会话分别对应的CPU;
转发单元,用于若所述查询单元查询存在与所述报文对应的半连接会话,则通过与所述报文对应的半连接会话对应的CPU对所述报文进行转发;
建立单元,用于若所述查询单元查询不存在与所述报文对应的半连接会话,则根据与所述报文对应的全会话建立策略对所述报文对应的全会话进行半连接拆分,由与所述报文对应的半连接会话对应的CPU建立所述半连接会话;
所述转发单元,还用于通过所述建立单元建立的半连接会话对应的CPU对所述报文进行转发。
9.根据权利要求8所述的装置,其特征在于,所述建立单元包括:
拆分模块,用于根据所述全会话建立策略对所述全会话进行半连接拆分,得到两个半连接;
确定模块,用于确定转发所述报文的半连接对应的CPU;
建立模块,用于在确定的CPU本地建立所述报文对应的半连接会话。
10.根据权利要求9所述的装置,其特征在于,所述确定模块包括:
获取子模块,用于根据多队列哈希算法和所述报文五元组的键值获取转发所述报文的半连接的CPU;
第一确定子模块,用于将根据多队列哈希算法和所述报文五元组的键值获取的CPU确定为转发所述报文的半连接对应的CPU。
11.根据权利要求9所述的装置,其特征在于,所述确定模块包括:
第二确定子模块,用于确定多个CPU是否存在负载不均衡;
第三确定子模块,用于若所述第二确定子模块确定多个CPU存在负载不均衡,则选取多个CPU中负载最小的CPU确定为转发所述报文的半连接对应的CPU;
所述第三确定子模块,还用于若所述第二确定子模块确定多个CPU不存在负载不均衡,则根据多队列哈希算法和所述报文五元组的键值获取转发所述报文的半连接的CPU;
第四确定子模块,用于将所述第三确定子模块根据多队列哈希算法和所述报文五元组的键值获取的CPU确定为转发所述报文的半连接对应的CPU。
12.根据权利要求11所述的装置,其特征在于,
所述第三确定子模块,具体用于获取通过多个CPU中每个CPU建立的半连接会话个数,并将建立半连接会话个数最少的CPU确定为转发所述报文的半连接对应的CPU。
13.根据权利要求9所述的报文转发装置,其特征在于,所述装置还包括:
哈希单元,用于当接收到新的报文时,通过调用硬件驱动函数将所述新的报文哈希给负载最小的CPU进行转发。
14.根据权利要求12所述的装置,其特征在于,所述装置还包括:更新单元,
所述查询单元,还用于当接收到全会话建立策略的更新信息时,查询所述转发所述报文的半连接的CPU建立的半连接会话;
所述更新单元,用于更新所述建立的半连接会话的更新标志位,以便于所述转发所述报文的半连接的CPU根据所述更新标志位对所述建立的半连接会话进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611116423.5A CN106534345B (zh) | 2016-12-07 | 2016-12-07 | 一种报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611116423.5A CN106534345B (zh) | 2016-12-07 | 2016-12-07 | 一种报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106534345A CN106534345A (zh) | 2017-03-22 |
CN106534345B true CN106534345B (zh) | 2019-02-05 |
Family
ID=58342714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611116423.5A Active CN106534345B (zh) | 2016-12-07 | 2016-12-07 | 一种报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106534345B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109495526A (zh) * | 2017-09-12 | 2019-03-19 | 北京金山云网络技术有限公司 | 一种报文发送方法、装置、系统、电子设备及存储介质 |
CN107612840B (zh) * | 2017-09-26 | 2020-10-30 | 东软集团股份有限公司 | 一种四层负载均衡设备的数据处理方法及装置 |
WO2019061521A1 (zh) * | 2017-09-30 | 2019-04-04 | 深圳前海达闼云端智能科技有限公司 | 一种代理转发方法和装置、代理服务器和多级代理网络 |
CN108363621B (zh) * | 2018-01-18 | 2020-09-01 | 东软集团股份有限公司 | numa架构下的报文转发方法、装置、存储介质及电子设备 |
CN108667730B (zh) * | 2018-04-17 | 2021-02-12 | 东软集团股份有限公司 | 基于负载均衡的报文转发方法、装置、存储介质和设备 |
CN109818824B (zh) * | 2018-12-29 | 2020-12-29 | 东软集团股份有限公司 | 一种报文转发测试方法、设备及存储设备、程序产品 |
CN110377418B (zh) * | 2019-06-05 | 2021-09-03 | 上海易点时空网络有限公司 | 用于单台服务器的cpu多核使用率优化处理方法及装置 |
CN113672398B (zh) * | 2021-10-25 | 2022-02-18 | 北京金睛云华科技有限公司 | 全流量回溯分析系统的内存优化方法和设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1921457A (zh) * | 2006-09-18 | 2007-02-28 | 杭州华为三康技术有限公司 | 一种网络设备和基于多核处理器的报文转发方法 |
CN103164495A (zh) * | 2011-12-19 | 2013-06-19 | 中国人民解放军63928部队 | 一种基于周边搜索的半连接查询优化方法及其系统 |
CN103973584A (zh) * | 2013-02-06 | 2014-08-06 | 阿里巴巴集团控股有限公司 | 动态切换数据包的转发方式的方法和设备 |
CN104601541A (zh) * | 2014-12-05 | 2015-05-06 | 华为技术有限公司 | 数据传输的方法、服务器和用户设备 |
CN105634958A (zh) * | 2015-12-24 | 2016-06-01 | 东软集团股份有限公司 | 基于多核系统的报文转发方法和装置 |
-
2016
- 2016-12-07 CN CN201611116423.5A patent/CN106534345B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1921457A (zh) * | 2006-09-18 | 2007-02-28 | 杭州华为三康技术有限公司 | 一种网络设备和基于多核处理器的报文转发方法 |
CN103164495A (zh) * | 2011-12-19 | 2013-06-19 | 中国人民解放军63928部队 | 一种基于周边搜索的半连接查询优化方法及其系统 |
CN103973584A (zh) * | 2013-02-06 | 2014-08-06 | 阿里巴巴集团控股有限公司 | 动态切换数据包的转发方式的方法和设备 |
CN104601541A (zh) * | 2014-12-05 | 2015-05-06 | 华为技术有限公司 | 数据传输的方法、服务器和用户设备 |
CN105634958A (zh) * | 2015-12-24 | 2016-06-01 | 东软集团股份有限公司 | 基于多核系统的报文转发方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106534345A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106534345B (zh) | 一种报文转发方法及装置 | |
US11463511B2 (en) | Model-based load balancing for network data plane | |
CN108366001B (zh) | 一种转发测试方法及装置 | |
CN106209830B (zh) | 一种基于xml网络协议表示的报文构造方法 | |
CN110855792B (zh) | 一种消息推送方法、装置、设备及介质 | |
CN107172187B (zh) | 一种负载均衡系统和方法 | |
US10795744B2 (en) | Identifying failed customer experience in distributed computer systems | |
CN108494817A (zh) | 数据传输方法、相关装置及系统 | |
CN104184756A (zh) | 一种数据同步方法、装置及系统 | |
CN105162883A (zh) | 网络负载均衡处理系统及其方法和装置 | |
WO2014023003A1 (zh) | 控制数据传输的方法、装置和系统 | |
CN108023736A (zh) | 通信方法、服务端设备、客户端设备、装置及系统 | |
CN107666474B (zh) | 一种网络报文处理方法、装置及网络服务器 | |
CN106970843B (zh) | 远程调用方法和装置 | |
CN107846433A (zh) | 一种会话信息同步的方法、装置和系统 | |
CN112929210A (zh) | 在WebFlux框架搭建的网关路由应用插件的方法、系统及其应用 | |
CN109857439B (zh) | 一种游戏版本的更新方法及装置 | |
US20160285969A1 (en) | Ordered execution of tasks | |
CN110209986A (zh) | 内存状态数据同步方法及装置 | |
CN105100101A (zh) | 一种基于ssl会话的方法、装置及系统 | |
WO2021226781A1 (zh) | 防火墙规则的更新方法、装置、服务器及存储介质 | |
CN111416851A (zh) | 在多个负载均衡器之间进行会话同步的方法和负载均衡器 | |
US11223567B2 (en) | Transmission control protocol session mobility | |
US10182119B2 (en) | System and methods for facilitating communication among a subset of connections that connect to a web application | |
CN111385324A (zh) | 一种数据通信方法、装置、设备和存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |