[发明专利]基于并行协议栈实例的数据包处理方法和装置有效
申请号: | 201410043721.0 | 申请日: | 2014-01-29 |
公开(公告)号: | CN104811431B | 公开(公告)日: | 2018-01-16 |
发明(设计)人: | 杨永强;戴芬;文刘飞 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 刘芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 并行 协议 实例 数据包 处理 方法 装置 | ||
技术领域
本发明涉及通信技术,尤其涉及一种基于并行协议栈实例的数据包处理方法和装置。
背景技术
随着云计算的快速发展,对协议栈实例的处理能力提出了更高的要求。目前,通常采用多个协议栈实例共享套接字(socket)的方式,因此存在多协议栈实例之间对socket的竞争问题,进而提出了在中央处理器(central processing unit,CPU)的多核架构下并行协议栈实例,该并行协议栈实例包括至少两个协议栈实例,每个协议栈实例运行在CPU的一个虚拟中央处理器(virtual CPU,VCPU)上,采用独占协议栈实例所关联的socket的方式从而避免上述多协议栈实例之间对socket的竞争问题。当网卡根据分流策略,向各协议栈实例分流数据包时,各协议栈实例可利用与该协议栈实例关联的socket对数据包并行进行协议处理。
但是应用(Application,APP)在指示创建进行上述协议处理所需的socket时,指定了socket与协议栈实例之间的关联关系,从而仅可由APP指定的相关联的协议栈实例占用该socket对数据包进行协议处理,当网卡将数据包所分流到的协议栈实例,与该APP指定的socket相关联的协议栈实例不同时,即出现了APP指定的协议栈实例与网卡指定的协议栈实例冲突的情况,无法对数据包进行协议处理。
发明内容
为解决现有技术的问题,本发明实施例提供一种基于并行协议栈实例的数据包处理方法和装置。
第一方面是提供一种基于并行协议栈实例的数据包处理方法,所述并行协议栈实例中至少包括第一协议栈实例和第二协议栈实例,所述方法包括:利用所述第一协议栈实例对网卡向所述第一协议栈实例分流的所述数据包进行低层协议处理;确定对所述低层协议处理后的所述数据包进行上层协议处理所需的目标套接字socket;根据所述目标socket,确定与所述目标socket关联的第二协议栈实例;利用所述目标socket和所述第二协议栈实例对所述低层协议处理后的所述数据包进行所述上层协议处理;其中,所述低层协议处理和所述上层协议处理共同完成对所述数据包的完整协议处理。
在第一方面的第一种可能的实现方式中,所述根据所述目标socket,确定与所述目标socket关联的第二协议栈实例,包括:根据亲和性图谱中所述目标socket与所述并行协议栈实例包含的每个协议栈实例之间的亲和性,确定与所述目标socket关联的所述第二协议栈实例;所述目标socket与所述每个协议栈实例之间的亲和性用于指示所述网卡向所述每个协议栈实例已分流的数据包中,需要利用所述目标socket进行上层协议处理的数据包数量。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据亲和性图谱中所述目标socket与所述并行协议栈实例包含的每个协议栈实例之间的亲和性,确定与所述目标socket关联的所述第二协议栈实例之前,还包括:根据所述低层协议处理后的所述数据包的个数,更新所述亲和性图谱中所记载的所述目标socket与所述第一协议栈实例之间的亲和性。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据所述低层协议处理后的所述数据包的个数,更新所述亲和性图谱中所记载的所述目标socket与所述第一协议栈实例之间的亲和性之后,还包括:判断n×A是否大于B,其中,A为所述目标socket与所述第一协议栈实例之间的亲和性,B为所述亲和性图谱中记载的所述目标socket与关联的协议栈实例之间的亲和性,n为预设系数;则所述根据亲和性图谱中所述目标socket与所述并行协议栈实例包含的每个协议栈实例之间的亲和性,确定与所述目标socket关联的所述第二协议栈实例,包括:若n×A不大于B,则确定将所述亲和性图谱中记载的所述目标socket关联的协议栈实例作为与所述目标socket关联的所述第二协议栈实例。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述根据亲和性图谱中所述目标socket与所述并行协议栈实例包含的每个协议栈实例之间的亲和性,确定与所述目标socket关联的所述第二协议栈实例,还包括:若n×A大于B,则将所述第一协议栈实例确定为与所述目标socket关联的所述第二协议栈实例,并将所述亲和性图谱中记载的所述目标socket关联的协议栈实例更新为所述第一协议栈实例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410043721.0/2.html,转载请声明来源钻瓜专利网。