CN108228366A - 一种数据流的处理方法和装置 - Google Patents

一种数据流的处理方法和装置 Download PDF

Info

Publication number
CN108228366A
CN108228366A CN201711483430.3A CN201711483430A CN108228366A CN 108228366 A CN108228366 A CN 108228366A CN 201711483430 A CN201711483430 A CN 201711483430A CN 108228366 A CN108228366 A CN 108228366A
Authority
CN
China
Prior art keywords
data flow
processor cores
traffic identifier
thread
socket
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.)
Granted
Application number
CN201711483430.3A
Other languages
English (en)
Other versions
CN108228366B (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 Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo 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 Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201711483430.3A priority Critical patent/CN108228366B/zh
Publication of CN108228366A publication Critical patent/CN108228366A/zh
Application granted granted Critical
Publication of CN108228366B publication Critical patent/CN108228366B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (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

本发明实施例提供了一种数据流的处理方法和装置,该方法包括:从预设的端口接收多个数据流;查询每个数据流的流标识;至少根据所述流标识将所述数据流分配至匹配的线程进行处理。流标识具有唯一性,因此,即便在IP地址、端口等相同的情况下,可以至少基于流标识将数据流分配至相应的线程进行处理,避免同一处理器内核进行处理,实现均衡负载,可以尽量使用处理器内核,避免空载,提高了资源的利用率,大大提高了吞吐量、提高了带宽的使用率,减少资源浪费。

Description

一种数据流的处理方法和装置
技术领域
本发明涉及计算机处理的技术领域,特别是涉及一种数据流的传输方法和一种数据流的传输装置。
背景技术
UDP(User Datagram Protocol,用户数据报协议)由于控制选项较少,在数据传输过程中延迟小、数据传输效率高,在直播等领域应用较为广泛,用于传输视频流等数据流。
目前,在两台服务器之间的多路数据流,由于数据流应用的IP(InternetProtocol,网络之间互连的协议)地址、端口等参数是一致的,因此,这些数据流是会分配至同一个处理器内核进行处理。
但是,在CPU(Central Processing Unit,中央处理器)中,处理器内核通常是有多个的,如48个,部分处理器内核可能是空载,资源利用率较低,导致吞吐量较低,大多数实现在测试载荷为100字节的小数据包时,吞吐率仅能达到每秒20~30万包,此外,由于无法处理更多的数据包,限制无法发送更多的数据流,带宽使用率较低,浪费资源。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据流的传输方法和相应的一种数据流的传输装置。
依据本发明的一个方面,提供了一种数据流的传输方法,包括:
从预设的端口接收多个数据流;
查询每个数据流的流标识;
至少根据所述流标识将所述数据流分配至匹配的线程进行处理。
可选地,还包括:
针对预置的多个处理器内核,针对每个处理器内核创建一个套接字socket、启动一个线程;
将所述多个处理器内核的线程配置在预设的端口上。
可选地,所述至少根据所述流标识将所述数据流分配至匹配的线程进行处理,包括:
至少按照所述流标识确定处理所述数据流的处理器内核;
通过所述处理器内核对应的套接字socket接收所述数据流;
调用所述处理器内核上的线程从所述套接字socket中处理所述数据流。
可选地,所述至少按照所述流标识确定处理所述数据流的处理器内核,包括:
查询所述数据流的源IP地址、目的IP地址、源端口、目的端口;
按照所述流源IP地址、所述目的IP地址、所述源端口、所述目的端口与所述流标识确定处理所述数据流的处理器内核。
可选地,所述调用所述处理器内核上的线程从所述套接字socket中处理所述数据流,包括:
调用所述处理器内核上的线程从所述套接字socket中接收所述数据流,并按照用户数据报协议UDP进行处理。
可选地,还包括:
查询通信状态信息;
判断所述通信状态信息是否满足预设的条件;若是,则执行所述从预设的端口接收多个数据流;
其中,所述通信状态信息包括如下的至少一种:
带宽、数据包类型、带宽占比。
根据本发明的另一方面,提供了一种数据流的传输装置,包括:
数据流接收模块,用于从预设的端口接收多个数据流;
流标识查询模块,用于查询每个数据流的流标识;
数据流分配模块,用于至少根据所述流标识将所述数据流分配至匹配的线程进行处理。
可选地,还包括:
内核处理模块,用于针对预置的多个处理器内核,针对每个处理器内核创建一个套接字socket、启动一个线程;
端口配置模块,用于将所述多个处理器内核的线程配置在预设的端口上。
可选地,所述数据流分配模块包括:
内核确定子模块,用于至少按照所述流标识确定处理所述数据流的处理器内核;
套接字接收子模块,用于通过所述处理器内核对应的套接字socket接收所述数据流;
线程处理子模块,用于调用所述处理器内核上的线程从所述套接字socket中处理所述数据流。
可选地,所述内核确定子模块包括:
四要素查询单元,用于查询所述数据流的源IP地址、目的IP地址、源端口、目的端口;
五要素确定单元,用于按照所述流源IP地址、所述目的IP地址、所述源端口、所述目的端口与所述流标识确定处理所述数据流的处理器内核。
可选地,所述线程处理子模块包括:
UDP处理单元,用于调用所述处理器内核上的线程从所述套接字socket中接收所述数据流,并按照用户数据报协议UDP进行处理。
可选地,还包括:
通信状态信息查询模块,用于查询通信状态信息;
条件判断模块,用于判断所述通信状态信息是否满足预设的条件;若是,则调用所述数据流接收模块;
其中,所述通信状态信息包括如下的至少一种:
带宽、数据包类型、带宽占比。
本发明实施例从预设的端口接收多个数据流,查询每个数据流的流标识,至少根据流标识将数据流分配至匹配的线程进行处理,在设备之间进行通信时,流标识具有唯一性,因此,即便在IP地址、端口等相同的情况下,可以至少基于流标识将数据流分配至相应的线程进行处理,避免同一处理器内核进行处理,实现均衡负载,可以尽量使用处理器内核,避免空载,提高了资源的利用率,大大提高了吞吐量、提高了带宽的使用率,减少资源浪费。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种数据流的传输方法实施例的步骤流程示意图;
图2示出了根据本发明一个实施例的另一种数据流的传输方法实施例的步骤流程示意图;以及
图3示出了根据本发明一个实施例的一种数据流的传输装置实施例的结构示意框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,示出了根据本发明一个实施例的一种数据流的传输方法实施例的步骤流程示意图,具体可以包括如下步骤:
步骤101,从预设的端口接收多个数据流。
步骤102,查询每个数据流的流标识。
步骤103,至少根据所述流标识将所述数据流分配至匹配的线程进行处理。
在具体实现中,本端设备(如服务器)通过同一个端口可以接收对端设备(如服务器)发送的多路数据流(如直播的视频流)。
在本发明实施例中,在接收到对端设备传输的数据流之后,可以识别每个数据流的流标识。
其中,流标识可以是能够代表一个唯一确定的数据流的信息,例如,stream ID(流ID)、session ID(会话ID),等等。
由于流标识的唯一性,因此,可以至少基于流标识将数据流分配至本端设备上线程进行处理,即便在IP地址、端口等相同的情况下,依然可以将数据流进行均衡负载。
本发明实施例从预设的端口接收多个数据流,查询每个数据流的流标识,至少根据流标识将数据流分配至匹配的线程进行处理,在设备之间进行通信时,流标识具有唯一性,因此,即便在IP地址、端口等相同的情况下,可以至少基于流标识将数据流分配至相应的线程进行处理,避免同一处理器内核进行处理,实现均衡负载,可以尽量使用处理器内核,避免空载,提高了资源的利用率,大大提高了吞吐量、提高了带宽的使用率,减少资源浪费。
参照图2,示出了根据本发明一个实施例的另一种数据流的传输方法实施例的步骤流程示意图,具体可以包括如下步骤:
步骤201,查询通信状态信息。
步骤202,判断所述通信状态信息是否满足预设的条件;若是,则执行步骤203。
其中,通信状态信息包括如下的至少一种:
带宽、数据包类型、带宽占比。
在本发明实施例中,对于本端设备(如服务器)使用UDP进行通信的通信状态信息符合某一预先设置的条件,例如,带宽大于预设的带宽阈值、数据包类型多为大小小于预设大小阈值的小数据包、带宽占比小于预设的占比阈值,等等,通信的资源浪费较为严重,则可以分散UDP的数据包进行处理。
步骤203,针对预置的多个处理器内核,针对每个处理器内核创建一个套接字socket、启动一个线程。
在本发明实施例中,本端设备的CPU中具有多个处理器内核core,针对每个内核绑定一个线程,并打开一个套接字socket。
步骤204,将所述多个处理器内核的线程配置在预设的端口上。
在具体实现中,可以通过SO_REUSEPORT多个处理器内核的线程绑定在预设的端口上,那么,多个套接字socket可以同时bind(绑定)同一个UDP的端口。
步骤205,从预设的端口接收多个数据流。
步骤206,查询每个数据流的流标识。
在具体实现中,可以通过SO_ATTACH_REUSEPORT_EBPF让处理器的内核在收到数据流的数据包后,从数据包头部获取到的上层协议的流标识,交给对应的socket,从而多个线程可以并发处理不同的数据流。
其中,SO_ATTACH_REUSEPORT_EBPF是一个借口,通过这个接口设置一段代码去处理器的内核执行。
步骤207,至少按照所述流标识确定处理所述数据流的处理器内核。
在具体实现中,可以通过哈希取余算法等方式,将流标识分配给某个处理器内核。
由于数据流的数量一般远远大于处理器内核的数量,因此,多个数据流通常分配至同一个处理器内核。
当然,除了流标识之外,还可以辅助其他参数处理数据流的处理器内核,本发明实施例对此不加以限制。
在本发明的一个实施例中,可以查询数据流的源IP地址(SRC_IP)、目的IP地址(DST_IP)、源端口(S_PORT)、目的端口(D_PORT);
按照流源IP地址(SRC_IP)、目的IP地址(DST_IP)、源端口(S_PORT)、目的端口(D_PORT)与流标识确定处理数据流的处理器内核。
步骤208,通过所述处理器内核对应的套接字socket接收所述数据流。
由于多个数据流通常分配至同一个处理器内核,而一个处理器内核打开一个套接字socket,因此,在一个套接字socket中,通常接收多个数据流。
其中,套接字socket是在应用层和传输层之间的一个抽象层,它把TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网络协议)层复杂的操作抽象为几个简单的接口供应用层调用在网络中通信。
步骤209,调用所述处理器内核上的线程从所述套接字socket中处理所述数据流。
在处理器内核上绑定的线程,则可以从套接字socket中处理数据流,由于每个处理器内核上均可绑定线程,因此,大大增加了线程的数量,可以提高吞吐率,可达每秒500万个包。
在本发明的一个实施例中,可以调用处理器内核上的线程从套接字socket中接收所述数据流,并按照用户数据报协议UDP进行处理。
一个UDP接收程序的步骤如下,注意接收方要bind套接字:
1、用WSAStartup函数初始化Socket环境;
2、用socket函数创建一个套接字;
3、用setsockopt函数设置套接字的属性,例如设置为广播类型;
4、创建一个sockaddr_in,并指定其IP地址和端口号;
5、用bind函数将套接字与接收的地址绑定起来,然后调用recvfrom函数或者recv接收数据;
6、用closesocket函数关闭套接字;
7、用WSACleanup函数关闭Socket环境。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了根据本发明一个实施例的一种数据流的传输装置实施例的结构示意框图,具体可以包括如下模块:
数据流接收模块301,用于从预设的端口接收多个数据流;
流标识查询模块302,用于查询每个数据流的流标识;
数据流分配模块303,用于至少根据所述流标识将所述数据流分配至匹配的线程进行处理。
在本发明的一个实施例中,还包括:
内核处理模块,用于针对预置的多个处理器内核,针对每个处理器内核创建一个套接字socket、启动一个线程;
端口配置模块,用于将所述多个处理器内核的线程配置在预设的端口上。
在本发明的一个实施例中,所述数据流分配模块303包括:
内核确定子模块,用于至少按照所述流标识确定处理所述数据流的处理器内核;
套接字接收子模块,用于通过所述处理器内核对应的套接字socket接收所述数据流;
线程处理子模块,用于调用所述处理器内核上的线程从所述套接字socket中处理所述数据流。
在本发明的一个实施例中,所述内核确定子模块包括:
四要素查询单元,用于查询所述数据流的源IP地址、目的IP地址、源端口、目的端口;
五要素确定单元,用于按照所述流源IP地址、所述目的IP地址、所述源端口、所述目的端口与所述流标识确定处理所述数据流的处理器内核。
在本发明的一个实施例中,所述线程处理子模块包括:
UDP处理单元,用于调用所述处理器内核上的线程从所述套接字socket中接收所述数据流,并按照用户数据报协议UDP进行处理。
在本发明的一个实施例中,还包括:
通信状态信息查询模块,用于查询通信状态信息;
条件判断模块,用于判断所述通信状态信息是否满足预设的条件;若是,则调用所述数据流接收模块;
其中,所述通信状态信息包括如下的至少一种:
带宽、数据包类型、带宽占比。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据流的传输设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明实施例公开了A1、一种数据流的传输方法,包括:
从预设的端口接收多个数据流;
查询每个数据流的流标识;
至少根据所述流标识将所述数据流分配至匹配的线程进行处理。
A2、如A1所述的方法,还包括:
针对预置的多个处理器内核,针对每个处理器内核创建一个套接字socket、启动一个线程;
将所述多个处理器内核的线程配置在预设的端口上。
A3、如A1或A2所述的方法,所述至少根据所述流标识将所述数据流分配至匹配的线程进行处理,包括:
至少按照所述流标识确定处理所述数据流的处理器内核;
通过所述处理器内核对应的套接字socket接收所述数据流;
调用所述处理器内核上的线程从所述套接字socket中处理所述数据流。
A4、如A3所述的方法,所述至少按照所述流标识确定处理所述数据流的处理器内核,包括:
查询所述数据流的源IP地址、目的IP地址、源端口、目的端口;
按照所述流源IP地址、所述目的IP地址、所述源端口、所述目的端口与所述流标识确定处理所述数据流的处理器内核。
A5、如A3所述的方法,所述调用所述处理器内核上的线程从所述套接字socket中处理所述数据流,包括:
调用所述处理器内核上的线程从所述套接字socket中接收所述数据流,并按照用户数据报协议UDP进行处理。
A6、如A1-A5任一项所述的方法,还包括:
查询通信状态信息;
判断所述通信状态信息是否满足预设的条件;若是,则执行所述从预设的端口接收多个数据流;
其中,所述通信状态信息包括如下的至少一种:
带宽、数据包类型、带宽占比。
本发明实施例还公开了B7、一种数据流的传输装置,包括:
数据流接收模块,用于从预设的端口接收多个数据流;
流标识查询模块,用于查询每个数据流的流标识;
数据流分配模块,用于至少根据所述流标识将所述数据流分配至匹配的线程进行处理。
B8、如B7所述的装置,还包括:
内核处理模块,用于针对预置的多个处理器内核,针对每个处理器内核创建一个套接字socket、启动一个线程;
端口配置模块,用于将所述多个处理器内核的线程配置在预设的端口上。
B9、如B7或B8所述的装置,所述数据流分配模块包括:
内核确定子模块,用于至少按照所述流标识确定处理所述数据流的处理器内核;
套接字接收子模块,用于通过所述处理器内核对应的套接字socket接收所述数据流;
线程处理子模块,用于调用所述处理器内核上的线程从所述套接字socket中处理所述数据流。
B10、如B9所述的装置,所述内核确定子模块包括:
四要素查询单元,用于查询所述数据流的源IP地址、目的IP地址、源端口、目的端口;
五要素确定单元,用于按照所述流源IP地址、所述目的IP地址、所述源端口、所述目的端口与所述流标识确定处理所述数据流的处理器内核。
B11、如B9所述的装置,所述线程处理子模块包括:
UDP处理单元,用于调用所述处理器内核上的线程从所述套接字socket中接收所述数据流,并按照用户数据报协议UDP进行处理。
B12、如B7-B11任一项所述的装置,还包括:
通信状态信息查询模块,用于查询通信状态信息;
条件判断模块,用于判断所述通信状态信息是否满足预设的条件;若是,则调用所述数据流接收模块;
其中,所述通信状态信息包括如下的至少一种:
带宽、数据包类型、带宽占比。

Claims (10)

1.一种数据流的传输方法,包括:
从预设的端口接收多个数据流;
查询每个数据流的流标识;
至少根据所述流标识将所述数据流分配至匹配的线程进行处理。
2.如权利要求1所述的方法,其特征在于,还包括:
针对预置的多个处理器内核,针对每个处理器内核创建一个套接字socket、启动一个线程;
将所述多个处理器内核的线程配置在预设的端口上。
3.如权利要求1或2所述的方法,其特征在于,所述至少根据所述流标识将所述数据流分配至匹配的线程进行处理,包括:
至少按照所述流标识确定处理所述数据流的处理器内核;
通过所述处理器内核对应的套接字socket接收所述数据流;
调用所述处理器内核上的线程从所述套接字socket中处理所述数据流。
4.如权利要求3所述的方法,其特征在于,所述至少按照所述流标识确定处理所述数据流的处理器内核,包括:
查询所述数据流的源IP地址、目的IP地址、源端口、目的端口;
按照所述流源IP地址、所述目的IP地址、所述源端口、所述目的端口与所述流标识确定处理所述数据流的处理器内核。
5.如权利要求3所述的方法,其特征在于,所述调用所述处理器内核上的线程从所述套接字socket中处理所述数据流,包括:
调用所述处理器内核上的线程从所述套接字socket中接收所述数据流,并按照用户数据报协议UDP进行处理。
6.如权利要求1-5任一项所述的方法,其特征在于,还包括:
查询通信状态信息;
判断所述通信状态信息是否满足预设的条件;若是,则执行所述从预设的端口接收多个数据流;
其中,所述通信状态信息包括如下的至少一种:
带宽、数据包类型、带宽占比。
7.一种数据流的传输装置,包括:
数据流接收模块,用于从预设的端口接收多个数据流;
流标识查询模块,用于查询每个数据流的流标识;
数据流分配模块,用于至少根据所述流标识将所述数据流分配至匹配的线程进行处理。
8.如权利要求7所述的装置,其特征在于,还包括:
内核处理模块,用于针对预置的多个处理器内核,针对每个处理器内核创建一个套接字socket、启动一个线程;
端口配置模块,用于将所述多个处理器内核的线程配置在预设的端口上。
9.如权利要求7或8所述的装置,其特征在于,所述数据流分配模块包括:
内核确定子模块,用于至少按照所述流标识确定处理所述数据流的处理器内核;
套接字接收子模块,用于通过所述处理器内核对应的套接字socket接收所述数据流;
线程处理子模块,用于调用所述处理器内核上的线程从所述套接字socket中处理所述数据流。
10.如权利要求9所述的装置,其特征在于,所述内核确定子模块包括:
四要素查询单元,用于查询所述数据流的源IP地址、目的IP地址、源端口、目的端口;
五要素确定单元,用于按照所述流源IP地址、所述目的IP地址、所述源端口、所述目的端口与所述流标识确定处理所述数据流的处理器内核。
CN201711483430.3A 2017-12-29 2017-12-29 一种数据流的处理方法和装置 Active CN108228366B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711483430.3A CN108228366B (zh) 2017-12-29 2017-12-29 一种数据流的处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711483430.3A CN108228366B (zh) 2017-12-29 2017-12-29 一种数据流的处理方法和装置

Publications (2)

Publication Number Publication Date
CN108228366A true CN108228366A (zh) 2018-06-29
CN108228366B CN108228366B (zh) 2022-01-25

Family

ID=62646164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711483430.3A Active CN108228366B (zh) 2017-12-29 2017-12-29 一种数据流的处理方法和装置

Country Status (1)

Country Link
CN (1) CN108228366B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446268A (zh) * 2018-10-09 2019-03-08 联动优势科技有限公司 一种数据同步方法及装置
CN111400042A (zh) * 2020-03-13 2020-07-10 深圳前海环融联易信息科技服务有限公司 服务器吞吐量提高方法、装置、计算机设备及存储介质
WO2020201815A1 (en) * 2019-04-04 2020-10-08 Pismo Labs Technology Limited Methods and systems for sending packets through a plurality of tunnels
CN112261094A (zh) * 2020-10-10 2021-01-22 厦门网宿有限公司 一种报文处理方法及代理服务器
CN113176940A (zh) * 2021-03-29 2021-07-27 新华三信息安全技术有限公司 一种数据流分流方法、装置以及网络设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217464A (zh) * 2007-12-28 2008-07-09 北京大学 一种udp数据包的传输方法
CN101217493A (zh) * 2008-01-08 2008-07-09 北京大学 一种tcp数据包的传输方法
CN104734993A (zh) * 2013-12-24 2015-06-24 杭州华为数字技术有限公司 数据分流方法及分流器
CN105022671A (zh) * 2015-07-20 2015-11-04 中国科学院计算技术研究所 一种用于流式数据并行处理的负载均衡方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217464A (zh) * 2007-12-28 2008-07-09 北京大学 一种udp数据包的传输方法
CN101217493A (zh) * 2008-01-08 2008-07-09 北京大学 一种tcp数据包的传输方法
CN104734993A (zh) * 2013-12-24 2015-06-24 杭州华为数字技术有限公司 数据分流方法及分流器
CN105022671A (zh) * 2015-07-20 2015-11-04 中国科学院计算技术研究所 一种用于流式数据并行处理的负载均衡方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446268A (zh) * 2018-10-09 2019-03-08 联动优势科技有限公司 一种数据同步方法及装置
WO2020201815A1 (en) * 2019-04-04 2020-10-08 Pismo Labs Technology Limited Methods and systems for sending packets through a plurality of tunnels
GB2592315A (en) * 2019-04-04 2021-08-25 Pismo Labs Technology Ltd Methods and systems for sending packets through a plurality of tunnels
US11362933B2 (en) 2019-04-04 2022-06-14 Pismo Labs Technology Limited Methods and systems for sending packets through a plurality of tunnels
US11398975B2 (en) 2019-04-04 2022-07-26 Pismo Labs Technology Limited Methods and systems for sending packets through a plurality of tunnels
GB2592315B (en) * 2019-04-04 2023-07-19 Pismo Labs Technology Ltd Methods and systems for sending packets through a plurality of tunnels
CN111400042A (zh) * 2020-03-13 2020-07-10 深圳前海环融联易信息科技服务有限公司 服务器吞吐量提高方法、装置、计算机设备及存储介质
CN112261094A (zh) * 2020-10-10 2021-01-22 厦门网宿有限公司 一种报文处理方法及代理服务器
CN112261094B (zh) * 2020-10-10 2023-07-21 厦门网宿有限公司 一种报文处理方法及代理服务器
CN113176940A (zh) * 2021-03-29 2021-07-27 新华三信息安全技术有限公司 一种数据流分流方法、装置以及网络设备

Also Published As

Publication number Publication date
CN108228366B (zh) 2022-01-25

Similar Documents

Publication Publication Date Title
CN108228366A (zh) 一种数据流的处理方法和装置
EP2630585B1 (en) Aggregating multiple functions into a single platform
CN104283939B (zh) 用于灵活流卸载的装置、方法及非暂时性计算机可读媒体
US7764678B2 (en) Routing based on dynamic classification rules
CN105122741B (zh) 业务流的业务链控制方法和装置
CN105099730B (zh) 终端设备、基于终端设备的网络流量统计方法及系统
CN104734931A (zh) 一种虚拟网络功能间链路建立方法及装置
US20130262702A1 (en) Hardware-based packet editor
CN1874308A (zh) 在不对称路由网络中处理通信流
CN102377640B (zh) 一种报文处理装置和报文处理方法、及预处理器
CN105939297B (zh) 一种tcp报文重组方法和装置
CN108471629A (zh) 传输网络中业务服务质量的控制方法、设备及系统
CN106850568B (zh) 多通道协议的会话老化方法及装置
US10958547B2 (en) Verify a network function by inquiring a model using a query language
WO2017101815A1 (zh) 一种消息处理方法、装置和系统
CN108769017A (zh) 一种数据通信方法及装置
CN110581812A (zh) 一种数据报文的处理方法和装置
CN104618253A (zh) 一种动态变更的传输报文处理方法和装置
US10165092B2 (en) Using a network service header to manage a network-as-a-system
CN108429739A (zh) 一种识别蜜罐的方法、系统及终端设备
CN105517659A (zh) 一种数据包处理装置及方法
CN106105098A (zh) 交换机及业务请求报文的处理方法
US10397127B2 (en) Prioritized de-queueing
CN105245464A (zh) 一种基于安卓系统的网络加速方法
CN108011801A (zh) 数据传输的方法、设备、装置及系统

Legal Events

Date Code Title Description
PB01 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