[发明专利]一种数据流的处理方法和装置有效
申请号: | 201711483430.3 | 申请日: | 2017-12-29 |
公开(公告)号: | CN108228366B | 公开(公告)日: | 2022-01-25 |
发明(设计)人: | 胡宇光;殷宇辉 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/48 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 王玉双 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据流 处理 方法 装置 | ||
本发明实施例提供了一种数据流的处理方法和装置,该方法包括:从预设的端口接收多个数据流;查询每个数据流的流标识;至少根据所述流标识将所述数据流分配至匹配的线程进行处理。流标识具有唯一性,因此,即便在IP地址、端口等相同的情况下,可以至少基于流标识将数据流分配至相应的线程进行处理,避免同一处理器内核进行处理,实现均衡负载,可以尽量使用处理器内核,避免空载,提高了资源的利用率,大大提高了吞吐量、提高了带宽的使用率,减少资源浪费。
技术领域
本发明涉及计算机处理的技术领域,特别是涉及一种数据流的传输方法和一种数据流的传输装置。
背景技术
UDP(User Datagram Protocol,用户数据报协议)由于控制选项较少,在数据传输过程中延迟小、数据传输效率高,在直播等领域应用较为广泛,用于传输视频流等数据流。
目前,在两台服务器之间的多路数据流,由于数据流应用的IP(InternetProtocol,网络之间互连的协议)地址、端口等参数是一致的,因此,这些数据流是会分配至同一个处理器内核进行处理。
但是,在CPU(Central Processing Unit,中央处理器)中,处理器内核通常是有多个的,如48个,部分处理器内核可能是空载,资源利用率较低,导致吞吐量较低,大多数实现在测试载荷为100字节的小数据包时,吞吐率仅能达到每秒20~30万包,此外,由于无法处理更多的数据包,限制无法发送更多的数据流,带宽使用率较低,浪费资源。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据流的传输方法和相应的一种数据流的传输装置。
依据本发明的一个方面,提供了一种数据流的传输方法,包括:
从预设的端口接收多个数据流;
查询每个数据流的流标识;
至少根据所述流标识将所述数据流分配至匹配的线程进行处理。
可选地,还包括:
针对预置的多个处理器内核,针对每个处理器内核创建一个套接字socket、启动一个线程;
将所述多个处理器内核的线程配置在预设的端口上。
可选地,所述至少根据所述流标识将所述数据流分配至匹配的线程进行处理,包括:
至少按照所述流标识确定处理所述数据流的处理器内核;
通过所述处理器内核对应的套接字socket接收所述数据流;
调用所述处理器内核上的线程从所述套接字socket中处理所述数据流。
可选地,所述至少按照所述流标识确定处理所述数据流的处理器内核,包括:
查询所述数据流的源IP地址、目的IP地址、源端口、目的端口;
按照所述流源IP地址、所述目的IP地址、所述源端口、所述目的端口与所述流标识确定处理所述数据流的处理器内核。
可选地,所述调用所述处理器内核上的线程从所述套接字socket中处理所述数据流,包括:
调用所述处理器内核上的线程从所述套接字socket中接收所述数据流,并按照用户数据报协议UDP进行处理。
可选地,还包括:
查询通信状态信息;
判断所述通信状态信息是否满足预设的条件;若是,则执行所述从预设的端口接收多个数据流;
其中,所述通信状态信息包括如下的至少一种:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711483430.3/2.html,转载请声明来源钻瓜专利网。