[发明专利]用于网络数据包的处理方法、装置及电子设备有效
| 申请号: | 201810017420.9 | 申请日: | 2018-01-09 |
| 公开(公告)号: | CN110022330B | 公开(公告)日: | 2022-01-21 |
| 发明(设计)人: | 石博 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | H04L67/1097 | 分类号: | H04L67/1097;H04L47/10 |
| 代理公司: | 北京清源汇知识产权代理事务所(特殊普通合伙) 11644 | 代理人: | 冯德魁;窦晓慧 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 用于 网络 数据包 处理 方法 装置 电子设备 | ||
1.一种用于网络数据包的处理方法,其特征在于,包括:
根据预先确定的流量分配算法构造发送网络数据包,选择网卡队列发送该网络数据包,所述网卡队列绑定了预先与CPU物理核绑定的工作线程,从而控制基于所述工作线程建立的网络链接在网卡上的分布;
将接收到的网络数据包与所述流量分配算法进行匹配;
根据匹配结果将接收网络数据包转发到符合所述流量分配算法的网卡队列;
其中,所述流量分配算法,包括:工作线程使用的端口和/或端口范围,以及,被配置在网卡队列上的流量规则;其中,所述流量规则,与所述网卡队列绑定的工作线程使用一致的端口和/或端口范围。
2.根据权利要求1所述的用于网络数据包的处理方法,其特征在于,所述工作线程,为与CPU物理核进行预先绑定的网络数据包处理线程。
3.根据权利要求2所述的用于网络数据包的处理方法,其特征在于,所述根据匹配结果将接收网络数据包转发到符合所述流量分配算法的网卡队列,此步骤之后,还包括下述处理:
通过该网卡队列预先绑定的工作线程从所述网卡队列读取网络数据包进行线程内处理;其中,所述网卡队列预先绑定的工作线程,与构造发送网络数据包的工作线程为同一线程。
4.根据权利要求2所述的用于网络数据包的处理方法,其特征在于,所述工作线程,是基于DPDK的工作线程。
5.根据权利要求1所述的用于网络数据包的处理方法,其特征在于,所述工作线程作为服务端时,所述流量规则,还包括根据接收的网络数据包的源端口与所述工作线程数确定接收流量所匹配的网卡队列。
6.根据权利要求1所述的用于网络数据包的处理方法,其特征在于,所述网卡,其数量为一个或多个;其中,网卡数量为多个时,与同一工作线程绑定的不同网卡的队列配置相同的流量规则。
7.根据权利要求1所述的用于网络数据包的处理方法,其特征在于,所述工作线程作为客户端时,所述根据预先确定的流量分配算法构造发送网络数据包,包括:根据应用层的请求数和工作线程数确定目标线程,通过所述目标线程与服务端建立链接;从所述目标线程对应的端口和/或端口范围中,选择一个端口,作为所述客户端的本端端口,组装要发送的网络数据包;其中,通过下述操作确定所述目标线程:
使用全局值表示发送的全局请求数;
用所述全局值对工作线程数取模,将结果值对应的线程号作为目标线程。
8.根据权利要求7所述的用于网络数据包的处理方法,其特征在于,还包括每次发送完成后,所述全局请求数递增一。
9.根据权利要求7所述的用于网络数据包的处理方法,其特征在于,所述选择一个端口,包括依次选择未使用的端口。
10.根据权利要求1所述的用于网络数据包的处理方法,其特征在于,所述工作线程作为服务端时,所述根据预先确定的流量分配算法构造发送网络数据包,包括:使用监听端口,作为所述服务端的本端端口,组装要发送的网络数据包。
11.根据权利要求7或10所述的用于网络数据包的处理方法,其特征在于,所述选择网卡队列发送该网络数据包,包括在组装要发送的网络数据包的步骤之后进行下述处理:
通过轮询选择网卡,进行发送;或者根据组包后的五元组进行哈希计算,根据哈希结果选择网卡,进行发送。
12.根据权利要求11所述的用于网络数据包的处理方法,其特征在于,所述根据哈希结果选择网卡,包括按照下述方式选择网卡:
若网卡数量为2,哈希结果若为偶数,选择第1个网卡,哈希结果若为奇数选择第2个网卡。
13.根据权利要求6所述的用于网络数据包的处理方法,其特征在于,所述网卡,其数量为两个。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810017420.9/1.html,转载请声明来源钻瓜专利网。





