CN104734993B - 数据分流方法及分流器 - Google Patents
数据分流方法及分流器 Download PDFInfo
- Publication number
- CN104734993B CN104734993B CN201310721545.7A CN201310721545A CN104734993B CN 104734993 B CN104734993 B CN 104734993B CN 201310721545 A CN201310721545 A CN 201310721545A CN 104734993 B CN104734993 B CN 104734993B
- Authority
- CN
- China
- Prior art keywords
- thread
- data packet
- transport layer
- communication protocol
- belonging
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004891 communication Methods 0.000 claims abstract description 130
- 230000003139 buffering effect Effects 0.000 claims abstract description 43
- 230000008569 process Effects 0.000 claims description 15
- 230000005055 memory storage Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 230000007717 exclusion Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/10—Current supply arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6255—Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1027—Persistence of sessions during load balancing
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种数据分流方法及分流器。该数据分流方法包括:分流器对所接收的数据包进行解析确定所述数据包所属的传输层通信协议;所述分流器从所述数据包中,获取与确定的所述传输层通信协议对应的所述数据包所属的数据流的标识信息;所述分流器根据所述传输层通信协议和分流表的对应关系,从所述存储器中获取所述数据包所属的传输层通信协议对应的分流表;所述分流器根据所述数据包所属的传输层通信协议对应的分流表中的数据流的标识信息和线程的对应关系,确定所述数据包所属的数据流对应的线程;所述分流器将所述数据包发送至所述数据流对应的线程的缓冲队列,以使所述数据流对应的线程从所述缓冲队列获取数据包。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据分流方法及分流器。
背景技术
当今,处理器已经迈入多核时代,在多核架构下,往往以多线程部署在多个核心的方式实现并行处理,那么就需要通过分流的方式将数据包发送至不同线程,以使多个核心实现并行处理。
现有的数据分流方法分流粒度是进程,即将数据包发送至该数据包对应的进程的缓冲队列中。该进程中的线程从该进程的缓冲列队中获取数据包,该数据包的连接信息可能被其他线程共享。如果共享,则该线程访问该数据包对应的连接信息时需要通过线程间互斥和同步机制保证数据的一致性访问。如果此时恰好另一个线程正在访问该连接信息,则该线程需要一直等待,直到另一个线程访问完毕才能继续访问该连接信息。
因此,现有的数据分流方法存在以下缺点:多个线程共享同一个进程的缓冲队列,将引起大量的线程间互斥和同步开销以及核心间cache失效,从而导致多核处理器的处理能力不能充分发挥。
发明内容
有鉴于此,本发明实施例提供一种数据分流方法及分流器,以提高多核处理器的处理能力。
在第一方面,本发明实施例提供一种数据分流方法,应用于数据分流系统中,所述数据分流系统中包括分流器,存储器和用于处理数据的多个线程,每个线程对应一个缓冲队列,所述存储器存储有传输层通信协议和分流表的对应关系及每个传输层通信协议对应的分流表,每个分流表中设置有数据流的标识信息和线程的对应关系,所述方法包括:
分流器对所接收的数据包进行解析确定所述数据包所属的传输层通信协议;
所述分流器从所述数据包中,获取与确定的所述传输层通信协议对应的所述数据包所属的数据流的标识信息,所述数据流的标识信息用于区分所述数据包所属的数据流;
所述分流器根据所述传输层通信协议和分流表的对应关系,从所述存储器中获取所述数据包所属的传输层通信协议对应的分流表;
所述分流器根据所述数据包所属的传输层通信协议对应的分流表中的数据流的标识信息和线程的对应关系,确定所述数据包所属的数据流对应的线程;
所述分流器将所述数据包发送至所述数据流对应的线程的缓冲队列,以使所述数据流对应的线程从所述缓冲队列获取数据包。
在第一方面的第一种可能实现的方式中,若所述数据包所属的传输层通信协议为面向无连接的传输层通信协议,则所述数据流的标识信息为所述数据包的二元组,所述二元组包括:所述数据包的目的IP地址和目的端口;所述面向无连接的传输层通信协议对应的分流表包括:二元组与线程标示符的对应关系,每个线程标示符对应一个线程。
结合第一方面的第一种可能实现的方式,在第二种可能实现的方式中,所述分流器根据所述数据包所属的传输层通信协议对应的分流表中的数据流的标识信息和线程的对应关系,确定所述数据包所属的数据流对应的线程包括:所述分流器在所述数据包所属面向无连接的传输层通信协议对应的分流表中的二元组与线程标示符的对应关系中,查找所述数据包的二元组对应的线程标示符;所述分流器将所述数据包的二元组对应的线程标示符对应的线程确定为所述数据包所属的数据流对应的线程。
在第一方面的第三种可能实现的方式中,若所述数据包所属的传输层通信协议为面向连接的传输层通信协议,则所述数据流的标识信息为所述数据包的四元组,所述四元组包括:所述数据包的源IP地址,源端口、目的IP地址和目的端口;所述面向连接的传输层通信协议对应的分流表包括:第一分流表和第二分流表;所述第一分流表包括:四元组与线程标示符的对应关系,每个线程标示符对应一个线程;所述第二分流表包括:目的IP地址和目的端口与线程标示符的对应关系,每个线程标示符对应一个线程,及每个线程的负载;其中,目的IP地址和目的端口对应的线程为不同进程中的线程。
结合第一方面的第三种可能实现的方式,在第四种可能实现的方式中,所述分流器根据所述数据包所属的传输层通信协议对应的分流表中的数据流的标识信息和线程的对应关系,确定所述数据包所属的数据流对应的线程包括:所述分流器在所述数据包所属的面向连接的传输层通信协议对应的第一分流表中的四元组与线程标示符的对应关系中,查找所述数据包的四元组对应的线程标示符;若所述第一分流表中存在所述数据包的四元组对应的线程标识符,则所述分流器将所述数据包的四元组对应的线程标示符对应的线程确定为所述数据包所属的数据流对应的线程;若所述第一分流表中不存在所述数据包的四元组对应的线程标示符,则所述分流器在所述数据包所属的面向连接的传输层通信协议对应的第二分流表中的目的IP地址和目的端口与线程标示符的对应关系中,查找所述数据包的目的IP地址和目的端口对应的线程标示符;所述分流器将所述数据包的目的IP地址和目的端口对应的线程标识符对应的线程中负载最小的线程确定为所述数据包所属的数据流对应的线程。
结合第一方面的第一种可能实现的方式或第一方面的第二种可能实现的方式或第一方面的第三种可能实现的方式或第一方面的第四种可能实现的方式,在第五种可能实现的方式中,所述线程标识符为线程对应的缓冲队列地址。
结合第一方面或第一方面的第一种可能实现的方式或第一方面的第二种可能实现的方式或第一方面的第三种可能实现的方式或第一方面的第四种可能实现的方式或第一方面的第五种可能实现的方式,在第六种可能实现的方式中,所述方法还包括:分流器根据线程的状态更新分流表。
在第二方面,本发明实施例提供一种分流器,应用于数据分流系统中,所述数据分流系统中还包括存储器和用于处理数据的多个线程,每个线程对应一个缓冲队列,所述存储器存储有传输层通信协议和分流表的对应关系,每个分流表中设置有数据流的标识信息和线程的对应关系,所述分流器包括:
解析单元,用于对所接收的数据包进行解析确定所述数据包所属的传输层通信协议;
第一获取单元,用于从所述数据包中,获取与确定的所述传输层通信协议对应的所述数据包所属的数据流的标识信息,所述数据流的标识信息用于区分所述数据包所属的数据流;
第二获取单元,用于根据所述传输层通信协议和分流表的对应关系中,从所述存储器中获取所述数据包所属的传输层通信协议对应的分流表;
确定单元,用于根据所述数据包所属的传输层通信协议对应的分流表中的数据流的标识信息和线程的对应关系,确定所述数据包所属的数据流对应的线程;
发送单元,用于将所述数据包发送至所述数据流对应的线程的缓冲队列,以使所述数据流对应的线程从所述缓冲队列获取数据包。
在第二方面的第一种可能实现的方式中,若所述数据包所属的传输层通信协议为面向无连接的传输层通信协议,则所述数据流的标识信息为所述数据包的二元组,所述二元组包括:所述数据包的目的IP地址和目的端口;所述面向无连接的传输层通信协议对应的分流表包括:二元组与线程标示符的对应关系,每个线程标示符对应一个线程。
结合第二方面的第一种可能实现的方式,在第二种可能实现的方式中,所述确定单元具体用于:在所述数据包所属面向无连接的传输层通信协议对应的分流表中的二元组与线程标示符的对应关系中,查找所述数据包的二元组对应的线程标示符;将所述数据包的二元组对应的线程标示符对应的线程确定为所述数据包所属的数据流对应的线程。
在第二方面的第三种可能实现的方式中,所述面向连接的传输层通信协议对应的分流表包括:第一分流表和第二分流表;所述第一分流表包括:四元组与线程标示符的对应关系,每个线程标示符对应一个线程;所述第二分流表包括:目的IP地址和目的端口与线程标示符的对应关系,每个线程标示符对应一个线程,及每个线程的负载;其中,目的IP地址和目的端口对应的线程为不同进程中的线程。
结合第二方面的第三种可能实现的方式,在第四种可能实现的方式中,所述确定单元具体用于:在所述数据包所属的面向连接的传输层通信协议对应的第一分流表中的四元组与线程标示符的对应关系中,查找所述数据包的四元组对应的线程标示符;若所述第一分流表中存在所述数据包的四元组对应的线程标识符,则将所述数据包的四元组对应的线程标示符对应的线程确定为所述数据包所属的数据流对应的线程;若所述第一分流表中不存在所述数据包的四元组对应的线程标示符,则在所述数据包所属的面向连接的传输层通信协议对应的第二分流表中的目的IP地址和目的端口与线程标示符的对应关系中,查找所述数据包的目的IP地址和目的端口对应的线程标示符;将所述数据包的目的IP地址和目的端口对应的线程标识符对应的线程中负载最小的线程确定为所述数据包所属的数据流对应的线程。
结合第二方面的第一种可能实现的方式或第二方面的第二种可能实现的方式或第二方面的第三种可能实现的方式或第二方面的第四种可能实现的方式,在第五种可能实现的方式中,所述线程标识符为线程对应的缓冲队列地址。
结合第二方面或第二方面的第一种可能实现的方式或第二方面的第二种可能实现的方式或第二方面的第三种可能实现的方式或第二方面的第四种可能实现的方式第二方面的第五种可能实现的方式,在第六种可能实现的方式中,所述分流器还包括:更新单元,用于根据线程的状态更新分流表。
通过上述方案,分流器以线程为分流粒度,并且不同的传输层通信协议对应不同的分流表,分流器根据数据包所属的传输层通信协议对应的分流表将数据包分配到该数据包所属的数据流对应的线程的缓冲队列,以使线程从该线程对应的缓冲队列中获取数据包。由于每个线程都有其独立的缓冲队列,因此数据包和数据包的连接信息不会被多个线程共享,可避免线程间互斥和同步开销以及核心间cache失效,从而提高了多核处理器的处理能力。
附图说明
图1为本发明实施例一提供的一种数据分流方法的流程示意图;
图2为本发明实施例一提供的一种分流表的示意图;
图3为本发明实施例一提供的另一种分流表的示意图;
图4为本发明实施例一提供的一种确定数据包所属的数据流对应的线程的方法的流程示意图;
图5为本发明实施例一提供的另一种确定数据包所属的对应的线程的方法的流程示意图;
图6为本发明实施例二提供的一种分流器的结构示意图;
图7为本发明实施例二提供的另一种分流器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面以图1为例详细说明本发明实施例一提供的一种数据分流方法,图1为本发明实施例一提供的一种数据分流方法的流程示意图。该数据分流方法应用于数据分流系统中,该数据分流系统包括分流器,存储器和用于处理数据的多个线程,每个线程对应一个缓冲队列。其中,存储器用于传输层通信协议和分流表的对应关系及每个传输层通信协议对应的分流表,每个分流表中设置有数据流的标识信息和线程的对应关系。该存储器可以为包含高速RAM存储器,也可以还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。分流器为本实施例提供的数据分流方法的执行主体,如图1所示,该数据分流方法包括以下步骤:
步骤S101,分流器对所接收的数据包进行解析确定该数据包所属的传输层通信协议。
分流器在接收到数据包之后,若该数据包是完整的数据包或完整的数据包的第一个分片,则从数据包头部可以获知该数据包所属的传输层通信协议。若该数据包是完整的数据包的分片且不是第一个分片时,则根据该数据包的IP头查找该完整的数据包的第一个分片,如果分流器还没有接收到该完整的数据包的第一个分片,则需要等待至分流器接收到该完整的数据包的第一个分片。在查找到该完整的数据包的第一个分片后,从该第一个分片头部获知该数据包所属的通信协议。
其中,传输层通信协议分为两种,一种是面向非连接的传输层通信协议,另一种是面向连接的传输层通信协议。面向非连接的传输层通信协议可以具体为用户数据包协议(User Datagram Protocol,UDP),面向非连接的传输层通信协议可以具体为传输控制协议(Transmission Control Protocol,TCP)和流控制传输协议(Stream ControlTransmission Protocol,SCTP)。
步骤S102,分流器从该数据包中,获取与确定的传输层通信协议对应的数据包所属的数据流的标识信息,该数据流的标识信息用于区分数据包所属的数据流。
如果数据包所属的传输层通信协议为面向非连接的传输层通信协议,则数据流的标识信息为该数据包的二元组,二元组包括:数据包的目的IP地址和目的端口,那么分流器从该数据包中获取该数据包的二元组。
如果数据包所属的传输层通信协议为面向连接的传输层通信协议,则数据流的标识信息为该数据包的四元组,四元组包括:数据包的源IP地址、源端口、目的IP地址和目的端口,那么分流器从该数据包中获取该数据包的四元组。
步骤S103,分流器根据传输层通信协议和分流表的对应关系,从存储器中获取该数据包所属的传输层通信协议对应的分流表。
可选地,如图2所示,如果数据包所属的传输层通信协议为面向非连接的传输层通信协议,则分流表包括:二元组与线程标示符的对应关系,每个线程标示符对应一个线程。其中,线程标识符可以为线程的身份标识号码ID或线程对应的缓冲队列地址或其他能够唯一确定线程的标识。
可选地,如图3所述,如果数据包所属的传输层通信协议为面向连接的传输层通信协议,则分流表包括:第一分流表和第二分流表。第一分流表包括:四元组与线程标示符的对应关系,每个线程标示符对应一个线程;第二分流表包括:目的IP地址和目的端口与线程标示符的对应关系,每个线程标示符对应一个线程,及每个线程的负载。其中,目的IP地址和目的端口对应的多个线程为不同进程中的线程,从而实现不同进程中的线程与同一组目的IP地址和目的端口绑定。线程标识符可以为线程的身份标识号码ID或线程对应的缓冲队列地址或其他能够唯一确定线程的标识。
步骤S104,分流器根据该数据包所属的传输层通信协议对应的分流表中的数据流的标识信息和线程的对应关系,确定该数据包所属的数据流对应的线程。
可选地,数据包所属的传输层通信协议为面向非连接的通信协议时,则根据图2所示的分流表确定数据包所属的数据流对应的线程,如图4所示,根据图2所示的分流表确定数据包所属的数据流对应的线程的过程包括以下步骤:
步骤S401,分流器在数据包所属面向无连接的传输层通信协议对应的分流表中的二元组与线程标示符的对应关系中,查找该数据包的二元组对应的线程标示符。
步骤S402,分流器将数据包的二元组对应的线程标示符对应的线程确定为该数据包所属的数据流对应的线程。
由图2所示的分流表可知一组目的IP地址和目的端口只对应一个线程标识符。因此,在确定分流表中存在该数据包的二元组只对应的线程标识符后,就直接将该线程标示符对应的线程确定为该数据包所属的数据流对应的线程。
可选地,数据包所属的传输层通信协议为面向连接的通信协议时,则根据图3所示的分流表确定数据包所属的数据流对应的线程,如图5所示,根据图3所示的分流表确定数据包所属的数据流对应的线程的过程包括以下步骤:
步骤S501,分流器在数据包所属的面向连接的传输层通信协议对应的第一分流表中的四元组与线程标示符的对应关系中,查找该数据包的四元组对应的线程标示符。
在图3所示的分流表中的第一分流表中查找数据包的四元组对应的线程标识符。若第一分流表中存在数据包的四元组对应的线程标示符,则执行步骤S502。若第一分流表中不存在数据包的四元组对应的线程标示符,则执行步骤S503和步骤S504。
步骤S502,若第一分流表中存在数据包的四元组对应的线程标识符,则分流器将数据包的四元组对应的线程标示符对应的线程确定为数据包所属的数据流对应的线程。
由图3所示的分流表中的第一分流表可知一组源IP地址,源端口,目的IP地址和目的端口只对应一个线程标识符。因此,在确定第一分流表中存在该数据包的四元组只对应的线程标识符后,就直接将该线程标示符对应的线程确定为该数据包所属的数据流对应的线程。
步骤S503,若第一分流表中不存在该数据包的四元组对应的线程标示符,则分流器在该数据包所属的面向连接的传输层通信协议对应的第二分流表中的目的IP地址和目的端口与线程标示符的对应关系中,查找该数据包的目的IP地址和目的端口对应的线程标示符。
步骤S504,分流器将数据包的目的IP地址和目的端口对应的线程标识符对应的线程中负载最小的线程确定为该数据包所属的数据流对应的线程。
从图3所示的分流表可知第二分流表中的每个线程标识符都对应有该线程标识符对应的线程的负载。如果在图4所示的分流表中的第二分流表中,该数据包的目的IP地址和目的端口只对应一个线程标识符,则直接将该线程标示符对应的线程确定为该数据包所属的数据流对应的线程。如果在图3所示的分流表中的第二分流表中,该数据包的目的IP地址和目的端口对应多个线程标识符,则将多个线程标识符对应的线程中负载最小的线程确定为该数据包所属的数据流对应的线程,以实现线程的负载均衡,从而使得多核处理器负载均衡。
步骤S105,分流器将该数据包发送至该数据包所属的数据流对应的线程的缓冲队列,以使该数据流对应的线程从该缓冲队列获取数据包。
在分流器根据分流表确认该数据包所属的数据流对应的线程之后,将该数据包发送至该数据包所属的数据流对应的线程的缓冲队列。然后该线程直接从其对应的缓冲队列获取数据包,因此数据包不会被多个线程共享,可避免线程间互斥和同步开销以及核心间cache失效。
另外,本发明实施例一提供的数据分流方法还可以包括以下步骤:
根据线程的状态更新分流表。
具体的,对于图2所示的分流表,当有线程建立连接时,将该建立连接的线程对应的线程标示符和该线程对应的目的IP地址和目的端口添加到分流表中。当分流表中的线程标示符对应的线程从连接状态变为空闲状态(本实施例中的空闲状态是指线程未关闭的情况下,线程的连接状态关闭,或线程的连接状态异常中断)时,将该从连接状态变为空闲状态的线程对应的线程标识符及该线程对应的目的IP地址和目的端口从分流表中删除。
对于图3所示的分流表,当第一分流表中的线程标示符对应的线程从连接状态变为监听状态时,将第一分流表中的该线程的线程标示符及该线程对应的源IP地址,源端口、目的IP地址和目的端口的删除,并将该线程的线程标示符、该线程对应的目的IP地址和目的端口及该线程的负载添加到第二分流表中。当第二分流表中的线程标示符对应的线程从监听状态变为连接状态时,将第二分流表中的该线程的线程标示符、该线程对应的目的IP地址和目的端口及该线程的负载删除,并将该线程的线程标示符及该线程对应的源IP地址,源端口、目的IP地址和目的端口添加到第一分流表中。当有线程从空闲状态变为监听状态时,将该从空闲状态变为监听状态的线程对应的线程标示符、该线程对应的目的IP地址和目的端口及该线程的负载添加到第二分流表中。当第一分流表或第二分流表中的线程标示符对应的线程变为空闲状态时,将该变为空闲状态线程的线程标示符及该线程对应的源IP地址,源端口、目的IP地址和目的端口从第一分流表删除,或将该变为空闲状态线程对应的线程标示符,该线程对应的目的IP地址和目的端口及该线程的负载从第二分流表中删除。
利用本发明实施例一提供的数据分流方法,分流器以线程为分流粒度,并且不同的传输层通信协议对应不同的分流表,分流器根据数据包所属的传输层通信协议对应的分流表将数据包分配到该数据包所属的数据流对应的线程的缓冲队列,以使线程从该线程对应的缓冲队列中获取数据包。由于每个线程都有其独立的缓冲队列,因此数据包和数据包的连接信息不会被多个线程共享,可避免线程间互斥和同步开销以及核心间cache失效。并且针对面向连接的传输层通信协议实现了多个线程对同一个端口进行监听,可有效均衡多个核心之间的负载,从而提高了多核处理器的处理能力。
下面以图6为例详细说明本发明实施例二提供的一种分流器,图6为本发明实施例二提供的一种分流器的结构示意图。该分流器应用于数据分流系统中,用以实现本发明实施例一提供的数据分流方法。该数据分流系统还包括存储器和用于处理数据的多个线程,每个线程对应一个缓冲队列。其中,存储器用于传输层通信协议和分流表的对应关系及每个传输层通信协议对应的分流表,每个分流表中设置有数据流的标识信息和线程的对应关系。该存储器可以为包含高速RAM存储器,也可以还包括非易失性存储器,例如至少一个磁盘存储器。
如图6所示,该分流器包括:解析单元610,第一获取单元620、第二获取单元630,确定单元640和发送单元650。
解析单元610用于对所接收的数据包进行解析确定该数据包所属的传输层通信协议。
分流器在接收到数据包之后,若该数据包是完整的数据包或完整的数据包的第一个分片,则解析单元610从数据包头部可以获知该数据包所属的传输层通信协议。若该数据包是完整的数据包的分片且不是第一个分片时,则解析单元610根据该数据包的IP头查找该完整的数据包的第一个分片,如果分流器还没有接收到该完整的数据包的第一个分片,则需要等待至分流器接收到该完整的数据包的第一个分片。解析单元610在查找到该完整的数据包的第一个分片后,从该第一个分片头部获知该数据包所属的通信协议。
其中,传输层通信协议分为两种,一种是面向非连接的传输层通信协议,另一种是面向连接的传输层通信协议。面向非连接的传输层通信协议可以具体为UDP,面向非连接的传输层通信协议可以具体为TCP和SCTP。
第一获取单元620用于从该数据包中,获取与确定的传输层通信协议对应的数据包所属的数据流的标识信息,该数据流的标识信息用于区分数据包所属的数据流。
如果数据包所属的传输层通信协议为面向非连接的传输层通信协议,则数据流的标识信息为该数据包的二元组,二元组包括:数据包的目的IP地址和目的端口,那么第一获取单元620从该数据包中获取该数据包的二元组。
如果数据包所属的传输层通信协议为面向连接的传输层通信协议,则数据流的标识信息为该数据包的四元组,四元组包括:数据包的源IP地址、源端口、目的IP地址和目的端口,那么第一获取单元620从该数据包中获取该数据包的四元组。
第二获取单元630用于根据传输层通信协议和分流表的对应关系,从存储器中获取该数据包所属的传输层通信协议对应的分流表。
可选地,如图2所示,如果数据包所属的传输层通信协议为面向非连接的传输层通信协议,则分流表包括:二元组与线程标示符的对应关系,每个线程标示符对应一个线程。其中,线程标识符可以为线程的身份标识号码ID或线程对应的缓冲队列地址或其他能够唯一确定线程的标识。
可选地,如图3所述,如果数据包所属的传输层通信协议为面向连接的传输层通信协议,则分流表包括:第一分流表和第二分流表。第一分流表包括:四元组与线程标示符的对应关系,每个线程标示符对应一个线程;第二分流表包括:目的IP地址和目的端口与线程标示符的对应关系,每个线程标示符对应一个线程,及每个线程的负载。其中,目的IP地址和目的端口对应的多个线程为不同进程中的线程,从而实现不同进程中的线程与同一组目的IP地址和目的端口绑定。线程标识符可以为线程的身份标识号码ID或线程对应的缓冲队列地址或其他能够唯一确定线程的标识。
确定单元640用于根据该数据包所属的传输层通信协议对应的分流表中的数据流的标识信息和线程的对应关系,确定该数据包所属的数据流对应的线程。
可选地,数据包所属的传输层通信协议为面向非连接的通信协议时,则根据图2所示的分流表确定数据包所属的数据流对应的线程。确定单元640具体用于在数据包所属面向无连接的传输层通信协议对应的分流表中的二元组与线程标示符的对应关系中,查找该数据包的二元组对应的线程标示符,将数据包的二元组对应的线程标示符对应的线程确定为该数据包所属的数据流对应的线程。
可选地,数据包所属的传输层通信协议为面向连接的通信协议时,则根据图3所示的分流表确定数据包所属的数据流对应的线程。确定单元640具体用于在数据包所属的面向连接的传输层通信协议对应的第一分流表中的四元组与线程标示符的对应关系中,查找该数据包的四元组对应的线程标示符;若第一分流表中存在数据包的四元组对应的线程标识符,则将数据包的四元组对应的线程标示符对应的线程确定为数据包所属的数据流对应的线程;若第一分流表中不存在该数据包的四元组对应的线程标示符,则在该数据包所属的面向连接的传输层通信协议对应的第二分流表中的目的IP地址和目的端口与线程标示符的对应关系中,查找该数据包的目的IP地址和目的端口对应的线程标示符,将数据包的目的IP地址和目的端口对应的线程标识符对应的线程中负载最小的线程确定为该数据包所属的数据流对应的线程。
从图3所示的分流表可知第二分流表中的每个线程标识符都对应有该线程标识符对应的线程的负载。如果在图4所示的分流表中的第二分流表中,该数据包的目的IP地址和目的端口只对应一个线程标识符,则直接将该线程标示符对应的线程确定为该数据包所属的数据流对应的线程。如果在图3所示的分流表中的第二分流表中,该数据包的目的IP地址和目的端口对应多个线程标识符,则将多个线程标识符对应的线程中负载最小的线程确定为该数据包所属的数据流对应的线程,以实现线程的负载均衡,从而使得多核处理器负载均衡。
发送单元650用于将该数据包发送至该数据包所属的数据流对应的线程的缓冲队列,以使该数据流对应的线程从该缓冲队列获取数据包。
在确定单元640根据分流表确认该数据包所属的数据流对应的线程之后,发送单元650将该数据包发送至该数据包所属的数据流对应的线程的缓冲队列。然后该线程直接从其对应的缓冲队列获取数据包,因此数据包不会被多个线程共享,可避免线程间互斥和同步开销以及核心间cache失效。
另外,如图7所示,本发明实施例二提供的分流器还可以包括:更新单元660。
更新单元660用于根据线程的状态更新分流表。
具体的,对于图2所示的分流表,当有线程建立连接时,更新单元660将该建立连接的线程对应的线程标示符和该线程对应的目的IP地址和目的端口添加到分流表中。当分流表中的线程标示符对应的线程从连接状态变为空闲状态(本实施例中的空闲状态是指线程未关闭的情况下,线程的连接状态关闭,或线程的连接状态异常中断)时,更新单元660将该从连接状态变为空闲状态的线程对应的线程标识符及该线程对应的目的IP地址和目的端口从分流表中删除。
对于图3所示的分流表,当第一分流表中的线程标示符对应的线程从连接状态变为监听状态时,更新单元660将第一分流表中的该线程的线程标示符及该线程对应的源IP地址,源端口、目的IP地址和目的端口的删除,并将该线程的线程标示符、该线程对应的目的IP地址和目的端口及该线程的负载添加到第二分流表中。当第二分流表中的线程标示符对应的线程从监听状态变为连接状态时,更新单元660将第二分流表中的该线程的线程标示符、该线程对应的目的IP地址和目的端口及该线程的负载删除,并将该线程的线程标示符及该线程对应的源IP地址,源端口、目的IP地址和目的端口添加到第一分流表中。当有线程从空闲状态变为监听状态时,更新单元660将该从空闲状态变为监听状态的线程对应的线程标示符、该线程对应的目的IP地址和目的端口及该线程的负载添加到第二分流表中。当第一分流表或第二分流表中的线程标示符对应的线程变为空闲状态时,更新单元660将该变为空闲状态线程的线程标示符及该线程对应的源IP地址,源端口、目的IP地址和目的端口从第一分流表删除,或将该变为空闲状态线程对应的线程标示符,该线程对应的目的IP地址和目的端口及该线程的负载从第二分流表中删除。
利用本发明实施例二提供的分流器,该分流器以线程为分流粒度,并且不同的传输层通信协议对应不同的分流表,分流器根据数据包所属的传输层通信协议对应的分流表将数据包分配到该数据包所属的数据流对应的线程的缓冲队列,以使线程从该线程对应的缓冲队列中获取数据包。由于每个线程都有其独立的缓冲队列,因此数据包和数据包的连接信息不会被多个线程共享,可避免线程间互斥和同步开销以及核心间cache失效。并且针对面向连接的传输层通信协议实现了多个线程对同一个端口进行监听,可有效均衡多个核心之间的负载,从而提高了多核处理器的处理能力。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种数据分流方法,其特征在于,应用于数据分流系统中,所述数据分流系统中包括分流器,存储器和用于处理数据的多个线程,每个线程对应一个缓冲队列,所述存储器存储有传输层通信协议和分流表的对应关系及每个传输层通信协议对应的分流表,每个分流表中设置有数据流的标识信息和线程的对应关系,所述方法包括:
分流器对所接收的数据包进行解析确定所述数据包所属的传输层通信协议;
所述分流器从所述数据包中,获取与确定的所述传输层通信协议对应的所述数据包所属的数据流的标识信息,所述数据流的标识信息用于区分所述数据包所属的数据流;
所述分流器根据所述传输层通信协议和分流表的对应关系,从所述存储器中获取所述数据包所属的传输层通信协议对应的分流表;
所述分流器根据所述数据包所属的传输层通信协议对应的分流表中的数据流的标识信息和线程的对应关系,确定所述数据包所属的数据流对应的线程;
所述分流器将所述数据包发送至所述数据流对应的线程的缓冲队列,以使所述数据流对应的线程从所述缓冲队列获取数据包;
若所述数据包所属的传输层通信协议为面向连接的传输层通信协议,则所述数据流的标识信息为所述数据包的四元组,所述四元组包括:所述数据包的源IP地址,源端口、目的IP地址和目的端口;
所述面向连接的传输层通信协议对应的分流表包括:第一分流表和第二分流表;
所述第一分流表包括:四元组与线程标示符的对应关系,每个线程标示符对应一个线程;
所述第二分流表包括:目的IP地址和目的端口与线程标示符的对应关系,每个线程标示符对应一个线程,及每个线程的负载;
其中,目的IP地址和目的端口对应的线程为不同进程中的线程。
2.根据权利要求1所述的方法,其特征在于,若所述数据包所属的传输层通信协议为面向无连接的传输层通信协议,则所述数据流的标识信息为所述数据包的二元组,所述二元组包括:所述数据包的目的IP地址和目的端口;
所述面向无连接的传输层通信协议对应的分流表包括:
二元组与线程标示符的对应关系,每个线程标示符对应一个线程。
3.根据权利要求2所述的方法,其特征在于,所述分流器根据所述数据包所属的传输层通信协议对应的分流表中的数据流的标识信息和线程的对应关系,确定所述数据包所属的数据流对应的线程包括:
所述分流器在所述数据包所属面向无连接的传输层通信协议对应的分流表中的二元组与线程标示符的对应关系中,查找所述数据包的二元组对应的线程标示符;
所述分流器将所述数据包的二元组对应的线程标示符对应的线程确定为所述数据包所属的数据流对应的线程。
4.根据权利要求1所述的方法,其特征在于,所述分流器根据所述数据包所属的传输层通信协议对应的分流表中的数据流的标识信息和线程的对应关系,确定所述数据包所属的数据流对应的线程包括:
所述分流器在所述数据包所属的面向连接的传输层通信协议对应的第一分流表中的四元组与线程标示符的对应关系中,查找所述数据包的四元组对应的线程标示符;
若所述第一分流表中存在所述数据包的四元组对应的线程标示符,则所述分流器将所述数据包的四元组对应的线程标示符对应的线程确定为所述数据包所属的数据流对应的线程;
若所述第一分流表中不存在所述数据包的四元组对应的线程标示符,则所述分流器在所述数据包所属的面向连接的传输层通信协议对应的第二分流表中的目的IP地址和目的端口与线程标示符的对应关系中,查找所述数据包的目的IP地址和目的端口对应的线程标示符;
所述分流器将所述数据包的目的IP地址和目的端口对应的线程标识符对应的线程中负载最小的线程确定为所述数据包所属的数据流对应的线程。
5.根据权利要求2-4任一所述的方法,其特征在于,所述线程标示符为线程对应的缓冲队列地址。
6.根据权利要求1-4任一所述的方法,其特征在于,所述方法还包括:
所述分流器根据线程的状态更新分流表。
7.一种分流器,其特征在于,应用于数据分流系统中,所述数据分流系统中还包括存储器和用于处理数据的多个线程,每个线程对应一个缓冲队列,所述存储器存储有传输层通信协议和分流表的对应关系,每个分流表中设置有数据流的标识信息和线程的对应关系,所述分流器包括:
解析单元,用于对所接收的数据包进行解析确定所述数据包所属的传输层通信协议;
第一获取单元,用于从所述数据包中,获取与确定的所述传输层通信协议对应的所述数据包所属的数据流的标识信息,所述数据流的标识信息用于区分所述数据包所属的数据流;
第二获取单元,用于根据所述传输层通信协议和分流表的对应关系中,从所述存储器中获取所述数据包所属的传输层通信协议对应的分流表;
确定单元,用于根据所述数据包所属的传输层通信协议对应的分流表中的数据流的标识信息和线程的对应关系,确定所述数据包所属的数据流对应的线程;
发送单元,用于将所述数据包发送至所述数据流对应的线程的缓冲队列,以使所述数据流对应的线程从所述缓冲队列获取数据包;
若所述数据包所属的传输层通信协议为面向连接的传输层通信协议,则所述数据流的标识信息为所述数据包的四元组,所述四元组包括:所述数据包的源IP地址,源端口、目的IP地址和目的端口;
所述面向连接的传输层通信协议对应的分流表包括:第一分流表和第二分流表;
所述第一分流表包括:四元组与线程标示符的对应关系,每个线程标示符对应一个线程;
所述第二分流表包括:目的IP地址和目的端口与线程标示符的对应关系,每个线程标示符对应一个线程,及每个线程的负载;
其中,目的IP地址和目的端口对应的线程为不同进程中的线程。
8.根据权利要求7所述的分流器,其特征在于,若所述数据包所属的传输层通信协议为面向无连接的传输层通信协议,则所述数据流的标识信息为所述数据包的二元组,所述二元组包括:所述数据包的目的IP地址和目的端口;
所述面向无连接的传输层通信协议对应的分流表包括:
二元组与线程标示符的对应关系,每个线程标示符对应一个线程。
9.根据权利要求8所述的分流器,其特征在于,所述确定单元具体用于:
在所述数据包所属面向无连接的传输层通信协议对应的分流表中的二元组与线程标示符的对应关系中,查找所述数据包的二元组对应的线程标示符;
将所述数据包的二元组对应的线程标示符对应的线程确定为所述数据包所属的数据流对应的线程。
10.根据权利要求7所述的分流器,其特征在于,所述确定单元具体用于:
在所述数据包所属的面向连接的传输层通信协议对应的第一分流表中的四元组与线程标示符的对应关系中,查找所述数据包的四元组对应的线程标示符;
若所述第一分流表中存在所述数据包的四元组对应的线程标示符,则将所述数据包的四元组对应的线程标示符对应的线程确定为所述数据包所属的数据流对应的线程;
若所述第一分流表中不存在所述数据包的四元组对应的线程标示符,则在所述数据包所属的面向连接的传输层通信协议对应的第二分流表中的目的IP地址和目的端口与线程标示符的对应关系中,查找所述数据包的目的IP地址和目的端口对应的线程标示符;
将所述数据包的目的IP地址和目的端口对应的线程标识符对应的线程中负载最小的线程确定为所述数据包所属的数据流对应的线程。
11.根据权利要求8-10任一所述的分流器,其特征在于,所述线程标示符为线程对应的缓冲队列地址。
12.根据权利要求7-10任一所述的分流器,其特征在于,所述分流器还包括:
更新单元,用于根据线程的状态更新分流表。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310721545.7A CN104734993B (zh) | 2013-12-24 | 2013-12-24 | 数据分流方法及分流器 |
PCT/CN2014/094180 WO2015096655A1 (zh) | 2013-12-24 | 2014-12-18 | 数据分流方法及分流器 |
EP14875040.9A EP3079313B1 (en) | 2013-12-24 | 2014-12-18 | Data splitting method and splitter |
US15/190,774 US10097466B2 (en) | 2013-12-24 | 2016-06-23 | Data distribution method and splitter |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310721545.7A CN104734993B (zh) | 2013-12-24 | 2013-12-24 | 数据分流方法及分流器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104734993A CN104734993A (zh) | 2015-06-24 |
CN104734993B true CN104734993B (zh) | 2018-05-18 |
Family
ID=53458440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310721545.7A Expired - Fee Related CN104734993B (zh) | 2013-12-24 | 2013-12-24 | 数据分流方法及分流器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10097466B2 (zh) |
EP (1) | EP3079313B1 (zh) |
CN (1) | CN104734993B (zh) |
WO (1) | WO2015096655A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106371921B (zh) * | 2016-08-31 | 2019-10-29 | 成都科来软件有限公司 | 一种多线程分析的均衡分流方法 |
CN107087006B (zh) * | 2017-05-24 | 2019-08-16 | 全讯汇聚网络科技(北京)有限公司 | 一种协议分流方法、系统及服务器 |
US10719350B2 (en) * | 2017-10-10 | 2020-07-21 | Sap Se | Worker thread manager |
CN108228366B (zh) * | 2017-12-29 | 2022-01-25 | 北京奇虎科技有限公司 | 一种数据流的处理方法和装置 |
US10409743B1 (en) | 2018-06-29 | 2019-09-10 | Xilinx, Inc. | Transparent port aggregation in multi-chip transport protocols |
CN108877178A (zh) * | 2018-07-05 | 2018-11-23 | 成都希格玛光电科技有限公司 | 一种工业现场远程数据采集方法及采集系统 |
CN111131074B (zh) * | 2018-10-31 | 2023-04-11 | 中移(杭州)信息技术有限公司 | 一种数据处理方法、装置、系统、服务器及可读存储介质 |
US10817455B1 (en) | 2019-04-10 | 2020-10-27 | Xilinx, Inc. | Peripheral I/O device with assignable I/O and coherent domains |
US10817462B1 (en) | 2019-04-26 | 2020-10-27 | Xilinx, Inc. | Machine learning model updates to ML accelerators |
US11586369B2 (en) | 2019-05-29 | 2023-02-21 | Xilinx, Inc. | Hybrid hardware-software coherent framework |
CN110247863A (zh) * | 2019-07-12 | 2019-09-17 | 广州西麦科技股份有限公司 | 数据包处理方法、装置、sdn交换机及存储介质 |
US11074208B1 (en) | 2019-07-24 | 2021-07-27 | Xilinx, Inc. | Routing network using global address map with adaptive main memory expansion for a plurality of home agents |
US11372769B1 (en) | 2019-08-29 | 2022-06-28 | Xilinx, Inc. | Fine-grained multi-tenant cache management |
US11113194B2 (en) | 2019-09-04 | 2021-09-07 | Xilinx, Inc. | Producer-to-consumer active direct cache transfers |
US11093394B1 (en) | 2019-09-04 | 2021-08-17 | Xilinx, Inc. | Delegated snoop protocol |
US11474871B1 (en) | 2019-09-25 | 2022-10-18 | Xilinx, Inc. | Cache coherent acceleration function virtualization |
US11271860B1 (en) | 2019-11-15 | 2022-03-08 | Xilinx, Inc. | Compressed tag coherency messaging |
US11386031B2 (en) | 2020-06-05 | 2022-07-12 | Xilinx, Inc. | Disaggregated switch control path with direct-attached dispatch |
US11556344B2 (en) | 2020-09-28 | 2023-01-17 | Xilinx, Inc. | Hardware coherent computational expansion memory |
CN112256208B (zh) * | 2020-11-02 | 2023-07-28 | 南京云信达科技有限公司 | 一种离线数据包存储分析方法及装置 |
CN112583722B (zh) * | 2021-02-26 | 2021-05-28 | 紫光恒越技术有限公司 | 一种数据处理的方法、装置、云设备和存储设备 |
CN113176940A (zh) * | 2021-03-29 | 2021-07-27 | 新华三信息安全技术有限公司 | 一种数据流分流方法、装置以及网络设备 |
CN113630331B (zh) * | 2021-10-11 | 2021-12-28 | 北京金睛云华科技有限公司 | 全流量存储回溯分析系统中父子连接的处理方法 |
CN114500436B (zh) * | 2021-12-22 | 2024-07-05 | 天翼云科技有限公司 | 一种数据传输方法及装置、电子设备 |
CN115225586B (zh) * | 2022-07-14 | 2024-04-26 | 中科驭数(北京)科技有限公司 | 数据包发送方法、装置、设备及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217467A (zh) * | 2007-12-28 | 2008-07-09 | 杭州华三通信技术有限公司 | 核间负载分发装置及方法 |
CN101699788A (zh) * | 2009-10-30 | 2010-04-28 | 清华大学 | 模块化的网络入侵检测系统 |
CN102377640A (zh) * | 2010-08-11 | 2012-03-14 | 杭州华三通信技术有限公司 | 一种报文处理装置和报文处理方法、及预处理器 |
CN102497430A (zh) * | 2011-12-13 | 2012-06-13 | 曙光信息产业(北京)有限公司 | 一种分流设备实现系统和方法 |
CN102664815A (zh) * | 2012-05-21 | 2012-09-12 | 华为技术有限公司 | 报文流量的负荷分担方法、装置和系统 |
CN102811169A (zh) * | 2012-07-24 | 2012-12-05 | 成都卫士通信息产业股份有限公司 | 采用哈希算法进行多核并行处理的vpn实现方法及系统 |
CN102821165A (zh) * | 2012-04-13 | 2012-12-12 | 中兴通讯股份有限公司 | Ip地址转换方法及装置 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6483804B1 (en) * | 1999-03-01 | 2002-11-19 | Sun Microsystems, Inc. | Method and apparatus for dynamic packet batching with a high performance network interface |
US7543067B2 (en) * | 2001-08-01 | 2009-06-02 | Canon Kabushiki Kaisha | Flexible secure network data transfer and messaging |
JP3925234B2 (ja) * | 2002-02-18 | 2007-06-06 | ソニー株式会社 | データ通信システム、データ通信管理装置、および方法、並びにコンピュータ・プログラム |
US7127700B2 (en) * | 2002-03-14 | 2006-10-24 | Openwave Systems Inc. | Method and apparatus for developing web services using standard logical interfaces to support multiple markup languages |
EP1482701B1 (de) * | 2003-05-27 | 2005-09-14 | Siemens Aktiengesellschaft | Verfahren zum paketorientierten Übertragen von Daten in Telekommunikationsnetzen mittels Umsetzung in einem Zwischenknoten von einem verbindungslosen zu einem verbindungsorientierten Übertragungsprotokoll und umgekehrt |
US20050086393A1 (en) * | 2003-10-03 | 2005-04-21 | Meng David Q. | Controlling power of network processor engines |
US7130401B2 (en) * | 2004-03-09 | 2006-10-31 | Discernix, Incorporated | Speech to text conversion system |
GB0408876D0 (en) * | 2004-04-21 | 2004-05-26 | Level 5 Networks Ltd | User-level stack |
US20060031571A1 (en) * | 2004-04-29 | 2006-02-09 | International Business Machines Corporation | Data communications through a split connection proxy |
US7984180B2 (en) * | 2005-10-20 | 2011-07-19 | Solarflare Communications, Inc. | Hashing algorithm for network receive filtering |
KR101252812B1 (ko) * | 2006-04-25 | 2013-04-12 | 주식회사 엘지씨엔에스 | 네트워크 보안 장치 및 그를 이용한 패킷 데이터 처리방법 |
EP2632109B1 (en) * | 2006-07-10 | 2017-05-10 | Solarflare Communications Inc | Data processing system and method therefor |
US8838817B1 (en) * | 2007-11-07 | 2014-09-16 | Netapp, Inc. | Application-controlled network packet classification |
US8190960B1 (en) * | 2007-12-13 | 2012-05-29 | Force10 Networks, Inc. | Guaranteed inter-process communication |
US20090296685A1 (en) | 2008-05-29 | 2009-12-03 | Microsoft Corporation | User-Mode Prototypes in Kernel-Mode Protocol Stacks |
US8750112B2 (en) * | 2009-03-16 | 2014-06-10 | Echostar Technologies L.L.C. | Method and node for employing network connections over a connectionless transport layer protocol |
CN101867558B (zh) | 2009-04-17 | 2012-11-14 | 深圳市永达电子股份有限公司 | 用户态网络协议栈系统及处理报文的方法 |
US8874878B2 (en) * | 2010-05-18 | 2014-10-28 | Lsi Corporation | Thread synchronization in a multi-thread, multi-flow network communications processor architecture |
US8949838B2 (en) * | 2009-04-27 | 2015-02-03 | Lsi Corporation | Multi-threaded processing with hardware accelerators |
CN101909257B (zh) * | 2009-06-04 | 2013-08-21 | 中兴通讯股份有限公司 | M2m平台实现多种承载协议并发接入的方法及系统 |
CN101656677B (zh) * | 2009-09-18 | 2011-11-16 | 杭州迪普科技有限公司 | 一种报文分流处理方法及装置 |
CN101873259B (zh) * | 2010-06-01 | 2013-01-09 | 华为技术有限公司 | Sctp报文识别方法和装置 |
WO2012092268A1 (en) * | 2010-12-29 | 2012-07-05 | Citrix Systems, Inc. | Systems and methods for scalable n-core statistics aggregation |
US8869157B2 (en) * | 2012-06-21 | 2014-10-21 | Breakingpoint Systems, Inc. | Systems and methods for distributing tasks and/or processing recources in a system |
US9088501B2 (en) * | 2013-07-31 | 2015-07-21 | Citrix Systems, Inc. | Systems and methods for least connection load balancing by multi-core device |
-
2013
- 2013-12-24 CN CN201310721545.7A patent/CN104734993B/zh not_active Expired - Fee Related
-
2014
- 2014-12-18 WO PCT/CN2014/094180 patent/WO2015096655A1/zh active Application Filing
- 2014-12-18 EP EP14875040.9A patent/EP3079313B1/en not_active Not-in-force
-
2016
- 2016-06-23 US US15/190,774 patent/US10097466B2/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217467A (zh) * | 2007-12-28 | 2008-07-09 | 杭州华三通信技术有限公司 | 核间负载分发装置及方法 |
CN101699788A (zh) * | 2009-10-30 | 2010-04-28 | 清华大学 | 模块化的网络入侵检测系统 |
CN102377640A (zh) * | 2010-08-11 | 2012-03-14 | 杭州华三通信技术有限公司 | 一种报文处理装置和报文处理方法、及预处理器 |
CN102497430A (zh) * | 2011-12-13 | 2012-06-13 | 曙光信息产业(北京)有限公司 | 一种分流设备实现系统和方法 |
CN102821165A (zh) * | 2012-04-13 | 2012-12-12 | 中兴通讯股份有限公司 | Ip地址转换方法及装置 |
CN102664815A (zh) * | 2012-05-21 | 2012-09-12 | 华为技术有限公司 | 报文流量的负荷分担方法、装置和系统 |
CN102811169A (zh) * | 2012-07-24 | 2012-12-05 | 成都卫士通信息产业股份有限公司 | 采用哈希算法进行多核并行处理的vpn实现方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20160308771A1 (en) | 2016-10-20 |
EP3079313A4 (en) | 2016-11-30 |
CN104734993A (zh) | 2015-06-24 |
EP3079313B1 (en) | 2018-03-21 |
WO2015096655A1 (zh) | 2015-07-02 |
US10097466B2 (en) | 2018-10-09 |
EP3079313A1 (en) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104734993B (zh) | 数据分流方法及分流器 | |
US10084680B2 (en) | System and method for subscriber aware network monitoring | |
US10749808B1 (en) | Network flow management for isolated virtual networks | |
US9998955B1 (en) | Multi-tier stateful network flow management architecture | |
US10216853B2 (en) | Method and system for implementing a VXLAN control plane | |
US20180139134A1 (en) | Method and apparatus for processing operation request in storage system | |
US9934273B1 (en) | Metadata synchronization in flow management systems | |
CN106068629B (zh) | 分组交换系统中的分布式计数器和计量器 | |
CN107079060A (zh) | 用于运营商级nat优化的系统和方法 | |
US10097454B1 (en) | Flexible packet rewriting framework | |
CN108683607A (zh) | 虚拟机流量控制方法、装置和服务器 | |
CN108306832A (zh) | 一种网络流量分流方法及装置 | |
CN105516302B (zh) | 一种数据处理方法及网络设备 | |
CN108377232A (zh) | 一种多协议通信方法及装置 | |
CN108259218A (zh) | 一种ip地址分配方法和装置 | |
US8365045B2 (en) | Flow based data packet processing | |
CN108984327A (zh) | 报文转发方法、多核cpu及网络设备 | |
US20140286339A1 (en) | Hardware Acceleration for Routing Programs | |
CN106528844A (zh) | 一种数据请求方法及装置和数据存储系统 | |
CN108738078A (zh) | 一种数据传输方法装置、设备及可读存储介质 | |
CN110708275B (zh) | 一种协议报文的处理方法和装置 | |
CN106850442B (zh) | 报文处理方法和转发设备 | |
CN104780178A (zh) | 一种用于防止tcp攻击的连接管理方法 | |
CN107547408A (zh) | 一种mac地址哈希冲突的处理方法和装置 | |
CN106209672B (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 | ||
GR01 | Patent grant | ||
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: 20180518 Termination date: 20191224 |