[发明专利]基于并行协议栈实例的数据包处理方法和装置有效
申请号: | 201410043721.0 | 申请日: | 2014-01-29 |
公开(公告)号: | CN104811431B | 公开(公告)日: | 2018-01-16 |
发明(设计)人: | 杨永强;戴芬;文刘飞 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 刘芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 并行 协议 实例 数据包 处理 方法 装置 | ||
1.一种基于并行协议栈实例的数据包处理方法,其特征在于,所述并行协议栈实例中至少包括第一协议栈实例和第二协议栈实例,所述方法包括:
利用所述第一协议栈实例对网卡向所述第一协议栈实例分流的所述数据包进行低层协议处理;
确定对所述低层协议处理后的所述数据包进行上层协议处理所需的目标套接字socket;
根据所述目标socket,确定与所述目标socket关联的第二协议栈实例;
利用所述目标socket和所述第二协议栈实例对所述低层协议处理后的所述数据包进行所述上层协议处理;
其中,所述低层协议处理和所述上层协议处理共同完成对所述数据包的完整协议处理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标socket,确定与所述目标socket关联的第二协议栈实例,包括:
根据亲和性图谱中所述目标socket与所述并行协议栈实例包含的每个协议栈实例之间的亲和性,确定与所述目标socket关联的所述第二协议栈实例;所述目标socket与所述每个协议栈实例之间的亲和性用于指示所述网卡向所述每个协议栈实例已分流的数据包中,需要利用所述目标socket进行上层协议处理的数据包数量。
3.根据权利要求2所述的方法,其特征在于,所述根据亲和性图谱中所述目标socket与所述并行协议栈实例包含的每个协议栈实例之间的亲和性,确定与所述目标socket关联的所述第二协议栈实例之前,还包括:
根据所述低层协议处理后的所述数据包的个数,更新所述亲和性图谱中所记载的所述目标socket与所述第一协议栈实例之间的亲和性。
4.根据权利要求3所述的方法,其特征在于,所述根据所述低层协议处理后的所述数据包的个数,更新所述亲和性图谱中所记载的所述目标socket与所述第一协议栈实例之间的亲和性之后,还包括:
判断n×A是否大于B,其中,A为所述目标socket与所述第一协议栈实例之间的亲和性,B为所述亲和性图谱中记载的所述目标socket与关联的协议栈实例之间的亲和性,n为预设系数;
则所述根据亲和性图谱中所述目标socket与所述并行协议栈实例包含的每个协议栈实例之间的亲和性,确定与所述目标socket关联的所述第二协议栈实例,包括:
若n×A不大于B,则确定将所述亲和性图谱中记载的所述目标socket关联的协议栈实例作为与所述目标socket关联的所述第二协议栈实例。
5.根据权利要求4所述的方法,其特征在于,所述根据亲和性图谱中所述目标socket与所述并行协议栈实例包含的每个协议栈实例之间的亲和性,确定与所述目标socket关联的所述第二协议栈实例,还包括:
若n×A大于B,则将所述第一协议栈实例确定为与所述目标socket关联的所述第二协议栈实例,并将所述亲和性图谱中记载的所述目标socket关联的协议栈实例更新为所述第一协议栈实例。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述确定对所述低层协议处理后的所述数据包进行上层协议处理所需的目标套接字socket,包括:
在socket表中进行检索,获得对所述低层协议处理后的所述数据包进行上层协议处理所需的所述目标socket。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述利用所述目标socket和所述第二协议栈实例对所述低层协议处理后的所述数据包进行所述上层协议处理,包括:
将所述低层协议处理后的所述数据包加入到所述目标socket的底层数据接收队列中;
当根据所述第二协议栈实例对应的协议栈实例关联链表,轮询到所述目标socket时,利用所述第二协议栈实例对所述底层数据接收队列中的所述数据包进行所述上层协议处理;所述第二协议栈实例对应的协议栈实例关联链表用于指示与所述第二协议栈实例存在关联关系的socket。
8.根据权利要求1-5任一项所述的方法,其特征在于,所述确定对所述低层协议处理后的所述数据包进行上层协议处理所需的目标套接字socket之前,还包括:
利用所述并行协议栈实例包括的各协议栈实例中的一个父协议栈实例,创建与所述各协议栈实例均不存在关联关系的所述目标socket;所述父协议栈实例是应用APP采用随机方式或者参数指定方式或者负载均衡方式选定的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410043721.0/1.html,转载请声明来源钻瓜专利网。